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

Function imageTest

test/anisotropic_diffusion.cpp:45–142  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

43
44template<typename T, bool isColor>
45void imageTest(string pTestFile, const float dt, const float K,
46 const uint iters, fluxFunction fluxKind,
47 bool isCurvatureDiffusion = false) {
48 typedef
49 typename cond_type<is_same_type<T, double>::value, double, float>::type
50 OutType;
51
52 SUPPORTED_TYPE_CHECK(T);
53 IMAGEIO_ENABLED_CHECK();
54
55 using af::dim4;
56
57 vector<dim4> inDims;
58 vector<string> inFiles;
59 vector<dim_t> outSizes;
60 vector<string> outFiles;
61
62 readImageTests(pTestFile, inDims, inFiles, outSizes, outFiles);
63
64 size_t testCount = inDims.size();
65
66 for (size_t testId = 0; testId < testCount; ++testId) {
67 if (isCurvatureDiffusion) {
68 inFiles[testId].insert(0, string(TEST_DIR "/curvature_diffusion/"));
69 outFiles[testId].insert(0,
70 string(TEST_DIR "/curvature_diffusion/"));
71 } else {
72 inFiles[testId].insert(0, string(TEST_DIR "/gradient_diffusion/"));
73 outFiles[testId].insert(0, string(TEST_DIR "/gradient_diffusion/"));
74 }
75
76 af_array _inArray = 0;
77 af_array inArray = 0;
78 af_array _outArray = 0;
79 af_array cstArray = 0;
80 af_array minArray = 0;
81 af_array numArray = 0;
82 af_array denArray = 0;
83 af_array divArray = 0;
84 af_array outArray = 0;
85 af_array goldArray = 0;
86 af_array _goldArray = 0;
87 dim_t nElems = 0;
88
89 ASSERT_SUCCESS(
90 af_load_image(&_inArray, inFiles[testId].c_str(), isColor));
91 ASSERT_SUCCESS(conv_image<T>(&inArray, _inArray));
92
93 ASSERT_SUCCESS(
94 af_load_image(&_goldArray, outFiles[testId].c_str(), isColor));
95 // af_load_image always returns float array, so convert to output type
96 ASSERT_SUCCESS(conv_image<OutType>(&goldArray, _goldArray));
97 ASSERT_SUCCESS(af_get_elements(&nElems, goldArray));
98
99 if (isCurvatureDiffusion) {
100 ASSERT_SUCCESS(af_anisotropic_diffusion(&_outArray, inArray, dt, K,
101 iters, fluxKind,
102 AF_DIFFUSION_MCDE));

Callers

nothing calls this directly

Calls 13

readImageTestsFunction · 0.85
af_get_elementsFunction · 0.85
af_min_allFunction · 0.85
af_max_allFunction · 0.85
af_subFunction · 0.85
af_divFunction · 0.85
af_mulFunction · 0.85
af_load_imageFunction · 0.50
af_anisotropic_diffusionFunction · 0.50
af_get_numdimsFunction · 0.50
af_get_dimsFunction · 0.50
af_constantFunction · 0.50

Tested by

no test coverage detected