mirror of
https://gitee.com/apaki/unicstl.git
synced 2025-05-17 19:41:36 +08:00
tree迭代器单元测试通过
This commit is contained in:
parent
34875ce3fa
commit
f9486bae40
28
src/tree.c
28
src/tree.c
@ -2294,13 +2294,15 @@ tree_t tree_avl_new(uint32_t obj_size)
|
|||||||
{
|
{
|
||||||
tree_t tree = NULL;
|
tree_t tree = NULL;
|
||||||
tree = (struct _tree*)malloc(sizeof(struct _tree));
|
tree = (struct _tree*)malloc(sizeof(struct _tree));
|
||||||
if(tree != NULL)
|
if(tree == NULL)
|
||||||
{
|
{
|
||||||
if(tree_avl_init(tree, obj_size) != true)
|
return NULL;
|
||||||
{
|
}
|
||||||
free(tree);
|
|
||||||
tree = NULL;
|
if(tree_avl_init(tree, obj_size) != true)
|
||||||
}
|
{
|
||||||
|
free(tree);
|
||||||
|
return NULL;
|
||||||
}
|
}
|
||||||
return tree;
|
return tree;
|
||||||
}
|
}
|
||||||
@ -2308,13 +2310,15 @@ tree_t tree_rb_new(uint32_t obj_size)
|
|||||||
{
|
{
|
||||||
tree_t tree = NULL;
|
tree_t tree = NULL;
|
||||||
tree = (struct _tree*)malloc(sizeof(struct _tree));
|
tree = (struct _tree*)malloc(sizeof(struct _tree));
|
||||||
if(tree != NULL)
|
if(tree == NULL)
|
||||||
{
|
{
|
||||||
if(tree_rb_init(tree, obj_size) != true)
|
return NULL;
|
||||||
{
|
}
|
||||||
free(tree);
|
|
||||||
tree = NULL;
|
if(tree_rb_init(tree, obj_size) != true)
|
||||||
}
|
{
|
||||||
|
free(tree);
|
||||||
|
return NULL;
|
||||||
}
|
}
|
||||||
return tree;
|
return tree;
|
||||||
}
|
}
|
||||||
|
@ -911,8 +911,6 @@ static void test_avltree_iter_2(void)
|
|||||||
int buff[32];
|
int buff[32];
|
||||||
int temp = 0;
|
int temp = 0;
|
||||||
uint32_t len = sizeof(data) / sizeof(data[0]);
|
uint32_t len = sizeof(data) / sizeof(data[0]);
|
||||||
|
|
||||||
// int * iter = NULL;
|
|
||||||
int count = 0;
|
int count = 0;
|
||||||
|
|
||||||
tree_t tree = tree_avl_new(sizeof(int));
|
tree_t tree = tree_avl_new(sizeof(int));
|
||||||
@ -926,71 +924,96 @@ static void test_avltree_iter_2(void)
|
|||||||
TEST_ASSERT_TRUE(tree->insert(tree, &temp));
|
TEST_ASSERT_TRUE(tree->insert(tree, &temp));
|
||||||
}
|
}
|
||||||
|
|
||||||
printf("\n");
|
|
||||||
|
|
||||||
iterator_t iter = tree->iter(tree, ORDER_LEFT_PRE);
|
iterator_t iter = tree->iter(tree, ORDER_LEFT_PRE);
|
||||||
|
count = 0;
|
||||||
while(iter->hasnext(iter))
|
while(iter->hasnext(iter))
|
||||||
{
|
{
|
||||||
temp = *(int *)iter->next(iter);
|
temp = *(int *)iter->next(iter);
|
||||||
tree->print_obj(&temp);
|
// tree->print_obj(&temp);
|
||||||
|
|
||||||
|
buff[count++] = temp;
|
||||||
}
|
}
|
||||||
printf("\n");
|
TEST_ASSERT_EQUAL_INT_ARRAY(rbt_expected_int_array[1], buff, count);
|
||||||
|
|
||||||
iter = tree->iter(tree, ORDER_LEFT_IN);
|
iter = tree->iter(tree, ORDER_LEFT_IN);
|
||||||
|
count = 0;
|
||||||
while(iter->hasnext(iter))
|
while(iter->hasnext(iter))
|
||||||
{
|
{
|
||||||
temp = *(int *)iter->next(iter);
|
temp = *(int *)iter->next(iter);
|
||||||
tree->print_obj(&temp);
|
// tree->print_obj(&temp);
|
||||||
|
|
||||||
|
buff[count++] = temp;
|
||||||
}
|
}
|
||||||
printf("\n");
|
TEST_ASSERT_EQUAL_INT_ARRAY(rbt_expected_int_array[2], buff, count);
|
||||||
|
|
||||||
iter = tree->iter(tree, ORDER_LEFT_POST);
|
iter = tree->iter(tree, ORDER_LEFT_POST);
|
||||||
|
count = 0;
|
||||||
while(iter->hasnext(iter))
|
while(iter->hasnext(iter))
|
||||||
{
|
{
|
||||||
temp = *(int *)iter->next(iter);
|
temp = *(int *)iter->next(iter);
|
||||||
tree->print_obj(&temp);
|
// tree->print_obj(&temp);
|
||||||
|
|
||||||
|
buff[count++] = temp;
|
||||||
}
|
}
|
||||||
printf("\n");
|
TEST_ASSERT_EQUAL_INT_ARRAY(rbt_expected_int_array[3], buff, count);
|
||||||
|
|
||||||
iter = tree->iter(tree, ORDER_LEFT_BREADTH);
|
iter = tree->iter(tree, ORDER_LEFT_BREADTH);
|
||||||
|
count = 0;
|
||||||
while(iter->hasnext(iter))
|
while(iter->hasnext(iter))
|
||||||
{
|
{
|
||||||
temp = *(int *)iter->next(iter);
|
temp = *(int *)iter->next(iter);
|
||||||
tree->print_obj(&temp);
|
// tree->print_obj(&temp);
|
||||||
|
|
||||||
|
buff[count++] = temp;
|
||||||
}
|
}
|
||||||
printf("\n");
|
TEST_ASSERT_EQUAL_INT_ARRAY(rbt_expected_int_array[4], buff, count);
|
||||||
|
|
||||||
|
|
||||||
iter = tree->iter(tree, ORDER_RIGHT_PRE);
|
iter = tree->iter(tree, ORDER_RIGHT_PRE);
|
||||||
|
count = 0;
|
||||||
while(iter->hasnext(iter))
|
while(iter->hasnext(iter))
|
||||||
{
|
{
|
||||||
temp = *(int *)iter->next(iter);
|
temp = *(int *)iter->next(iter);
|
||||||
tree->print_obj(&temp);
|
// tree->print_obj(&temp);
|
||||||
|
|
||||||
|
buff[count++] = temp;
|
||||||
}
|
}
|
||||||
printf("\n");
|
TEST_ASSERT_EQUAL_INT_ARRAY(rbt_expected_int_array[5], buff, count);
|
||||||
|
|
||||||
|
|
||||||
iter = tree->iter(tree, ORDER_RIGHT_IN);
|
iter = tree->iter(tree, ORDER_RIGHT_IN);
|
||||||
|
count = 0;
|
||||||
while(iter->hasnext(iter))
|
while(iter->hasnext(iter))
|
||||||
{
|
{
|
||||||
temp = *(int *)iter->next(iter);
|
temp = *(int *)iter->next(iter);
|
||||||
tree->print_obj(&temp);
|
// tree->print_obj(&temp);
|
||||||
|
|
||||||
|
buff[count++] = temp;
|
||||||
}
|
}
|
||||||
printf("\n");
|
TEST_ASSERT_EQUAL_INT_ARRAY(rbt_expected_int_array[6], buff, count);
|
||||||
|
|
||||||
|
|
||||||
iter = tree->iter(tree, ORDER_RIGHT_POST);
|
iter = tree->iter(tree, ORDER_RIGHT_POST);
|
||||||
|
count = 0;
|
||||||
while(iter->hasnext(iter))
|
while(iter->hasnext(iter))
|
||||||
{
|
{
|
||||||
temp = *(int *)iter->next(iter);
|
temp = *(int *)iter->next(iter);
|
||||||
tree->print_obj(&temp);
|
// tree->print_obj(&temp);
|
||||||
|
|
||||||
|
buff[count++] = temp;
|
||||||
}
|
}
|
||||||
printf("\n");
|
TEST_ASSERT_EQUAL_INT_ARRAY(rbt_expected_int_array[7], buff, count);
|
||||||
|
|
||||||
iter = tree->iter(tree, ORDER_RIGHT_BREADTH);
|
iter = tree->iter(tree, ORDER_RIGHT_BREADTH);
|
||||||
|
count = 0;
|
||||||
while(iter->hasnext(iter))
|
while(iter->hasnext(iter))
|
||||||
{
|
{
|
||||||
temp = *(int *)iter->next(iter);
|
temp = *(int *)iter->next(iter);
|
||||||
tree->print_obj(&temp);
|
// tree->print_obj(&temp);
|
||||||
|
|
||||||
|
buff[count++] = temp;
|
||||||
}
|
}
|
||||||
printf("\n");
|
TEST_ASSERT_EQUAL_INT_ARRAY(rbt_expected_int_array[8], buff, count);
|
||||||
|
|
||||||
TEST_ASSERT_TRUE(tree->clear(tree));
|
TEST_ASSERT_TRUE(tree->clear(tree));
|
||||||
tree_free(&tree);
|
tree_free(&tree);
|
||||||
|
Loading…
Reference in New Issue
Block a user