tests/test_iterator.c

changeset 853
d4baf4dd55c3
parent 851
adb4e0737c33
equal deleted inserted replaced
852:16e2a3391e88 853:d4baf4dd55c3
38 CxIterator iter = cxIterator(array, sizeof(unsigned), size); 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.c == array);
44 CX_TEST_ASSERT(iter.elem_handle == &array[0]); 44 CX_TEST_ASSERT(iter.elem_handle == &array[0]);
45 CX_TEST_ASSERT(cxIteratorValid(iter)); 45 CX_TEST_ASSERT(cxIteratorValid(iter));
46 } 46 }
47 } 47 }
48 48
50 CxIterator iter = cxIterator(NULL, sizeof(unsigned), 47); 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.c == NULL);
56 CX_TEST_ASSERT(iter.elem_handle == NULL); 56 CX_TEST_ASSERT(iter.elem_handle == NULL);
57 CX_TEST_ASSERT(!cxIteratorValid(iter)); 57 CX_TEST_ASSERT(!cxIteratorValid(iter));
58 } 58 }
59 } 59 }
60 60
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);
72 CX_TEST_ASSERT(iter.elem_size == sizeof(unsigned)); 72 CX_TEST_ASSERT(iter.elem_size == sizeof(unsigned));
73 CX_TEST_ASSERT(iter.elem_count == size); 73 CX_TEST_ASSERT(iter.elem_count == size);
74 CX_TEST_ASSERT(iter.src_handle == array); 74 CX_TEST_ASSERT(iter.src_handle.c == array);
75 CX_TEST_ASSERT(iter.elem_handle == &array[expected]); 75 CX_TEST_ASSERT(iter.elem_handle == &array[expected]);
76 expected++; 76 expected++;
77 } 77 }
78 CX_TEST_ASSERT(expected == size); 78 CX_TEST_ASSERT(expected == size);
79 } 79 }
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 = cxMutIterator(array, sizeof(unsigned), size, true); 99 CxIterator 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]);
105 CX_TEST_ASSERT(iter.elem_size == sizeof(unsigned)); 105 CX_TEST_ASSERT(iter.elem_size == sizeof(unsigned));
106 CX_TEST_ASSERT(iter.elem_count == elem_counts[expected]); 106 CX_TEST_ASSERT(iter.elem_count == elem_counts[expected]);
107 CX_TEST_ASSERT(iter.src_handle == array); 107 CX_TEST_ASSERT(iter.src_handle.m == array);
108 CX_TEST_ASSERT(iter.elem_handle == &array[indices[expected]]); 108 CX_TEST_ASSERT(iter.elem_handle == &array[indices[expected]]);
109 expected++; 109 expected++;
110 if (expected % 2 == 0) { 110 if (expected % 2 == 0) {
111 cxIteratorFlagRemoval(iter); 111 cxIteratorFlagRemoval(iter);
112 } 112 }
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 = cxMutIterator(array, sizeof(unsigned), size, false); 144 CxIterator 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]);
150 CX_TEST_ASSERT(iter.elem_size == sizeof(unsigned)); 150 CX_TEST_ASSERT(iter.elem_size == sizeof(unsigned));
151 CX_TEST_ASSERT(iter.elem_count == elem_counts[expected]); 151 CX_TEST_ASSERT(iter.elem_count == elem_counts[expected]);
152 CX_TEST_ASSERT(iter.src_handle == array); 152 CX_TEST_ASSERT(iter.src_handle.m == array);
153 CX_TEST_ASSERT(iter.elem_handle == &array[indices[expected]]); 153 CX_TEST_ASSERT(iter.elem_handle == &array[indices[expected]]);
154 expected++; 154 expected++;
155 if (expected % 2 == 0) { 155 if (expected % 2 == 0) {
156 cxIteratorFlagRemoval(iter); 156 cxIteratorFlagRemoval(iter);
157 } 157 }

mercurial