xref: /aosp_15_r20/external/armnn/src/backends/backendsCommon/test/layerTests/ResizeTestImpl.hpp (revision 89c4ff92f2867872bb9e2354d150bf0c8c502810)
1 //
2 // Copyright © 2017 Arm Ltd. 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/Types.hpp>
13 
14 #include <armnn/backends/IBackendInternal.hpp>
15 #include <armnn/backends/WorkloadFactory.hpp>
16 
17 // Bilinear
18 template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
19 LayerTestResult<T, 4> ResizeBilinearNopTest(
20     armnn::IWorkloadFactory& workloadFactory,
21     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
22     const armnn::ITensorHandleFactory& tensorHandleFactory,
23     const armnn::DataLayout dataLayout);
24 
25 template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
26 LayerTestResult<T, 4> SimpleResizeBilinearTest(
27     armnn::IWorkloadFactory& workloadFactory,
28     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
29     const armnn::ITensorHandleFactory& tensorHandleFactory,
30     const armnn::DataLayout dataLayout);
31 
32 template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
33 LayerTestResult<T, 4> ResizeBilinearSqMinTest(
34     armnn::IWorkloadFactory& workloadFactory,
35     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
36     const armnn::ITensorHandleFactory& tensorHandleFactory,
37     const armnn::DataLayout dataLayout);
38 
39 template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
40 LayerTestResult<T, 4> ResizeBilinearMinTest(
41     armnn::IWorkloadFactory& workloadFactory,
42     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
43     const armnn::ITensorHandleFactory& tensorHandleFactory,
44     const armnn::DataLayout dataLayout);
45 
46 template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
47 LayerTestResult<T, 4> ResizeBilinearMagTest(
48     armnn::IWorkloadFactory& workloadFactory,
49     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
50     const armnn::ITensorHandleFactory& tensorHandleFactory,
51     const armnn::DataLayout dataLayout);
52 
53 // NearestNeighbor
54 template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
55 LayerTestResult<T, 4> ResizeNearestNeighborNopTest(
56     armnn::IWorkloadFactory& workloadFactory,
57     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
58     const armnn::ITensorHandleFactory& tensorHandleFactory,
59     const armnn::DataLayout dataLayout);
60 
61 template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
62 LayerTestResult<T, 4> SimpleResizeNearestNeighborTest(
63     armnn::IWorkloadFactory& workloadFactory,
64     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
65     const armnn::ITensorHandleFactory& tensorHandleFactory,
66     const armnn::DataLayout dataLayout);
67 
68 template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
69 LayerTestResult<T, 4> ResizeNearestNeighborSqMinTest(
70     armnn::IWorkloadFactory& workloadFactory,
71     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
72     const armnn::ITensorHandleFactory& tensorHandleFactory,
73     const armnn::DataLayout dataLayout);
74 
75 template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
76 LayerTestResult<T, 4> ResizeNearestNeighborMinTest(
77     armnn::IWorkloadFactory& workloadFactory,
78     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
79     const armnn::ITensorHandleFactory& tensorHandleFactory,
80     const armnn::DataLayout dataLayout);
81 
82 template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
83 LayerTestResult<T, 4> ResizeNearestNeighborMagTest(
84     armnn::IWorkloadFactory& workloadFactory,
85     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
86     const armnn::ITensorHandleFactory& tensorHandleFactory,
87     const armnn::DataLayout dataLayout,
88     float inQuantScale,
89     int32_t inQuantOffset,
90     float outQuantScale,
91     int32_t outQuantOffset);
92 
93 template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
94 LayerTestResult<T, 4> HalfPixelCentersResizeBilinearTest(
95     armnn::IWorkloadFactory& workloadFactory,
96     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
97     const armnn::ITensorHandleFactory& tensorHandleFactory,
98     const armnn::DataLayout dataLayout);
99 
100 template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
101 LayerTestResult<T, 4> AlignCornersResizeBilinearTest(
102     armnn::IWorkloadFactory& workloadFactory,
103     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
104     const armnn::ITensorHandleFactory& tensorHandleFactory,
105     const armnn::DataLayout dataLayout);
106 
107 template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
108 LayerTestResult<T, 4> HalfPixelCentersResizeNearestNeighbourTest(
109     armnn::IWorkloadFactory& workloadFactory,
110     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
111     const armnn::ITensorHandleFactory& tensorHandleFactory,
112     const armnn::DataLayout dataLayout);
113 
114 template<armnn::DataType ArmnnType, typename T = armnn::ResolveType<ArmnnType>>
115 LayerTestResult<T, 4> AlignCornersResizeNearestNeighbourTest(
116     armnn::IWorkloadFactory& workloadFactory,
117     const armnn::IBackendInternal::IMemoryManagerSharedPtr& memoryManager,
118     const armnn::ITensorHandleFactory& tensorHandleFactory,
119     const armnn::DataLayout dataLayout);