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

Function sortTest

test/sort_by_key.cpp:51–101  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

49
50template<typename T>
51void sortTest(string pTestFile, const bool dir, const unsigned resultIdx0,
52 const unsigned resultIdx1, bool isSubRef = false) {
53 SUPPORTED_TYPE_CHECK(T);
54
55 vector<dim4> numDims;
56 vector<vector<T>> in;
57 vector<vector<T>> tests;
58 readTests<T, T, int>(pTestFile, numDims, in, tests);
59
60 dim4 idims = numDims[0];
61
62 af_array ikeyArray = 0;
63 af_array ivalArray = 0;
64 af_array tempArray = 0;
65 af_array okeyArray = 0;
66 af_array ovalArray = 0;
67
68 if (isSubRef) {
69 // ASSERT_SUCCESS(af_create_array(&tempArray, &(in[0].front()),
70 // idims.ndims(), idims.get(), (af_dtype) dtype_traits<T>::af_type));
71
72 // ASSERT_SUCCESS(af_index(&inArray, tempArray, seqv->size(),
73 // &seqv->front()));
74 } else {
75 ASSERT_SUCCESS(af_create_array(&ikeyArray, &(in[0].front()),
76 idims.ndims(), idims.get(),
77 (af_dtype)dtype_traits<T>::af_type));
78 ASSERT_SUCCESS(af_create_array(&ivalArray, &(in[1].front()),
79 idims.ndims(), idims.get(),
80 (af_dtype)dtype_traits<T>::af_type));
81 }
82
83 ASSERT_SUCCESS(
84 af_sort_by_key(&okeyArray, &ovalArray, ikeyArray, ivalArray, 0, dir));
85
86 // Compare result
87 ASSERT_VEC_ARRAY_EQ(tests[resultIdx0], idims, okeyArray);
88
89#ifdef AF_OPENCL
90 UNUSED(resultIdx1);
91#else
92 // Compare result
93 ASSERT_VEC_ARRAY_EQ(tests[resultIdx1], idims, ovalArray);
94#endif
95
96 if (ikeyArray != 0) af_release_array(ikeyArray);
97 if (ivalArray != 0) af_release_array(ivalArray);
98 if (okeyArray != 0) af_release_array(okeyArray);
99 if (ovalArray != 0) af_release_array(ovalArray);
100 if (tempArray != 0) af_release_array(tempArray);
101}
102
103#define SORT_INIT(desc, file, dir, resultIdx0, resultIdx1) \
104 TYPED_TEST(SortByKey, desc) { \

Callers

nothing calls this directly

Calls 5

af_create_arrayFunction · 0.50
af_sort_by_keyFunction · 0.50
af_release_arrayFunction · 0.50
ndimsMethod · 0.45
getMethod · 0.45

Tested by

no test coverage detected