Chrysalis - Project Composer Test Coverage


pattern/composer/
File: pattern/composer/src/composer.cpp
Date: 2026-08-27 18:35:43
Lines:
20/28
71.4%
Functions:
10/14
71.4%
Branches:
16/46
34.8%
Decisions:
0/0
-%
Calls:
129/209
61.7%

Line Branch Decision Call Exec Source
1 #include "composer.h"
2
3 #include "arguments/ComparisonArgument.h"
4
5 using namespace Chrysalis;
6
7 2 args::number Chrysalis::operator ""_(const long double number) {
8
1/2
✓ Branch 4 taken 2 times.
✗ Branch 5 not taken.
9/11
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 2 invoked.
✓ Call 3 invoked.
✓ Call 6 invoked.
✓ Call 7 invoked.
✓ Call 8 invoked.
✓ Call 9 invoked.
✓ Call 10 invoked.
✗ Call 11 not invoked.
✗ Call 12 not invoked.
2 return std::make_unique<Argument<double>>(static_cast<double>(number));
9 }
10
11 2 std::unique_ptr<BinaryFunctionArgument> Chrysalis::operator+(args::number&& a, args::number&& b) {
12
1/2
✓ Branch 8 taken 2 times.
✗ Branch 9 not taken.
12/13
✓ 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 10 invoked.
✓ Call 11 invoked.
✓ Call 12 invoked.
✓ Call 13 invoked.
✗ Call 14 not invoked.
2 return std::make_unique<BinaryFunctionArgument::Add>(std::move(a), std::move(b));
13 }
14
15 1 std::unique_ptr<BinaryFunctionArgument> Chrysalis::operator-(args::number&& a, args::number&& b) {
16
1/2
✓ Branch 8 taken 1 times.
✗ Branch 9 not taken.
12/13
✓ 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 10 invoked.
✓ Call 11 invoked.
✓ Call 12 invoked.
✓ Call 13 invoked.
✗ Call 14 not invoked.
1 return std::make_unique<BinaryFunctionArgument::Subtract>(std::move(a), std::move(b));
17 }
18
19 ✗ std::unique_ptr<BinaryFunctionArgument> Chrysalis::operator*(args::number&& a, args::number&& b) {
20
0/13
✗ 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 10 not invoked.
✗ Call 11 not invoked.
✗ Call 12 not invoked.
✗ Call 13 not invoked.
✗ Call 14 not invoked.
✗ return std::make_unique<BinaryFunctionArgument::Multiply>(std::move(a), std::move(b));
21 }
22
23 4 std::unique_ptr<BinaryFunctionArgument> Chrysalis::operator/(args::number&& a, args::number&& b) {
24
1/2
✓ Branch 8 taken 4 times.
✗ Branch 9 not taken.
12/13
✓ 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 10 invoked.
✓ Call 11 invoked.
✓ Call 12 invoked.
✓ Call 13 invoked.
✗ Call 14 not invoked.
4 return std::make_unique<BinaryFunctionArgument::Divide>(std::move(a), std::move(b));
25 }
26
27 6 std::unique_ptr<BinaryFunctionArgument> Chrysalis::operator+(args::number&& a, const double b) {
28
2/4
✓ Branch 3 taken 6 times.
✗ Branch 4 not taken.
✓ Branch 10 taken 6 times.
✗ Branch 11 not taken.
14/17
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 2 invoked.
✓ Call 5 invoked.
✓ Call 6 invoked.
✓ Call 7 invoked.
✓ Call 8 invoked.
✓ Call 9 invoked.
✓ Call 12 invoked.
✓ Call 13 invoked.
✓ Call 14 invoked.
✓ Call 15 invoked.
✓ Call 16 invoked.
✓ Call 17 invoked.
✗ Call 18 not invoked.
✗ Call 19 not invoked.
✗ Call 20 not invoked.
6 return std::make_unique<BinaryFunctionArgument::Add>(std::move(a), std::make_unique<Argument<double>>(b));
29 }
30
31 4 std::unique_ptr<BinaryFunctionArgument> Chrysalis::operator-(args::number&& a, const double b) {
32
2/4
✓ Branch 3 taken 4 times.
✗ Branch 4 not taken.
✓ Branch 10 taken 4 times.
✗ Branch 11 not taken.
14/17
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 2 invoked.
✓ Call 5 invoked.
✓ Call 6 invoked.
✓ Call 7 invoked.
✓ Call 8 invoked.
✓ Call 9 invoked.
✓ Call 12 invoked.
✓ Call 13 invoked.
✓ Call 14 invoked.
✓ Call 15 invoked.
✓ Call 16 invoked.
✓ Call 17 invoked.
✗ Call 18 not invoked.
✗ Call 19 not invoked.
✗ Call 20 not invoked.
4 return std::make_unique<BinaryFunctionArgument::Subtract>(std::move(a), std::make_unique<Argument<double>>(b));
33 }
34
35 1 std::unique_ptr<BinaryFunctionArgument> Chrysalis::operator*(args::number&& a, const double b) {
36
2/4
✓ Branch 3 taken 1 times.
✗ Branch 4 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
14/17
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 2 invoked.
✓ Call 5 invoked.
✓ Call 6 invoked.
✓ Call 7 invoked.
✓ Call 8 invoked.
✓ Call 9 invoked.
✓ Call 12 invoked.
✓ Call 13 invoked.
✓ Call 14 invoked.
✓ Call 15 invoked.
✓ Call 16 invoked.
✓ Call 17 invoked.
✗ Call 18 not invoked.
✗ Call 19 not invoked.
✗ Call 20 not invoked.
1 return std::make_unique<BinaryFunctionArgument::Multiply>(std::move(a), std::make_unique<Argument<double>>(b));
37 }
38
39 28 std::unique_ptr<BinaryFunctionArgument> Chrysalis::operator/(args::number&& a, const double b) {
40
2/4
✓ Branch 3 taken 28 times.
✗ Branch 4 not taken.
✓ Branch 10 taken 28 times.
✗ Branch 11 not taken.
14/17
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 2 invoked.
✓ Call 5 invoked.
✓ Call 6 invoked.
✓ Call 7 invoked.
✓ Call 8 invoked.
✓ Call 9 invoked.
✓ Call 12 invoked.
✓ Call 13 invoked.
✓ Call 14 invoked.
✓ Call 15 invoked.
✓ Call 16 invoked.
✓ Call 17 invoked.
✗ Call 18 not invoked.
✗ Call 19 not invoked.
✗ Call 20 not invoked.
28 return std::make_unique<BinaryFunctionArgument::Divide>(std::move(a), std::make_unique<Argument<double>>(b));
41 }
42
43 1 std::unique_ptr<BinaryFunctionArgument> Chrysalis::operator+(const double a, args::number&& b) {
44
2/4
✓ Branch 6 taken 1 times.
✗ Branch 7 not taken.
✓ Branch 10 taken 1 times.
✗ Branch 11 not taken.
14/17
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 2 invoked.
✓ Call 3 invoked.
✓ Call 4 invoked.
✓ Call 5 invoked.
✓ Call 8 invoked.
✓ Call 9 invoked.
✓ Call 12 invoked.
✓ Call 13 invoked.
✓ Call 14 invoked.
✓ Call 15 invoked.
✓ Call 16 invoked.
✓ Call 17 invoked.
✗ Call 18 not invoked.
✗ Call 19 not invoked.
✗ Call 20 not invoked.
1 return std::make_unique<BinaryFunctionArgument::Add>(std::make_unique<Argument<double>>(a), std::move(b));
45 }
46
47 ✗ std::unique_ptr<BinaryFunctionArgument> Chrysalis::operator-(const double a, args::number&& b) {
48
0/17
✗ 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 12 not invoked.
✗ Call 13 not invoked.
✗ Call 14 not invoked.
✗ Call 15 not invoked.
✗ Call 16 not invoked.
✗ Call 17 not invoked.
✗ Call 18 not invoked.
✗ Call 19 not invoked.
✗ Call 20 not invoked.
✗ return std::make_unique<BinaryFunctionArgument::Subtract>(std::make_unique<Argument<double>>(a), std::move(b));
49 }
50
51 7 std::unique_ptr<BinaryFunctionArgument> Chrysalis::operator*(const double a, args::number&& b) {
52
2/4
✓ Branch 6 taken 7 times.
✗ Branch 7 not taken.
✓ Branch 10 taken 7 times.
✗ Branch 11 not taken.
14/17
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 2 invoked.
✓ Call 3 invoked.
✓ Call 4 invoked.
✓ Call 5 invoked.
✓ Call 8 invoked.
✓ Call 9 invoked.
✓ Call 12 invoked.
✓ Call 13 invoked.
✓ Call 14 invoked.
✓ Call 15 invoked.
✓ Call 16 invoked.
✓ Call 17 invoked.
✗ Call 18 not invoked.
✗ Call 19 not invoked.
✗ Call 20 not invoked.
7 return std::make_unique<BinaryFunctionArgument::Multiply>(std::make_unique<Argument<double>>(a), std::move(b));
53 }
54
55 ✗ std::unique_ptr<BinaryFunctionArgument> Chrysalis::operator/(const double a, args::number&& b) {
56
0/17
✗ 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 12 not invoked.
✗ Call 13 not invoked.
✗ Call 14 not invoked.
✗ Call 15 not invoked.
✗ Call 16 not invoked.
✗ Call 17 not invoked.
✗ Call 18 not invoked.
✗ Call 19 not invoked.
✗ Call 20 not invoked.
✗ return std::make_unique<BinaryFunctionArgument::Divide>(std::make_unique<Argument<double>>(a), std::move(b));
57 }
58
59 ✗ const args::condition* Chrysalis::operator<(args::number&& a, args::number&& b) {
60
0/10
✗ 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.
✗ Call 13 not invoked.
✗ return new args::compare::Less(std::move(a), std::move(b));
61 }
62