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

Function morph3DMaskTest

test/morph.cpp:340–384  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

338
339template<typename T, bool isDilation>
340void morph3DMaskTest(void) {
341 SUPPORTED_TYPE_CHECK(T);
342
343 af_array inArray = 0;
344 af_array maskArray = 0;
345 af_array outArray = 0;
346
347 vector<T> in(1000, 1);
348 vector<T> mask(81, 1);
349
350 // Check for 2D mask
351 dim4 dims(10, 10, 10, 1);
352 dim4 mdims(9, 9, 1, 1);
353
354 ASSERT_SUCCESS(af_create_array(&inArray, &in.front(), dims.ndims(),
355 dims.get(),
356 (af_dtype)dtype_traits<T>::af_type));
357
358 ASSERT_SUCCESS(af_create_array(&maskArray, &mask.front(), mdims.ndims(),
359 mdims.get(),
360 (af_dtype)dtype_traits<T>::af_type));
361
362 if (isDilation)
363 ASSERT_EQ(AF_ERR_SIZE, af_dilate3(&outArray, inArray, maskArray));
364 else
365 ASSERT_EQ(AF_ERR_SIZE, af_erode3(&outArray, inArray, maskArray));
366
367 ASSERT_SUCCESS(af_release_array(maskArray));
368
369 // Check for 4D mask
370 mdims = dim4(3, 3, 3, 3);
371
372 ASSERT_SUCCESS(af_create_array(&maskArray, &mask.front(), mdims.ndims(),
373 mdims.get(),
374 (af_dtype)dtype_traits<T>::af_type));
375
376 if (isDilation)
377 ASSERT_EQ(AF_ERR_SIZE, af_dilate3(&outArray, inArray, maskArray));
378 else
379 ASSERT_EQ(AF_ERR_SIZE, af_erode3(&outArray, inArray, maskArray));
380
381 ASSERT_SUCCESS(af_release_array(maskArray));
382
383 ASSERT_SUCCESS(af_release_array(inArray));
384}
385
386TYPED_TEST(Morph, DilateVolumeInvalidMask) {
387 morph3DMaskTest<TypeParam, true>();

Callers

nothing calls this directly

Calls 7

af_create_arrayFunction · 0.50
af_dilate3Function · 0.50
af_erode3Function · 0.50
af_release_arrayFunction · 0.50
dim4Class · 0.50
ndimsMethod · 0.45
getMethod · 0.45

Tested by

no test coverage detected