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]); |