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

Function meanDimTest

test/mean.cpp:80–133  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

78
79template<typename T>
80void meanDimTest(string pFileName, dim_t dim, bool isWeighted = false) {
81 typedef typename meanOutType<T>::type outType;
82 SUPPORTED_TYPE_CHECK(T);
83 SUPPORTED_TYPE_CHECK(outType);
84
85 double tol = 1.0e-3;
86 if ((af_dtype)af::dtype_traits<T>::af_type == f16) tol = 4.e-3;
87 vector<dim4> numDims;
88 vector<vector<int>> in;
89 vector<vector<float>> tests;
90
91 readTestsFromFile<int, float>(pFileName, numDims, in, tests);
92
93 dim4 goldDims = numDims[0];
94 goldDims[dim] = 1;
95 if (!isWeighted) {
96 dim4 dims = numDims[0];
97 vector<T> input(in[0].begin(), in[0].end());
98
99 array inArray(dims, &(input.front()));
100
101 array outArray = mean(inArray, dim);
102
103 vector<outType> outData(dims.elements());
104
105 outArray.host((void*)outData.data());
106
107 vector<outType> currGoldBar(tests[0].begin(), tests[0].end());
108
109 dim4 goldDims = dims;
110 goldDims[dim] = 1;
111 ASSERT_VEC_ARRAY_NEAR(currGoldBar, goldDims, outArray, tol);
112 } else {
113 dim4 dims = numDims[0];
114 dim4 wdims = numDims[1];
115 vector<T> input(in[0].begin(), in[0].end());
116 vector<float> weights(in[1].size());
117 transform(in[1].begin(), in[1].end(), weights.begin(),
118 convert_to<float, int>);
119
120 array inArray(dims, &(input.front()));
121 array wtsArray(wdims, &(weights.front()));
122
123 array outArray = mean(inArray, wtsArray, dim);
124
125 vector<outType> outData(dims.elements());
126
127 outArray.host((void*)outData.data());
128
129 vector<outType> currGoldBar(tests[0].begin(), tests[0].end());
130
131 ASSERT_VEC_ARRAY_NEAR(currGoldBar, goldDims, outArray, tol);
132 }
133}
134
135TYPED_TEST(Mean, Dim0Matrix) {
136 meanDimTest<TypeParam>(string(TEST_DIR "/mean/mean_dim0_matrix.test"), 0);

Callers

nothing calls this directly

Calls 4

hostMethod · 0.80
meanFunction · 0.50
transformFunction · 0.50
elementsMethod · 0.45

Tested by

no test coverage detected