90 lines
2.2 KiB
C
90 lines
2.2 KiB
C
#include "ihct/ihct.h"
|
|
#include "list.h"
|
|
|
|
TEST(node_create)
|
|
{
|
|
node_t node = { INT, { .vi = -1 }, 0 };
|
|
ASSERT(node.type == INT && node.vi == -1);
|
|
}
|
|
|
|
TEST(list_create)
|
|
{
|
|
node_t head = { INT, { .vi = 1 }, 0 };
|
|
node_t n = { INT, { .vi = 2 }, 0 };
|
|
list_append(&head, &n);
|
|
ASSERT(head.next == &n);
|
|
}
|
|
|
|
TEST(list_query)
|
|
{
|
|
node_t n0 = { INT, { .vi = 1 }, 0 };
|
|
node_t n1 = { INT, { .vi = 2 }, 0 };
|
|
node_t n2 = { INT, { .vi = 3 }, 0 };
|
|
list_append(&n0, &n1);
|
|
list_append(&n0, &n2);
|
|
ASSERT(list_nth(&n0, 1) == &n1);
|
|
}
|
|
|
|
TEST(list_delete)
|
|
{
|
|
node_t n0 = { INT, { .vi = 1 }, 0 };
|
|
node_t n1 = { INT, { .vi = 2 }, 0 };
|
|
node_t n2 = { INT, { .vi = 3 }, 0 };
|
|
list_append(&n0, &n1);
|
|
list_append(&n0, &n2);
|
|
list_delete_nth(&n0, 1);
|
|
ASSERT(list_nth(&n0, 1) == &n2);
|
|
}
|
|
|
|
TEST(dlist_size)
|
|
{
|
|
dnode_t n0 = { INT, { .vi = 1 }, 0, 0 };
|
|
dnode_t n1 = { INT, { .vi = 2 }, 0, 0 };
|
|
dnode_t n2 = { INT, { .vi = 3 }, 0, 0 };
|
|
dlist_append(&n0, &n1);
|
|
dlist_append(&n1, &n2);
|
|
//list_delete_nth(&n0, 1);
|
|
ASSERT(dlist_size(&n0) == 3);
|
|
ASSERT(dlist_size(&n0) == 3);
|
|
}
|
|
|
|
TEST(dlist_nth)
|
|
{
|
|
dnode_t n0 = { INT, { .vi = 1 }, 0, 0 };
|
|
dnode_t n1 = { INT, { .vi = 1 }, 0, 0 };
|
|
dnode_t n2 = { INT, { .vi = 1 }, 0, 0 };
|
|
dnode_t n3 = { INT, { .vi = 1 }, 0, 0 };
|
|
dlist_append(&n0, &n1);
|
|
dlist_append(&n1, &n2);
|
|
dlist_append(&n2, &n3);
|
|
ASSERT(dlist_nth(1, &n0, 0, 0) == &n1);
|
|
ASSERT(dlist_nth(1, &n0, &n3, 4) == &n1);
|
|
ASSERT(dlist_nth(2, &n0, 0, 0) == &n2);
|
|
ASSERT(dlist_nth(2, &n0, &n3, 4) == &n2);
|
|
ASSERT(dlist_nth(0, &n0, 0, 0) == &n0);
|
|
ASSERT(dlist_nth(3, &n0, &n3, 4) == &n3);
|
|
ASSERT(!dlist_nth(4, &n0, &n3, 4));
|
|
}
|
|
|
|
TEST(dlist_nth_circular_and_is_circular)
|
|
{
|
|
dnode_t n0 = { INT, { .vi = 0 }, 0, 0 };
|
|
dnode_t n1 = { INT, { .vi = 1 }, 0, 0 };
|
|
dnode_t n2 = { INT, { .vi = 2 }, 0, 0 };
|
|
dnode_t n3 = { INT, { .vi = 3 }, 0, 0 };
|
|
dnode_t n4 = { INT, { .vi = 4 }, 0, 0 };
|
|
dlist_append(&n0, &n1);
|
|
dlist_append(&n0, &n2);
|
|
dlist_append(&n0, &n3);
|
|
dlist_append(&n0, &n4);
|
|
dlist_append(&n4, &n0);
|
|
|
|
ASSERT(dlist_nth_circular(5, &n4) == &n4);
|
|
ASSERT(dlist_is_circular(&n0) == 1);
|
|
}
|
|
|
|
|
|
int main(int argc, char **argv)
|
|
{
|
|
return IHCT_RUN(argc, argv);
|
|
}
|