• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

daisytuner / sdfglib / 15238257521

25 May 2025 01:14PM UTC coverage: 60.342% (-0.1%) from 60.473%
15238257521

push

github

web-flow
Merge pull request #31 from daisytuner/exception-handling

Exception handling

18 of 60 new or added lines in 17 files covered. (30.0%)

1 existing line in 1 file now uncovered.

8052 of 13344 relevant lines covered (60.34%)

102.27 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

50.0
/src/control_flow/interstate_edge.cpp
1
#include "sdfg/control_flow/interstate_edge.h"
2

3
namespace sdfg {
4
namespace control_flow {
5

6
InterstateEdge::InterstateEdge(size_t element_id, const DebugInfo& debug_info,
56✔
7
                               const graph::Edge& edge, const control_flow::State& src,
8
                               const control_flow::State& dst, const symbolic::Condition& condition,
9
                               const sdfg::symbolic::Assignments& assignments)
10
    : Element(element_id, debug_info),
56✔
11
      edge_(edge),
56✔
12
      src_(src),
56✔
13
      dst_(dst),
56✔
14
      condition_(condition),
56✔
15
      assignments_(assignments) {
56✔
16

17
      };
56✔
18

19
const graph::Edge InterstateEdge::edge() const { return this->edge_; };
2✔
20

21
const control_flow::State& InterstateEdge::src() const { return this->src_; };
8✔
22

23
const control_flow::State& InterstateEdge::dst() const { return this->dst_; };
37✔
24

25
const symbolic::Condition& InterstateEdge::condition() const { return this->condition_; };
16✔
26

27
bool InterstateEdge::is_unconditional() const { return symbolic::is_true(this->condition_); };
9✔
28

29
const sdfg::symbolic::Assignments& InterstateEdge::assignments() const {
23✔
30
    return this->assignments_;
23✔
31
};
32

33
void InterstateEdge::replace(const symbolic::Expression& old_expression,
×
34
                             const symbolic::Expression& new_expression) {
35
    symbolic::subs(this->condition_, old_expression, new_expression);
×
36

37
    if (SymEngine::is_a<SymEngine::Symbol>(*old_expression)) {
×
38
        auto old_symbol = SymEngine::rcp_static_cast<const SymEngine::Symbol>(old_expression);
×
39
        if (this->assignments_.find(old_symbol) != this->assignments_.end()) {
×
NEW
40
            if (!SymEngine::is_a<SymEngine::Symbol>(*new_expression)) {
×
NEW
41
                throw InvalidSDFGException("Assigments do not support complex expressions on LHS");
×
42
            }
43
            auto new_symbol = SymEngine::rcp_static_cast<const SymEngine::Symbol>(new_expression);
×
44
            this->assignments_[new_symbol] = this->assignments_[old_symbol];
×
45
            this->assignments_.erase(old_symbol);
×
46
        }
×
47
    }
×
48

49
    for (auto& entry : this->assignments_) {
×
50
        entry.second = symbolic::subs(entry.second, old_expression, new_expression);
×
51
    }
52
};
×
53

54
}  // namespace control_flow
55
}  // namespace sdfg
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc