| Line | Branch | Decision | Exec | Source |
|---|---|---|---|---|
| 1 | // | |||
| 2 | // Created by kifir on 12/5/24. | |||
| 3 | // | |||
| 4 | ||||
| 5 | #include "pch.h" | |||
| 6 | ||||
| 7 | #include "nitrous_test_base.h" | |||
| 8 | ||||
| 9 | namespace { | |||
| 10 | class NitrousFuelAdderTest : public NitrousTestBase { | |||
| 11 | protected: | |||
| 12 | static constexpr int8_t TEST_NITROUS_FUEL_ADDER_PERCENT = 17; | |||
| 13 | static constexpr float DEFAULT_FUEL_CORRECTION = 1.009999f; | |||
| 14 | static const CltFuelCorrCurve TEST_CLT_FUEL_CORR; | |||
| 15 | ||||
| 16 | void checkTotalFuelCorrection( | |||
| 17 | bool expectedNitrousCondition, | |||
| 18 | float expectedTotalFuelCorrection, | |||
| 19 | const char* context | |||
| 20 | ); | |||
| 21 | public: | |||
| 22 | static CltFuelCorrCurve generateTestCltFuelCorrCurve(); | |||
| 23 | }; | |||
| 24 | ||||
| 25 | 3 | void NitrousFuelAdderTest::checkTotalFuelCorrection( | ||
| 26 | const bool expectedNitrousCondition, | |||
| 27 | const float expectedTotalFuelCorrection, | |||
| 28 | const char* const context | |||
| 29 | ) { | |||
| 30 | 3 | periodicFastCallback(); // to recalculate total fuel correction | ||
| 31 | 3 | checkNitrousCondition(expectedNitrousCondition, context); | ||
| 32 |
2/7✓ Branch 2 taken 3 times.
✗ Branch 5 not taken.
✓ Branch 6 taken 3 times.
✗ Branch 9 not taken.
✗ Branch 12 not taken.
✗ Branch 17 not taken.
✗ Branch 20 not taken.
|
3 | EXPECT_NEAR(engine->fuelComputer.totalFuelCorrection, expectedTotalFuelCorrection, EPS5D) << context; | |
| 33 | 3 | } | ||
| 34 | ||||
| 35 | 1 | CltFuelCorrCurve NitrousFuelAdderTest::generateTestCltFuelCorrCurve() { | ||
| 36 | CltFuelCorrCurve result; | |||
| 37 | 1 | result.fill(DEFAULT_FUEL_CORRECTION); | ||
| 38 | 1 | return result; | ||
| 39 | } | |||
| 40 | ||||
| 41 | const CltFuelCorrCurve NitrousFuelAdderTest::TEST_CLT_FUEL_CORR = NitrousFuelAdderTest::generateTestCltFuelCorrCurve(); | |||
| 42 | ||||
| 43 | 4 | TEST_F(NitrousFuelAdderTest, checkFuelCorrection) { | ||
| 44 |
1/1✓ Branch 5 taken 1 time.
|
1 | setUpTestConfiguration({ TEST_NITROUS_FUEL_ADDER_PERCENT }); | |
| 45 | 1 | getTestPersistentConfiguration().setCltFuelCorrCurve(TEST_CLT_FUEL_CORR); // constant fuel CLT correction | ||
| 46 | ||||
| 47 | 1 | checkTotalFuelCorrection(false, DEFAULT_FUEL_CORRECTION, "Default"); | ||
| 48 | ||||
| 49 | 1 | activateNitrousControl(); | ||
| 50 | 1 | checkTotalFuelCorrection( | ||
| 51 | true, | |||
| 52 | DEFAULT_FUEL_CORRECTION * (1.0f + TEST_NITROUS_FUEL_ADDER_PERCENT / 100.0f), | |||
| 53 | "All conditions are satisfied" | |||
| 54 | ); | |||
| 55 | ||||
| 56 | 1 | deactivateNitrousControl(); | ||
| 57 | 1 | checkTotalFuelCorrection(false, DEFAULT_FUEL_CORRECTION, "No conditions are satisfied"); | ||
| 58 | 1 | } | ||
| 59 | } | |||
| 60 |