#include <string> #include <cstdint> #include <functional> #include "catch.hpp" #include "bf.h" TEST_CASE("Edge cases", "[bf][edge-case]") { BF bf; bytestream is, os; SECTION("pointer underflow") { std::string src("<"); REQUIRE(bf.interpret(src, is, os)); REQUIRE(bf.ptr() == BF::MEM_SIZE - 1); } SECTION("pointer overflow") { std::string src(BF::MEM_SIZE, '>'); REQUIRE(bf.interpret(src, is, os)); REQUIRE(bf.ptr() == 0); } SECTION("memory byte underflow") { std::string src("-."); REQUIRE(bf.interpret(src, is, os)); uint8_t v;