Fast forward changes (read desc)
Freezing tests outside of ./tests/main Formatting all files in ./src and ./tests except for ./tests/codecov Created makefile for automated code formatting using clang-format Now bidimap and deque operate with Functions Tables
This commit is contained in:
1 parent
b2bef4e3cc
commit
9344440f41
30 files changed
+985
-894
No files matched your search
+79
-58
@@ -33,66 +33,87 @@ CMC_COLLECTION_GENERATE(INTERVALHEAP, ih, iheap, /* K */, int)
|
||||
CMC_COLLECTION_GENERATE(MULTIMAP, mm, mmap, int, double)
|
||||
CMC_COLLECTION_GENERATE(MULTISET, ms, mset, /* K */, int)
|
||||
|
||||
#define ITERATOR_TEST(NAME, PFX, sname, initfunc, insertbody, sumbody, validation1, validation2) \
|
||||
void NAME##_iterator_test(void) \
|
||||
{ \
|
||||
int sum1 = 0; \
|
||||
double sum2 = 0.0; \
|
||||
\
|
||||
struct sname *coll = initfunc; \
|
||||
for (int i = 0; i < 10; i++) \
|
||||
{ \
|
||||
insertbody; \
|
||||
} \
|
||||
\
|
||||
struct sname##_iter iter; \
|
||||
PFX##_iter_init(&iter, coll); \
|
||||
\
|
||||
for (int j = 0; j < 4; j++) \
|
||||
{ \
|
||||
while (!PFX##_iter_end(&iter)) \
|
||||
{ \
|
||||
sumbody; \
|
||||
PFX##_iter_next(&iter); \
|
||||
} \
|
||||
while (!PFX##_iter_start(&iter)) \
|
||||
{ \
|
||||
sumbody; \
|
||||
PFX##_iter_prev(&iter); \
|
||||
} \
|
||||
} \
|
||||
\
|
||||
for (PFX##_iter_to_start(&iter); !PFX##_iter_end(&iter); PFX##_iter_next(&iter)) \
|
||||
{ \
|
||||
sumbody; \
|
||||
} \
|
||||
\
|
||||
for (PFX##_iter_to_end(&iter); !PFX##_iter_start(&iter); PFX##_iter_prev(&iter)) \
|
||||
{ \
|
||||
sumbody; \
|
||||
} \
|
||||
\
|
||||
PFX##_free(coll, NULL); \
|
||||
\
|
||||
if ((validation1) && (validation2)) \
|
||||
printf("%12s PASSED\n", #NAME); \
|
||||
else \
|
||||
printf("%12s FAILED\n", #NAME); \
|
||||
#define ITERATOR_TEST(NAME, PFX, sname, initfunc, insertbody, sumbody, \
|
||||
validation1, validation2) \
|
||||
void NAME##_iterator_test(void) \
|
||||
{ \
|
||||
int sum1 = 0; \
|
||||
double sum2 = 0.0; \
|
||||
\
|
||||
struct sname *coll = initfunc; \
|
||||
for (int i = 0; i < 10; i++) \
|
||||
{ \
|
||||
insertbody; \
|
||||
} \
|
||||
\
|
||||
struct sname##_iter iter; \
|
||||
PFX##_iter_init(&iter, coll); \
|
||||
\
|
||||
for (int j = 0; j < 4; j++) \
|
||||
{ \
|
||||
while (!PFX##_iter_end(&iter)) \
|
||||
{ \
|
||||
sumbody; \
|
||||
PFX##_iter_next(&iter); \
|
||||
} \
|
||||
while (!PFX##_iter_start(&iter)) \
|
||||
{ \
|
||||
sumbody; \
|
||||
PFX##_iter_prev(&iter); \
|
||||
} \
|
||||
} \
|
||||
\
|
||||
for (PFX##_iter_to_start(&iter); !PFX##_iter_end(&iter); \
|
||||
PFX##_iter_next(&iter)) \
|
||||
{ \
|
||||
sumbody; \
|
||||
} \
|
||||
\
|
||||
for (PFX##_iter_to_end(&iter); !PFX##_iter_start(&iter); \
|
||||
PFX##_iter_prev(&iter)) \
|
||||
{ \
|
||||
sumbody; \
|
||||
} \
|
||||
\
|
||||
PFX##_free(coll, NULL); \
|
||||
\
|
||||
if ((validation1) && (validation2)) \
|
||||
printf("%12s PASSED\n", #NAME); \
|
||||
else \
|
||||
printf("%12s FAILED\n", #NAME); \
|
||||
}
|
||||
|
||||
ITERATOR_TEST(DEQUE, d, deque, d_new(20), d_push_front(coll, i), sum1 += d_iter_value(&iter), sum1 == 450, 1)
|
||||
ITERATOR_TEST(HASHMAP, hm, hmap, hm_new(50, 0.6, intcmp, inthash), hm_insert(coll, i, (double)i / 10.0), sum1 += hm_iter_key(&iter); sum2 += hm_iter_value(&iter), sum1 == 450, (int)sum2 == (int)45)
|
||||
ITERATOR_TEST(HASHSET, hs, hset, hs_new(50, 0.6, intcmp, inthash), hs_insert(coll, i), sum1 += hs_iter_value(&iter), sum1 == 450, 1)
|
||||
ITERATOR_TEST(HEAP, h, heap, h_new(20, cmc_max_heap, intcmp), h_insert(coll, i), sum1 += h_iter_value(&iter), sum1 == 450, 1)
|
||||
ITERATOR_TEST(LINKEDLIST, ll, linked, ll_new(), ll_push_back(coll, i), sum1 += ll_iter_value(&iter), sum1 == 450, 1)
|
||||
ITERATOR_TEST(LIST, l, list, l_new(20), l_push_back(coll, i), sum1 += l_iter_value(&iter), sum1 == 450, 1)
|
||||
ITERATOR_TEST(QUEUE, q, queue, q_new(20), q_enqueue(coll, i), sum1 += q_iter_value(&iter), sum1 == 450, 1)
|
||||
ITERATOR_TEST(STACK, s, stack, s_new(20), s_push(coll, i), sum1 += s_iter_value(&iter), sum1 == 450, 1)
|
||||
ITERATOR_TEST(TREEMAP, tm, tmap, tm_new(intcmp), tm_insert(coll, i, (double)i / 10.0), sum1 += tm_iter_key(&iter); sum2 += tm_iter_value(&iter), sum1 == 450, (int)sum2 == (int)45)
|
||||
ITERATOR_TEST(TREESET, ts, tset, ts_new(intcmp), ts_insert(coll, i), sum1 += ts_iter_value(&iter), sum1 == 450, 1)
|
||||
ITERATOR_TEST(INTERVALHEAP, ih, iheap, ih_new(20, intcmp), ih_insert(coll, i), sum1 += ih_iter_value(&iter), sum1 == 450, 1)
|
||||
ITERATOR_TEST(MULTIMAP, mm, mmap, mm_new(50, 0.8, intcmp, inthash), mm_insert(coll, i, (double)i / 10.0), sum1 += mm_iter_key(&iter); sum2 += mm_iter_value(&iter), sum1 == 450, (int)sum2 == (int)45)
|
||||
ITERATOR_TEST(MULTISET, ms, mset, ms_new(50, 0.6, intcmp, inthash), ms_insert(coll, i), sum1 += ms_iter_value(&iter); sum2 += ms_iter_multiplicity(&iter), sum1 == 450, (size_t)sum2 == 100)
|
||||
ITERATOR_TEST(DEQUE, d, deque, d_new(20), d_push_front(coll, i),
|
||||
sum1 += d_iter_value(&iter), sum1 == 450, 1)
|
||||
ITERATOR_TEST(HASHMAP, hm, hmap, hm_new(50, 0.6, intcmp, inthash),
|
||||
hm_insert(coll, i, (double)i / 10.0), sum1 += hm_iter_key(&iter);
|
||||
sum2 += hm_iter_value(&iter), sum1 == 450, (int)sum2 == (int)45)
|
||||
ITERATOR_TEST(HASHSET, hs, hset, hs_new(50, 0.6, intcmp, inthash),
|
||||
hs_insert(coll, i), sum1 += hs_iter_value(&iter), sum1 == 450, 1)
|
||||
ITERATOR_TEST(HEAP, h, heap, h_new(20, cmc_max_heap, intcmp), h_insert(coll, i),
|
||||
sum1 += h_iter_value(&iter), sum1 == 450, 1)
|
||||
ITERATOR_TEST(LINKEDLIST, ll, linked, ll_new(), ll_push_back(coll, i),
|
||||
sum1 += ll_iter_value(&iter), sum1 == 450, 1)
|
||||
ITERATOR_TEST(LIST, l, list, l_new(20), l_push_back(coll, i),
|
||||
sum1 += l_iter_value(&iter), sum1 == 450, 1)
|
||||
ITERATOR_TEST(QUEUE, q, queue, q_new(20), q_enqueue(coll, i),
|
||||
sum1 += q_iter_value(&iter), sum1 == 450, 1)
|
||||
ITERATOR_TEST(STACK, s, stack, s_new(20), s_push(coll, i),
|
||||
sum1 += s_iter_value(&iter), sum1 == 450, 1)
|
||||
ITERATOR_TEST(TREEMAP, tm, tmap, tm_new(intcmp),
|
||||
tm_insert(coll, i, (double)i / 10.0), sum1 += tm_iter_key(&iter);
|
||||
sum2 += tm_iter_value(&iter), sum1 == 450, (int)sum2 == (int)45)
|
||||
ITERATOR_TEST(TREESET, ts, tset, ts_new(intcmp), ts_insert(coll, i),
|
||||
sum1 += ts_iter_value(&iter), sum1 == 450, 1)
|
||||
ITERATOR_TEST(INTERVALHEAP, ih, iheap, ih_new(20, intcmp), ih_insert(coll, i),
|
||||
sum1 += ih_iter_value(&iter), sum1 == 450, 1)
|
||||
ITERATOR_TEST(MULTIMAP, mm, mmap, mm_new(50, 0.8, intcmp, inthash),
|
||||
mm_insert(coll, i, (double)i / 10.0), sum1 += mm_iter_key(&iter);
|
||||
sum2 += mm_iter_value(&iter), sum1 == 450, (int)sum2 == (int)45)
|
||||
ITERATOR_TEST(MULTISET, ms, mset, ms_new(50, 0.6, intcmp, inthash),
|
||||
ms_insert(coll, i), sum1 += ms_iter_value(&iter);
|
||||
sum2 += ms_iter_multiplicity(&iter), sum1 == 450,
|
||||
(size_t)sum2 == 100)
|
||||
|
||||
int main(void)
|
||||
{
|
||||
|
||||
Reference in new issue
Block a user