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 } |