#include #include "basic_testing.h" #include "../chess_paths.h" struct chessboard { unsigned int C; unsigned int R; }; int value_at(const struct chessboard * c, unsigned int column, unsigned int row) { return column + row * c->C; } unsigned int columns(const struct chessboard * c) { return c->C; } unsigned int rows(const struct chessboard * c) { return c->R; } TEST(dec_pawn) { struct chessboard c = {.C = 10, .R = 10 }; struct piece_position p; p.piece = PAWN; p.column = 0; p.row = 0; assert_uint_eq(decreasing_path_len(&c, &p), 0); assert_uint_eq(p.column, 0); assert_uint_eq(p.row, 0); TEST_PASSED; } TEST(dec_king) { struct chessboard c = {.C = 10, .R = 10 }; struct piece_position p; p.piece = KING; p.column = 0; p.row = 0; assert_uint_eq(decreasing_path_len(&c, &p), 0); assert_uint_eq(p.column, 0); assert_uint_eq(p.row, 0); TEST_PASSED; } TEST(dec_queen) { struct chessboard c = {.C = 10, .R = 10 }; struct piece_position p; p.piece = QUEEN; p.column = 0; p.row = 0; assert_uint_eq(decreasing_path_len(&c, &p), 0); assert_uint_eq(p.column, 0); assert_uint_eq(p.row, 0); TEST_PASSED; } TEST(dec_knight) { struct chessboard c = {.C = 10, .R = 10 }; struct piece_position p; p.piece = KNIGHT; p.column = 0; p.row = 0; assert_uint_eq(decreasing_path_len(&c, &p), 0); assert_uint_eq(p.column, 0); assert_uint_eq(p.row, 0); TEST_PASSED; } TEST(dec_bishop) { struct chessboard c = {.C = 10, .R = 10 }; struct piece_position p; p.piece = BISHOP; p.column = 0; p.row = 0; assert_uint_eq(decreasing_path_len(&c, &p), 0); assert_uint_eq(p.column, 0); assert_uint_eq(p.row, 0); TEST_PASSED; } TEST(dec_rook) { struct chessboard c = {.C = 10, .R = 10 }; struct piece_position p; p.piece = ROOK; p.column = 0; p.row = 0; assert_uint_eq(decreasing_path_len(&c, &p), 0); assert_uint_eq(p.column, 0); assert_uint_eq(p.row, 0); TEST_PASSED; } int main() { RUN_TEST(dec_pawn); RUN_TEST(dec_king); RUN_TEST(dec_queen); RUN_TEST(dec_knight); RUN_TEST(dec_bishop); RUN_TEST(dec_rook); PRINT_TEST_RESULTS; assert(ALL_TESTS_PASSED); }