Skip to content
Extraits de code Groupes Projets
test.c 5,17 ko
Newer Older
  • Learn to ignore specific revisions
  • Laurent Paucot's avatar
    Laurent Paucot a validé
    #include <stdlib.h>
    #include <stdio.h>
    
    Laurent Paucot's avatar
    Laurent Paucot a validé
    #include "run.h"
    #include <CUnit/CUnit.h>
    #include <CUnit/TestRun.h>
    #include <CUnit/CUError.h>
    
    Laurent Paucot's avatar
    Laurent Paucot a validé
    #include <CUnit/Basic.h>
    
    Laurent Paucot's avatar
    Laurent Paucot a validé
    #include <CUnit/Automated.h>
    
    Laurent Paucot's avatar
    Laurent Paucot a validé
    
    void test_is_div(void){
        CU_ASSERT_TRUE(is_div(14,7));
    
    Laurent Paucot's avatar
    Laurent Paucot a validé
        CU_ASSERT_TRUE(is_div(25,5));
        CU_ASSERT_TRUE(is_div(1,1));
        CU_ASSERT_TRUE(is_div(0,2));
    }
    void test_is_not_div(void){
        CU_ASSERT_FALSE(is_div(15,2));
        CU_ASSERT_FALSE(is_div(33,4));
        CU_ASSERT_FALSE(is_div(2,0));
    
    Laurent Paucot's avatar
    Laurent Paucot a validé
    }
    
    
    Laurent Paucot's avatar
    Laurent Paucot a validé
    void test_is_prime(void){
        CU_ASSERT_TRUE(is_prime(13));
    
    Laurent Paucot's avatar
    Laurent Paucot a validé
        CU_ASSERT_TRUE(is_prime(2591));
        CU_ASSERT_TRUE(is_prime(4649));
        CU_ASSERT_TRUE(is_prime(2));
    
    Laurent Paucot's avatar
    Laurent Paucot a validé
    }
    void test_is_not_prime(void){
        CU_ASSERT_FALSE(is_prime(14));
    
    Laurent Paucot's avatar
    Laurent Paucot a validé
        CU_ASSERT_FALSE(is_prime(15648));
        CU_ASSERT_FALSE(is_prime(13544));
        CU_ASSERT_FALSE(is_prime(3214765));
    }
    
    void test_modpow(void){
        CU_ASSERT_EQUAL(modpow(5,3,13),8);
        CU_ASSERT_NOT_EQUAL(modpow(5,3,13),7);
    }
    
    void test_randomiser(void){
        unsigned long long *result;
        result = randomiser(8,100);
        for (int i = 0; i < 8; i++)
        {
            CU_ASSERT(result[i] < 100);
            CU_ASSERT(result[i] > 0);
        }
        free(result);
        
    
    Laurent Paucot's avatar
    Laurent Paucot a validé
    }
    
    Laurent Paucot's avatar
    Laurent Paucot a validé
    void empty_file_test(void){
    
    Laurent Paucot's avatar
    Laurent Paucot a validé
        
    
    Laurent Paucot's avatar
    Laurent Paucot a validé
        FILE *file1 = NULL;
        
    
    Laurent Paucot's avatar
    Laurent Paucot a validé
        int err = run("Test_files/empty_input.txt","actual_output.txt",4);
    
    Laurent Paucot's avatar
    Laurent Paucot a validé
        if (err == -1){
            CU_FAIL("method run failed");
            return;
        }
    
        file1 = fopen("actual_output.txt","r");
        if (file1 == NULL){
        CU_FAIL("actual_output opening fail");
        return;
        }
    
        char chaine1[20];
        CU_ASSERT_EQUAL(fgets(chaine1,20,file1),NULL);
    
        fclose(file1); 
    
    Laurent Paucot's avatar
    Laurent Paucot a validé
        
    
    Laurent Paucot's avatar
    Laurent Paucot a validé
        
    }
    void short_file_test(void){
        FILE *file1 = NULL;
        FILE *file2 = NULL;
    
        file1 = fopen("Test_files/short_expected_output.txt","r");
        if (file1 == NULL){
            CU_FAIL("short_expected_output opening fail");
            return;
        }
    
    Laurent Paucot's avatar
    Laurent Paucot a validé
        
        int err = run("Test_files/short_input.txt","actual_output.txt",4);
    
    Laurent Paucot's avatar
    Laurent Paucot a validé
        if (err == -1){
            CU_FAIL("method run failed");
    
    Laurent Paucot's avatar
    Laurent Paucot a validé
            fclose(file1);
    
    Laurent Paucot's avatar
    Laurent Paucot a validé
            return;
        }
    
    Laurent Paucot's avatar
    Laurent Paucot a validé
        
    
    Laurent Paucot's avatar
    Laurent Paucot a validé
        file2 = fopen("actual_output.txt","r");
        if (file2 == NULL){
        CU_FAIL("actual_output opening fail");
    
    Laurent Paucot's avatar
    Laurent Paucot a validé
        fclose(file1);
        
    
    Laurent Paucot's avatar
    Laurent Paucot a validé
        return;
        }
    
        char chaine1[50];
        char chaine2[50];
    
        while (fgets(chaine1,50,file1) != NULL && fgets(chaine2,50,file2) != NULL)
        {
            //printf("%s\n",chaine1);
            //printf("%s\n",chaine2);
            CU_ASSERT_STRING_EQUAL(chaine1,chaine2);
            
        }
    
        fclose(file1);
        fclose(file2);
    }
    
    Laurent Paucot's avatar
    Laurent Paucot a validé
    
    
    Laurent Paucot's avatar
    Laurent Paucot a validé
    void file_test_N_4(void){
    
    Laurent Paucot's avatar
    Laurent Paucot a validé
        FILE *file1 = NULL;
        FILE *file2 = NULL;
    
    
    Laurent Paucot's avatar
    Laurent Paucot a validé
        file1 = fopen("Test_files/expected_output.txt","r");
    
    Laurent Paucot's avatar
    Laurent Paucot a validé
        if (file1 == NULL){
            CU_FAIL("expected_output opening fail");
            return;
        }
    
    Laurent Paucot's avatar
    Laurent Paucot a validé
        
        int err = run("Test_files/input.txt","actual_output.txt",4);
    
    Laurent Paucot's avatar
    Laurent Paucot a validé
    
    
    Laurent Paucot's avatar
    Laurent Paucot a validé
        if (err == -1){
            CU_FAIL("method run failed");
    
    Laurent Paucot's avatar
    Laurent Paucot a validé
            fclose(file1);
            return;
        }
        
        file2 = fopen("actual_output.txt","r");
        if (file2 == NULL){
        CU_FAIL("actual_output opening fail");
        fclose(file1);
        return;
        }
    
        char chaine2[50];
    
        int n = 0;
    
        while (fgets(chaine2,50,file2) != NULL)
        {
            n++;
        }
        CU_ASSERT_EQUAL(n,100);
    
        fclose(file1);
        fclose(file2);
        
    }
    
    void file_test_N_1(void){
        FILE *file1 = NULL;
        FILE *file2 = NULL;
    
        file1 = fopen("Test_files/expected_output.txt","r");
        if (file1 == NULL){
            CU_FAIL("expected_output opening fail");
    
    Laurent Paucot's avatar
    Laurent Paucot a validé
            return;
        }
    
    Laurent Paucot's avatar
    Laurent Paucot a validé
        
        int err = run("Test_files/input.txt","actual_output.txt",1);
        if (err == -1){
            CU_FAIL("method run failed");
            fclose(file1);
            return;
        }
        
    
    Laurent Paucot's avatar
    Laurent Paucot a validé
        file2 = fopen("actual_output.txt","r");
    
        if (file2 == NULL){
        CU_FAIL("actual_output opening fail");
    
    Laurent Paucot's avatar
    Laurent Paucot a validé
        fclose(file1);
    
    Laurent Paucot's avatar
    Laurent Paucot a validé
        int n = 0;
    
        while (fgets(chaine2,50,file2) != NULL)
    
    Laurent Paucot's avatar
    Laurent Paucot a validé
        {
    
    Laurent Paucot's avatar
    Laurent Paucot a validé
            n++;
    
    Laurent Paucot's avatar
    Laurent Paucot a validé
        CU_ASSERT_EQUAL(n,100);
    
    Laurent Paucot's avatar
    Laurent Paucot a validé
    
        fclose(file1);
        fclose(file2);
        
    }
    
    
    Laurent Paucot's avatar
    Laurent Paucot a validé
    int setup(void){
    
    Laurent Paucot's avatar
    Laurent Paucot a validé
            return 0;
        }
    
    Laurent Paucot's avatar
    Laurent Paucot a validé
    
    
    Laurent Paucot's avatar
    Laurent Paucot a validé
        int teardown(void)
        {
            return 0;
        }
    
    Laurent Paucot's avatar
    Laurent Paucot a validé
    
    
    Laurent Paucot's avatar
    Laurent Paucot a validé
    int main(){
    
    Laurent Paucot's avatar
    Laurent Paucot a validé
        if (CUE_SUCCESS != CU_initialize_registry())
        {
            return CU_get_error();
        }
    
    Laurent Paucot's avatar
    Laurent Paucot a validé
    
    
    Laurent Paucot's avatar
    Laurent Paucot a validé
    
    
    Laurent Paucot's avatar
    Laurent Paucot a validé
        CU_pSuite pSuite = NULL;
    
    Laurent Paucot's avatar
    Laurent Paucot a validé
    
    
    Laurent Paucot's avatar
    Laurent Paucot a validé
        pSuite = CU_add_suite("ma_suite",setup,teardown);
    
    Laurent Paucot's avatar
    Laurent Paucot a validé
    
    
    Laurent Paucot's avatar
    Laurent Paucot a validé
        if (NULL == pSuite)
        {
            CU_cleanup_registry();
            return CU_get_error();
    
    Laurent Paucot's avatar
    Laurent Paucot a validé
        }
    
    Laurent Paucot's avatar
    Laurent Paucot a validé
    
        if (NULL == CU_add_test(pSuite,"test_is_div",test_is_div) ||
    
    Laurent Paucot's avatar
    Laurent Paucot a validé
            NULL == CU_add_test(pSuite,"test_is_not_div",test_is_not_div) ||
    
    Laurent Paucot's avatar
    Laurent Paucot a validé
            NULL == CU_add_test(pSuite, "test_is_prime",test_is_prime) ||
            NULL == CU_add_test(pSuite, "test_is_not_prime",test_is_not_prime) || 
    
    Laurent Paucot's avatar
    Laurent Paucot a validé
            NULL == CU_add_test(pSuite,"test_modpow",test_modpow) ||
            NULL == CU_add_test(pSuite,"test_randomiser",test_randomiser) ||
    
    Laurent Paucot's avatar
    Laurent Paucot a validé
            NULL == CU_add_test(pSuite,"empty_file_test",empty_file_test) ||
            NULL == CU_add_test(pSuite,"short_file_test",short_file_test) ||
            NULL == CU_add_test(pSuite,"file_test : N = 4",file_test_N_4) ||
            NULL == CU_add_test(pSuite,"file_test N = 1",file_test_N_1))
    
    Laurent Paucot's avatar
    Laurent Paucot a validé
        {
    
    Laurent Paucot's avatar
    Laurent Paucot a validé
            CU_cleanup_registry();
            return CU_get_error();
    
    Laurent Paucot's avatar
    Laurent Paucot a validé
        }
    
    Laurent Paucot's avatar
    Laurent Paucot a validé
        
    
    Laurent Paucot's avatar
    Laurent Paucot a validé
        CU_basic_run_tests();
        CU_automated_run_tests();
        CU_basic_show_failures(CU_get_failure_list());
    
        return EXIT_SUCCESS;
    }