Skip to content
Extraits de code Groupes Projets

Project3

Ouvert Giovanna Stefanelli a demandé de fusionner stefanelli/projet3_first_pull_request:Project3 vers master
Comparer et
14 fichiers
+ 1754
1
Comparer les modifications
  • Côte à côte
  • En ligne
Fichiers
14
Fact_UnitTest.c 0 → 100644
+ 151
0
//
// Created by Gio on 23/04/2020.
//
/*
* UNIT TEST WITH CUNIT
* Basic Functions:
* 1. is_div
* 2. is_prime
*/
#include <sys/types.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include <stdbool.h>
//#ifndef _CUNIT_BASIC_H
//#define _CUNIT_BASIC_H
#include "CUnit/CUnit.h"
#include "CUnit/Basic.h"
/*
* FUNCTIONS UNDER UNIT TEST
*/
bool is_div(unsigned long numbr, unsigned long i){
if((numbr % i) == 0) { // verify if i is the divider of numbr
return(true); // i is a divider of numbr
} else {
return(false); // i is not a divider of numbr
}
}
bool is_prime(unsigned long nbr) {
for (unsigned long j = 2; j <= sqrt(nbr); j++) {
if ((nbr % j) == 0) { // verify if i is the divider of nbr
return (false); // i is a divider of nbr
}
}
return (true); // i is a prime number
}
/*
* CUNIT TEST PROGRAMME
*/
#define IMPAIR 666343 // Prime dividers: 89 7487
#define PAIR1 2548
#define PAIR2 26
#define ZERO 0
#define NEGATIVE -56056
#define PRIME1 529973
#define PRIME2 89
void test_is_div(void) {
CU_ASSERT_FALSE(is_div(IMPAIR, PAIR1) == false ); //False
CU_ASSERT_FALSE(is_div(ZERO, PAIR2) == false); //False
CU_ASSERT_FALSE(is_div(PRIME1, IMPAIR) == false); //False
CU_ASSERT_FALSE(is_div(NEGATIVE, PAIR1) == false); //False**
CU_ASSERT_FALSE(is_div(PRIME1, PAIR2) == false); //False
CU_ASSERT_TRUE(is_div(PAIR1, PAIR2) == true); //True
CU_ASSERT_TRUE(is_div(IMPAIR, PRIME2) == true); //True
}
void test_is_prime(void) {
CU_ASSERT_FALSE(is_prime(IMPAIR) == false); //False
CU_ASSERT_FALSE(is_prime(ZERO) == false); //False
CU_ASSERT_TRUE(is_prime(PRIME1) == true); //True
CU_ASSERT_FALSE(is_prime(NEGATIVE) == false); //False
CU_ASSERT_FALSE(is_prime(PAIR1) == false); //False
}
/*
* MAIN CUNIT SUITE
*/
/* Pointer to the file used by the tests. */
static FILE* temp_file = NULL;
/*
* The suite initialization function.
* Opens a temporary file used by the tests.
*/
int init_suite(void) {
temp_file = fopen("test_file.txt", "w+");
if (temp_file == NULL) {
return -1;
} else {
return 0;
}
}
/*
* The suite cleanup function.
* Closes the temporary file used by the tests.
*/
int clean_suite(void) {
if (fclose(temp_file) != 0) {
return -1;
} else {
temp_file = NULL;
return 0;
}
}
int main() {
CU_pSuite pSuite = NULL;
//CU_pSuite pSuite2 = NULL;
/* Initialise CUnit test registry */
if (CU_initialize_registry() != CUE_SUCCESS) {
return (CU_get_error());
}
/*
* Add suite1 to registry
*/
pSuite = CU_add_suite("Basic_Test_Suite1", init_suite, clean_suite);
if (pSuite == NULL) {
CU_cleanup_registry();
return (CU_get_error());
}
/*
* add test1 "is_div" to suite1
*/
if ((CU_add_test(pSuite, "\n\n……… Testing is_div function……..\n\n", test_is_div)) == NULL)
{
CU_cleanup_registry();
return (CU_get_error());
}
/*
* add test1 "is_prime" to suite1
*/
if ((CU_add_test(pSuite, "\n\n……… Testing is_prime function……..\n\n", test_is_prime)) == NULL)
{
CU_cleanup_registry();
return (CU_get_error());
}
/*
* Run all tests using the CUnit Basic interface
* and provide output to the screen
* Finally clean the registry
*/
CU_basic_set_mode(CU_BRM_VERBOSE);
CU_basic_run_tests();
CU_cleanup_registry();
return (CU_get_error());
}
\ No newline at end of file
Chargement en cours