add .gitignore and some asserts in test_t

This commit is contained in:
2023-08-15 15:47:34 +02:00
parent 5c870ed113
commit 248ef63738
7 changed files with 85 additions and 57 deletions
+25 -5
View File
@@ -39,16 +39,27 @@ TEST(size_permutation2)
else print_KO_with_msg_endl("NOT GOOD test size not passed ");
*/
}
TEST(size_permutation2){
TEST(float_equal){
printf("another size_permutation2 float\n");
ASSERT_TRUE(true);
float a = 1.1;
float b = 1.1;
float a = 1.00001f;
float b = 1.00001f;
ASSERT_EQ_TYPE_FLOAT(a,b);
b=1.10001;
b=1.0000101f;
ASSERT_EQ_TYPE_FLOAT(a,b);
ASSERT_EQ_TYPE_FLOAT(1.2,b);
ASSERT_EQ_TYPE_FLOAT(1.0000102f,b);
}
TEST(double_equal){
printf("another size_permutation2 double\n");
ASSERT_TRUE(true);
double a = 1.00000001;
double b = 1.00000001;
ASSERT_EQ_TYPE_DOUBLE(a,b);
b=1.0000000101;
ASSERT_EQ_TYPE_DOUBLE(a,b);
ASSERT_EQ_TYPE_DOUBLE(1.0000000102,b);
}
TEST(){
unsigned char c = 'a';
@@ -58,6 +69,15 @@ TEST(){
ASSERT_TRUE(true);
}
TEST(){
int a = 5;
long b = 5;
ASSERT_EQ(a,b);
a=4;
ASSERT_EQ(a,b);
}
//END_TEST(size_permutation)
//INIT()
+15 -14
View File
@@ -89,20 +89,20 @@ ASSERT_EXPECT_FROM(true,false)
ASSERT_EXPECT_FROM(false,true)
#define ASSERT_EQ_TYPE(type)\
bool assert_eq_##type(type var1, type var2, \
const char *var1_name, const char *var2_name, const char *func_name){ \
if(COMPARE_N_##type(&var1, &var2) == 0){ \
INCR_PASS_CNT; \
printHK_color(GREEN_K,HK_TR," 1 test passed from %s \n\n",func_name); \
return true; \
}else { \
INCR_FAIL_CNT; \
printHK_color(RED_K,HK_TR," 1 test failed from %s \n",func_name); \
append_failed_list(func_name); \
printf("Expected equality of these values:\n %s\n\tWhich is: %s\n %s\n\tWhich is: %s\n\n"\
,var1_name, type##_TO_STR(var1), var2_name, type##_TO_STR(var1)); \
return false; \
} \
bool assert_eq_##type(type var1, type var2, \
const char *var1_name, const char *var2_name, const char *func_name){ \
if(COMPARE_N_##type(&var1, &var2) == 0){ \
INCR_PASS_CNT; \
printHK_color(GREEN_K,HK_TR," 1 test passed from %s \n\n",func_name); \
return true; \
}else { \
INCR_FAIL_CNT; \
printHK_color(RED_K,HK_TR," 1 test failed from %s \n",func_name); \
append_failed_list(func_name); \
printf("Expected equality of these values:\n %s\n\tWhich is: %s\n %s\n\tWhich is: %s\n\n" \
,var1_name, type##_TO_STR(var1), var2_name, type##_TO_STR(var2)); \
return false; \
} \
}
ASSERT_EQ_TYPE(TYPE_CHAR)
@@ -118,6 +118,7 @@ ASSERT_EQ_TYPE(TYPE_L_DOUBLE)
ASSERT_EQ_TYPE(TYPE_STRING)
void
append_func(void (*run)(void), char *name){
static struct func *f_static = NULL;
+1 -1
View File
@@ -9,7 +9,6 @@
#include "src/tools_t/tools_t.h"
struct func {
char *name;
void (*run)(void);
@@ -64,6 +63,7 @@ GEN_ASSERT_EQ_TYPE_FUNC(TYPE_STRING)
#define ASSERT_EQ_TYPE_L_DOUBLE(var1, var2) if(assert_eq_TYPE_L_DOUBLE(var1, var2, #var1, #var2, __func__) == false) return ;
#define ASSERT_EQ_TYPE_STRING(var1, var2) if(assert_eq_TYPE_STRING(var1, var2, #var1, #var2, __func__) == false) return ;
#define ASSERT_EQ(var1, var2) if(assert_eq_TYPE_L_INT(var1, var2, #var1, #var2, __func__) == false) return ;
#define CONCAT(x,y) x ## y
+31 -37
View File
@@ -15,25 +15,44 @@ GEN_TO_STR_N(TYPE_U_INT,22,"%u")
GEN_TO_STR_N(TYPE_L_INT,22,"%ld")
GEN_TO_STR_N(TYPE_U_L_INT,22,"%lu")
GEN_TO_STR_N(TYPE_SIZE_T,22,"%lu")
GEN_TO_STR_N(TYPE_FLOAT,128,"%f")
GEN_TO_STR_N(TYPE_DOUBLE,256,"%lf")
GEN_TO_STR_N(TYPE_L_DOUBLE,256,"%Lf")
GEN_TO_STR_N(TYPE_FLOAT,128,"%.10f")
GEN_TO_STR_N(TYPE_DOUBLE,256,"%.30lf")
GEN_TO_STR_N(TYPE_L_DOUBLE,256,"%.30Lf")
TYPE_STRING TYPE_STRING_TO_STR(TYPE_STRING var){
return var;
}
#define MIN_ABS_FLOAT 1
#define MULT_FLOAT_ERR 100000
#define PRECISION_TYPE_CHAR 1
#define PRECISION_TYPE_U_CHAR 1
#define PRECISION_TYPE_INT 1
#define PRECISION_TYPE_U_INT 1
#define PRECISION_TYPE_L_INT 1
#define PRECISION_TYPE_U_L_INT 1
#define PRECISION_TYPE_SIZE_T 1
// with gcc we can change value of theses PRECISION_TYPES below with: gcc -D PRECISION_TYPE_FLOAT=100000 for instance!
#ifndef PRECISION_TYPE_FLOAT
#define PRECISION_TYPE_FLOAT 100000000
#endif
#ifndef PRECISION_TYPE_DOUBLE
#define PRECISION_TYPE_DOUBLE 100000000000
#endif
#ifndef PRECISION_TYPE_L_DOUBLE
#define PRECISION_TYPE_L_DOUBLE 100000000000000
#endif
#define GENERATE_FUNCTION_NUMERIC(type)\
int COMPARE_N_##type(const void *a, const void *b){ \
if (abs((*(type*)a - *(type*)b) * MULT_FLOAT_ERR) < MIN_ABS_FLOAT ) return 0; \
if (*(type*)a > *(type*)b) return 1; \
return -1; }\
\
void COPY_ARRAY_##type(type *dst, const type *src, size_t size){\
for(size_t i = 0; i < size; ++i) dst[i]=src[i]; }\
int COMPARE_N_##type(const void *a, const void *b){ \
type diff = (*(type*)a - *(type*)b)*PRECISION_##type; \
debug_print(" diff = %s a=%s b=%s\n",type##_TO_STR(diff),type##_TO_STR(*(type*)a), type##_TO_STR(*(type*)b));\
if ((diff < 1) && (diff > -1) ) return 0; \
return diff; \
} \
\
void COPY_ARRAY_##type(type *dst, const type *src, size_t size){ \
for(size_t i = 0; i < size; ++i) dst[i]=src[i]; \
} \
\
int
@@ -105,28 +124,3 @@ GENERATE_FUNCTION_ALL(TYPE_STRING)
/*
int main()
{
unsigned int ui1 = 2545466;
unsigned int ui2 = 2544566;
printf(" %u >? %u = %d \n",ui1,ui2,COMPARE_N_TYPE_U_INT(&ui1,&ui2));
printf(" %u >? %u = %d \n",ui1,ui1,COMPARE_N_TYPE_U_INT(&ui1,&ui1));
printf(" %u >? %u = %d \n",ui2,ui1,COMPARE_N_TYPE_U_INT(&ui2,&ui1));
int i1 = 2545466;
int i2 = 2544566;
printf(" %d >? %d = %d \n",i1,i2,COMPARE_N_TYPE_U_INT(&i1,&i2));
printf(" %d >? %d = %d \n",i1,i1,COMPARE_N_TYPE_U_INT(&i1,&i1));
printf(" %d >? %d = %d \n",i2,i1,COMPARE_N_TYPE_U_INT(&i2,&i1));
int tabi[]={5,2,6,4,3,1};
int tabr[6]={0};
COPY_ARRAY_TYPE_INT(tabr,tabi,6);
for(size_t i=0; i<6; ++i) printf(" %d \n", tabr[i]);
printf("MIN = %d \n",MIN_ARRAY_TYPE_INT(tabr,6));
return 0;
}*/
+12
View File
@@ -6,6 +6,18 @@
#include <string.h>
#include <stdbool.h>
// to define DEBUG in gcc cli do: gcc -D DEBUG=1 or 0 if need!
#ifndef DEBUG
#define DEBUG 0
#endif
#define debug_print(fmt, ...) \
do { if (DEBUG) fprintf(stderr, "%s:%d:%s(): " fmt, __FILE__, \
__LINE__, __func__, __VA_ARGS__); } while (0)
#define TYPE_CHAR char
#define TYPE_U_CHAR unsigned char
#define TYPE_INT int