Chrysalis - Pattern Test Coverage


pattern/
File: pattern/src/BinaryFunctionArgument.cpp
Date: 2026-08-27 18:35:18
Lines:
20/20
100.0%
Functions:
10/10
100.0%
Branches:
12/16
75.0%
Decisions:
0/0
-%
Calls:
90/96
93.8%

Line Branch Decision Call Exec Source
1 #include "arguments/BinaryFunctionArgument.h"
2
3 using namespace Chrysalis;
4
5
1/1
✓ Call 0 invoked.
495 BinaryFunctionArgument::BinaryFunctionArgument(args::number&& operand1, args::number&& operand2)
6
19/19
✓ 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.
✓ Call 15 invoked.
✓ Call 16 invoked.
✓ Call 17 invoked.
✓ Call 18 invoked.
495 : operand1_(std::move(operand1)), operand2_(std::move(operand2)) {}
7
8 375 std::expected<double, Error> BinaryFunctionArgument::calculate() const {
9
1/2
✓ Branch 10 taken 375 times.
✗ Branch 11 not taken.
15/18
✓ 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 12 invoked.
✓ Call 13 invoked.
✓ Call 14 invoked.
✓ Call 15 invoked.
✓ Call 16 invoked.
✗ Call 17 not invoked.
✗ Call 18 not invoked.
✗ Call 19 not invoked.
750 return operand1_->get().and_then([this](const double a) {
10
1/2
✓ Branch 12 taken 373 times.
✗ Branch 13 not taken.
18/21
✓ 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 14 invoked.
✓ Call 15 invoked.
✓ Call 16 invoked.
✓ Call 17 invoked.
✓ Call 18 invoked.
✓ Call 19 invoked.
✗ Call 20 not invoked.
✗ Call 21 not invoked.
✗ Call 22 not invoked.
746 return operand2_->get().and_then([this, &a](const double b) {
11
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.
371 return evaluate(a, b);
12
1/2
✓ Branch 3 taken 373 times.
✗ Branch 4 not taken.
3/3
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 2 invoked.
1119 });
13
1/2
✓ Branch 3 taken 375 times.
✗ Branch 4 not taken.
3/3
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 2 invoked.
1125 });
14 }
15
16 60 std::expected<double, Error> BinaryFunctionArgument::Add::evaluate(const double a, const double b) const {
17
4/4
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 2 invoked.
✓ Call 3 invoked.
60 return a + b;
18 }
19
20 69 std::expected<double, Error> BinaryFunctionArgument::Subtract::evaluate(const double a, const double b) const {
21
4/4
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 2 invoked.
✓ Call 3 invoked.
69 return a - b;
22 }
23
24 57 std::expected<double, Error> BinaryFunctionArgument::Multiply::evaluate(const double a, const double b) const {
25
4/4
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 2 invoked.
✓ Call 3 invoked.
57 return a * b;
26 }
27
28 88 std::expected<double, Error> BinaryFunctionArgument::Divide::evaluate(const double a, const double b) const {
29
4/4
✓ Call 0 invoked.
✓ Call 1 invoked.
✓ Call 2 invoked.
✓ Call 3 invoked.
88 return a / b;
30 }
31
32 47 std::expected<double, Error> BinaryFunctionArgument::Min::evaluate(const double a, const double b) const {
33
4/4
✓ Branch 0 taken 23 times.
✓ Branch 1 taken 24 times.
✓ Branch 3 taken 23 times.
✓ Branch 4 taken 24 times.
2/2
✓ Call 2 invoked.
✓ Call 5 invoked.
47 return a < b ? a : b;
34 }
35
36 50 std::expected<double, Error> BinaryFunctionArgument::Max::evaluate(const double a, const double b) const {
37
4/4
✓ Branch 0 taken 25 times.
✓ Branch 1 taken 25 times.
✓ Branch 3 taken 25 times.
✓ Branch 4 taken 25 times.
2/2
✓ Call 2 invoked.
✓ Call 5 invoked.
50 return a > b ? a : b;
38 }
39