From de50cd15f12216760bb746ec8936fc1501113425 Mon Sep 17 00:00:00 2001 From: Dan Goodliffe Date: Sun, 22 Aug 2021 13:09:25 +0100 Subject: Add EventCounter class --- test/test-counters.cpp | 84 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 test/test-counters.cpp (limited to 'test/test-counters.cpp') diff --git a/test/test-counters.cpp b/test/test-counters.cpp new file mode 100644 index 0000000..1bc30dc --- /dev/null +++ b/test/test-counters.cpp @@ -0,0 +1,84 @@ +#define BOOST_TEST_MODULE Counters +#include + +#include "helpers.h" + +BOOST_FIXTURE_TEST_SUITE(ec, EventCounterTarget); + +BOOST_AUTO_TEST_CASE(zero) +{ + std::array z {}; + BOOST_CHECK_EQUAL_COLLECTIONS(counters.begin(), counters.end(), z.begin(), z.end()); +} + +BOOST_AUTO_TEST_CASE(tick_getAll) +{ + BOOST_CHECK_EQUAL(&counters, &getAll()); +} + +BOOST_AUTO_TEST_CASE(tick_one) +{ + tick(ROTATE_EVENT); + BOOST_CHECK_EQUAL(get(ROTATE_EVENT), 1); +} + +BOOST_AUTO_TEST_CASE(tick_three) +{ + add(ROTATE_EVENT, 3); + BOOST_CHECK_EQUAL(get(ROTATE_EVENT), 3); +} + +BOOST_AUTO_TEST_CASE(tick_different) +{ + add(ROTATE_EVENT, 2).add(UPDATE_ROWS_EVENT_V1, 1); + BOOST_CHECK_EQUAL(get(ROTATE_EVENT), 2); + BOOST_CHECK_EQUAL(get(UPDATE_ROWS_EVENT_V1), 1); +} + +BOOST_AUTO_TEST_CASE(compare_zero) +{ + EventCounter other; + BOOST_CHECK(other >= *this); +} + +BOOST_AUTO_TEST_CASE(compare_one) +{ + EventCounter other; + tick(ROTATE_EVENT); + + BOOST_CHECK(!(other >= *this)); + + other.tick(ROTATE_EVENT); + BOOST_CHECK(other >= *this); + + other.tick(ROTATE_EVENT); + BOOST_CHECK(other >= *this); +} + +BOOST_AUTO_TEST_CASE(compare_many) +{ + EventCounter other; + add(ROTATE_EVENT, 2).add(UPDATE_ROWS_EVENT_V1, 1); + + BOOST_CHECK(!(other >= *this)); + + other.tick(UPDATE_ROWS_EVENT_V1); + BOOST_CHECK(!(other >= *this)); + + other.tick(UPDATE_ROWS_EVENT_V1); + BOOST_CHECK(!(other >= *this)); + + other.tick(ROTATE_EVENT); + BOOST_CHECK(!(other >= *this)); + + other.tick(ROTATE_EVENT); + BOOST_CHECK(other >= *this); + + other.tick(ROTATE_EVENT); + BOOST_CHECK(other >= *this); + + other.tick(UPDATE_ROWS_EVENT_V1); + BOOST_CHECK(other >= *this); +} + +BOOST_AUTO_TEST_SUITE_END(); -- cgit v1.2.3