diff --git a/runtime/test/test_RelayEngine/test_main.cpp b/runtime/test/test_RelayEngine/test_main.cpp index 303e29e..c32bfec 100644 --- a/runtime/test/test_RelayEngine/test_main.cpp +++ b/runtime/test/test_RelayEngine/test_main.cpp @@ -4,7 +4,7 @@ #include "utils_relay.h" // Assuming you have a RelayOutput array defined somewhere -const RelayOutput relayArray[2]{ { 5, 1000, 200, 5, 5 }, { 6, 1000, 200, 5, 5 } }; +const RelayOutput relayArray[2]{ { 5, 1000, 200, 5, 5 }, { 6, 2000, 100, 5, 5 } }; RelayEngine< 2 >* relayEngineTest; diff --git a/runtime/test/test_RelayOutput/test_,main.cpp b/runtime/test/test_RelayOutput/test_,main.cpp index 96c21ef..8e3eb83 100644 --- a/runtime/test/test_RelayOutput/test_,main.cpp +++ b/runtime/test/test_RelayOutput/test_,main.cpp @@ -3,8 +3,6 @@ #include "utils_relay.h" -static_assert(__cplusplus >= 201703L, "See also : https://github.com/FredM67/PVRouter-3-phase/blob/main/runtime/Mk2_3phase_RFdatalog_temp/Readme.md"); - RelayOutput* RelayOutputTest; void setUp(void) { @@ -43,17 +41,29 @@ void test_proceed_relay(void) { TEST_ASSERT_EQUAL(false, RelayOutputTest->proceed_relay(150)); TEST_ASSERT_EQUAL(false, RelayOutputTest->isRelayON()); - for(uint16_t _time = 0; _time < RelayOutputTest->get_minOFF(); ++_time) { + // We simulate the time passing (min OFF minus 1 second) + for(uint16_t _time = 1; _time < RelayOutputTest->get_minOFF(); ++_time) { RelayOutputTest->inc_duration(); } + TEST_ASSERT_EQUAL(false, RelayOutputTest->proceed_relay(-1500)); + TEST_ASSERT_EQUAL(false, RelayOutputTest->isRelayON()); + + RelayOutputTest->inc_duration(); + TEST_ASSERT_EQUAL(true, RelayOutputTest->proceed_relay(-1500)); TEST_ASSERT_EQUAL(true, RelayOutputTest->isRelayON()); - for(uint16_t _time = 0; _time < RelayOutputTest->get_minON(); ++_time) { + // We simulate the time passing (min ON minus 1 second) + for(uint16_t _time = 1; _time < RelayOutputTest->get_minON(); ++_time) { RelayOutputTest->inc_duration(); } + TEST_ASSERT_EQUAL(false, RelayOutputTest->proceed_relay(250)); + TEST_ASSERT_EQUAL(true, RelayOutputTest->isRelayON()); + + RelayOutputTest->inc_duration(); + TEST_ASSERT_EQUAL(true, RelayOutputTest->proceed_relay(250)); TEST_ASSERT_EQUAL(false, RelayOutputTest->isRelayON()); }