Use an ostringstream for the output and make the test actually confirm the results.

This commit is contained in:
Zed A. Shaw 2024-08-12 13:33:36 -04:00
parent 38104f60f3
commit 4227ee1cdc
3 changed files with 13 additions and 4 deletions

View file

@ -1,5 +1,8 @@
#include <catch2/catch_test_macros.hpp>
#include "../game_engine.hpp"
#include <fmt/core.h>
using namespace fmt;
TEST_CASE("basic brainfuck test", "[brainfuck]") {
Brainfucker bf;
@ -26,11 +29,16 @@ TEST_CASE("basic brainfuck test", "[brainfuck]") {
TEST_CASE("brainfuck loop test", "[brainfuck]") {
Brainfucker bf;
const string expected{"Hello World!\n"};
// this is a hello world program from wikipedia
// but at the end I rewind dp so I can analyze it
string code{"++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++."};
bf.set_code(code);
bf.run(code.size());
string output = bf.out.str();
REQUIRE(output == expected);
}
TEST_CASE("game engine can start and take hit", "[brainfuck]") {