#include <catch2/catch_test_macros.hpp>
#include <fmt/core.h>
#include <nlohmann/json.hpp>
#include <fstream>
#include "map.hpp"
#include "worldbuilder.hpp"

using namespace fmt;
using namespace nlohmann;
using std::string;

TEST_CASE("bsp algo test", "[builder]") {
  Map map(20, 20);
  WorldBuilder builder(map);
  builder.generate();
}

TEST_CASE("dumping and debugging", "[builder]") {
  Map map(20, 20);
  WorldBuilder builder(map);
  builder.generate();

  matrix_dump("GENERATED", map.paths());
  map.dump();
}

TEST_CASE("pathing", "[builder]") {
  Map map(20, 20);
  WorldBuilder builder(map);
  builder.generate();

  REQUIRE(map.can_move({0,0}) == false);
  REQUIRE(map.iswall(0,0) == true);
}
