blob: a40e7734a06f237f4f4e96b7b91dcd41c92e8411 [file] [log] [blame]
Tianle Cheng988354d2023-06-28 13:20:47 +01001//
2// Copyright © 2023 Arm Ltd and Contributors. All rights reserved.
3// SPDX-License-Identifier: MIT
4//
5
6#pragma once
7
8#include <armnnTestUtils/LayerTestResult.hpp>
9
10#include <ResolveType.hpp>
11
12#include <armnn/backends/IBackendInternal.hpp>
13
14// Empty test cases
15
16template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
17LayerTestResult<T, 2> ReverseV2SimpleTestEmptyAxis(
18 armnn::IWorkloadFactory& workloadFactory,
19 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
20 const armnn::ITensorHandleFactory& tensorHandleFactory);
21
22template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
23LayerTestResult<T, 2> ReverseV2SimpleTestEmptyTensor(
24 armnn::IWorkloadFactory& workloadFactory,
25 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
26 const armnn::ITensorHandleFactory& tensorHandleFactory);
27
28// Multidimensional input tensor and multi-axis tests
29// These test cases are conducted with even-row-even-column input tensors
30
31template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
32LayerTestResult<T, 2> ReverseV2SimpleTest1Dim(
33 armnn::IWorkloadFactory& workloadFactory,
34 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
35 const armnn::ITensorHandleFactory& tensorHandleFactory);
36
37template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
38LayerTestResult<T, 2> ReverseV2SimpleTest2Dim1Axis(
39 armnn::IWorkloadFactory& workloadFactory,
40 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
41 const armnn::ITensorHandleFactory& tensorHandleFactory);
42
43template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
44LayerTestResult<T, 2> ReverseV2SimpleTest2Dim2Axis(
45 armnn::IWorkloadFactory& workloadFactory,
46 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
47 const armnn::ITensorHandleFactory& tensorHandleFactory);
48
49template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
50LayerTestResult<T, 2> ReverseV2SimpleTest3Dim1Axis(
51 armnn::IWorkloadFactory& workloadFactory,
52 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
53 const armnn::ITensorHandleFactory& tensorHandleFactory);
54
55template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
56LayerTestResult<T, 2> ReverseV2SimpleTest3Dim2Axis(
57 armnn::IWorkloadFactory& workloadFactory,
58 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
59 const armnn::ITensorHandleFactory& tensorHandleFactory);
60
61template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
62LayerTestResult<T, 2> ReverseV2SimpleTest3Dim3Axis(
63 armnn::IWorkloadFactory& workloadFactory,
64 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
65 const armnn::ITensorHandleFactory& tensorHandleFactory);
66
67template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
68LayerTestResult<T, 2> ReverseV2SimpleTest4Dim1Axis(
69 armnn::IWorkloadFactory& workloadFactory,
70 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
71 const armnn::ITensorHandleFactory& tensorHandleFactory);
72
73template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
74LayerTestResult<T, 2> ReverseV2SimpleTest4Dim2Axis(
75 armnn::IWorkloadFactory& workloadFactory,
76 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
77 const armnn::ITensorHandleFactory& tensorHandleFactory);
78
79template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
80LayerTestResult<T, 2> ReverseV2SimpleTest4Dim3Axis(
81 armnn::IWorkloadFactory& workloadFactory,
82 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
83 const armnn::ITensorHandleFactory& tensorHandleFactory);
84
85template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
86LayerTestResult<T, 2> ReverseV2SimpleTest4Dim4Axis(
87 armnn::IWorkloadFactory& workloadFactory,
88 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
89 const armnn::ITensorHandleFactory& tensorHandleFactory);
90
91// Even and odd row number tests
92// These tests are conducted with 1-axis input param
93
94template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
95LayerTestResult<T, 2> ReverseV2EvenRowOddColTest2Dim(
96 armnn::IWorkloadFactory& workloadFactory,
97 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
98 const armnn::ITensorHandleFactory& tensorHandleFactory);
99
100template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
101LayerTestResult<T, 2> ReverseV2EvenRowOddColTest3Dim(
102 armnn::IWorkloadFactory& workloadFactory,
103 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
104 const armnn::ITensorHandleFactory& tensorHandleFactory);
105
106template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
107LayerTestResult<T, 2> ReverseV2EvenRowEvenColTest2Dim(
108 armnn::IWorkloadFactory& workloadFactory,
109 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
110 const armnn::ITensorHandleFactory& tensorHandleFactory);
111
112template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
113LayerTestResult<T, 2> ReverseV2EvenRowEvenColTest3Dim(
114 armnn::IWorkloadFactory& workloadFactory,
115 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
116 const armnn::ITensorHandleFactory& tensorHandleFactory);
117
118template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
119LayerTestResult<T, 2> ReverseV2OddRowOddColTest2Dim(
120 armnn::IWorkloadFactory& workloadFactory,
121 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
122 const armnn::ITensorHandleFactory& tensorHandleFactory);
123
124template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
125LayerTestResult<T, 2> ReverseV2OddRowOddColTest3Dim(
126 armnn::IWorkloadFactory& workloadFactory,
127 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
128 const armnn::ITensorHandleFactory& tensorHandleFactory);
129
130template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
131LayerTestResult<T, 2> ReverseV2OddRowEvenColTest2Dim(
132 armnn::IWorkloadFactory& workloadFactory,
133 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
134 const armnn::ITensorHandleFactory& tensorHandleFactory);
135
136template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
137LayerTestResult<T, 2> ReverseV2OddRowEvenColTest3Dim(
138 armnn::IWorkloadFactory& workloadFactory,
139 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
140 const armnn::ITensorHandleFactory& tensorHandleFactory);
141
142// Negative axis input tests with even-row-even-column input
143
144// one negative axis
145template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
146LayerTestResult<T, 2> ReverseV2NegAxisTest2Dim1Axis(
147 armnn::IWorkloadFactory& workloadFactory,
148 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
149 const armnn::ITensorHandleFactory& tensorHandleFactory);
150
151// one negative and one positive axis
152template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
153LayerTestResult<T, 2> ReverseV2NegAxisTest3Dim2Axis(
154 armnn::IWorkloadFactory& workloadFactory,
155 const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
156 const armnn::ITensorHandleFactory& tensorHandleFactory);