diff options
| author | Loic Guegan <manzerbredes@mailbox.org> | 2022-01-25 16:51:37 +0100 |
|---|---|---|
| committer | Loic Guegan <manzerbredes@mailbox.org> | 2022-01-25 16:51:37 +0100 |
| commit | e063e1453c611ac0d862ece2d2797582573c801f (patch) | |
| tree | 5a9cb912724b67d4075cb67acf0b57a3feee6c46 /tests | |
| parent | 773d93b02e078c83b74d2080aafe56828be6a7c8 (diff) | |
Improve parser
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/tests.cpp | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/tests/tests.cpp b/tests/tests.cpp index f376f33..ea79be8 100644 --- a/tests/tests.cpp +++ b/tests/tests.cpp @@ -6,6 +6,7 @@ using namespace pgnp; TEST_CASE("Valid PGN", "[valid/pgn1]") { PGN pgn; REQUIRE_NOTHROW(pgn.FromFile("pgn_files/valid/pgn1.pgn")); + REQUIRE_NOTHROW(pgn.ParseNextGame()); REQUIRE_THROWS(pgn.STRCheck()); HalfMove *m = new HalfMove(); @@ -33,7 +34,7 @@ TEST_CASE("Valid PGN", "[valid/pgn1]") { } SECTION("Main line color checks") { - m=m_backup; + m = m_backup; CHECK_FALSE(m->isBlack); m = m->MainLine; @@ -60,26 +61,42 @@ TEST_CASE("Valid PGN", "[valid/pgn1]") { CHECK(m_backup->GetHalfMoveAt(4)->move == "c4"); CHECK(pgn.GetResult() == "*"); + REQUIRE_THROWS_AS(pgn.ParseNextGame(),NoGameFound); } TEST_CASE("Valid PGN", "[valid/pgn2]") { PGN pgn; REQUIRE_NOTHROW(pgn.FromFile("pgn_files/valid/pgn2.pgn")); + REQUIRE_NOTHROW(pgn.ParseNextGame()); + REQUIRE_THROWS(pgn.STRCheck()); HalfMove *m = new HalfMove(); pgn.GetMoves(m); REQUIRE(m->GetLength() == 66); CHECK(pgn.GetResult() == "0-1"); CHECK(m->comment == " A00 Hungarian Opening "); - CHECK(m->GetHalfMoveAt(7)->comment == " (0.22 → 0.74) Inaccuracy. dxc4 was best. "); + CHECK(m->GetHalfMoveAt(65)->comment == " White resigns. "); + CHECK(m->GetHalfMoveAt(7)->comment == + " (0.22 → 0.74) Inaccuracy. dxc4 was best. "); + + SECTION("Check Variations") { + HalfMove *var = m->GetHalfMoveAt(7)->variations[0]; + REQUIRE(var->GetLength() == 10); + CHECK(var->move == "dxc4"); + CHECK(var->GetHalfMoveAt(1)->move == "O-O"); + } + REQUIRE_THROWS_AS(pgn.ParseNextGame(),NoGameFound); } TEST_CASE("Seven Tag Roster", "[std/pgn1]") { PGN pgn; REQUIRE_NOTHROW(pgn.FromFile("pgn_files/str/pgn1.pgn")); + REQUIRE_NOTHROW(pgn.ParseNextGame()); + REQUIRE_NOTHROW(pgn.STRCheck()); HalfMove *m = new HalfMove(); pgn.GetMoves(m); REQUIRE(m->GetLength() == 85); CHECK(pgn.GetResult() == "1/2-1/2"); + REQUIRE_THROWS_AS(pgn.ParseNextGame(),NoGameFound); } |
