diff options
| author | Loic Guegan <manzerbredes@mailbox.org> | 2022-02-19 18:23:06 +0100 |
|---|---|---|
| committer | Loic Guegan <manzerbredes@mailbox.org> | 2022-02-19 18:23:06 +0100 |
| commit | 5e78a4172da975ac227779456e670492217de206 (patch) | |
| tree | 8f71add7ce8323b83b2810e6484a89c462835a00 /tests | |
| parent | f60b684790ae7a726763e4c6f9122371c71d17e9 (diff) | |
Now SAN moves can be parsed
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/chessarbiter.cpp | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/tests/chessarbiter.cpp b/tests/chessarbiter.cpp index 9c1407d..8687d4e 100644 --- a/tests/chessarbiter.cpp +++ b/tests/chessarbiter.cpp @@ -413,3 +413,36 @@ TEST_CASE("SimpleEnPassant", "[SimpleEnPassant]") { CHECK(a.GetFEN() == "rnbqkbnr/ppppp1pp/8/8/8/4p3/PPPP1PPP/RNBQKBNR w KQkq - 0 2"); } + +TEST_CASE("ParseSAN", "[ParseSAN]") { + ChessArbiter a; + + // Initial position test + a.Setup("rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1"); + CHECK(a.ParseSAN("d4") == "d2d4"); + CHECK(a.ParseSAN("e3") == "e2e3"); + CHECK(a.ParseSAN("e4") == "e2e4"); + CHECK(a.ParseSAN("Nc3") == "b1c3"); + CHECK(a.ParseSAN("Nf3") == "g1f3"); + + // Check when two similar piece can go to the same square + a.Setup("rnbqkbnr/pppppppp/8/8/P6P/7R/1PPPPPP1/RNBQKBN1 w Qkq - 0 1"); + CHECK(a.ParseSAN("Raa3") == "a1a3"); + CHECK(a.ParseSAN("Rha3") == "h3a3"); + a.Setup("rnbqkbnr/pppppppp/8/8/P6P/R7/1PPPPPP1/RNBQKBN1 w Qkq - 0 1"); + CHECK(a.ParseSAN("R1a2") == "a1a2"); + CHECK(a.ParseSAN("R3a2") == "a3a2"); + a.Setup("r1bqkb1r/pppppppp/5n2/8/P6P/R1N5/1PPPPnP1/R1BQKBN1 b Qkq - 0 1"); + CHECK(a.ParseSAN("N6e4") == "f6e4"); + CHECK(a.ParseSAN("N2e4") == "f2e4"); + + // Castling + a.Setup("rnbqkbnr/pppppppp/8/8/8/4NB2/PPPPPPPP/RNBQK2R w KQkq - 0 1"); + CHECK(a.ParseSAN("O-O") == "e1g1"); + a.Setup("rnbqkbnr/pppppppp/8/8/8/2NBQ3/PPPPPPPP/R3KBNR w KQkq - 0 1"); + CHECK(a.ParseSAN("O-O-O") == "e1c1"); + a.Setup("rnbqk2r/pppppppp/4bn2/8/8/2NBQ3/PPPPPPPP/R3KBNR b KQkq - 0 1"); + CHECK(a.ParseSAN("O-O") == "e8g8"); + a.Setup("r3kb1r/pppppppp/2qnbn2/8/8/2NBQ3/PPPPPPPP/R3KBNR b KQkq - 0 1"); + CHECK(a.ParseSAN("O-O-O") == "e8c8"); +} |
