MCPcopy Create free account
hub / github.com/antmachineintelligence/mtgbmcode / test_fill_n

Function test_fill_n

compute/test/test_fill.cpp:137–171  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

135
136template<class T>
137inline void test_fill_n(T v1, T v2, T v3, bc::command_queue queue) {
138 if(boost::is_same<typename bc::scalar_type<T>::type, bc::double_>::value &&
139 !queue.get_device().supports_extension("cl_khr_fp64")) {
140 std::cerr << "Skipping test_fill_n<" << bc::type_name<T>() << ">() "
141 "on device which doesn't support cl_khr_fp64" << std::endl;
142 return;
143 }
144
145 bc::vector<T> vector(4, queue.get_context());
146 bc::fill_n(vector.begin(), 4, v1, queue);
147 queue.finish();
148 CHECK_RANGE_EQUAL(T, 4, vector, (v1, v1, v1, v1));
149
150 bc::fill_n(vector.begin(), 3, v2, queue);
151 queue.finish();
152 CHECK_RANGE_EQUAL(T, 4, vector, (v2, v2, v2, v1));
153
154 bc::fill_n(vector.begin() + 1, 2, v3, queue);
155 queue.finish();
156 CHECK_RANGE_EQUAL(T, 4, vector, (v2, v3, v3, v1));
157
158 bc::fill_n(vector.begin(), 4, v2, queue);
159 queue.finish();
160 CHECK_RANGE_EQUAL(T, 4, vector, (v2, v2, v2, v2));
161
162 // fill last element
163 bc::fill_n(vector.end() - 1, 1, v3, queue);
164 queue.finish();
165 CHECK_RANGE_EQUAL(T, 4, vector, (v2, v2, v2, v3));
166
167 // fill first element
168 bc::fill_n(vector.begin(), 1, v1, queue);
169 queue.finish();
170 CHECK_RANGE_EQUAL(T, 4, vector, (v1, v2, v2, v3));
171}
172
173BOOST_AUTO_TEST_CASE_TEMPLATE( fill_n_scalar, S, scalar_types )
174{

Callers 1

Calls 8

fill_nFunction · 0.85
CHECK_RANGE_EQUALFunction · 0.70
supports_extensionMethod · 0.45
get_deviceMethod · 0.45
get_contextMethod · 0.45
beginMethod · 0.45
finishMethod · 0.45
endMethod · 0.45

Tested by

no test coverage detected