tests/test_iterator.c

changeset 851
adb4e0737c33
parent 850
b2bc48c2b251
child 853
d4baf4dd55c3
equal deleted inserted replaced
850:b2bc48c2b251 851:adb4e0737c33
33 CX_TEST(test_iterator_create) { 33 CX_TEST(test_iterator_create) {
34 size_t size = 20; 34 size_t size = 20;
35 unsigned array[size]; 35 unsigned array[size];
36 for (unsigned i = 0 ; i < size ; i++) array[i] = i; 36 for (unsigned i = 0 ; i < size ; i++) array[i] = i;
37 37
38 CxMutIterator iter = cxIterator(array, sizeof(unsigned), size, false); 38 CxIterator iter = cxIterator(array, sizeof(unsigned), size);
39 CX_TEST_DO { 39 CX_TEST_DO {
40 CX_TEST_ASSERT(iter.index == 0); 40 CX_TEST_ASSERT(iter.index == 0);
41 CX_TEST_ASSERT(iter.elem_size == sizeof(unsigned)); 41 CX_TEST_ASSERT(iter.elem_size == sizeof(unsigned));
42 CX_TEST_ASSERT(iter.elem_count == size); 42 CX_TEST_ASSERT(iter.elem_count == size);
43 CX_TEST_ASSERT(iter.src_handle == array); 43 CX_TEST_ASSERT(iter.src_handle == array);
45 CX_TEST_ASSERT(cxIteratorValid(iter)); 45 CX_TEST_ASSERT(cxIteratorValid(iter));
46 } 46 }
47 } 47 }
48 48
49 CX_TEST(test_iterator_create_null) { 49 CX_TEST(test_iterator_create_null) {
50 CxMutIterator iter = cxIterator(NULL, sizeof(unsigned), 47, false); 50 CxIterator iter = cxIterator(NULL, sizeof(unsigned), 47);
51 CX_TEST_DO { 51 CX_TEST_DO {
52 CX_TEST_ASSERT(iter.index == 0); 52 CX_TEST_ASSERT(iter.index == 0);
53 CX_TEST_ASSERT(iter.elem_size == sizeof(unsigned)); 53 CX_TEST_ASSERT(iter.elem_size == sizeof(unsigned));
54 CX_TEST_ASSERT(iter.elem_count == 0); 54 CX_TEST_ASSERT(iter.elem_count == 0);
55 CX_TEST_ASSERT(iter.src_handle == NULL); 55 CX_TEST_ASSERT(iter.src_handle == NULL);
61 CX_TEST(test_iterator_iterate) { 61 CX_TEST(test_iterator_iterate) {
62 size_t size = 20; 62 size_t size = 20;
63 unsigned array[size]; 63 unsigned array[size];
64 for (unsigned i = 0 ; i < size ; i++) array[i] = i; 64 for (unsigned i = 0 ; i < size ; i++) array[i] = i;
65 65
66 CxMutIterator iter = cxIterator(array, sizeof(unsigned), size, false); 66 CxIterator iter = cxIterator(array, sizeof(unsigned), size);
67 CX_TEST_DO { 67 CX_TEST_DO {
68 unsigned expected = 0; 68 unsigned expected = 0;
69 cx_foreach(unsigned *, e, iter) { 69 cx_foreach(unsigned *, e, iter) {
70 CX_TEST_ASSERT(iter.index == expected); 70 CX_TEST_ASSERT(iter.index == expected);
71 CX_TEST_ASSERT(*e == expected); 71 CX_TEST_ASSERT(*e == expected);
94 }; 94 };
95 unsigned expected_result[] = { 95 unsigned expected_result[] = {
96 0, 2, 4, 6, 8, 10, 12, 14, 16, 18 96 0, 2, 4, 6, 8, 10, 12, 14, 16, 18
97 }; 97 };
98 98
99 CxMutIterator iter = cxIterator(array, sizeof(unsigned), size, true); 99 CxMutIterator iter = cxMutIterator(array, sizeof(unsigned), size, true);
100 CX_TEST_DO { 100 CX_TEST_DO {
101 unsigned expected = 0; 101 unsigned expected = 0;
102 cx_foreach(unsigned *, e, iter) { 102 cx_foreach(unsigned *, e, iter) {
103 CX_TEST_ASSERT(*e == expected); 103 CX_TEST_ASSERT(*e == expected);
104 CX_TEST_ASSERT(iter.index == indices[expected]); 104 CX_TEST_ASSERT(iter.index == indices[expected]);
139 unsigned expected_visits[] = { 139 unsigned expected_visits[] = {
140 0, 1, 19, 2, 18, 3, 17, 4, 16, 5, 140 0, 1, 19, 2, 18, 3, 17, 4, 16, 5,
141 15, 6, 14, 7, 13, 8, 12, 9, 11, 10 141 15, 6, 14, 7, 13, 8, 12, 9, 11, 10
142 }; 142 };
143 143
144 CxMutIterator iter = cxIterator(array, sizeof(unsigned), size, false); 144 CxMutIterator iter = cxMutIterator(array, sizeof(unsigned), size, false);
145 CX_TEST_DO { 145 CX_TEST_DO {
146 unsigned expected = 0; 146 unsigned expected = 0;
147 cx_foreach(unsigned *, e, iter) { 147 cx_foreach(unsigned *, e, iter) {
148 CX_TEST_ASSERT(*e == expected_visits[expected]); 148 CX_TEST_ASSERT(*e == expected_visits[expected]);
149 CX_TEST_ASSERT(iter.index == indices[expected]); 149 CX_TEST_ASSERT(iter.index == indices[expected]);

mercurial