]>
git.scottworley.com Git - slidingtile/blob - sliding_tile_lib_test.cc
20508968737bbca30855fa9ecbf2dec7128e3d4a
1 #include "sliding_tile_lib.h"
3 #include "gtest/gtest.h"
4 #include "gmock/gmock.h"
7 TEST(Adjacency
, Adjacency
) {
8 const signed char LEFT
= -1;
9 const signed char RIGHT
= +1;
10 const signed char UP
= -BOARD_DIM
;
11 const signed char DOWN
= +BOARD_DIM
;
12 for (int i
= 0; i
< BOARD_SIZE
; i
++) {
14 std::vector
<signed char> expected
;
16 expected
.push_back(i
+ UP
);
18 if (i
< BOARD_SIZE
- BOARD_DIM
) {
19 expected
.push_back(i
+ DOWN
);
21 if (i
% BOARD_DIM
!= 0) {
22 expected
.push_back(i
+ LEFT
);
24 if (i
% BOARD_DIM
!= BOARD_DIM
- 1) {
25 expected
.push_back(i
+ RIGHT
);
28 std::vector
<signed char> actual
;
29 for (int j
= 0; adjacent
[i
][j
] >= 0; j
++) {
30 actual
.push_back(adjacent
[i
][j
]);
32 EXPECT_THAT(actual
, testing::UnorderedElementsAreArray(expected
));