65 lines
2.7 KiB
C++
65 lines
2.7 KiB
C++
|
#include "fsfw/globalfunctions/PeriodicOperationDivider.h"
|
||
|
#include <catch2/catch_test_macros.hpp>
|
||
|
|
||
|
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);
|
||
|
|
||
|
opDivider.setDivider(0);
|
||
|
REQUIRE(opDivider.getCounter() == 1);
|
||
|
REQUIRE(opDivider.checkAndIncrement() == true);
|
||
|
REQUIRE(opDivider.getCounter() == 1);
|
||
|
REQUIRE(opDivider.checkAndIncrement() == true);
|
||
|
REQUIRE(opDivider.checkAndIncrement() == true);
|
||
|
|
||
|
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);
|
||
|
|
||
|
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);
|
||
|
|
||
|
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);
|
||
|
}
|