| 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 |