Line | Branch | Decision | Exec | Source |
---|---|---|---|---|
1 | #include "pch.h" | |||
2 | ||||
3 | #include "functional_sensor.h" | |||
4 | ||||
5 | struct DoublerFunc final : public SensorConverter { | |||
6 | 2 | SensorResult convert(float input) const { | ||
7 |
2/2✓ Branch 0 taken 1 time.
✓ Branch 1 taken 1 time.
|
2/2✓ Decision 'true' taken 1 time.
✓ Decision 'false' taken 1 time.
|
2 | if (input <= 0) { |
8 | 1 | return unexpected; | ||
9 | } | |||
10 | ||||
11 | 1 | return input * 2; | ||
12 | } | |||
13 | }; | |||
14 | ||||
15 | class SensorConverted : public ::testing::Test { | |||
16 | protected: | |||
17 | 2 | SensorConverted() | ||
18 |
1/1✓ Branch 2 taken 2 times.
|
2 | : dut(SensorType::Clt, MS2NT(50)) {} | |
19 | ||||
20 | 2 | void SetUp() override { | ||
21 | 2 | dut.setFunction(func); | ||
22 | 2 | Sensor::resetRegistry(); | ||
23 | 2 | } | ||
24 | ||||
25 | 2 | void TearDown() override { | ||
26 | 2 | Sensor::resetRegistry(); | ||
27 | 2 | } | ||
28 | ||||
29 | FunctionalSensor dut; | |||
30 | DoublerFunc func; | |||
31 | }; | |||
32 | ||||
33 | 4 | TEST_F(SensorConverted, TestValid) { | ||
34 |
3/9✓ Branch 3 taken 1 time.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 time.
✗ Branch 12 not taken.
✗ Branch 17 not taken.
✗ Branch 21 not taken.
✗ Branch 24 not taken.
✓ Branch 33 taken 1 time.
✗ Branch 34 not taken.
|
1 | ASSERT_TRUE(dut.Register()); | |
35 | ||||
36 | // Should be invalid - not set yet | |||
37 | { | |||
38 | 1 | auto s = Sensor::get(SensorType::Clt); | ||
39 |
1/6✗ Branch 5 not taken.
✓ Branch 6 taken 1 time.
✗ Branch 9 not taken.
✗ Branch 14 not taken.
✗ Branch 18 not taken.
✗ Branch 21 not taken.
|
1 | EXPECT_FALSE(s.Valid); | |
40 | } | |||
41 | ||||
42 | 1 | dut.postRawValue(25, getTimeNowNt()); | ||
43 | ||||
44 | // Should be valid, with a value of 25*2 = 50 | |||
45 | { | |||
46 |
1/1✓ Branch 2 taken 1 time.
|
1 | auto s = Sensor::get(SensorType::Clt); | |
47 |
1/6✗ Branch 3 not taken.
✓ Branch 4 taken 1 time.
✗ Branch 7 not taken.
✗ Branch 12 not taken.
✗ Branch 16 not taken.
✗ Branch 19 not taken.
|
1 | EXPECT_TRUE(s.Valid); | |
48 |
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_FLOAT_EQ(s.Value, 50); | |
49 |
3/7✓ Branch 2 taken 1 time.
✓ Branch 5 taken 1 time.
✗ Branch 8 not taken.
✓ Branch 9 taken 1 time.
✗ Branch 12 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
|
1 | EXPECT_FLOAT_EQ(Sensor::getRaw(SensorType::Clt), 25); | |
50 | } | |||
51 | } | |||
52 | ||||
53 | TEST_F(SensorConverted, TestInvalid) { | |||
54 | ASSERT_TRUE(dut.Register()); | |||
55 | ||||
56 | // Should be invalid - not set yet | |||
57 | { | |||
58 | auto s = Sensor::get(SensorType::Clt); | |||
59 | EXPECT_FALSE(s.Valid); | |||
60 | } | |||
61 | ||||
62 | dut.postRawValue(-25, 0); | |||
63 | ||||
64 | // Should be invalid, with a value of -25*2 = 0 | |||
65 | { | |||
66 | auto s = Sensor::get(SensorType::Clt); | |||
67 | EXPECT_FALSE(s.Valid); | |||
68 | } | |||
69 | ||||
70 | // Raw value works even when sensor is invalid | |||
71 | EXPECT_FLOAT_EQ(Sensor::getRaw(SensorType::Clt), -25); | |||
72 | } | |||
73 |