xref: /aosp_15_r20/external/armnn/delegate/test/TransposeTest.cpp (revision 89c4ff92f2867872bb9e2354d150bf0c8c502810)
1 //
2 // Copyright © 2020, 2023 Arm Ltd and Contributors. All rights reserved.
3 // SPDX-License-Identifier: MIT
4 //
5 
6 #include "TransposeTestHelper.hpp"
7 
8 #include <armnn_delegate.hpp>
9 
10 #include <doctest/doctest.h>
11 #include <flatbuffers/flatbuffers.h>
12 
13 namespace armnnDelegate
14 {
15 
TransposeFP32Test(std::vector<armnn::BackendId> & backends)16 void TransposeFP32Test(std::vector<armnn::BackendId>& backends)
17 {
18     // set test input data
19     std::vector<int32_t> input0Shape {4, 2, 3};
20     std::vector<int32_t> inputPermVecShape {3};
21     std::vector<int32_t> outputShape {3, 4, 2};
22 
23     std::vector<float> input0Values = {0,  1,  2,  3,  4,  5,  6,  7,  8,  9,  10, 11,
24                                        12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23};
25     std::vector<int32_t> inputPermVec = {2, 0, 1};
26     std::vector<float> expectedOutputValues = {0, 3, 6, 9, 12, 15, 18, 21, 1, 4, 7, 10,
27                                                13, 16, 19, 22, 2, 5, 8, 11, 14, 17, 20, 23};
28 
29     TransposeTest<float>(backends,
30                          input0Shape,
31                          inputPermVecShape,
32                          outputShape,
33                          input0Values,
34                          inputPermVec,
35                          expectedOutputValues);
36 }
37 
38 TEST_SUITE ("Transpose_GpuAccTests")
39 {
40 
41 TEST_CASE ("Transpose_Float32_GpuAcc_Test")
42 {
43     std::vector<armnn::BackendId> backends = {armnn::Compute::GpuAcc};
44     TransposeFP32Test(backends);
45 }
46 
47 }
48 
49 TEST_SUITE ("Transpose_CpuAccTests")
50 {
51 
52 TEST_CASE ("Transpose_Float32_CpuAcc_Test")
53 {
54     std::vector<armnn::BackendId> backends = {armnn::Compute::CpuAcc};
55     TransposeFP32Test(backends);
56 }
57 
58 }
59 
60 TEST_SUITE ("Transpose_CpuRefTests")
61 {
62 
63 TEST_CASE ("Transpose_Float32_CpuRef_Test")
64 {
65     std::vector<armnn::BackendId> backends = { armnn::Compute::CpuRef };
66     TransposeFP32Test(backends);
67 }
68 
69 }
70 
71 } // namespace armnnDelegate
72