MCPcopy Create free account
hub / github.com/boostorg/compute / BOOST_AUTO_TEST_CASE

Function BOOST_AUTO_TEST_CASE

test/test_equal_range.cpp:23–71  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

21#include "context_setup.hpp"
22
23BOOST_AUTO_TEST_CASE(equal_range_int)
24{
25 int data[] = { 1, 2, 2, 2, 3, 3, 4, 5 };
26 boost::compute::vector<int> vector(data, data + 8, queue);
27
28 typedef boost::compute::vector<int>::iterator iterator;
29
30 std::pair<iterator, iterator> range0 =
31 boost::compute::equal_range(vector.begin(), vector.end(), int(0), queue);
32 BOOST_CHECK(range0.first == vector.begin());
33 BOOST_CHECK(range0.second == vector.begin());
34 BOOST_CHECK_EQUAL(std::distance(range0.first, range0.second), ptrdiff_t(0));
35
36 std::pair<iterator, iterator> range1 =
37 boost::compute::equal_range(vector.begin(), vector.end(), int(1), queue);
38 BOOST_CHECK(range1.first == vector.begin());
39 BOOST_CHECK(range1.second == vector.begin() + 1);
40 BOOST_CHECK_EQUAL(std::distance(range1.first, range1.second), ptrdiff_t(1));
41
42 std::pair<iterator, iterator> range2 =
43 boost::compute::equal_range(vector.begin(), vector.end(), int(2), queue);
44 BOOST_CHECK(range2.first == vector.begin() + 1);
45 BOOST_CHECK(range2.second == vector.begin() + 4);
46 BOOST_CHECK_EQUAL(std::distance(range2.first, range2.second), ptrdiff_t(3));
47
48 std::pair<iterator, iterator> range3 =
49 boost::compute::equal_range(vector.begin(), vector.end(), int(3), queue);
50 BOOST_CHECK(range3.first == vector.begin() + 4);
51 BOOST_CHECK(range3.second == vector.begin() + 6);
52 BOOST_CHECK_EQUAL(std::distance(range3.first, range3.second), ptrdiff_t(2));
53
54 std::pair<iterator, iterator> range4 =
55 boost::compute::equal_range(vector.begin(), vector.end(), int(4), queue);
56 BOOST_CHECK(range4.first == vector.begin() + 6);
57 BOOST_CHECK(range4.second == vector.begin() + 7);
58 BOOST_CHECK_EQUAL(std::distance(range4.first, range4.second), ptrdiff_t(1));
59
60 std::pair<iterator, iterator> range5 =
61 boost::compute::equal_range(vector.begin(), vector.end(), int(5), queue);
62 BOOST_CHECK(range5.first == vector.begin() + 7);
63 BOOST_CHECK(range5.second == vector.end());
64 BOOST_CHECK_EQUAL(std::distance(range5.first, range5.second), ptrdiff_t(1));
65
66 std::pair<iterator, iterator> range6 =
67 boost::compute::equal_range(vector.begin(), vector.end(), int(6), queue);
68 BOOST_CHECK(range6.first == vector.end());
69 BOOST_CHECK(range6.second == vector.end());
70 BOOST_CHECK_EQUAL(std::distance(range6.first, range6.second), ptrdiff_t(0));
71}
72
73BOOST_AUTO_TEST_SUITE_END()

Callers

nothing calls this directly

Calls 3

equal_rangeFunction · 0.85
beginMethod · 0.45
endMethod · 0.45

Tested by

no test coverage detected