Line | Branch | Decision | Exec | Source |
---|---|---|---|---|
1 | #include "pch.h" | |||
2 | ||||
3 | #include "alternator_controller.h" | |||
4 | ||||
5 | using ::testing::StrictMock; | |||
6 | using ::testing::Return; | |||
7 | ||||
8 | 4 | TEST(Alternator, observePlant) { | ||
9 |
1/1✓ Branch 2 taken 1 time.
|
1 | EngineTestHelper eth(engine_type_e::TEST_ENGINE); | |
10 | ||||
11 |
1/1✓ Branch 2 taken 1 time.
|
1 | AlternatorController dut; | |
12 | ||||
13 |
1/1✓ Branch 1 taken 1 time.
|
1 | Sensor::setMockValue(SensorType::BatteryVoltage, 13); | |
14 |
3/7✓ Branch 4 taken 1 time.
✓ Branch 9 taken 1 time.
✗ Branch 15 not taken.
✓ Branch 16 taken 1 time.
✗ Branch 19 not taken.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
|
1 | EXPECT_EQ(13, dut.observePlant().value_or(0)); | |
15 | 2 | } | ||
16 | ||||
17 | 4 | TEST(Alternator, openLoop) { | ||
18 |
1/1✓ Branch 2 taken 1 time.
|
1 | EngineTestHelper eth(engine_type_e::TEST_ENGINE); | |
19 |
1/1✓ Branch 2 taken 1 time.
|
1 | AlternatorController dut; | |
20 | 1 | engineConfiguration->acRelayAlternatorDutyAdder = 15; | ||
21 | ||||
22 |
3/7✓ Branch 5 taken 1 time.
✓ Branch 9 taken 1 time.
✗ Branch 15 not taken.
✓ Branch 16 taken 1 time.
✗ Branch 19 not taken.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
|
1 | EXPECT_EQ(dut.getOpenLoop(10).value_or(-1), 0); | |
23 | ||||
24 | // turn on AC! | |||
25 |
1/1✓ Branch 1 taken 1 time.
|
1 | engine->module<AcController>()->acButtonState = true; | |
26 |
3/7✓ Branch 5 taken 1 time.
✓ Branch 9 taken 1 time.
✗ Branch 15 not taken.
✓ Branch 16 taken 1 time.
✗ Branch 19 not taken.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
|
1 | EXPECT_EQ(dut.getOpenLoop(10).value_or(-1), 15); | |
27 | 2 | } | ||
28 | ||||
29 | 4 | TEST(Alternator, ClosedLoop) { | ||
30 |
1/1✓ Branch 2 taken 1 time.
|
1 | EngineTestHelper eth(engine_type_e::TEST_ENGINE); | |
31 | ||||
32 |
1/1✓ Branch 2 taken 1 time.
|
1 | AlternatorController dut; | |
33 | ||||
34 | 1 | engineConfiguration->alternatorControl.pFactor = 1.5f; | ||
35 | 1 | engineConfiguration->alternatorControl.iFactor = 0; | ||
36 | 1 | engineConfiguration->alternatorControl.dFactor = 0; | ||
37 | 1 | engineConfiguration->alternatorControl.offset = 0; | ||
38 | // apply PID settings | |||
39 |
1/1✓ Branch 1 taken 1 time.
|
1 | dut.update(); | |
40 | ||||
41 | // Target of 30 with position 20 should yield positive duty, P=1.5 means 15% duty for 10% error | |||
42 |
3/7✓ Branch 5 taken 1 time.
✓ Branch 9 taken 1 time.
✗ Branch 15 not taken.
✓ Branch 16 taken 1 time.
✗ Branch 19 not taken.
✗ Branch 24 not taken.
✗ Branch 27 not taken.
|
1 | EXPECT_EQ(dut.getClosedLoop(30, 20).value_or(0), 15); | |
43 | 2 | } | ||
44 |