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