1
1
#include < unittest/unittest.h>
2
+ #include < unittest/iterator_helpers.h>
2
3
#include < thrust/unique.h>
3
4
#include < thrust/functional.h>
4
5
#include < thrust/iterator/discard_iterator.h>
@@ -163,11 +164,13 @@ void TestUniqueSimple(void)
163
164
data[8 ] = 31 ;
164
165
data[9 ] = 37 ;
165
166
166
- typename Vector::iterator new_last;
167
+ forward_iterator_wrapper<typename Vector::iterator> new_last;
168
+ const auto begin = make_forward_iterator_wrapper (data.begin ());
169
+ const auto end = make_forward_iterator_wrapper (data.end ());
167
170
168
- new_last = thrust::unique (data. begin (), data. end () );
171
+ new_last = thrust::unique (begin, end);
169
172
170
- ASSERT_EQUAL (new_last - data. begin ( ), 7 );
173
+ ASSERT_EQUAL (thrust::distance (begin, new_last ), 7 );
171
174
ASSERT_EQUAL (data[0 ], 11 );
172
175
ASSERT_EQUAL (data[1 ], 12 );
173
176
ASSERT_EQUAL (data[2 ], 20 );
@@ -176,9 +179,9 @@ void TestUniqueSimple(void)
176
179
ASSERT_EQUAL (data[5 ], 31 );
177
180
ASSERT_EQUAL (data[6 ], 37 );
178
181
179
- new_last = thrust::unique (data. begin () , new_last, is_equal_div_10_unique<T>());
182
+ new_last = thrust::unique (begin, new_last, is_equal_div_10_unique<T>());
180
183
181
- ASSERT_EQUAL (new_last - data. begin ( ), 3 );
184
+ ASSERT_EQUAL (thrust::distance (begin, new_last ), 3 );
182
185
ASSERT_EQUAL (data[0 ], 11 );
183
186
ASSERT_EQUAL (data[1 ], 20 );
184
187
ASSERT_EQUAL (data[2 ], 31 );
@@ -327,11 +330,16 @@ void TestUniqueCountSimple(void)
327
330
data[8 ] = 31 ;
328
331
data[9 ] = 37 ;
329
332
330
- int count = thrust::unique_count (data.begin (), data.end ());
333
+ int count = thrust::unique_count (
334
+ make_forward_iterator_wrapper (data.begin ()),
335
+ make_forward_iterator_wrapper (data.end ()));
331
336
332
337
ASSERT_EQUAL (count, 7 );
333
338
334
- int div_10_count = thrust::unique_count (data.begin (), data.end (), is_equal_div_10_unique<T>());
339
+ int div_10_count = thrust::unique_count (
340
+ make_forward_iterator_wrapper (data.begin ()),
341
+ make_forward_iterator_wrapper (data.end ()),
342
+ is_equal_div_10_unique<T>());
335
343
336
344
ASSERT_EQUAL (div_10_count, 3 );
337
345
}
0 commit comments