Merge branch 'main' of gitlab.emi.u-bordeaux.fr:pt2/teams-s4/tm07/lightup-07c
This commit is contained in:
commit
bd15602c32
6 files changed
+55
-130
No files matched your search
+2
-1
@@ -1,2 +1,3 @@
|
||||
build/
|
||||
.vscode/
|
||||
.vscode/
|
||||
*.txt
|
||||
Vendored
+4
-58
@@ -30,12 +30,12 @@
|
||||
"preLaunchTask": "make_build"
|
||||
},
|
||||
{
|
||||
"name": "(gdb) debug tests thoguet",
|
||||
"name": "(gdb) debug tests",
|
||||
"type": "cppdbg",
|
||||
"request": "launch",
|
||||
"program": "${workspaceFolder}/build/game_test_thoguet",
|
||||
"program": "${workspaceFolder}/build/game_test",
|
||||
"args": [
|
||||
"game_default_solution"
|
||||
"game_save"
|
||||
],
|
||||
"stopAtEntry": false,
|
||||
"cwd": "${fileDirname}",
|
||||
@@ -55,60 +55,6 @@
|
||||
}
|
||||
],
|
||||
"preLaunchTask": "make_build"
|
||||
},
|
||||
{
|
||||
"name": "(gdb) debug tests histo",
|
||||
"type": "cppdbg",
|
||||
"request": "launch",
|
||||
"program": "${workspaceFolder}/build/history_test",
|
||||
"args": [
|
||||
"history_copy"
|
||||
],
|
||||
"stopAtEntry": false,
|
||||
"cwd": "${fileDirname}",
|
||||
"environment": [],
|
||||
"externalConsole": false,
|
||||
"MIMode": "gdb",
|
||||
"setupCommands": [
|
||||
{
|
||||
"description": "Enable pretty-printing for gdb",
|
||||
"text": "-enable-pretty-printing",
|
||||
"ignoreFailures": true
|
||||
},
|
||||
{
|
||||
"description": "Set Disassembly Flavor to Intel",
|
||||
"text": "-gdb-set disassembly-flavor intel",
|
||||
"ignoreFailures": true
|
||||
}
|
||||
],
|
||||
"preLaunchTask": "make_build"
|
||||
},
|
||||
{
|
||||
"name": "(gdb) debug tests thperrier",
|
||||
"type": "cppdbg",
|
||||
"request": "launch",
|
||||
"program": "${workspaceFolder}/build/game_test_thperrier",
|
||||
"args": [
|
||||
"game_copy"
|
||||
],
|
||||
"stopAtEntry": false,
|
||||
"cwd": "${fileDirname}",
|
||||
"environment": [],
|
||||
"externalConsole": false,
|
||||
"MIMode": "gdb",
|
||||
"setupCommands": [
|
||||
{
|
||||
"description": "Enable pretty-printing for gdb",
|
||||
"text": "-enable-pretty-printing",
|
||||
"ignoreFailures": true
|
||||
},
|
||||
{
|
||||
"description": "Set Disassembly Flavor to Intel",
|
||||
"text": "-gdb-set disassembly-flavor intel",
|
||||
"ignoreFailures": true
|
||||
}
|
||||
],
|
||||
"preLaunchTask": "make_build"
|
||||
},
|
||||
}
|
||||
]
|
||||
}
|
||||
+6
-1
@@ -42,6 +42,7 @@ add_test(test_thperrier_game_get_black_number_v1 ./game_test game_get_black_numb
|
||||
add_test(test_thperrier_game_is_lightbulb_v1 ./game_test game_is_lightbulb)
|
||||
add_test(test_thperrier_game_is_blank_v1 ./game_test game_is_blank)
|
||||
add_test(test_thperrier_game_new_empty_v1 ./game_test game_new_empty)
|
||||
add_test(test_game_equal_v1 ./game_test equal)
|
||||
|
||||
# V2
|
||||
|
||||
@@ -53,7 +54,7 @@ add_test(test_thoguet_game_check_move_v2 ./game_test game_check_move)
|
||||
add_test(test_thoguet_game_new_empty_ext_v2 ./game_test game_new_empty_ext)
|
||||
add_test(test_thoguet_game_new_ext_v2 ./game_test game_new_ext)
|
||||
add_test(test_thperrier_game_copy_v2 ./game_test game_copy)
|
||||
add_test(test_thperrier_game_equal_v2 ./game_test game_equal)
|
||||
add_test(test_game_equal_v2 ./game_test equal_ext)
|
||||
add_test(test_thperrier_game_delete_v2 ./game_test game_delete)
|
||||
add_test(test_thperrier_game_undo_v2 ./game_test game_undo)
|
||||
add_test(test_thperrier_game_redo_v2 ./game_test game_redo)
|
||||
@@ -63,6 +64,10 @@ add_test(test_nnunes_game_nb_cols_v2 ./game_test game_nb_cols)
|
||||
add_test(test_nnunes_game_is_wrapping_v2 ./game_test game_is_wrapping)
|
||||
add_test(test_thoguet_game_print_v2 ./game_test game_print)
|
||||
|
||||
# V3
|
||||
|
||||
add_test(test_thoguet_game_save_v3 ./game_test game_save)
|
||||
|
||||
#Tests HISTORY
|
||||
# add_test(test_history_history_alloc ./history_test history_alloc)
|
||||
# add_test(test_history_create_empty ./history_test history_create_empty)
|
||||
|
||||
@@ -209,3 +209,17 @@ square sol_5x3w_squares[] = {
|
||||
};
|
||||
|
||||
/* ************************************************************************** */
|
||||
/* GAME SAVE (V3) */
|
||||
/* ************************************************************************** */
|
||||
|
||||
char game_default_str[] = {
|
||||
'7', ' ', '7', ' ', '0', '\n', // <nb_rows> <nb_cols> <wrapping>\n
|
||||
'b', 'b', '1', 'b', 'b', 'b', 'b', '\n', // <squares[0][0]><squares[0][1]>...<squares[0][nb_cols-1]>\n
|
||||
'b', 'b', '2', 'b', 'b', 'b', 'b', '\n', // <squares[1][0]><squares[1][1]>...<squares[1][nb_cols-1]>\n
|
||||
'b', 'b', 'b', 'b', 'b', 'w', '2', '\n', // <squares[2][0]><squares[2][1]>...<squares[2][nb_cols-1]>\n
|
||||
'b', 'b', 'b', 'b', 'b', 'b', 'b', '\n', // <squares[3][0]><squares[3][1]>...<squares[3][nb_cols-1]>\n
|
||||
'1', 'w', 'b', 'b', 'b', 'b', 'b', '\n', // <squares[4][0]><squares[4][1]>...<squares[4][nb_cols-1]>\n
|
||||
'b', 'b', 'b', 'b', '2', 'b', 'b', '\n', // <squares[5][0]><squares[5][1]>...<squares[5][nb_cols-1]>\n
|
||||
'b', 'b', 'b', 'b', 'w', 'b', 'b', '\n' // <squares[6][0]><squares[6][1]>...<squares[6][nb_cols-1]>\n
|
||||
};
|
||||
/* ************************************************************************** */
|
||||
@@ -31,4 +31,7 @@ extern square sol_3x3w_squares[];
|
||||
extern square ext_2x2w_squares[];
|
||||
extern square sol_2x2w_squares[];
|
||||
|
||||
// V3
|
||||
extern char game_default_str[];
|
||||
|
||||
#endif // __GAME_EXAMPLES_H__
|
||||
+26
-70
@@ -12,11 +12,17 @@
|
||||
|
||||
#define TAB_SQUARE \
|
||||
{ S_BLANK, S_LIGHTBULB, S_MARK, S_BLACK0, S_BLACK1, S_BLACK2, S_BLACK3, S_BLACK4, S_BLACKU }
|
||||
|
||||
#define SIZE_LIMIT_GAME 10
|
||||
|
||||
// put usable square at the start of the list and S_BLANK at the first element
|
||||
#define LIST_OF_SQUARE \
|
||||
{ S_BLANK, S_LIGHTBULB, S_MARK, S_BLACK0, S_BLACK1, S_BLACK2, S_BLACK3, S_BLACK4, S_BLACKU, F_LIGHTED, F_ERROR }
|
||||
|
||||
#define USABLE_SQUARE 2
|
||||
|
||||
#define NB_CHAR_SAVED_FILE_INFO 6
|
||||
|
||||
/* ********** game_get_black_number ********** */
|
||||
bool test_game_get_black_number(bool whoami, char** name) {
|
||||
if (whoami) {
|
||||
@@ -828,76 +834,6 @@ bool test_game_check_move(bool whoami, char** name) {
|
||||
return true;
|
||||
}
|
||||
|
||||
/* ***** game_save ***** */
|
||||
bool test_game_save(bool whoami, char** name) {
|
||||
if (whoami) {
|
||||
*name = (char*)__func__;
|
||||
return false;
|
||||
}
|
||||
game g4x4w = game_new_ext(4, 4, ext_4x4_squares, true);
|
||||
game_save(g4x4w, "g4x4w.txt");
|
||||
game g4x4w_from_file = game_load("g4x4w.txt");
|
||||
assert(game_equal(g4x4w, g4x4w_from_file));
|
||||
game_delete(g4x4w);
|
||||
game_delete(g4x4w_from_file);
|
||||
game g4x4 = game_new_ext(4, 4, ext_4x4_squares, false);
|
||||
game_save(g4x4, "g4x4.txt");
|
||||
game g4x4_from_file = game_load("g4x4.txt");
|
||||
assert(game_equal(g4x4, g4x4_from_file));
|
||||
game_delete(g4x4);
|
||||
game_delete(g4x4_from_file);
|
||||
game g3x10w = game_new_ext(3, 10, ext_3x10_squares, true);
|
||||
game_save(g3x10w, "g3x10w.txt");
|
||||
game g3x10w_from_file = game_load("g3x10w.txt");
|
||||
assert(game_equal(g3x10w, g3x10w_from_file));
|
||||
game_delete(g3x10w);
|
||||
game_delete(g3x10w_from_file);
|
||||
game g3x10 = game_new_ext(3, 10, ext_3x10_squares, false);
|
||||
game_save(g3x10, "g3x10.txt");
|
||||
game g3x10_from_file = game_load("g3x10.txt");
|
||||
assert(game_equal(g3x10, g3x10_from_file));
|
||||
game_delete(g3x10);
|
||||
game_delete(g3x10_from_file);
|
||||
game g5x1w = game_new_ext(5, 1, ext_5x1_squares, true);
|
||||
game_save(g5x1w, "g5x1w.txt");
|
||||
game g5x1w_from_file = game_load("g5x1w.txt");
|
||||
assert(game_equal(g5x1w, g5x1w_from_file));
|
||||
game_delete(g5x1w);
|
||||
game_delete(g5x1w_from_file);
|
||||
game g5x1 = game_new_ext(5, 1, ext_5x1_squares, false);
|
||||
game_save(g5x1, "g5x1.txt");
|
||||
game g5x1_from_file = game_load("g5x1.txt");
|
||||
assert(game_equal(g5x1, g5x1_from_file));
|
||||
game_delete(g5x1);
|
||||
game_delete(g5x1_from_file);
|
||||
game g2x2w = game_new_ext(5, 1, ext_2x2w_squares, true);
|
||||
game_save(g2x2w, "g2x2w.txt");
|
||||
game g2x2w_from_file = game_load("g2x2w.txt");
|
||||
assert(game_equal(g2x2w, g2x2w_from_file));
|
||||
game_delete(g2x2w);
|
||||
game_delete(g2x2w_from_file);
|
||||
game g2x2 = game_new_ext(5, 1, ext_2x2w_squares, false);
|
||||
game_save(g2x2, "g2x2.txt");
|
||||
game g2x2_from_file = game_load("g2x2.txt");
|
||||
assert(game_equal(g2x2, g2x2_from_file));
|
||||
game_delete(g2x2);
|
||||
game_delete(g2x2_from_file);
|
||||
game g3x3w = game_new_ext(3, 3, ext_3x3w_squares, true);
|
||||
game_save(g3x3w, "g3x3w.txt");
|
||||
game g3x3w_from_file = game_load("g3x3w.txt");
|
||||
assert(game_equal(g3x3w, g3x3w_from_file));
|
||||
game_delete(g3x3w);
|
||||
game_delete(g3x3w_from_file);
|
||||
game g3x3 = game_new_ext(3, 3, ext_3x3w_squares, false);
|
||||
game_save(g3x3, "g3x3.txt");
|
||||
game g3x3_from_file = game_load("g3x3.txt");
|
||||
assert(game_equal(g3x3, g3x3_from_file));
|
||||
game_delete(g3x3);
|
||||
game_delete(g3x3_from_file);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/* ************** game_set_square ************** */
|
||||
bool test_game_set_square(bool whoami, char** name) {
|
||||
if (whoami) {
|
||||
@@ -1096,6 +1032,26 @@ bool test_game_is_wrapping(bool whoami, char** name) {
|
||||
return false;
|
||||
}
|
||||
|
||||
/* ***** game_save ***** */
|
||||
bool test_game_save(bool whoami, char** name) {
|
||||
// if whoami is true return in name the name of the function
|
||||
if (whoami) {
|
||||
*name = (char*)__func__;
|
||||
return false;
|
||||
}
|
||||
game gdefault = game_default();
|
||||
game_save(gdefault, "gdefault.txt");
|
||||
FILE* f_gdefault = fopen("gdefault.txt", "r");
|
||||
assert(f_gdefault);
|
||||
char char_to_test = '?';
|
||||
for (uint index_gdefault_str = 0; index_gdefault_str < game_nb_cols(gdefault) * game_nb_rows(gdefault) + NB_CHAR_SAVED_FILE_INFO + game_nb_rows(gdefault);
|
||||
index_gdefault_str++) {
|
||||
char_to_test = fgetc(f_gdefault);
|
||||
assert(char_to_test == game_default_str[index_gdefault_str]);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/* ********** USAGE ********** */
|
||||
|
||||
int usage(char* argv[]) {
|
||||
|
||||
Reference in new issue
Block a user