summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/chessarbiter.cpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/tests/chessarbiter.cpp b/tests/chessarbiter.cpp
index 2e65ae5..96b5f3b 100644
--- a/tests/chessarbiter.cpp
+++ b/tests/chessarbiter.cpp
@@ -478,4 +478,24 @@ TEST_CASE("Specific bugs found on a game", "[BugFixes]") {
a.Setup("1k3r1r/npqbbp2/4p1p1/p2pPnNp/1P3B1P/P1PB4/5PPQ/RN2R1K1 w - - 1 19");
a.Play("e1c1");
CHECK(a.GetFEN() == "1k3r1r/npqbbp2/4p1p1/p2pPnNp/1P3B1P/P1PB4/5PPQ/RNR3K1 b - - 2 19");
+
+ // BUG 2 (Promotion)
+ a.Setup("8/k2P4/2p1ppp1/5qBp/5P1P/8/6PK/8 w - - 0 45");
+ a.Play("d7d8");
+ CHECK(a.GetFEN() == "3Q4/k7/2p1ppp1/5qBp/5P1P/8/6PK/8 b - - 0 45");
+
+ // BUG 3 (Promotion)
+ a.Setup("8/k2P4/2p1ppp1/5qBp/5P1P/8/6PK/8 w - - 0 45");
+ a.Play("d7d8",'n');
+ CHECK(a.GetFEN() == "3N4/k7/2p1ppp1/5qBp/5P1P/8/6PK/8 b - - 0 45");
+
+ // BUG 4 (Promotion)
+ char p=a.ParseSANPromotion("d8=Q");
+ CHECK(p == 'Q');
+ p=a.ParseSANPromotion("d8=N+");
+ CHECK(p == 'N');
+ p=a.ParseSANPromotion("d8=B+");
+ CHECK(p == 'B');
+ p=a.ParseSANPromotion("d8=R");
+ CHECK(p == 'R');
} \ No newline at end of file