GCC Code Coverage Report


Directory: ./
File: unit_tests/tests/sensor/test_vehicle_speed_converter.cpp
Date: 2025-10-03 00:57:22
Coverage Exec Excl Total
Lines: 100.0% 24 0 24
Functions: 100.0% 7 0 7
Branches: 44.8% 26 0 58
Decisions: -% 0 - 0

Line Branch Decision Exec Source
1 #include "pch.h"
2 #include "vehicle_speed_converter.h"
3
4
5 8 float GetVssFor(float revPerKm, float axle, float teeth, float hz) {
6
1/1
✓ Branch 2 taken 8 times.
8 EngineTestHelper eth(engine_type_e::TEST_ENGINE);
7
8 8 VehicleSpeedConverter dut;
9
10 8 engineConfiguration->driveWheelRevPerKm = revPerKm;
11 8 engineConfiguration->vssGearRatio = axle;
12 8 engineConfiguration->vssToothCount = teeth;
13
14
1/1
✓ Branch 2 taken 8 times.
16 return dut.convert(hz).value_or(-1);
15 8 }
16
17 4 TEST(VehicleSpeed, FakeCases) {
18 // 0hz -> 0kph
19
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_NEAR_M3(0, GetVssFor(500, 5, 10, 0));
20
21 // 1000hz -> 144 kph
22
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_NEAR_M3(144, GetVssFor(500, 5, 10, 1000));
23
24 // Half size tires -> half speed
25
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_NEAR_M3(72, GetVssFor(1000, 5, 10, 1000));
26
27 // Double the axle ratio -> half the speed
28
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_NEAR_M3(72, GetVssFor(500, 10, 10, 1000));
29
30 // Twice as many teeth -> half speed
31
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_NEAR_M3(72, GetVssFor(500, 5, 20, 1000));
32 1 }
33
34 4 TEST(VehicleSpeed, RealCases) {
35 // V8 Volvo
36 // 205/50R16 tire -> 521 rev/km
37 // 3.73 axle ratio
38 // 17 tooth speedo gear
39
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_NEAR_M3(108.970f, GetVssFor(521, 3.73, 17, 1000));
40
41 // NB miata
42 // 205/50R15 tire -> 544 rev/km
43 // 4.3 axle ratio
44 // 21 tooth speedo gear
45
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_NEAR_M3(73.285f, GetVssFor(544, 4.3, 21, 1000));
46
47 // Some truck with ABS sensors
48 // 265/65R18 tire -> 391 rev/km
49 // 1.0 ratio because ABS sensors are hub mounted
50 // 48 tooth abs sensor
51
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_NEAR_M3(191.816f, GetVssFor(391, 1, 48, 1000));
52 1 }
53