Skip to content
Extraits de code Groupes Projets
Valider acb9752c rédigé par Giovanna Stefanelli's avatar Giovanna Stefanelli
Parcourir les fichiers

Add new file

parent 3caa99bd
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
Pipeline #4971 en échec
//
// Created by Gio on 22/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
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter