1 #include <gtest/gtest.h>
2
3 #include <algorithm>
4
5 #include "transpose-operator-tester.h"
6
7 TEST(TRANSPOSE_ND_X32_2, 1D_redundant_dim) {
8 TransposeOperatorTester()
9 .num_dims(1)
10 .shape({1})
11 .perm({0})
12 .TestX32();
13 }
14
15 TEST(TRANSPOSE_ND_X8, 1D) {
16 TransposeOperatorTester()
17 .num_dims(1)
18 .shape({713})
19 .perm({0})
20 .TestX8();
21 }
22
TEST(TRANSPOSE_ND_X8,Run1D)23 TEST(TRANSPOSE_ND_X8, Run1D) {
24 TransposeOperatorTester()
25 .num_dims(1)
26 .shape({713})
27 .perm({0})
28 .TestRunX8();
29 }
30
31 TEST(TRANSPOSE_ND_X8, 2D) {
32 std::vector<size_t> perm{0,1};
33 do {
34 TransposeOperatorTester()
35 .num_dims(2)
36 .shape({37, 113})
37 .perm(perm)
38 .TestX8();
39 } while (std::next_permutation(perm.begin(), perm.end()));
40 }
41
TEST(TRANSPOSE_ND_X8,Run2D)42 TEST(TRANSPOSE_ND_X8, Run2D) {
43 std::vector<size_t> perm{0,1};
44 do {
45 TransposeOperatorTester()
46 .num_dims(2)
47 .shape({37, 113})
48 .perm(perm)
49 .TestRunX8();
50 } while (std::next_permutation(perm.begin(), perm.end()));
51 }
52
53 TEST(TRANSPOSE_ND_X8, 3D) {
54 std::vector<size_t> perm{0,1,2};
55 do {
56 TransposeOperatorTester()
57 .num_dims(3)
58 .shape({5, 7, 11})
59 .perm(perm)
60 .TestX8();
61 } while (std::next_permutation(perm.begin(), perm.end()));
62 }
63
TEST(TRANSPOSE_ND_X8,Run3D)64 TEST(TRANSPOSE_ND_X8, Run3D) {
65 std::vector<size_t> perm{0,1,2};
66 do {
67 TransposeOperatorTester()
68 .num_dims(3)
69 .shape({5, 7, 11})
70 .perm(perm)
71 .TestRunX8();
72 } while (std::next_permutation(perm.begin(), perm.end()));
73 }
74
75 TEST(TRANSPOSE_ND_X32, 4D_copy) {
76 TransposeOperatorTester()
77 .num_dims(4)
78 .shape({2,2,1,1})
79 .perm({0,2,3,1})
80 .TestX32();
81 }
82
83 TEST(TRANSPOSE_ND_X8, 4D) {
84 std::vector<size_t> perm{0,1,2,3};
85 do {
86 TransposeOperatorTester()
87 .num_dims(4)
88 .shape({5,7,11,13})
89 .perm(perm)
90 .TestX8();
91 } while (std::next_permutation(perm.begin(), perm.end()));
92 }
93
TEST(TRANSPOSE_ND_X8,Run4D)94 TEST(TRANSPOSE_ND_X8, Run4D) {
95 std::vector<size_t> perm{0,1,2,3};
96 do {
97 TransposeOperatorTester()
98 .num_dims(4)
99 .shape({5,7,11,13})
100 .perm(perm)
101 .TestRunX8();
102 } while (std::next_permutation(perm.begin(), perm.end()));
103 }
104
105 TEST(TRANSPOSE_ND_X8, 5D) {
106 std::vector<size_t> perm{0,1,2,3,4};
107 do {
108 TransposeOperatorTester()
109 .num_dims(5)
110 .shape({3,5,7,11,13})
111 .perm(perm)
112 .TestX8();
113 } while (std::next_permutation(perm.begin(), perm.end()));
114 }
115
TEST(TRANSPOSE_ND_X8,Run5D)116 TEST(TRANSPOSE_ND_X8, Run5D) {
117 std::vector<size_t> perm{0,1,2,3,4};
118 do {
119 TransposeOperatorTester()
120 .num_dims(5)
121 .shape({3,5,7,11,13})
122 .perm(perm)
123 .TestRunX8();
124 } while (std::next_permutation(perm.begin(), perm.end()));
125 }
126
127 TEST(TRANSPOSE_ND_X8, 6D) {
128 std::vector<size_t> perm{0,1,2,3,4,5};
129 do {
130 TransposeOperatorTester()
131 .num_dims(6)
132 .shape({2,3,5,7,11,13})
133 .perm(perm)
134 .TestX8();
135 } while (std::next_permutation(perm.begin(), perm.end()));
136 }
137
TEST(TRANSPOSE_ND_X8,Run6D)138 TEST(TRANSPOSE_ND_X8, Run6D) {
139 std::vector<size_t> perm{0,1,2,3,4,5};
140 do {
141 TransposeOperatorTester()
142 .num_dims(6)
143 .shape({2,3,5,7,11,13})
144 .perm(perm)
145 .TestRunX8();
146 } while (std::next_permutation(perm.begin(), perm.end()));
147 }
148
149 TEST(TRANSPOSE_ND_X16, 1D) {
150 TransposeOperatorTester()
151 .num_dims(1)
152 .shape({713})
153 .perm({0})
154 .TestX16();
155 }
156
TEST(TRANSPOSE_ND_X16,Run1D)157 TEST(TRANSPOSE_ND_X16, Run1D) {
158 TransposeOperatorTester()
159 .num_dims(1)
160 .shape({713})
161 .perm({0})
162 .TestRunX16();
163 }
164
165 TEST(TRANSPOSE_ND_X16, 2D) {
166 std::vector<size_t> perm{0,1};
167 do {
168 TransposeOperatorTester()
169 .num_dims(2)
170 .shape({37, 113})
171 .perm(perm)
172 .TestX16();
173 } while (std::next_permutation(perm.begin(), perm.end()));
174 }
175
TEST(TRANSPOSE_ND_X16,Run2D)176 TEST(TRANSPOSE_ND_X16, Run2D) {
177 std::vector<size_t> perm{0,1};
178 do {
179 TransposeOperatorTester()
180 .num_dims(2)
181 .shape({37, 113})
182 .perm(perm)
183 .TestRunX16();
184 } while (std::next_permutation(perm.begin(), perm.end()));
185 }
186
187 TEST(TRANSPOSE_ND_X16, 3D) {
188 std::vector<size_t> perm{0,1,2};
189 do {
190 TransposeOperatorTester()
191 .num_dims(3)
192 .shape({5, 7, 11})
193 .perm(perm)
194 .TestX16();
195 } while (std::next_permutation(perm.begin(), perm.end()));
196 }
197
TEST(TRANSPOSE_ND_X16,Run3D)198 TEST(TRANSPOSE_ND_X16, Run3D) {
199 std::vector<size_t> perm{0,1,2};
200 do {
201 TransposeOperatorTester()
202 .num_dims(3)
203 .shape({5, 7, 11})
204 .perm(perm)
205 .TestRunX16();
206 } while (std::next_permutation(perm.begin(), perm.end()));
207 }
208
209 TEST(TRANSPOSE_ND_X16, 4D) {
210 std::vector<size_t> perm{0,1,2,3};
211 do {
212 TransposeOperatorTester()
213 .num_dims(4)
214 .shape({5,7,11,13})
215 .perm(perm)
216 .TestX16();
217 } while (std::next_permutation(perm.begin(), perm.end()));
218 }
219
TEST(TRANSPOSE_ND_X16,Run4D)220 TEST(TRANSPOSE_ND_X16, Run4D) {
221 std::vector<size_t> perm{0,1,2,3};
222 do {
223 TransposeOperatorTester()
224 .num_dims(4)
225 .shape({5,7,11,13})
226 .perm(perm)
227 .TestRunX16();
228 } while (std::next_permutation(perm.begin(), perm.end()));
229 }
230
231 TEST(TRANSPOSE_ND_X16, 5D) {
232 std::vector<size_t> perm{0,1,2,3,4};
233 do {
234 TransposeOperatorTester()
235 .num_dims(5)
236 .shape({3,5,7,11,13})
237 .perm(perm)
238 .TestX16();
239 } while (std::next_permutation(perm.begin(), perm.end()));
240 }
241
TEST(TRANSPOSE_ND_X16,Run5D)242 TEST(TRANSPOSE_ND_X16, Run5D) {
243 std::vector<size_t> perm{0,1,2,3,4};
244 do {
245 TransposeOperatorTester()
246 .num_dims(5)
247 .shape({3,5,7,11,13})
248 .perm(perm)
249 .TestX16();
250 } while (std::next_permutation(perm.begin(), perm.end()));
251 }
252
253 TEST(TRANSPOSE_ND_X16, 6D) {
254 std::vector<size_t> perm{0,1,2,3,4,5};
255 do {
256 TransposeOperatorTester()
257 .num_dims(6)
258 .shape({2,3,5,7,11,13})
259 .perm(perm)
260 .TestX16();
261 } while (std::next_permutation(perm.begin(), perm.end()));
262 }
263
TEST(TRANSPOSE_ND_X16,Run6D)264 TEST(TRANSPOSE_ND_X16, Run6D) {
265 std::vector<size_t> perm{0,1,2,3,4,5};
266 do {
267 TransposeOperatorTester()
268 .num_dims(6)
269 .shape({2,3,5,7,11,13})
270 .perm(perm)
271 .TestRunX16();
272 } while (std::next_permutation(perm.begin(), perm.end()));
273 }
274
275 TEST(TRANSPOSE_ND_X32, 1D) {
276 TransposeOperatorTester()
277 .num_dims(1)
278 .shape({713})
279 .perm({0})
280 .TestX32();
281 }
282
TEST(TRANSPOSE_ND_X32,Run1D)283 TEST(TRANSPOSE_ND_X32, Run1D) {
284 TransposeOperatorTester()
285 .num_dims(1)
286 .shape({713})
287 .perm({0})
288 .TestRunX32();
289 }
290
291 TEST(TRANSPOSE_ND_X32, 2D_all_dimensions_redundant) {
292 TransposeOperatorTester()
293 .num_dims(2)
294 .shape({1, 1})
295 .perm({1, 0})
296 .TestX32();
297 }
298
299 TEST(TRANSPOSE_ND_X32, 2D) {
300 std::vector<size_t> perm{0,1};
301 do {
302 TransposeOperatorTester()
303 .num_dims(2)
304 .shape({37, 113})
305 .perm(perm)
306 .TestX32();
307 } while (std::next_permutation(perm.begin(), perm.end()));
308 }
309
TEST(TRANSPOSE_ND_X32,Run2D)310 TEST(TRANSPOSE_ND_X32, Run2D) {
311 std::vector<size_t> perm{0,1};
312 do {
313 TransposeOperatorTester()
314 .num_dims(2)
315 .shape({37, 113})
316 .perm(perm)
317 .TestRunX32();
318 } while (std::next_permutation(perm.begin(), perm.end()));
319 }
320
321 TEST(TRANSPOSE_ND_X32, 3D_redundant_dimension) {
322 TransposeOperatorTester()
323 .num_dims(3)
324 .shape({2, 1, 3})
325 .perm({0, 2, 1})
326 .TestX32();
327 }
328
329 TEST(TRANSPOSE_ND_X32, 3D) {
330 std::vector<size_t> perm{0,1,2};
331 do {
332 TransposeOperatorTester()
333 .num_dims(3)
334 .shape({5, 7, 11})
335 .perm(perm)
336 .TestX32();
337 } while (std::next_permutation(perm.begin(), perm.end()));
338 }
339
TEST(TRANSPOSE_ND_X32,Run3D)340 TEST(TRANSPOSE_ND_X32, Run3D) {
341 std::vector<size_t> perm{0,1,2};
342 do {
343 TransposeOperatorTester()
344 .num_dims(3)
345 .shape({5, 7, 11})
346 .perm(perm)
347 .TestRunX32();
348 } while (std::next_permutation(perm.begin(), perm.end()));
349 }
350
351 TEST(TRANSPOSE_ND_X32, 4D) {
352 std::vector<size_t> perm{0,1,2,3};
353 do {
354 TransposeOperatorTester()
355 .num_dims(4)
356 .shape({5,7,11,13})
357 .perm(perm)
358 .TestX32();
359 } while (std::next_permutation(perm.begin(), perm.end()));
360 }
361
TEST(TRANSPOSE_ND_X32,Run4D)362 TEST(TRANSPOSE_ND_X32, Run4D) {
363 std::vector<size_t> perm{0,1,2,3};
364 do {
365 TransposeOperatorTester()
366 .num_dims(4)
367 .shape({5,7,11,13})
368 .perm(perm)
369 .TestRunX32();
370 } while (std::next_permutation(perm.begin(), perm.end()));
371 }
372
373 TEST(TRANSPOSE_ND_X32, 5D) {
374 std::vector<size_t> perm{0,1,2,3,4};
375 do {
376 TransposeOperatorTester()
377 .num_dims(5)
378 .shape({3,5,7,11,13})
379 .perm(perm)
380 .TestX32();
381 } while (std::next_permutation(perm.begin(), perm.end()));
382 }
383
TEST(TRANSPOSE_ND_X32,Run5D)384 TEST(TRANSPOSE_ND_X32, Run5D) {
385 std::vector<size_t> perm{0,1,2,3,4};
386 do {
387 TransposeOperatorTester()
388 .num_dims(5)
389 .shape({3,5,7,11,13})
390 .perm(perm)
391 .TestRunX32();
392 } while (std::next_permutation(perm.begin(), perm.end()));
393 }
394
395 TEST(TRANSPOSE_ND_X32, 6D) {
396 std::vector<size_t> perm{0,1,2,3,4,5};
397 do {
398 TransposeOperatorTester()
399 .num_dims(6)
400 .shape({2,3,5,7,11,13})
401 .perm(perm)
402 .TestX32();
403 } while (std::next_permutation(perm.begin(), perm.end()));
404 }
405
TEST(TRANSPOSE_ND_X32,Run6D)406 TEST(TRANSPOSE_ND_X32, Run6D) {
407 std::vector<size_t> perm{0,1,2,3,4,5};
408 do {
409 TransposeOperatorTester()
410 .num_dims(6)
411 .shape({2,3,5,7,11,13})
412 .perm(perm)
413 .TestRunX32();
414 } while (std::next_permutation(perm.begin(), perm.end()));
415 }
416
417 TEST(TRANSPOSE_ND_X32, 6D_DIMS_1) {
418 std::vector<size_t> perm{0,1,2,3,4,5};
419 do {
420 TransposeOperatorTester()
421 .num_dims(6)
422 .shape({1,1,1,2,3,4})
423 .perm(perm)
424 .TestX32();
425 } while (std::next_permutation(perm.begin(), perm.end()));
426 }
427