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 |