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