first test isgood

This commit is contained in:
2023-07-17 00:35:57 +02:00
parent b9bef119dc
commit 0a9337e675
9 changed files with 242 additions and 314 deletions
+12 -14
View File
@@ -1,24 +1,22 @@
#include "src/set_theoric_t/set_theoric_t.h"
#define CREATE_SET_THEORIC(type, id)\
type * CREATE_SET_THEORIC_##type(type id){\
#define GENERATE_UNSIGNED_SET_THEORIC(type)\
SET_THEORIC_##type * CREATE_SET_THEORIC_##type(size_t id){\
if(id == 0) return NULL;\
SET_THEORIC_##type *ret_set = malloc(sizeof(SET_THEORIC_##type));\
ret_set->id = id;\
ret_set->set = malloc(id*sizeof(type));\
for(type i = 0; i < id; ++i) ret_set->set[i]=i;\
return ret_set; }
CREATE_SET_THEORIC(TYPE_U_CHAR)
CREATE_SET_THEORIC(TYPE_U_INT)
CREATE_SET_THEORIC(TYPE_U_LONG_INT)
return ret_set; }\
\
bool IS_SET_THEORIC_##type(SET_THEORIC_##type *st){\
for(type i = 0; i < st->id; ++i){\
if(st->set[i] != i) return false;\
return true; } }\
#define IS_SET_THEORIC(type, st)\
bool IS_SET_THEORIC_##type(type *st){\
for(type i = 0; i < st->id; ++i){\
if(st->set[i] != i) return false;\
return true; }
IS_SET_THEORIC(TYPE_U_CHAR,st)
IS_SET_THEORIC(TYPE_U_INT,st)
IS_SET_THEORIC(TYPE_U_LONG_INT,st)
GENERATE_UNSIGNED_SET_THEORIC(TYPE_U_CHAR)
GENERATE_UNSIGNED_SET_THEORIC(TYPE_U_INT)
GENERATE_UNSIGNED_SET_THEORIC(TYPE_U_L_INT)
GENERATE_UNSIGNED_SET_THEORIC(TYPE_SIZE_T)
+9 -17
View File
@@ -5,26 +5,18 @@
#include "src/tools_t/tools_t.h"
#define STRUCT_SET_THEORIC(type)\
#define GENERATE_UNSIGNED_SET_THEORIC(type)\
struct SET_THEORIC_##type{\
type id;\
type *set;};
type *set;};\
typedef struct SET_THEORIC_##type SET_THEORIC_##type; \
SET_THEORIC_##type * CREATE_SET_THEORIC_##type(TYPE_##type);\
bool IS_SET_THEORIC_##type(SET_THEORIC_##type *st);\
STRUCT_SET_THEORIC(TYPE_U_CHAR)
STRUCT_SET_THEORIC(TYPE_U_INT)
STRUCT_SET_THEORIC(TYPE_U_LONG_INT)
typedef struct SET_THEORIC_TYPE_U_CHAR SET_THEORIC_TYPE_U_CHAR;
typedef struct SET_THEORIC_TYPE_U_INT SET_THEORIC_TYPE_U_INT;
typedef struct SET_THEORIC_TYPE_U_LONG_INT SET_THEORIC_TYPE_U_LONG_INT;
SET_THEORIC_TYPE_U_CHAR * CREATE_SET_THEORIC_TYPE_U_CHAR(TYPE_U_CHAR);
SET_THEORIC_TYPE_U_INT * CREATE_SET_THEORIC_TYPE_U_INT(TYPE_U_INT);
SET_THEORIC_TYPE_U_LONG_INT * CREATE_SET_THEORIC_TYPE_U_LONG_INT(TYPE_U_LONG_INT);
bool IS_SET_THEORIC_TYPE_U_CHAR(SET_THEORIC_TYPE_U_CHAR *st);
bool IS_SET_THEORIC_TYPE_U_INT(SET_THEORIC_TYPE_U_INT *st);
bool IS_SET_THEORIC_TYPE_U_LONG_INT(SET_THEORIC_TYPE_U_LONG_INT *st);
GENERATE_UNSIGNED_SET_THEORIC(TYPE_U_CHAR)
GENERATE_UNSIGNED_SET_THEORIC(TYPE_U_INT)
GENERATE_UNSIGNED_SET_THEORIC(TYPE_U_L_INT)
GENERATE_UNSIGNED_SET_THEORIC(TYPE_SIZE_T)