diff --git a/.vscode/settings.json b/.vscode/settings.json index 7441b23..604d63d 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -3,5 +3,6 @@ "game_ext.h": "c", "game.h": "c" }, - "editor.formatOnSave": true + "editor.formatOnSave": true, + "C_Cpp.clang_format_path": "/usr/bin/clang-format" } \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt index ef1a473..f83e5cd 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -53,7 +53,7 @@ add_test(test_thperrier_game_is_lightbulb ./game_test_thperrier game_is_lightbul add_test(test_thperrier_game_is_black ./game_test_thperrier game_is_black) add_test(test_thperrier_game_get_black_number ./game_test_thperrier game_get_black_number) add_test(test_thperrier_game_undo ./game_test_thperrier game_undo) -add_test(test_thperrier_game_undo ./game_test_thperrier game_redo) +add_test(test_thperrier_game_redo ./game_test_thperrier game_redo) #Tests NNUNES add_test(test_nnunes_dummy ./game_test_nnunes dummy) diff --git a/game_test_thperrier.c b/game_test_thperrier.c index 22c65ec..1fae9af 100644 --- a/game_test_thperrier.c +++ b/game_test_thperrier.c @@ -223,29 +223,56 @@ bool test_game_copy() { } /* ********** game_undo ********** */ -bool test_game_undo(){ +bool test_game_undo() { + game g1 = game_new_empty(); + game g2 = game_copy(g1); + game_undo(g1); + if (!game_equal(g1, g2)) { + game_delete(g1); + game_delete(g2); + return false; + } + game_play_move(g1, 0, 0, S_LIGHTBULB); + game_play_move(g1, 1, 1, S_MARK); + game g3 = game_copy(g1); + game_play_move(g3, 1, 1, S_BLANK); + game_undo(g1); + if (!game_equal(g1, g3)) { + game_delete(g1); + game_delete(g2); + game_delete(g3); + return false; + } + game_delete(g1); + game_delete(g2); + game_delete(g3); + return true; +} + +/* ********** game_redo ********** */ +bool test_game_redo() { game g1 = game_new_empty(); game_play_move(g1, 0, 0, S_LIGHTBULB); game_play_move(g1, 1, 1, S_MARK); game g2 = game_copy(g1); - game_play_move(g2, 1, 1, S_BLANK); - game_undo(g1); - return game_equal(g1, g2); -} - -/* ********** game_redo ********** */ -bool test_game_redo(){ - game g1 = game_new_empty(); - game_play_move(g1, 0, 0, S_LIGHTBULB); - game_play_move(g1, 0, 1, S_MARK); - game_play_move(g1, 0, 0, S_BLANK); - game g2 = game_copy(g1); game_undo(g1); game_redo(g1); - if (!game_equal(g1, g2)){ + game_redo(g1); + if (!game_equal(g1, g2)) { + game_delete(g1); + game_delete(g2); return false; } - + game_play_move(g1, 2, 2, S_LIGHTBULB); + game_play_move(g2, 2, 2, S_LIGHTBULB); + game_redo(g1); + if (!game_equal(g1, g2)) { + game_delete(g1); + game_delete(g2); + return false; + } + game_delete(g1); + game_delete(g2); return true; }