Spaces:
Runtime error
Runtime error
void TestDiscardIteratorIncrement(void) | |
{ | |
thrust::discard_iterator<> lhs(0); | |
thrust::discard_iterator<> rhs(0); | |
ASSERT_EQUAL(0, lhs - rhs); | |
lhs++; | |
ASSERT_EQUAL(1, lhs - rhs); | |
lhs++; | |
lhs++; | |
ASSERT_EQUAL(3, lhs - rhs); | |
lhs += 5; | |
ASSERT_EQUAL(8, lhs - rhs); | |
lhs -= 10; | |
ASSERT_EQUAL(-2, lhs - rhs); | |
} | |
DECLARE_UNITTEST(TestDiscardIteratorIncrement); | |
void TestDiscardIteratorComparison(void) | |
{ | |
thrust::discard_iterator<> iter1(0); | |
thrust::discard_iterator<> iter2(0); | |
ASSERT_EQUAL(0, iter1 - iter2); | |
ASSERT_EQUAL(true, iter1 == iter2); | |
iter1++; | |
ASSERT_EQUAL(1, iter1 - iter2); | |
ASSERT_EQUAL(false, iter1 == iter2); | |
iter2++; | |
ASSERT_EQUAL(0, iter1 - iter2); | |
ASSERT_EQUAL(true, iter1 == iter2); | |
iter1 += 100; | |
iter2 += 100; | |
ASSERT_EQUAL(0, iter1 - iter2); | |
ASSERT_EQUAL(true, iter1 == iter2); | |
} | |
DECLARE_UNITTEST(TestDiscardIteratorComparison); | |
void TestMakeDiscardIterator(void) | |
{ | |
thrust::discard_iterator<> iter0 = thrust::make_discard_iterator(13); | |
*iter0 = 7; | |
thrust::discard_iterator<> iter1 = thrust::make_discard_iterator(7); | |
*iter1 = 13; | |
ASSERT_EQUAL(6, iter0 - iter1); | |
} | |
DECLARE_UNITTEST(TestMakeDiscardIterator); | |
void TestZippedDiscardIterator(void) | |
{ | |
using namespace thrust; | |
typedef tuple<discard_iterator<> > IteratorTuple1; | |
typedef zip_iterator<IteratorTuple1> ZipIterator1; | |
IteratorTuple1 t = thrust::make_tuple(thrust::make_discard_iterator()); | |
ZipIterator1 z_iter1_first = thrust::make_zip_iterator(t); | |
ZipIterator1 z_iter1_last = z_iter1_first + 10; | |
for(; z_iter1_first != z_iter1_last; ++z_iter1_first) | |
{ | |
; | |
} | |
ASSERT_EQUAL(10, thrust::get<0>(z_iter1_first.get_iterator_tuple()) - thrust::make_discard_iterator()); | |
typedef tuple<int *, discard_iterator<> > IteratorTuple2; | |
typedef zip_iterator<IteratorTuple2> ZipIterator2; | |
ZipIterator2 z_iter_first = thrust::make_zip_iterator(thrust::make_tuple((int*)0, thrust::make_discard_iterator())); | |
ZipIterator2 z_iter_last = z_iter_first + 10; | |
for(; z_iter_first != z_iter_last; ++z_iter_first) | |
{ | |
; | |
} | |
ASSERT_EQUAL(10, thrust::get<1>(z_iter_first.get_iterator_tuple()) - thrust::make_discard_iterator()); | |
} | |
DECLARE_UNITTEST(TestZippedDiscardIterator); | |