aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/combined.cpp30
-rw-r--r--tests/valid.cpp8
2 files changed, 36 insertions, 2 deletions
diff --git a/tests/combined.cpp b/tests/combined.cpp
index 219d432..a4b2089 100644
--- a/tests/combined.cpp
+++ b/tests/combined.cpp
@@ -89,4 +89,32 @@ TEST_CASE("Kramnik PGN", "[combined/kramnik]") {
pgn.GetMoves(m);
CHECK(m->comment == "E32: Nimzo-Indian: Classical (4 Qc2): 4...0-0");
}
-} \ No newline at end of file
+}
+
+TEST_CASE("Goto Next Game Tests", "[combined/hartwig/GotoNextGame]") {
+ // PGN source: https://www.angelfire.com/games3/smartbridge/
+
+ pgnp::PGN pgn;
+ pgn.FromFile("pgn_files/combined/hartwig.pgn");
+ // First goto game 3
+ pgn.GotoNextGame();
+ pgn.GotoNextGame();
+ // Parse game 3
+ pgn.ParseNextGame();
+ CHECK(pgn.GetTagValue("Event") == "Clichy");
+ // Goto game 5
+ pgn.GotoNextGame();
+ // Parse game 5
+ pgn.ParseNextGame();
+ CHECK(pgn.GetTagValue("Event") == "World Open U2200");
+ CHECK(pgn.GetTagValue("Site") == "Philadelphia");
+ CHECK(pgn.GetTagValue("Black") == "Thomas, Rodney");
+ // Goto game 8
+ pgn.GotoNextGame(); // Goto game 7
+ pgn.GotoNextGame(); // Goto game 8
+ // Parse game 8
+ pgn.ParseNextGame();
+ CHECK(pgn.GetTagValue("Event") == "Hastings");
+ CHECK(pgn.GetTagValue("White") == "Plaskett, James");
+ CHECK(pgn.GetTagValue("Black") == "Shipov, Sergei");
+}
diff --git a/tests/valid.cpp b/tests/valid.cpp
index 24e546d..3183114 100644
--- a/tests/valid.cpp
+++ b/tests/valid.cpp
@@ -7,7 +7,7 @@ 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());
+ REQUIRE_THROWS_AS(pgn.STRCheck(),pgnp::STRCheckFailed);
HalfMove *m = new HalfMove();
pgn.GetMoves(m);
@@ -178,3 +178,9 @@ TEST_CASE("Valid PGN", "[valid/pgn3]") {
REQUIRE(m->GetHalfMoveAt(52)->variations[0]->MainLine->variations[0]->MainLine->NAG == "$18");
}
}
+
+TEST_CASE("Goto Next Game Tests", "[valid/pgn3/GotoNextGame]") {
+ PGN pgn;
+ REQUIRE_NOTHROW(pgn.FromFile("pgn_files/valid/pgn3.pgn"));
+ REQUIRE_THROWS_AS(pgn.GotoNextGame(),pgnp::NoGameFound);
+}