Chrysalis - Pattern Test Coverage


pattern/
File: pattern/src/ProjectSpace.cpp
Date: 2026-08-27 18:35:18
Lines:
20/24
83.3%
Functions:
5/7
71.4%
Branches:
26/54
48.1%
Decisions:
7/8
87.5%
Calls:
116/142
81.7%

Line Branch Decision Call Exec Source
1 #include "ProjectSpace.h"
2
3 #include <ranges>
4
5 using namespace Chrysalis;
6
7
3/3
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 2 invoked.
26 ProjectSpace::~ProjectSpace() {
8
2/2
✓ Branch 15 taken 6 times.
✓ Branch 16 taken 13 times.
2/2
✓ Decision 'true' taken 6 times.
✓ Decision 'false' taken 13 times.
15/15
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 2 invoked.
✓ Call 3 invoked.
✓ Call 4 invoked.
✓ Call 5 invoked.
✓ Call 6 invoked.
✓ Call 7 invoked.
✓ Call 8 invoked.
✓ Call 9 invoked.
✓ Call 10 invoked.
✓ Call 11 invoked.
✓ Call 12 invoked.
✓ Call 13 invoked.
✓ Call 14 invoked.
19 for (const auto& curves: curves_ | std::views::values) {
9
2/2
✓ Branch 11 taken 6 times.
✓ Branch 12 taken 6 times.
2/2
✓ Decision 'true' taken 6 times.
✓ Decision 'false' taken 6 times.
11/11
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 2 invoked.
✓ Call 3 invoked.
✓ Call 4 invoked.
✓ Call 5 invoked.
✓ Call 6 invoked.
✓ Call 7 invoked.
✓ Call 8 invoked.
✓ Call 9 invoked.
✓ Call 10 invoked.
12 for (const auto& curve: curves | std::views::values) {
10
1/2
✓ Branch 1 taken 6 times.
✗ Branch 2 not taken.
7/7
✓ Call 0 invoked.
✓ Call 3 invoked.
✓ Call 4 invoked.
✓ Call 5 invoked.
✓ Call 6 invoked.
✓ Call 7 invoked.
✓ Call 8 invoked.
6 delete curve;
11 }
12 }
13
2/2
✓ Branch 12 taken 220 times.
✓ Branch 13 taken 13 times.
2/2
✓ Decision 'true' taken 220 times.
✓ Decision 'false' taken 13 times.
12/12
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 2 invoked.
✓ Call 3 invoked.
✓ Call 4 invoked.
✓ Call 5 invoked.
✓ Call 6 invoked.
✓ Call 7 invoked.
✓ Call 8 invoked.
✓ Call 9 invoked.
✓ Call 10 invoked.
✓ Call 11 invoked.
233 for (auto& point : points_) {
14
1/2
✓ Branch 1 taken 220 times.
✗ Branch 2 not taken.
14/14
✓ Call 0 invoked.
✓ Call 3 invoked.
✓ Call 4 invoked.
✓ Call 5 invoked.
✓ Call 6 invoked.
✓ Call 7 invoked.
✓ Call 8 invoked.
✓ Call 9 invoked.
✓ Call 10 invoked.
✓ Call 11 invoked.
✓ Call 12 invoked.
✓ Call 13 invoked.
✓ Call 14 invoked.
✓ Call 15 invoked.
220 delete point;
15 }
16
4/4
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 2 invoked.
✓ Call 3 invoked.
26 }
17
18 24 void ProjectSpace::movePoint(const Point* point, const CG::Point position) const {
19
3/6
✓ Branch 5 taken 24 times.
✗ Branch 6 not taken.
✓ Branch 7 taken 24 times.
✗ Branch 8 not taken.
✓ Branch 13 taken 24 times.
✗ Branch 14 not taken.
1/2
✓ Decision 'true' taken 24 times.
✗ Decision 'false' not taken.
9/9
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 2 invoked.
✓ Call 3 invoked.
✓ Call 4 invoked.
✓ Call 9 invoked.
✓ Call 10 invoked.
✓ Call 11 invoked.
✓ Call 12 invoked.
24 if (const auto p = const_cast<Point*>(point); points_.contains(p)) p->move(position);
20 24 }
21
22 ✗ bool ProjectSpace::hasCurve(const Point* from, const Point* to) const {
23
0/14
✗ Call 0 not invoked.
✗ Call 1 not invoked.
✗ Call 2 not invoked.
✗ Call 3 not invoked.
✗ Call 4 not invoked.
✗ Call 5 not invoked.
✗ Call 8 not invoked.
✗ Call 9 not invoked.
✗ Call 10 not invoked.
✗ Call 11 not invoked.
✗ Call 12 not invoked.
✗ Call 13 not invoked.
✗ Call 14 not invoked.
✗ Call 15 not invoked.
✗ return curves_.contains(from) && curves_.at(from).contains(to);
24 }
25
26 ✗ const Curve* ProjectSpace::getCurve(const Point* from, const Point* to) const {
27
0/9
✗ Call 0 not invoked.
✗ Call 1 not invoked.
✗ Call 2 not invoked.
✗ Call 3 not invoked.
✗ Call 4 not invoked.
✗ Call 5 not invoked.
✗ Call 6 not invoked.
✗ Call 7 not invoked.
✗ Call 8 not invoked.
✗ return curves_.at(from).at(to);
28 }
29
30 4 Point* ProjectSpace::addPoint(const double x, const double y) {
31
2/4
✓ Branch 3 taken 4 times.
✗ Branch 4 not taken.
✓ Branch 7 taken 4 times.
✗ Branch 8 not taken.
6/7
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 2 invoked.
✓ Call 5 invoked.
✓ Call 6 invoked.
✓ Call 9 invoked.
✗ Call 10 not invoked.
4 return addPoint({x, y});
32 }
33
34 220 Point* ProjectSpace::addPoint(const CG::Point& point) {
35
2/6
✓ Branch 2 taken 220 times.
✗ Branch 3 not taken.
✓ Branch 6 taken 220 times.
✗ Branch 7 not taken.
✗ Branch 8 not taken.
✗ Branch 9 not taken.
4/5
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 4 invoked.
✓ Call 5 invoked.
✗ Call 10 not invoked.
220 const auto p = new Point(point);
36
1/2
✓ Branch 3 taken 220 times.
✗ Branch 4 not taken.
3/3
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 2 invoked.
220 points_.insert(p);
37
1/1
✓ Call 0 invoked.
220 return p;
38 }
39
40 6 Curve* ProjectSpace::addCurve(const Point* from, const Point* to,
41 const CG::Segment& segmentFrom, const CG::Segment& segmentTo,
42 const std::vector<CG::Point>& points) {
43
3/6
✓ Branch 3 taken 6 times.
✗ Branch 4 not taken.
✓ Branch 8 taken 6 times.
✗ Branch 9 not taken.
✓ Branch 12 taken 6 times.
✗ Branch 13 not taken.
8/8
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 2 invoked.
✓ Call 5 invoked.
✓ Call 6 invoked.
✓ Call 7 invoked.
✓ Call 10 invoked.
✓ Call 11 invoked.
6 const auto handleFrom = CG::mirror(segmentFrom.start(), segmentFrom.end());
44
3/6
✓ Branch 3 taken 6 times.
✗ Branch 4 not taken.
✓ Branch 8 taken 6 times.
✗ Branch 9 not taken.
✓ Branch 12 taken 6 times.
✗ Branch 13 not taken.
8/8
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 2 invoked.
✓ Call 5 invoked.
✓ Call 6 invoked.
✓ Call 7 invoked.
✓ Call 10 invoked.
✓ Call 11 invoked.
6 const auto handleTo = CG::mirror(segmentTo.start(), segmentTo.end());
45
4/10
✓ Branch 1 taken 6 times.
✗ Branch 2 not taken.
✓ Branch 5 taken 6 times.
✗ Branch 6 not taken.
✓ Branch 11 taken 6 times.
✗ Branch 12 not taken.
✓ Branch 15 taken 6 times.
✗ Branch 16 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
11/12
✓ Call 0 invoked.
✓ Call 3 invoked.
✓ Call 4 invoked.
✓ Call 7 invoked.
✓ Call 8 invoked.
✓ Call 9 invoked.
✓ Call 10 invoked.
✓ Call 13 invoked.
✓ Call 14 invoked.
✓ Call 17 invoked.
✓ Call 18 invoked.
✗ Call 21 not invoked.
12 return curves_[from][to] = new Curve(handleFrom, handleTo, points);
46 }
47