Untitled
unknown
c_cpp
2 years ago
5.8 kB
10
Indexable
///////////////////////////////////////////////////////////////////////////////////////////// // Test Cases // ///////////////////////////////////////////////////////////////////////////////////////////// TEST_CASE("Board initialization", "[board_init]") { // SECTION("Can use sections") {} // clang-format off DiskType solution[kBoardHeight][kBoardWidth] = { {DiskType::kEmpty, DiskType::kEmpty, DiskType::kEmpty, DiskType::kEmpty, DiskType::kEmpty, DiskType::kEmpty, DiskType::kEmpty}, {DiskType::kEmpty, DiskType::kEmpty, DiskType::kEmpty, DiskType::kEmpty, DiskType::kEmpty, DiskType::kEmpty, DiskType::kEmpty}, {DiskType::kEmpty, DiskType::kEmpty, DiskType::kEmpty, DiskType::kEmpty, DiskType::kEmpty, DiskType::kEmpty, DiskType::kEmpty}, {DiskType::kEmpty, DiskType::kEmpty, DiskType::kEmpty, DiskType::kEmpty, DiskType::kEmpty, DiskType::kEmpty, DiskType::kEmpty}, {DiskType::kEmpty, DiskType::kEmpty, DiskType::kEmpty, DiskType::kEmpty, DiskType::kEmpty, DiskType::kEmpty, DiskType::kEmpty}, {DiskType::kEmpty, DiskType::kEmpty, DiskType::kEmpty, DiskType::kEmpty, DiskType::kEmpty, DiskType::kEmpty, DiskType::kEmpty} }; // clang-format on Board student; // NOLINT InitBoard(student); REQUIRE(AreEqual(solution, student.board)); } TEST_CASE("Drop Disk", "[drop_disk]") { // SECTION("Can use sections") {} // clang-format off // clang-format on Board student; // NOLINT InitBoard(student); REQUIRE_THROWS_AS(DropDiskToBoard(student, DiskType::kEmpty, -1), std::runtime_error); DropDiskToBoard(student, DiskType::kPlayer1, 0); DropDiskToBoard(student, DiskType::kPlayer1, 0); DropDiskToBoard(student, DiskType::kPlayer1, 0); DropDiskToBoard(student, DiskType::kPlayer1, 0); DropDiskToBoard(student, DiskType::kPlayer1, 0); DropDiskToBoard(student, DiskType::kPlayer1, 0); REQUIRE_THROWS_AS(DropDiskToBoard(student, DiskType::kPlayer1, 0), std::runtime_error); } TEST_CASE("Search For Winner", "[search_for_winner]") { Board student; InitBoard(student); REQUIRE_FALSE(SearchForWinner( student, DiskType::kPlayer1, WinningDirection::kHorizontal)); REQUIRE_FALSE(SearchForWinner( student, DiskType::kPlayer1, WinningDirection::kVertical)); REQUIRE_FALSE(SearchForWinner( student, DiskType::kPlayer1, WinningDirection::kLeftDiag)); REQUIRE_FALSE(SearchForWinner( student, DiskType::kPlayer1, WinningDirection::kRightDiag)); REQUIRE_FALSE(SearchForWinner( student, DiskType::kPlayer2, WinningDirection::kHorizontal)); REQUIRE_FALSE(SearchForWinner( student, DiskType::kPlayer2, WinningDirection::kVertical)); REQUIRE_FALSE(SearchForWinner( student, DiskType::kPlayer2, WinningDirection::kLeftDiag)); REQUIRE_FALSE(SearchForWinner( student, DiskType::kPlayer2, WinningDirection::kRightDiag)); DropDiskToBoard(student, DiskType::kPlayer1, 0); DropDiskToBoard(student, DiskType::kPlayer2, 0); DropDiskToBoard(student, DiskType::kPlayer1, 0); DropDiskToBoard(student, DiskType::kPlayer2, 0); DropDiskToBoard(student, DiskType::kPlayer2, 1); DropDiskToBoard(student, DiskType::kPlayer1, 1); DropDiskToBoard(student, DiskType::kPlayer2, 1); DropDiskToBoard(student, DiskType::kPlayer1, 1); DropDiskToBoard(student, DiskType::kPlayer1, 2); DropDiskToBoard(student, DiskType::kPlayer2, 2); DropDiskToBoard(student, DiskType::kPlayer1, 2); DropDiskToBoard(student, DiskType::kPlayer2, 2); DropDiskToBoard(student, DiskType::kPlayer2, 3); DropDiskToBoard(student, DiskType::kPlayer1, 3); DropDiskToBoard(student, DiskType::kPlayer2, 3); DropDiskToBoard(student, DiskType::kPlayer1, 3); REQUIRE_FALSE(SearchForWinner( student, DiskType::kPlayer1, WinningDirection::kHorizontal)); REQUIRE_FALSE(SearchForWinner( student, DiskType::kPlayer1, WinningDirection::kVertical)); REQUIRE_FALSE(SearchForWinner( student, DiskType::kPlayer1, WinningDirection::kLeftDiag)); REQUIRE(SearchForWinner( student, DiskType::kPlayer1, WinningDirection::kRightDiag)); REQUIRE(CheckForWinner(student, DiskType::kPlayer1)); REQUIRE_FALSE(SearchForWinner( student, DiskType::kPlayer2, WinningDirection::kHorizontal)); REQUIRE_FALSE(SearchForWinner( student, DiskType::kPlayer2, WinningDirection::kVertical)); REQUIRE(SearchForWinner( student, DiskType::kPlayer2, WinningDirection::kLeftDiag)); REQUIRE_FALSE(SearchForWinner( student, DiskType::kPlayer2, WinningDirection::kRightDiag)); REQUIRE(CheckForWinner(student, DiskType::kPlayer2)); // Board student2; // InitBoard(student2); // DropDiskToBoard(student, DiskType::kPlayer2, 3); // REQUIRE(SearchForWinner()) } TEST_CASE("Board Location In Bounds", "[board_location_in_bounds]") { REQUIRE_FALSE(BoardLocationInBounds(-1, 9)); REQUIRE(BoardLocationInBounds(2, 2)); } TEST_CASE("Check For Winner", "[check_for_winner]") { Board student; InitBoard(student); REQUIRE_FALSE(CheckForWinner(student, DiskType::kPlayer1)); REQUIRE_FALSE(CheckForWinner(student, DiskType::kPlayer2)); DropDiskToBoard(student, DiskType::kPlayer1, 0); DropDiskToBoard(student, DiskType::kPlayer1, 0); DropDiskToBoard(student, DiskType::kPlayer1, 0); DropDiskToBoard(student, DiskType::kPlayer1, 0); DropDiskToBoard(student, DiskType::kPlayer2, 1); DropDiskToBoard(student, DiskType::kPlayer2, 1); DropDiskToBoard(student, DiskType::kPlayer2, 1); DropDiskToBoard(student, DiskType::kPlayer2, 1); REQUIRE(CheckForWinner(student, DiskType::kPlayer1)); REQUIRE(CheckForWinner(student, DiskType::kPlayer2)); } /////////////////////////////////////////////////////////////////////////////////////////////
Editor is loading...