#include "turns/domain/participant.hpp" #include "turns/domain/turn_order.hpp" #include #include namespace turns::domain::tests { /** * Bug description: * * After having stepped according to the step pattern below, tt was possible to step backward often enough to underflow the round number: * - forward * - backward * - forward */ SCENARIO("Can step back infinitely", "[turn_order][bug]") { GIVEN("a non-empty turn_order") { auto instance = turn_order::create(); instance->add("A", 0, disposition::neutral); WHEN("it is started and then stepped forward, backward, forward") { instance->start(); instance->next(); instance->previous(); instance->next(); THEN("it is not possible to step backwards more than once") { instance->previous(); instance->previous(); REQUIRE(instance->round_number() == 0); } } } } } // namespace turns::domain::tests