3 Copyright (c) Scott Gasch
11 Tests the SAN-style (Nbd5) move parser.
19 $Id: testsan.c 345 2007-12-02 22:56:42Z scott $
32 Tests the SAN-style (Nbd5) move parser.
44 typedef struct _TEST_SAN_MOVE
52 { "b8=Q", { MAKE_MOVE(B7, B8, WHITE_PAWN, 0, WHITE_QUEEN, MOVE_FLAG_SPECIAL) } },
53 { "b8Q", { MAKE_MOVE(B7, B8, WHITE_PAWN, 0, WHITE_QUEEN, MOVE_FLAG_SPECIAL) } },
54 { "o-o", { MAKE_MOVE(0,0,0,0,0,0) } },
55 { "0-0", { MAKE_MOVE(0,0,0,0,0,0) } },
56 { "o-o-o", { MAKE_MOVE(E1, C1, WHITE_KING, 0, 0, MOVE_FLAG_SPECIAL) } },
57 { "0-0-0", { MAKE_MOVE(E1, C1, WHITE_KING, 0, 0, MOVE_FLAG_SPECIAL) } },
58 { "Bxc4", { MAKE_MOVE(A2, C4, WHITE_BISHOP, BLACK_PAWN, 0, 0) } },
59 { "Bec4", { MAKE_MOVE(0,0,0,0,0,0) } },
60 { "h3", { MAKE_MOVE(H2, H3, WHITE_PAWN, 0, 0, 0) } },
61 { "h4", { MAKE_MOVE(H2, H4, WHITE_PAWN, 0, 0, MOVE_FLAG_SPECIAL) } },
62 { "N2xc4", { MAKE_MOVE(B2, C4, WHITE_KNIGHT, BLACK_PAWN, 0, 0) } },
63 { "Nb6c4", { MAKE_MOVE(B6, C4, WHITE_KNIGHT, BLACK_PAWN, 0, 0) } },
64 { "Nxd7", { MAKE_MOVE(B6, D7, WHITE_KNIGHT, BLACK_BISHOP, 0, 0) } },
65 { "hxg3", { MAKE_MOVE(H2, G3, WHITE_PAWN, BLACK_KNIGHT, 0, 0) } },
66 { "Qxd7++",{ MAKE_MOVE(D2, D7, WHITE_QUEEN, BLACK_BISHOP, 0, 0) } },
67 { "Qxd7#" ,{ MAKE_MOVE(D2, D7, WHITE_QUEEN, BLACK_BISHOP, 0, 0) } },
68 { "f6", { MAKE_MOVE(F5, F6, WHITE_PAWN, 0, 0, 0) } },
69 { "bxa8=N",{ MAKE_MOVE(B7, A8, WHITE_PAWN, BLACK_ROOK, WHITE_KNIGHT, MOVE_FLAG_SPECIAL) } },
75 Trace("Testing SAN parser code...\n");
80 if (FALSE == FenToPosition(&pos,
81 "r2kr3/pP1b2nb/1N6/5P2/2p5/6n1/BN1QBP1P/R3K2R w KQ - 0 1"))
83 UtilPanic(INCONSISTENT_STATE,
84 NULL, NULL, NULL, NULL,
88 mvSAN = ParseMoveSan(x[u].szSAN, &pos);
89 if (mvSAN.uMove != x[u].mv.uMove)
91 UtilPanic(TESTCASE_FAILURE,
92 NULL, "ParseMoveSan", NULL, NULL,