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

Function convolveTest

test/convolve.cpp:44–96  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

42
43template<typename T>
44void convolveTest(string pTestFile, int baseDim, bool expand) {
45 SUPPORTED_TYPE_CHECK(T);
46
47 vector<dim4> numDims;
48 vector<vector<T>> in;
49 vector<vector<T>> tests;
50
51 readTests<T, T, int>(pTestFile, numDims, in, tests);
52
53 dim4 sDims = numDims[0];
54 dim4 fDims = numDims[1];
55 af_array signal = 0;
56 af_array filter = 0;
57 af_array outArray = 0;
58
59 ASSERT_SUCCESS(af_create_array(&signal, &(in[0].front()), sDims.ndims(),
60 sDims.get(),
61 (af_dtype)dtype_traits<T>::af_type));
62 ASSERT_SUCCESS(af_create_array(&filter, &(in[1].front()), fDims.ndims(),
63 fDims.get(),
64 (af_dtype)dtype_traits<T>::af_type));
65
66 af_conv_mode mode = expand ? AF_CONV_EXPAND : AF_CONV_DEFAULT;
67 switch (baseDim) {
68 case 1:
69 ASSERT_SUCCESS(
70 af_convolve1(&outArray, signal, filter, mode, AF_CONV_AUTO));
71 break;
72 case 2:
73 ASSERT_SUCCESS(
74 af_convolve2(&outArray, signal, filter, mode, AF_CONV_AUTO));
75 break;
76 case 3:
77 ASSERT_SUCCESS(
78 af_convolve3(&outArray, signal, filter, mode, AF_CONV_AUTO));
79 break;
80 }
81
82 vector<T> currGoldBar = tests[0];
83 size_t nElems = currGoldBar.size();
84 vector<T> outData(nElems);
85
86 ASSERT_SUCCESS(af_get_data_ptr((void *)&outData.front(), outArray));
87
88 for (size_t elIter = 0; elIter < nElems; ++elIter) {
89 ASSERT_EQ(currGoldBar[elIter], outData[elIter])
90 << "at: " << elIter << endl;
91 }
92
93 ASSERT_SUCCESS(af_release_array(outArray));
94 ASSERT_SUCCESS(af_release_array(signal));
95 ASSERT_SUCCESS(af_release_array(filter));
96}
97
98TYPED_TEST(Convolve, Vector) {
99 convolveTest<TypeParam>(string(TEST_DIR "/convolve/vector.test"), 1, true);

Callers

nothing calls this directly

Calls 8

af_convolve1Function · 0.85
af_convolve2Function · 0.85
af_convolve3Function · 0.85
af_create_arrayFunction · 0.50
af_get_data_ptrFunction · 0.50
af_release_arrayFunction · 0.50
ndimsMethod · 0.45
getMethod · 0.45

Tested by

no test coverage detected