#include #include // IWYU pragma: keep #include #include import ttwhy.scanners; using namespace std::string_view_literals; [[nodiscard]] constexpr auto static is_character(ttwhy::scanners::input_event & event, char expected) -> bool { auto const * data = std::get_if(&event); return data != nullptr && data->value == expected; } SCENARIO("The ANSI scanner processes printable ASCII and standard C0 control characters", "[scanner][ansi]") { GIVEN("An initialized scanner and event sink") { auto queue = std::vector{}; auto sink = [&queue](auto const & event) { queue.push_back(event); }; auto scanner = ttwhy::scanners::ansi{sink}; WHEN("Processing a standard printable character") { scanner.process("A"); THEN("It yields a single character event") { REQUIRE(queue.size() == 1); CHECK(is_character(queue.at(0), 'A')); } } } }