1 #if LV_BUILD_TEST
2 #include "../lvgl.h"
3 #include "../../lvgl_private.h"
4
5 #include "unity/unity.h"
6
7 static lv_array_t array;
8
setUp(void)9 void setUp(void)
10 {
11 lv_array_init(&array, LV_ARRAY_DEFAULT_CAPACITY, sizeof(int32_t));
12 }
13
tearDown(void)14 void tearDown(void)
15 {
16 lv_array_deinit(&array);
17 }
18
test_array_append_values(void)19 void test_array_append_values(void)
20 {
21 const int32_t new_size = LV_ARRAY_DEFAULT_CAPACITY + 2;
22 TEST_ASSERT_EQUAL_UINT32(0, lv_array_size(&array));
23 for(int32_t i = 0; i < new_size; i++) {
24 lv_array_push_back(&array, &i);
25 }
26 /*push back will automatically extent the array size.*/
27 TEST_ASSERT_EQUAL_UINT32(new_size, lv_array_size(&array));
28 }
29
test_array_set_get(void)30 void test_array_set_get(void)
31 {
32 int32_t v = 100;
33 lv_array_push_back(&array, &v);
34 int32_t * r = lv_array_at(&array, 0);
35 TEST_ASSERT_EQUAL_UINT32(100, *r);
36 }
37
test_array_size(void)38 void test_array_size(void)
39 {
40 for(int32_t i = 0; i < 10; i++) {
41 lv_array_push_back(&array, &i);
42 }
43
44 TEST_ASSERT_EQUAL_UINT32(0, lv_array_is_full(&array) ? 1 : 0);
45 lv_array_clear(&array);
46 TEST_ASSERT_EQUAL_UINT32(1, lv_array_is_empty(&array) ? 1 : 0);
47 TEST_ASSERT_EQUAL_UINT32(0, lv_array_size(&array));
48 }
49
test_array_resize(void)50 void test_array_resize(void)
51 {
52 for(int32_t i = 0; i < LV_ARRAY_DEFAULT_CAPACITY; i++) {
53 lv_array_push_back(&array, &i);
54 }
55
56 TEST_ASSERT_EQUAL_UINT32(LV_ARRAY_DEFAULT_CAPACITY, lv_array_size(&array));
57 lv_array_resize(&array, 12);
58 TEST_ASSERT_EQUAL_UINT32(LV_ARRAY_DEFAULT_CAPACITY, lv_array_size(&array));
59 TEST_ASSERT_EQUAL_UINT32(12, lv_array_capacity(&array));
60 lv_array_resize(&array, 6);
61 TEST_ASSERT_EQUAL_UINT32(LV_ARRAY_DEFAULT_CAPACITY, lv_array_size(&array));
62 TEST_ASSERT_EQUAL_UINT32(6, lv_array_capacity(&array));
63 }
64
test_array_copy(void)65 void test_array_copy(void)
66 {
67 for(int32_t i = 0; i < LV_ARRAY_DEFAULT_CAPACITY; i++) {
68 lv_array_push_back(&array, &i);
69 }
70
71 uint32_t array_size = lv_array_size(&array);
72 lv_array_t array2 = { 0 };
73 lv_array_copy(&array2, &array);
74 TEST_ASSERT_EQUAL_UINT32(array_size, lv_array_size(&array2));
75
76 uint32_t * r = lv_array_at(&array2, 1);
77 TEST_ASSERT_EQUAL_UINT32(1, *r);
78 lv_array_deinit(&array2);
79 }
80
test_array_concat(void)81 void test_array_concat(void)
82 {
83 lv_array_t a, b;
84 lv_array_init(&a, 4, sizeof(int32_t));
85 lv_array_init(&b, 4, sizeof(int32_t));
86 for(int32_t i = 0; i < 4; i++) {
87 lv_array_push_back(&a, &i);
88 lv_array_push_back(&b, &i);
89 }
90
91 TEST_ASSERT_TRUE(lv_array_concat(&a, &b) == LV_RESULT_OK);
92 TEST_ASSERT_EQUAL_UINT32(8, lv_array_size(&a));
93
94 for(int32_t i = 0; i < 8; i++) {
95 int32_t * v = lv_array_at(&a, i);
96 TEST_ASSERT_EQUAL_INT32(i % 4, *v);
97 }
98
99 lv_array_deinit(&a);
100 lv_array_deinit(&b);
101 }
102
103 #endif
104