2021-11-10 18:48:02 +01:00
|
|
|
#include <catch2/catch_test_macros.hpp>
|
|
|
|
|
2022-02-02 10:29:30 +01:00
|
|
|
#include "fsfw/globalfunctions/PeriodicOperationDivider.h"
|
|
|
|
|
|
|
|
TEST_CASE("OpDivider", "[OpDivider]") {
|
|
|
|
auto opDivider = PeriodicOperationDivider(1);
|
|
|
|
REQUIRE(opDivider.getDivider() == 1);
|
|
|
|
REQUIRE(opDivider.getCounter() == 1);
|
|
|
|
REQUIRE(opDivider.check() == true);
|
|
|
|
REQUIRE(opDivider.checkAndIncrement() == true);
|
|
|
|
REQUIRE(opDivider.getCounter() == 1);
|
|
|
|
REQUIRE(opDivider.check() == true);
|
|
|
|
REQUIRE(opDivider.checkAndIncrement() == true);
|
|
|
|
REQUIRE(opDivider.checkAndIncrement() == true);
|
2021-11-10 18:48:02 +01:00
|
|
|
|
2022-02-02 10:29:30 +01:00
|
|
|
opDivider.setDivider(0);
|
|
|
|
REQUIRE(opDivider.getCounter() == 1);
|
|
|
|
REQUIRE(opDivider.checkAndIncrement() == true);
|
|
|
|
REQUIRE(opDivider.getCounter() == 1);
|
|
|
|
REQUIRE(opDivider.checkAndIncrement() == true);
|
|
|
|
REQUIRE(opDivider.checkAndIncrement() == true);
|
2021-11-10 18:48:02 +01:00
|
|
|
|
2022-02-02 10:29:30 +01:00
|
|
|
opDivider.setDivider(2);
|
|
|
|
opDivider.resetCounter();
|
|
|
|
REQUIRE(opDivider.getDivider() == 2);
|
|
|
|
REQUIRE(opDivider.getCounter() == 1);
|
|
|
|
REQUIRE(opDivider.check() == false);
|
|
|
|
REQUIRE(opDivider.checkAndIncrement() == false);
|
|
|
|
REQUIRE(opDivider.getCounter() == 2);
|
|
|
|
REQUIRE(opDivider.check() == true);
|
|
|
|
REQUIRE(opDivider.checkAndIncrement() == true);
|
|
|
|
REQUIRE(opDivider.getCounter() == 1);
|
|
|
|
REQUIRE(opDivider.check() == false);
|
|
|
|
REQUIRE(opDivider.checkAndIncrement() == false);
|
|
|
|
REQUIRE(opDivider.getCounter() == 2);
|
|
|
|
REQUIRE(opDivider.checkAndIncrement() == true);
|
|
|
|
REQUIRE(opDivider.checkAndIncrement() == false);
|
|
|
|
REQUIRE(opDivider.checkAndIncrement() == true);
|
|
|
|
REQUIRE(opDivider.checkAndIncrement() == false);
|
2021-11-10 18:48:02 +01:00
|
|
|
|
2022-02-02 10:29:30 +01:00
|
|
|
opDivider.setDivider(3);
|
|
|
|
opDivider.resetCounter();
|
|
|
|
REQUIRE(opDivider.checkAndIncrement() == false);
|
|
|
|
REQUIRE(opDivider.checkAndIncrement() == false);
|
|
|
|
REQUIRE(opDivider.getCounter() == 3);
|
|
|
|
REQUIRE(opDivider.checkAndIncrement() == true);
|
|
|
|
REQUIRE(opDivider.getCounter() == 1);
|
|
|
|
REQUIRE(opDivider.checkAndIncrement() == false);
|
2021-11-10 18:48:02 +01:00
|
|
|
|
2022-02-02 10:29:30 +01:00
|
|
|
auto opDividerNonResetting = PeriodicOperationDivider(2, false);
|
|
|
|
REQUIRE(opDividerNonResetting.getCounter() == 1);
|
|
|
|
REQUIRE(opDividerNonResetting.check() == false);
|
|
|
|
REQUIRE(opDividerNonResetting.checkAndIncrement() == false);
|
|
|
|
REQUIRE(opDividerNonResetting.getCounter() == 2);
|
|
|
|
REQUIRE(opDividerNonResetting.check() == true);
|
|
|
|
REQUIRE(opDividerNonResetting.checkAndIncrement() == true);
|
|
|
|
REQUIRE(opDividerNonResetting.getCounter() == 3);
|
|
|
|
REQUIRE(opDividerNonResetting.checkAndIncrement() == true);
|
|
|
|
REQUIRE(opDividerNonResetting.getCounter() == 4);
|
|
|
|
opDividerNonResetting.resetCounter();
|
|
|
|
REQUIRE(opDividerNonResetting.getCounter() == 1);
|
|
|
|
REQUIRE(opDividerNonResetting.check() == false);
|
|
|
|
REQUIRE(opDividerNonResetting.checkAndIncrement() == false);
|
|
|
|
REQUIRE(opDividerNonResetting.getCounter() == 2);
|
2021-11-10 18:48:02 +01:00
|
|
|
}
|