GCC Code Coverage Report


Directory: ./
File: unit_tests/tests/util/test_scaled_channel.cpp
Date: 2025-10-03 00:57:22
Coverage Exec Excl Total
Lines: 100.0% 42 0 42
Functions: 100.0% 9 0 9
Branches: 32.5% 40 0 123
Decisions: -% 0 - 0

Line Branch Decision Exec Source
1 #include "pch.h"
2
3 #include "boost_control.h"
4
5 using ::testing::_;
6 using ::testing::StrictMock;
7
8 4 TEST(ScaledChannel, Basic) {
9 {
10 1 scaled_channel<int16_t, 10> i1;
11
2/6
✓ Branch 6 taken 1 time.
✗ Branch 9 not taken.
✓ Branch 10 taken 1 time.
✗ Branch 13 not taken.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
1 i1 = 10; EXPECT_FLOAT_EQ(i1, 10);
12
2/6
✓ Branch 6 taken 1 time.
✗ Branch 9 not taken.
✓ Branch 10 taken 1 time.
✗ Branch 13 not taken.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
1 i1 = 1; EXPECT_FLOAT_EQ(i1, 1);
13
2/6
✓ Branch 6 taken 1 time.
✗ Branch 9 not taken.
✓ Branch 10 taken 1 time.
✗ Branch 13 not taken.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
1 i1 = 0.11; EXPECT_FLOAT_EQ(i1, 0.1); // round
14
2/6
✓ Branch 6 taken 1 time.
✗ Branch 9 not taken.
✓ Branch 10 taken 1 time.
✗ Branch 13 not taken.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
1 i1 = 0.1; EXPECT_FLOAT_EQ(i1, 0.1);
15
2/6
✓ Branch 6 taken 1 time.
✗ Branch 9 not taken.
✓ Branch 10 taken 1 time.
✗ Branch 13 not taken.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
1 i1 = 0.09; EXPECT_FLOAT_EQ(i1, 0.1); // round
16
2/6
✓ Branch 6 taken 1 time.
✗ Branch 9 not taken.
✓ Branch 10 taken 1 time.
✗ Branch 13 not taken.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
1 i1 = 0.01; EXPECT_FLOAT_EQ(i1, 0.); // out of range
17
2/6
✓ Branch 6 taken 1 time.
✗ Branch 9 not taken.
✓ Branch 10 taken 1 time.
✗ Branch 13 not taken.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
1 i1 = -0.09; EXPECT_FLOAT_EQ(i1, -0.1); // round
18
2/6
✓ Branch 6 taken 1 time.
✗ Branch 9 not taken.
✓ Branch 10 taken 1 time.
✗ Branch 13 not taken.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
1 i1 = -0.1; EXPECT_FLOAT_EQ(i1, -0.1);
19
2/6
✓ Branch 6 taken 1 time.
✗ Branch 9 not taken.
✓ Branch 10 taken 1 time.
✗ Branch 13 not taken.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
1 i1 = -0.11; EXPECT_FLOAT_EQ(i1, -0.1); // round
20 }
21
22 {
23 1 scaled_channel<int16_t, 1, 10> i2;
24
2/6
✓ Branch 6 taken 1 time.
✗ Branch 9 not taken.
✓ Branch 10 taken 1 time.
✗ Branch 13 not taken.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
1 i2 = 1000; EXPECT_FLOAT_EQ(i2, 1000);
25
2/6
✓ Branch 6 taken 1 time.
✗ Branch 9 not taken.
✓ Branch 10 taken 1 time.
✗ Branch 13 not taken.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
1 i2 = 100; EXPECT_FLOAT_EQ(i2, 100);
26
2/6
✓ Branch 6 taken 1 time.
✗ Branch 9 not taken.
✓ Branch 10 taken 1 time.
✗ Branch 13 not taken.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
1 i2 = 11; EXPECT_FLOAT_EQ(i2, 10); // round
27
2/6
✓ Branch 6 taken 1 time.
✗ Branch 9 not taken.
✓ Branch 10 taken 1 time.
✗ Branch 13 not taken.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
1 i2 = 10; EXPECT_FLOAT_EQ(i2, 10);
28
2/6
✓ Branch 6 taken 1 time.
✗ Branch 9 not taken.
✓ Branch 10 taken 1 time.
✗ Branch 13 not taken.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
1 i2 = 9; EXPECT_FLOAT_EQ(i2, 10); // round
29
2/6
✓ Branch 6 taken 1 time.
✗ Branch 9 not taken.
✓ Branch 10 taken 1 time.
✗ Branch 13 not taken.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
1 i2 = 1; EXPECT_FLOAT_EQ(i2, 0); // out of range
30
2/6
✓ Branch 6 taken 1 time.
✗ Branch 9 not taken.
✓ Branch 10 taken 1 time.
✗ Branch 13 not taken.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
1 i2 = -9; EXPECT_FLOAT_EQ(i2, -10); // round
31
2/6
✓ Branch 6 taken 1 time.
✗ Branch 9 not taken.
✓ Branch 10 taken 1 time.
✗ Branch 13 not taken.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
1 i2 = -10; EXPECT_FLOAT_EQ(i2, -10);
32
2/6
✓ Branch 6 taken 1 time.
✗ Branch 9 not taken.
✓ Branch 10 taken 1 time.
✗ Branch 13 not taken.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
1 i2 = -11; EXPECT_FLOAT_EQ(i2, -10); // round
33 }
34 1 }
35
36 4 TEST(ScaledChannel, IntegerBehavior) {
37 1 scaled_channel<uint32_t, 1, 1> test;
38
39 // Check that a round trip thru scaled_channel gets us back the same integer
40 1 uint32_t a = 20210311;
41 1 test = a;
42 1 uint32_t b = test;
43
44
2/6
✓ Branch 2 taken 1 time.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 time.
✗ Branch 9 not taken.
✗ Branch 14 not taken.
✗ Branch 17 not taken.
1 EXPECT_EQ(a, b);
45 1 }
46
47 4 TEST(ScaledChannel, IntegerUnsigned8Behavior) {
48 1 scaled_channel<uint8_t, 1, 1> test;
49
50 1 uint32_t a = 140;
51 1 test = a;
52 1 uint32_t b = test;
53
2/9
✓ Branch 2 taken 1 time.
✗ Branch 5 not taken.
✓ Branch 6 taken 1 time.
✗ Branch 9 not taken.
✗ Branch 12 not taken.
✗ Branch 15 not taken.
✗ Branch 18 not taken.
✗ Branch 23 not taken.
✗ Branch 26 not taken.
1 EXPECT_EQ(a, b) << a << " unsigned8 " << b;
54 1 }
55