From 248ef63738ea242ec1993cae34e6ccbd1900962f Mon Sep 17 00:00:00 2001 From: fanasina Date: Tue, 15 Aug 2023 15:47:34 +0200 Subject: [PATCH] add .gitignore and some asserts in test_t --- .gitignore | 1 + isgood | Bin 42456 -> 42688 bytes src/test_t/is_good.c | 30 +++++++++++++++---- src/test_t/test_t.c | 29 +++++++++--------- src/test_t/test_t.h | 2 +- src/tools_t/tools_t.c | 68 +++++++++++++++++++----------------------- src/tools_t/tools_t.h | 12 ++++++++ 7 files changed, 85 insertions(+), 57 deletions(-) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..1377554 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +*.swp diff --git a/isgood b/isgood index 0045f4ab715fd39d3bc723b1c72c3b10ee5a6b4b..2e6a955d8be3adf568dfa6c267815164835d8435 100644 GIT binary patch literal 42688 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 Kw;9;7+W!aKA6#qz literal 42456 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 MxX!c**s9w90|=QZH2?qr diff --git a/src/test_t/is_good.c b/src/test_t/is_good.c index 1bf676f..69b7925 100644 --- a/src/test_t/is_good.c +++ b/src/test_t/is_good.c @@ -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() diff --git a/src/test_t/test_t.c b/src/test_t/test_t.c index d115cac..0da727a 100644 --- a/src/test_t/test_t.c +++ b/src/test_t/test_t.c @@ -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; diff --git a/src/test_t/test_t.h b/src/test_t/test_t.h index 0c83264..c50c30a 100644 --- a/src/test_t/test_t.h +++ b/src/test_t/test_t.h @@ -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 diff --git a/src/tools_t/tools_t.c b/src/tools_t/tools_t.c index ed07fed..dea4fb9 100644 --- a/src/tools_t/tools_t.c +++ b/src/tools_t/tools_t.c @@ -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; -}*/ - diff --git a/src/tools_t/tools_t.h b/src/tools_t/tools_t.h index 3f18fce..c952df0 100644 --- a/src/tools_t/tools_t.h +++ b/src/tools_t/tools_t.h @@ -6,6 +6,18 @@ #include #include + +// 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