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:
Leonardo committed 2020-01-30 18:20:35 -03:00
1 parent b2bef4e3cc
commit 9344440f41
30 files changed
+985 -894

No files matched your search

+79 -58
View File
@@ -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)
{