#include "doctest/doctest/doctest.h" #include "../src/LLVMVisitor/Register.h" TEST_SUITE_BEGIN("Register"); TEST_SUITE("Operators") { TEST_CASE("++prefix_IncrementsCounter_WhenGivenNewRegister") { Register r(""); ++r; CHECK_EQ(*r, "2"); } TEST_CASE("postfix++_IncrementsCounter_WhenGivenNewRegister") { Register r(""); r++; CHECK_EQ(*r, "2"); } TEST_CASE("*_ReturnsStringRepresentationOfNumber_WhenNoPrefixIsGiven") { Register r(""); CHECK_EQ(*r, "1"); } TEST_CASE("*_ReturnsStringRepresentationOfNumberAfterPrefix_WhenPrefixIsGiven") { Register r("abcd"); CHECK_EQ(*r, "abcd1"); } } TEST_SUITE("Functions") { TEST_CASE("reset_PutsCounterTo0_WhenGivenNewRegister") { Register r(""); r.reset(); CHECK_EQ(*r, "0"); } TEST_CASE("reset_PutsCounterTo0_WhenGivenPrefixIncrementedRegister") { Register r(""); ++r; r.reset(); CHECK_EQ(*r, "0"); } TEST_CASE("headless_ReturnsOnlyNumber_WhenGivenRegisterWithPrefix") { Register r("abcd"); CHECK_EQ(r.headless(), "1"); } } TEST_SUITE_END();