101 lines
3.7 KiB
C
101 lines
3.7 KiB
C
#include "utl/timer.h"
|
|
|
|
#include "unt/bitset.c"
|
|
#include "unt/deque.c"
|
|
#include "unt/hashbidimap.c"
|
|
#include "unt/hashmap.c"
|
|
#include "unt/hashmultimap.c"
|
|
#include "unt/hashmultiset.c"
|
|
#include "unt/hashset.c"
|
|
#include "unt/heap.c"
|
|
#include "unt/intervalheap.c"
|
|
#include "unt/linkedlist.c"
|
|
#include "unt/list.c"
|
|
#include "unt/queue.c"
|
|
#include "unt/sortedlist.c"
|
|
#include "unt/stack.c"
|
|
#include "unt/treemap.c"
|
|
#include "unt/treeset.c"
|
|
|
|
#define cmc_run(unit, unit_fails, test_fails) \
|
|
do \
|
|
{ \
|
|
uintmax_t f = unit(); \
|
|
\
|
|
if (f != 0) \
|
|
unit_fails += 1; \
|
|
\
|
|
test_fails += f; \
|
|
\
|
|
} while (0)
|
|
|
|
int main(void)
|
|
{
|
|
// clang-format off
|
|
printf(" +---------------------------------------------------------------+\n");
|
|
printf(" | C Macro Collections Library |\n");
|
|
printf(" | |\n");
|
|
printf(" | Test Suite |\n");
|
|
printf(" | |\n");
|
|
printf(" | https://github.com/LeoVen/C-Macro-Collections |\n");
|
|
printf(" | Leonardo Vencovsky (leonardo.vencovsky@gmail.com) |\n");
|
|
printf(" +---------------------------------------------------------------+\n\n");
|
|
// clang-format on
|
|
|
|
struct cmc_timer timer;
|
|
|
|
cmc_timer_start(timer);
|
|
uintmax_t tests = 0, units = 0;
|
|
|
|
cmc_run(BitSet, units, tests);
|
|
cmc_run(BitSetIter, units, tests);
|
|
cmc_run(Deque, units, tests);
|
|
cmc_run(DequeIter, units, tests);
|
|
cmc_run(HashBidiMap, units, tests);
|
|
cmc_run(HashBidiMapIter, units, tests);
|
|
cmc_run(HashMap, units, tests);
|
|
cmc_run(HashMapIter, units, tests);
|
|
cmc_run(HashMultiMap, units, tests);
|
|
cmc_run(HashMultiMapIter, units, tests);
|
|
cmc_run(HashMultiSet, units, tests);
|
|
cmc_run(HashMultiSetIter, units, tests);
|
|
cmc_run(HashSet, units, tests);
|
|
cmc_run(HashSetIter, units, tests);
|
|
cmc_run(Heap, units, tests);
|
|
cmc_run(HeapIter, units, tests);
|
|
cmc_run(IntervalHeap, units, tests);
|
|
cmc_run(IntervalHeapIter, units, tests);
|
|
cmc_run(LinkedList, units, tests);
|
|
cmc_run(LinkedListIter, units, tests);
|
|
cmc_run(List, units, tests);
|
|
cmc_run(ListIter, units, tests);
|
|
cmc_run(Queue, units, tests);
|
|
cmc_run(QueueIter, units, tests);
|
|
cmc_run(SortedList, units, tests);
|
|
cmc_run(SortedListIter, units, tests);
|
|
cmc_run(Stack, units, tests);
|
|
cmc_run(StackIter, units, tests);
|
|
cmc_run(TreeMap, units, tests);
|
|
cmc_run(TreeMapIter, units, tests);
|
|
cmc_run(TreeSet, units, tests);
|
|
cmc_run(TreeSetIter, units, tests);
|
|
|
|
cmc_timer_stop(timer);
|
|
|
|
printf(
|
|
" +---------------------------------------------------------------+\n");
|
|
printf(
|
|
" | SUMMARY |\n");
|
|
printf(
|
|
" +---------------------------------------------------------------+\n");
|
|
printf(" | Total Units Failed : %25" PRIuMAX " units |\n", units);
|
|
printf(" | Total Tests Failed : %25" PRIuMAX " tests |\n", tests);
|
|
printf(" | Total Asserts Failed : %25" PRIuMAX " asserts |\n",
|
|
cmc_assert_failed);
|
|
printf(" | Total Runtime : %25.0lf milliseconds |\n", timer.result);
|
|
printf(
|
|
" +---------------------------------------------------------------+\n");
|
|
|
|
return tests;
|
|
}
|