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
16
src/tree.c
16
src/tree.c
@ -2294,13 +2294,15 @@ tree_t tree_avl_new(uint32_t obj_size)
|
||||
{
|
||||
tree_t tree = NULL;
|
||||
tree = (struct _tree*)malloc(sizeof(struct _tree));
|
||||
if(tree != NULL)
|
||||
if(tree == NULL)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if(tree_avl_init(tree, obj_size) != true)
|
||||
{
|
||||
free(tree);
|
||||
tree = NULL;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
return tree;
|
||||
}
|
||||
@ -2308,13 +2310,15 @@ tree_t tree_rb_new(uint32_t obj_size)
|
||||
{
|
||||
tree_t tree = NULL;
|
||||
tree = (struct _tree*)malloc(sizeof(struct _tree));
|
||||
if(tree != NULL)
|
||||
if(tree == NULL)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if(tree_rb_init(tree, obj_size) != true)
|
||||
{
|
||||
free(tree);
|
||||
tree = NULL;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
return tree;
|
||||
}
|
||||
|
@ -911,8 +911,6 @@ static void test_avltree_iter_2(void)
|
||||
int buff[32];
|
||||
int temp = 0;
|
||||
uint32_t len = sizeof(data) / sizeof(data[0]);
|
||||
|
||||
// int * iter = NULL;
|
||||
int count = 0;
|
||||
|
||||
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));
|
||||
}
|
||||
|
||||
printf("\n");
|
||||
|
||||
iterator_t iter = tree->iter(tree, ORDER_LEFT_PRE);
|
||||
count = 0;
|
||||
while(iter->hasnext(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);
|
||||
count = 0;
|
||||
while(iter->hasnext(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);
|
||||
count = 0;
|
||||
while(iter->hasnext(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);
|
||||
count = 0;
|
||||
while(iter->hasnext(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);
|
||||
count = 0;
|
||||
while(iter->hasnext(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);
|
||||
count = 0;
|
||||
while(iter->hasnext(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);
|
||||
count = 0;
|
||||
while(iter->hasnext(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);
|
||||
count = 0;
|
||||
while(iter->hasnext(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));
|
||||
tree_free(&tree);
|
||||
|
Loading…
Reference in New Issue
Block a user