From e9e0ef5a896a40e2367356ea2d548aeaa7d1d5bf Mon Sep 17 00:00:00 2001 From: Andrey Date: Wed, 9 Aug 2023 04:53:00 -0400 Subject: [PATCH] "rpmAcceleration" in TS doesn't go lower than 0 #5504 only: rpmAcceleration unit test --- unit_tests/tests/tests.mk | 1 + .../tests/trigger/test_rpm_acceleration.cpp | 26 +++++++++++++++++++ 2 files changed, 27 insertions(+) create mode 100644 unit_tests/tests/trigger/test_rpm_acceleration.cpp diff --git a/unit_tests/tests/tests.mk b/unit_tests/tests/tests.mk index 10baafb40f..27c8339535 100644 --- a/unit_tests/tests/tests.mk +++ b/unit_tests/tests/tests.mk @@ -24,6 +24,7 @@ TESTS_SRC_CPP = \ tests/trigger/test_real_k20.cpp \ tests/trigger/test_map_cam.cpp \ tests/trigger/test_rpm_multiplier.cpp \ + tests/trigger/test_rpm_acceleration.cpp \ tests/trigger/test_quad_cam.cpp \ tests/trigger/test_nissan_vq_vvt.cpp \ tests/trigger/test_override_gaps.cpp \ diff --git a/unit_tests/tests/trigger/test_rpm_acceleration.cpp b/unit_tests/tests/trigger/test_rpm_acceleration.cpp new file mode 100644 index 0000000000..97919cde2c --- /dev/null +++ b/unit_tests/tests/trigger/test_rpm_acceleration.cpp @@ -0,0 +1,26 @@ +#include "pch.h" + +TEST(engine, testRpmAcceleration) { + EngineTestHelper eth(engine_type_e::TEST_ENGINE); + eth.setTriggerType(trigger_type_e::TT_HALF_MOON); + + // first revolution + eth.smartFireTriggerEvents2(/*count*/1, /*delay*/ 40); + ASSERT_EQ(0, engine->triggerCentral.triggerState.totalTriggerErrorCounter); + ASSERT_EQ(1500, Sensor::getOrZero(SensorType::Rpm)); + // no acceleration info YET, huh? + ASSERT_EQ(0, engine->rpmCalculator.getRpmAcceleration()); + + // second revolution same speed + eth.smartFireTriggerEvents2(/*count*/1, /*delay*/ 40); + ASSERT_EQ(0, engine->triggerCentral.triggerState.totalTriggerErrorCounter); + ASSERT_EQ(1500, Sensor::getOrZero(SensorType::Rpm)); + // we got RPM we got acceleration + ASSERT_EQ(9375, engine->rpmCalculator.getRpmAcceleration()); + + // third revolution slow down + eth.smartFireTriggerEvents2(/*count*/1, /*delay*/ 80); + ASSERT_EQ(1000, Sensor::getOrZero(SensorType::Rpm)); + ASSERT_NEAR(-2083.3335, engine->rpmCalculator.getRpmAcceleration(), EPS3D); + ASSERT_EQ(0, engine->triggerCentral.triggerState.totalTriggerErrorCounter); +}