82 const auto& my_relay{
relays.get_relay(1) };
84 TEST_ASSERT_FALSE(my_relay.isRelayON());
87 const auto surplus{ -my_relay.get_surplusThreshold() - 1 };
88 uint16_t overrideBitmask = 0;
90 TEST_ASSERT_FALSE(my_relay.proceed_relay(surplus, overrideBitmask));
92 TEST_ASSERT_FALSE(my_relay.isRelayON());
94 for (uint8_t timer = 0; timer < my_relay.get_minOFF() - 1; ++timer)
96 my_relay.inc_duration();
99 TEST_ASSERT_FALSE(my_relay.proceed_relay(surplus, overrideBitmask));
102 my_relay.inc_duration();
105 TEST_ASSERT_TRUE(my_relay.proceed_relay(surplus, overrideBitmask));
106 TEST_ASSERT_TRUE(my_relay.isRelayON());
111 const auto& my_relay{
relays.get_relay(1) };
113 TEST_ASSERT_TRUE(my_relay.isRelayON());
116 const auto consum{ my_relay.get_importThreshold() + 1 };
117 uint16_t overrideBitmask = 0;
119 TEST_ASSERT_FALSE(my_relay.proceed_relay(consum, overrideBitmask));
121 TEST_ASSERT_TRUE(my_relay.isRelayON());
123 for (uint8_t timer = 0; timer < my_relay.get_minON() - 1; ++timer)
125 my_relay.inc_duration();
128 TEST_ASSERT_FALSE(my_relay.proceed_relay(consum, overrideBitmask));
131 my_relay.inc_duration();
134 TEST_ASSERT_TRUE(my_relay.proceed_relay(consum, overrideBitmask));
135 TEST_ASSERT_FALSE(my_relay.isRelayON());
140 const auto& my_relay{
relays.get_relay(1) };
143 TEST_ASSERT_FALSE(my_relay.isRelayON());
146 const auto insufficient_surplus{ -my_relay.get_surplusThreshold() + 100 };
149 for (uint8_t timer = 0; timer < my_relay.get_minOFF() / 2; ++timer)
151 my_relay.inc_duration();
154 uint16_t overrideBitmask = (1U << my_relay.get_pin());
155 TEST_ASSERT_FALSE(my_relay.proceed_relay(insufficient_surplus, overrideBitmask));
156 TEST_ASSERT_FALSE(my_relay.isRelayON());
157 TEST_ASSERT_EQUAL(0, overrideBitmask & (1U << my_relay.get_pin()));
160 for (uint8_t timer = my_relay.get_minOFF() / 2; timer < my_relay.get_minOFF() - 1; ++timer)
162 my_relay.inc_duration();
165 overrideBitmask = (1U << my_relay.get_pin());
166 TEST_ASSERT_FALSE(my_relay.proceed_relay(insufficient_surplus, overrideBitmask));
167 TEST_ASSERT_FALSE(my_relay.isRelayON());
168 TEST_ASSERT_EQUAL(0, overrideBitmask & (1U << my_relay.get_pin()));
171 my_relay.inc_duration();
173 overrideBitmask = (1U << my_relay.get_pin());
174 TEST_ASSERT_TRUE(my_relay.proceed_relay(insufficient_surplus, overrideBitmask));
175 TEST_ASSERT_TRUE(my_relay.isRelayON());
176 TEST_ASSERT_EQUAL(0, overrideBitmask & (1U << my_relay.get_pin()));
181 const auto& my_relay{
relays.get_relay(1) };
184 TEST_ASSERT_TRUE(my_relay.isRelayON());
187 const auto high_import{ my_relay.get_importThreshold() + 100 };
188 uint16_t overrideBitmask = 0;
191 for (uint8_t timer = 0; timer < my_relay.get_minON() / 2; ++timer)
193 my_relay.inc_duration();
196 TEST_ASSERT_FALSE(my_relay.proceed_relay(high_import, overrideBitmask));
197 TEST_ASSERT_TRUE(my_relay.isRelayON());
200 for (uint8_t timer = my_relay.get_minON() / 2; timer < my_relay.get_minON() - 1; ++timer)
202 my_relay.inc_duration();
205 TEST_ASSERT_FALSE(my_relay.proceed_relay(high_import, overrideBitmask));
206 TEST_ASSERT_TRUE(my_relay.isRelayON());
209 my_relay.inc_duration();
211 TEST_ASSERT_TRUE(my_relay.proceed_relay(high_import, overrideBitmask));
212 TEST_ASSERT_FALSE(my_relay.isRelayON());
void test_get_minOFF(void)
void test_relay_override_turnON(void)
void test_proceed_relay(void)
void test_isRelayON(void)
void test_relay_turnOFF(void)
void test_get_minON(void)
void test_get_surplusThreshold(void)
void test_relay_override_minimum_ON_time(void)
void test_relay_initialization_with_positive_thresholds(void)
void test_get_importThreshold(void)
void test_relay_initialization(void)
void test_relay_turnON(void)
void test_relay_initialization_with_negative_thresholds(void)