mirror of
https://gitee.com/apaki/unicstl.git
synced 2025-05-17 19:41:36 +08:00
添加insert和delete的单元测试
This commit is contained in:
parent
80f8722e2e
commit
24844219df
15
src/list.c
15
src/list.c
@ -189,6 +189,21 @@ static void list_print(struct _list* self)
|
||||
}
|
||||
}
|
||||
|
||||
struct _list* list_slice(struct _list *self, int start, int end, int step)
|
||||
{
|
||||
if(start < 0)
|
||||
{
|
||||
start += self->size(self);
|
||||
}
|
||||
|
||||
if(end < 0)
|
||||
{
|
||||
end += self->size(self);
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static bool list_iter_hasnext(struct _iterator* iter)
|
||||
{
|
||||
list_t self = (list_t)iter->_container;
|
||||
|
@ -26,7 +26,6 @@ static void test_list_new(void)
|
||||
TEST_ASSERT_NULL(list_new2(sizeof(int), 0));
|
||||
}
|
||||
|
||||
|
||||
static void test_list_append(void)
|
||||
{
|
||||
int temp = 0;
|
||||
@ -62,7 +61,6 @@ static void test_list_append(void)
|
||||
list_free(&list);
|
||||
}
|
||||
|
||||
|
||||
static void test_list_pop(void)
|
||||
{
|
||||
int temp = 0;
|
||||
@ -87,6 +85,78 @@ static void test_list_pop(void)
|
||||
list_free(&list);
|
||||
}
|
||||
|
||||
static void test_list_insert(void)
|
||||
{
|
||||
int temp = 0;
|
||||
int data[] = { 1,2,3,4,5,6,7,8,9,10 };
|
||||
uint32_t len = sizeof(data) / sizeof(data[0]);
|
||||
uint32_t i = 0;
|
||||
|
||||
list_t list = NULL;
|
||||
|
||||
// ------------------------------
|
||||
list = list_new2(sizeof(int), len);
|
||||
list->print_obj = print_num;
|
||||
|
||||
TEST_ASSERT_TRUE(list->empty(list));
|
||||
for (i = 0; i < len; i++)
|
||||
{
|
||||
TEST_ASSERT_TRUE(list->insert(list, i, &data[i]));
|
||||
TEST_ASSERT_EQUAL_INT(i + 1, list->size(list));
|
||||
|
||||
TEST_ASSERT_TRUE(list->get(list, i, &temp));
|
||||
TEST_ASSERT_EQUAL_INT(data[i], temp);
|
||||
|
||||
// list->print(list);
|
||||
// printf("\n");
|
||||
}
|
||||
list->clear(list);
|
||||
TEST_ASSERT_TRUE(list->empty(list));
|
||||
|
||||
for (i = 0; i < len; i++)
|
||||
{
|
||||
TEST_ASSERT_TRUE(list->insert(list, 0, &data[i]));
|
||||
TEST_ASSERT_EQUAL_INT(i + 1, list->size(list));
|
||||
|
||||
TEST_ASSERT_TRUE(list->get(list, 0, &temp));
|
||||
TEST_ASSERT_EQUAL_INT(data[i], temp);
|
||||
|
||||
// list->print(list);
|
||||
// printf("\n");
|
||||
}
|
||||
|
||||
TEST_ASSERT_FALSE(list->empty(list));
|
||||
list_free(&list);
|
||||
}
|
||||
|
||||
static void test_list_delete(void)
|
||||
{
|
||||
int temp = 0;
|
||||
int data[] = { 1,2,3,4,5,6,7,8,9,10 };
|
||||
uint32_t len = sizeof(data) / sizeof(data[0]);
|
||||
uint32_t i = 0;
|
||||
|
||||
list_t list = NULL;
|
||||
|
||||
// ------------------------------
|
||||
list = list_new2(sizeof(int), len);
|
||||
for (i = 0; i < len; i++)
|
||||
{
|
||||
list->append(list, &data[i]);
|
||||
}
|
||||
|
||||
TEST_ASSERT_TRUE(list->delete(list, len - 1, &temp));
|
||||
TEST_ASSERT_EQUAL_INT(data[len - 1], temp);
|
||||
|
||||
for (i = 0; i < len - 1; i++)
|
||||
{
|
||||
TEST_ASSERT_TRUE(list->delete(list, 0, &temp));
|
||||
TEST_ASSERT_EQUAL_INT(data[i], temp);
|
||||
}
|
||||
TEST_ASSERT_TRUE(list->empty(list));
|
||||
TEST_ASSERT_FALSE(list->pop(list, &temp));
|
||||
list_free(&list);
|
||||
}
|
||||
|
||||
static void test_list_clear(void)
|
||||
{
|
||||
@ -355,8 +425,12 @@ void test_list(void)
|
||||
UnitySetTestFile(__FILE__);
|
||||
|
||||
RUN_TEST(test_list_new);
|
||||
|
||||
RUN_TEST(test_list_append);
|
||||
RUN_TEST(test_list_pop);
|
||||
RUN_TEST(test_list_insert);
|
||||
RUN_TEST(test_list_delete);
|
||||
|
||||
RUN_TEST(test_list_clear);
|
||||
|
||||
RUN_TEST(test_list_num);
|
||||
|
Loading…
Reference in New Issue
Block a user