diff --git a/test_projet_3.c b/test_projet_3.c
new file mode 100644
index 0000000000000000000000000000000000000000..c40e6accda30d0eca4d03d2edc1bd3779bf894a1
--- /dev/null
+++ b/test_projet_3.c
@@ -0,0 +1,96 @@
+#include <stdlib.h>
+#include <stdio.h>
+#include "projet_3.h"
+#include <CUnit/CUnit.h>
+#include <CUnit/TestRun.h>
+#include <CUnit/CUError.h>
+#include <CUnit/Basic.h>
+
+void test_is_div(void) {
+    CU_ASSERT_TRUE(is_div(14,7));
+}
+
+void test_is_prime(void) {
+    CU_ASSERT_TRUE(is_prime(13));
+}
+void test_is_not_prime(void) {
+    CU_ASSERT_FALSE(is_prime(14));
+}
+
+void file_test(void) {
+    FILE *file1 = NULL;
+    FILE *file2 = NULL;
+
+    file1 = fopen("expected_output.txt","r");
+    if (file1 == NULL) {
+        CU_FAIL("expected_output opening fail");
+        return;
+    }
+
+    int err = ecrire_dans_fichier("input.txt","actual_output.txt");
+    if (err == -1){
+        CU_FAIL("method projet_3 failed");
+        return;
+    }
+
+    file2 = fopen("actual_output.txt","r");
+    if (file2 == NULL) {
+        CU_FAIL("actual_output opening fail");
+        return;
+    }
+
+    char chaine1[500];
+    char chaine2[500];
+
+    while (fgets(chaine1,500,file1) != NULL && fgets(chaine2,500,file2) != NULL)
+    {
+        printf("%d\n",chaine1[2]) ;
+        printf("%d\n",chaine2[2]) ;
+        CU_ASSERT_STRING_EQUAL(chaine1,chaine2);
+    }
+
+    fclose(file1);
+    fclose(file2);
+    
+}
+
+int setup(void){
+        return 0;
+    }
+
+int teardown(void)
+    {
+        return 0;
+    }
+
+int main(){
+
+    if (CUE_SUCCESS != CU_initialize_registry())
+    {
+        return CU_get_error();
+    }
+
+
+    CU_pSuite pSuite = NULL;
+
+    pSuite = CU_add_suite("ma_suite",setup,teardown);
+
+    if (NULL == pSuite)
+    {
+        CU_cleanup_registry();
+        return CU_get_error();
+    }
+
+    if (NULL == CU_add_test(pSuite,"test_is_div",test_is_div) ||
+        NULL == CU_add_test(pSuite, "test_is_prime",test_is_prime) ||
+        NULL == CU_add_test(pSuite, "test_is_not_prime",test_is_not_prime) ||
+        NULL == CU_add_test(pSuite,"file_test",file_test))
+    {
+        CU_cleanup_registry();
+        return CU_get_error();
+    }
+
+
+    CU_basic_run_tests();
+    CU_basic_show_failures(CU_get_failure_list());
+}