From a0d15a8c40ae7798dff6489eed194dacb13c2c06 Mon Sep 17 00:00:00 2001
From: Anthony <bouillant.anthony@gmail.com>
Date: Thu, 3 Apr 2025 22:22:06 +0200
Subject: [PATCH] Create puissance4 test file

---
 puissance4.c      |  48 +++++++++++++++++++++++++++++-----------------
 puissance4.h      |   5 +----
 test_puissance4.c |  36 ++++++++++++++++++++++++++++++++++
 tests_board       | Bin 26616 -> 0 bytes
 tests_computer    | Bin 36680 -> 0 bytes
 tests_game        | Bin 36952 -> 0 bytes
 6 files changed, 67 insertions(+), 22 deletions(-)
 create mode 100644 test_puissance4.c
 delete mode 100755 tests_board
 delete mode 100755 tests_computer
 delete mode 100755 tests_game

diff --git a/puissance4.c b/puissance4.c
index 9f100df..78e3ce1 100644
--- a/puissance4.c
+++ b/puissance4.c
@@ -1,20 +1,38 @@
 #include "puissance4.h"
 
+void print_usage(const char* program_name) {
+    printf("Usage: %s <mode> <row> <col>\n", program_name);
+    printf("%*smode  specifies the mode: 1 = single player game (random),\n", 5, "");
+    printf("%*s      2 = single player game (AI), 3 = two players game\n", 5, "");
+    printf("%*srow   specifies the number of rows (>= %d)\n", 5, "", MIN_ROW);
+    printf("%*scol   specifies the number of columns (>= %d)\n", 5, "", MIN_COLUMN);
+}
+
+bool validate_arguments(char const* argv[], int* game_mode, int* row_count, int* col_count) {
+    *game_mode = atoi(argv[1]);
+    *row_count = atoi(argv[2]);
+    *col_count = atoi(argv[3]);
+
+    if (!is_valid_game_mode(*game_mode) || !is_valid_board_size(*row_count, *col_count)) {
+        print_usage(argv[0]);
+        return false;
+    }
+
+    return true;
+}
+
 int main(int argc, char const* argv[]) {
-    if (argc != 4 || !is_valid_game_mode(atoi(argv[1])) || !is_valid_board_size(atoi(argv[2]), atoi(argv[3]))) {
-        printf("Usage: %s <mode> <row> <col>\n", argv[0]);
-        printf("%*smode  specifies the mode: 1 = single player game (random),\n", 5, "");
-        printf("%*s      2 = single player game (AI), 3 = two players game\n", 5, "");
-        printf("%*srow   specifies the number of rows (>= 4)\n", 5, "");
-        printf("%*scol   specifies the number of columns (>= 4)\n", 5, "");
+    if (argc != 4) {
+        print_usage(argv[0]);
+        return false;
+    }
+
+    int game_mode, row_count, col_count;
+    if (!validate_arguments(argv, &game_mode, &row_count, &col_count)) {
         return EXIT_FAILURE;
     }
 
-    enum GAME_MODE game_mode = atoi(argv[1]);
-    int row_count = atoi(argv[2]);
-    int col_count = atoi(argv[3]);
     srand(AI_SEED);
-
     int** board = create_board(row_count, col_count);
     if (board == NULL) {
         fprintf(stderr, "Error: Unable to allocate memory for the board.\n");
@@ -60,11 +78,10 @@ int main(int argc, char const* argv[]) {
 }
 
 void announce_winner(enum GAME_MODE game_mode, int current_turn) {
-    const char* winner = (current_turn % 2 == 0) ? "Player one" : "Computer";
+    char* winner = (current_turn % 2 == 0) ? "Player one" : "Computer";
 
     if (game_mode == PLAYER_VS_PLAYER) {
-        winner = (current_turn % 2 == 0) ? "one" : "two";
-        printf("\nPlayer %s won!\n", winner);
+        printf("\nPlayer %s won!\n", (current_turn % 2 == 0) ? "one" : "two");
     } else {
         printf("\n%s won!\n", winner);
     }
@@ -77,8 +94,3 @@ bool is_valid_game_mode(int game_mode) {
 bool is_valid_board_size(int rows, int cols) {
     return rows >= MIN_ROW && cols >= MIN_COLUMN;
 }
-
-void flush_input() {
-    int c;
-    while ((c = getchar()) != '\n' && c != EOF);
-}
diff --git a/puissance4.h b/puissance4.h
index 7ebd437..4d13fa9 100644
--- a/puissance4.h
+++ b/puissance4.h
@@ -13,12 +13,9 @@
 #define MIN_COLUMN 4
 #define MIN_ROW 4
 
+bool validate_arguments(char const* argv[], int* game_mode, int* row_count, int* col_count);
 void announce_winner(enum GAME_MODE game_mode, int current_turn);
 bool is_valid_game_mode(int game_mode);
 bool is_valid_board_size(int rows, int cols);
-// int select_random_column(int number_of_columns, int number_of_rows, int** board);
-// int select_smart_column(int number_of_columns, int number_of_rows, int** board);
-// bool is_column_full(int col, int rows, int** board);
-void flush_input();
 
 #endif
diff --git a/test_puissance4.c b/test_puissance4.c
new file mode 100644
index 0000000..f63ff0d
--- /dev/null
+++ b/test_puissance4.c
@@ -0,0 +1,36 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <assert.h>
+#include "puissance4.h"
+
+#define GREEN "\033[1;32m"
+#define RED "\033[1;31m"
+#define RESET "\033[0m"
+
+void test_is_valid_game_mode();
+void test_is_valid_board_size();
+
+int main() {
+    test_is_valid_game_mode();
+    test_is_valid_board_size();
+    return EXIT_SUCCESS;
+}
+
+void test_is_valid_game_mode() {
+    assert(is_valid_game_mode(1) == true);
+    assert(is_valid_game_mode(2) == true);
+    assert(is_valid_game_mode(3) == true);
+    assert(is_valid_game_mode(0) == false);
+    assert(is_valid_game_mode(4) == false);
+    assert(is_valid_game_mode(-1) == false);
+    printf(GREEN "test_is_valid_game_mode: PASSED\n" RESET);
+}
+
+void test_is_valid_board_size() {
+    assert(is_valid_board_size(4, 4) == true);
+    assert(is_valid_board_size(6, 7) == true);
+    assert(is_valid_board_size(3, 4) == false);
+    assert(is_valid_board_size(4, 3) == false);
+    assert(is_valid_board_size(2, 2) == false);
+    printf(GREEN "test_is_valid_board_size: PASSED\n" RESET);
+}
\ No newline at end of file
diff --git a/tests_board b/tests_board
deleted file mode 100755
index 4963c645ce1583ee18bdcea9857c70d6a42b9165..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 26616
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
L43%ga(6|f$qLl<S

diff --git a/tests_computer b/tests_computer
deleted file mode 100755
index a1c01814781908237943a909f10aeff832497a61..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 36680
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
F831^&LAn3{

diff --git a/tests_game b/tests_game
deleted file mode 100755
index f1cfa60e87bb4232589ffc7d78236e1434260775..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 36952
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

-- 
GitLab