1 #include "../../src/board.h"
2 #include "../../src/move.h"
3 #include "../../src/piece.h"
4 #include "gtest/gtest.h"
6 TEST(BoardTest
, Constructor
)
11 for (int i
= 0; i
< BOARD_SIZE
; ++i
) {
12 const Square s
= static_cast<Square
>(i
);
13 EXPECT_EQ(Piece(), board
[s
]);
16 // Test attack and direction arrays
17 for (const Square
&from
: SQUARES
) {
21 for (const Square
&to
: SQUARES
) {
25 Direction dir
= NO_DIR
;
26 for (const PieceType
& t
: NOT_PAWN_TYPES
) {
27 bool can_attack
= false;
28 for (const Direction
&d
: PIECES_DIRS
[t
]) {
32 Square s
= static_cast<Square
>(from
+ d
);
33 while (!board
.is_out(s
)) {
45 s
= static_cast<Square
>(s
+ d
);
51 EXPECT_TRUE(board
.can_attack(t
, from
, to
));
53 EXPECT_FALSE(board
.can_attack(t
, from
, to
));
56 EXPECT_EQ(dir
, board
.direction_to(from
, to
));
61 TEST(BoardTest
, Square
)
63 Square BOARD
[BOARD_SIZE
] = { OUT
};
65 for (i
= 0; i
< 64; ++i
) {
66 Square s
= Board::square(i
);
70 for (const Square
&s
: SQUARES
) {
74 EXPECT_EQ(s
, BOARD
[i
]);