first test isgood
This commit is contained in:
@@ -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)
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user