MCPcopy Create free account
hub / github.com/arrayfire/arrayfire / morphMaskTest

Function morphMaskTest

test/morph.cpp:289–333  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

287
288template<typename T, bool isDilation>
289void morphMaskTest(void) {
290 SUPPORTED_TYPE_CHECK(T);
291
292 af_array inArray = 0;
293 af_array maskArray = 0;
294 af_array outArray = 0;
295
296 vector<T> in(100, 1);
297 vector<T> mask(16, 1);
298
299 // Check for 4D mask
300 dim4 dims(10, 10, 1, 1);
301 dim4 mdims(2, 2, 2, 2);
302
303 ASSERT_SUCCESS(af_create_array(&inArray, &in.front(), dims.ndims(),
304 dims.get(),
305 (af_dtype)dtype_traits<T>::af_type));
306
307 ASSERT_SUCCESS(af_create_array(&maskArray, &mask.front(), mdims.ndims(),
308 mdims.get(),
309 (af_dtype)dtype_traits<T>::af_type));
310
311 if (isDilation)
312 ASSERT_EQ(AF_ERR_SIZE, af_dilate(&outArray, inArray, maskArray));
313 else
314 ASSERT_EQ(AF_ERR_SIZE, af_erode(&outArray, inArray, maskArray));
315
316 ASSERT_SUCCESS(af_release_array(maskArray));
317
318 // Check for 1D mask
319 mdims = dim4(16, 1, 1, 1);
320
321 ASSERT_SUCCESS(af_create_array(&maskArray, &mask.front(), mdims.ndims(),
322 mdims.get(),
323 (af_dtype)dtype_traits<T>::af_type));
324
325 if (isDilation)
326 ASSERT_EQ(AF_ERR_SIZE, af_dilate(&outArray, inArray, maskArray));
327 else
328 ASSERT_EQ(AF_ERR_SIZE, af_erode(&outArray, inArray, maskArray));
329
330 ASSERT_SUCCESS(af_release_array(maskArray));
331
332 ASSERT_SUCCESS(af_release_array(inArray));
333}
334
335TYPED_TEST(Morph, DilateInvalidMask) { morphMaskTest<TypeParam, true>(); }
336

Callers

nothing calls this directly

Calls 7

af_create_arrayFunction · 0.50
af_dilateFunction · 0.50
af_erodeFunction · 0.50
af_release_arrayFunction · 0.50
dim4Class · 0.50
ndimsMethod · 0.45
getMethod · 0.45

Tested by

no test coverage detected