3 Copyright (c) Scott Gasch
11 Test the ICS-style (d2d4) move parser.
19 $Id: testics.c 345 2007-12-02 22:56:42Z scott $
31 Test the ICS-style (d2d4) move parser.
43 typedef struct _TEST_ICS_MOVE
51 { "e1c1" , { MAKE_MOVE(E1, C1, WHITE_KING, 0, 0, MOVE_FLAG_SPECIAL) } },
52 { "o-o-o" , { MAKE_MOVE(E1, C1, WHITE_KING, 0, 0, MOVE_FLAG_SPECIAL) } },
53 { "a2xc4" , { MAKE_MOVE(A2, C4, WHITE_BISHOP, BLACK_PAWN, 0, 0) } },
54 { "h2-h3" , { MAKE_MOVE(H2, H3, WHITE_PAWN, 0, 0, 0) } },
55 { "h2h4" , { MAKE_MOVE(H2, H4, WHITE_PAWN, 0, 0, MOVE_FLAG_SPECIAL) } },
56 { "h4h5" , { MAKE_MOVE(0, 0, 0, 0, 0, 0 ) } },
57 { "b2c4" , { MAKE_MOVE(B2, C4, WHITE_KNIGHT, BLACK_PAWN, 0, 0) } },
58 { "b6c4" , { MAKE_MOVE(B6, C4, WHITE_KNIGHT, BLACK_PAWN, 0, 0) } },
59 { "b6d7" , { MAKE_MOVE(B6, D7, WHITE_KNIGHT, BLACK_BISHOP, 0, 0) } },
60 { "h2xg3" , { MAKE_MOVE(H2, G3, WHITE_PAWN, BLACK_KNIGHT, 0, 0) } },
61 { "d2d7++", { MAKE_MOVE(D2, D7, WHITE_QUEEN, BLACK_BISHOP, 0, 0) } },
62 { "d2d7#" , { MAKE_MOVE(D2, D7, WHITE_QUEEN, BLACK_BISHOP, 0, 0) } },
63 { "f5f6" , { MAKE_MOVE(F5, F6, WHITE_PAWN, 0, 0, 0) } },
64 { "b7b8=Q", { MAKE_MOVE(B7, B8, WHITE_PAWN, 0, WHITE_QUEEN, MOVE_FLAG_SPECIAL) } },
65 { "b7b8Q" , { MAKE_MOVE(B7, B8, WHITE_PAWN, 0, WHITE_QUEEN, MOVE_FLAG_SPECIAL) } },
66 { "b7xa8N", { MAKE_MOVE(B7, A8, WHITE_PAWN, BLACK_ROOK, WHITE_KNIGHT, MOVE_FLAG_SPECIAL) } },
72 Trace("Testing ICS parser code...\n");
77 if (FALSE == FenToPosition(&pos,
78 "r2kr3/pP1b2nb/1N6/5P2/2p5/6n1/BN1QBP1P/R3K2R w KQ - 0 1"))
80 UtilPanic(INCONSISTENT_STATE,
81 NULL, NULL, NULL, NULL,
85 mvICS = ParseMoveIcs(x[u].szICS, &pos);
86 if (mvICS.uMove != x[u].mv.uMove)
88 UtilPanic(TESTCASE_FAILURE,
89 NULL, "ParseMoveICS", NULL, NULL,