blob: 50f7f53d5697098e754cc5f7cbb03831d7e22d56 [file] [log] [blame]
Sadik Armagan29b49cf2021-02-22 18:09:07 +00001//
2// Copyright © 2021 Arm Ltd and Contributors. All rights reserved.
3// SPDX-License-Identifier: MIT
4//
5
6#include "FillTestHelper.hpp"
7
8#include <armnn_delegate.hpp>
9
10#include <flatbuffers/flatbuffers.h>
11#include <tensorflow/lite/schema/schema_generated.h>
12
13#include <doctest/doctest.h>
14
15namespace armnnDelegate
16{
17
18void Fill2dTest(std::vector<armnn::BackendId>& backends,
19 tflite::BuiltinOperator fillOperatorCode = tflite::BuiltinOperator_FILL,
20 float fill = 2.0f )
21{
22 std::vector<int32_t> inputShape { 2 };
23 std::vector<int32_t> tensorShape { 2, 2 };
24 std::vector<float> expectedOutputValues = { fill, fill,
25 fill, fill };
26
27 FillTest<float>(fillOperatorCode,
28 ::tflite::TensorType_FLOAT32,
29 backends,
30 inputShape,
31 tensorShape,
32 expectedOutputValues,
33 fill);
34}
35
36void Fill3dTest(std::vector<armnn::BackendId>& backends,
37 tflite::BuiltinOperator fillOperatorCode = tflite::BuiltinOperator_FILL,
38 float fill = 5.0f )
39{
40 std::vector<int32_t> inputShape { 3 };
41 std::vector<int32_t> tensorShape { 3, 3, 3 };
42 std::vector<float> expectedOutputValues = { fill, fill, fill,
43 fill, fill, fill,
44 fill, fill, fill,
45
46 fill, fill, fill,
47 fill, fill, fill,
48 fill, fill, fill,
49
50 fill, fill, fill,
51 fill, fill, fill,
52 fill, fill, fill };
53
54 FillTest<float>(fillOperatorCode,
55 ::tflite::TensorType_FLOAT32,
56 backends,
57 inputShape,
58 tensorShape,
59 expectedOutputValues,
60 fill);
61}
62
63void Fill4dTest(std::vector<armnn::BackendId>& backends,
64 tflite::BuiltinOperator fillOperatorCode = tflite::BuiltinOperator_FILL,
65 float fill = 3.0f )
66{
67 std::vector<int32_t> inputShape { 4 };
68 std::vector<int32_t> tensorShape { 2, 2, 4, 4 };
69 std::vector<float> expectedOutputValues = { fill, fill, fill, fill,
70 fill, fill, fill, fill,
71 fill, fill, fill, fill,
72 fill, fill, fill, fill,
73
74 fill, fill, fill, fill,
75 fill, fill, fill, fill,
76 fill, fill, fill, fill,
77 fill, fill, fill, fill,
78
79 fill, fill, fill, fill,
80 fill, fill, fill, fill,
81 fill, fill, fill, fill,
82 fill, fill, fill, fill,
83
84 fill, fill, fill, fill,
85 fill, fill, fill, fill,
86 fill, fill, fill, fill,
87 fill, fill, fill, fill };
88
89 FillTest<float>(fillOperatorCode,
90 ::tflite::TensorType_FLOAT32,
91 backends,
92 inputShape,
93 tensorShape,
94 expectedOutputValues,
95 fill);
96}
97
98void FillInt32Test(std::vector<armnn::BackendId>& backends,
99 tflite::BuiltinOperator fillOperatorCode = tflite::BuiltinOperator_FILL,
100 int32_t fill = 2 )
101{
102 std::vector<int32_t> inputShape { 2 };
103 std::vector<int32_t> tensorShape { 2, 2 };
104 std::vector<int32_t> expectedOutputValues = { fill, fill,
105 fill, fill };
106
107 FillTest<int32_t>(fillOperatorCode,
108 ::tflite::TensorType_INT32,
109 backends,
110 inputShape,
111 tensorShape,
112 expectedOutputValues,
113 fill);
114}
115
116TEST_SUITE("Fill_CpuRefTests")
117{
118
119TEST_CASE ("Fill2d_CpuRef_Test")
120{
121 std::vector<armnn::BackendId> backends = { armnn::Compute::CpuRef };
122 Fill2dTest(backends);
123}
124
125TEST_CASE ("Fill3d_CpuRef_Test")
126{
127 std::vector<armnn::BackendId> backends = { armnn::Compute::CpuRef };
128 Fill3dTest(backends);
129}
130
131TEST_CASE ("Fill3d_CpuRef_Test")
132{
133 std::vector<armnn::BackendId> backends = { armnn::Compute::CpuRef };
134 Fill3dTest(backends);
135}
136
137TEST_CASE ("Fill4d_CpuRef_Test")
138{
139 std::vector<armnn::BackendId> backends = { armnn::Compute::CpuRef };
140 Fill4dTest(backends);
141}
142
143TEST_CASE ("FillInt32_CpuRef_Test")
144{
145 std::vector<armnn::BackendId> backends = { armnn::Compute::CpuRef };
146 FillInt32Test(backends);
147}
148
149}
150
151TEST_SUITE("Fill_CpuAccTests")
152{
153
154TEST_CASE ("Fill2d_CpuAcc_Test")
155{
156 std::vector<armnn::BackendId> backends = { armnn::Compute::CpuAcc };
157 Fill2dTest(backends);
158}
159
160TEST_CASE ("Fill3d_CpuAcc_Test")
161{
162 std::vector<armnn::BackendId> backends = { armnn::Compute::CpuAcc };
163 Fill3dTest(backends);
164}
165
166TEST_CASE ("Fill3d_CpuAcc_Test")
167{
168 std::vector<armnn::BackendId> backends = { armnn::Compute::CpuAcc };
169 Fill3dTest(backends);
170}
171
172TEST_CASE ("Fill4d_CpuAcc_Test")
173{
174 std::vector<armnn::BackendId> backends = { armnn::Compute::CpuAcc };
175 Fill4dTest(backends);
176}
177
178TEST_CASE ("FillInt32_CpuAcc_Test")
179{
180 std::vector<armnn::BackendId> backends = { armnn::Compute::CpuAcc };
181 FillInt32Test(backends);
182}
183
184}
185
186TEST_SUITE("Fill_GpuAccTests")
187{
188
189TEST_CASE ("Fill2d_GpuAcc_Test")
190{
191 std::vector<armnn::BackendId> backends = { armnn::Compute::GpuAcc };
192 Fill2dTest(backends);
193}
194
195TEST_CASE ("Fill3d_GpuAcc_Test")
196{
197 std::vector<armnn::BackendId> backends = { armnn::Compute::GpuAcc };
198 Fill3dTest(backends);
199}
200
201TEST_CASE ("Fill3d_GpuAcc_Test")
202{
203 std::vector<armnn::BackendId> backends = { armnn::Compute::GpuAcc };
204 Fill3dTest(backends);
205}
206
207TEST_CASE ("Fill4d_GpuAcc_Test")
208{
209 std::vector<armnn::BackendId> backends = { armnn::Compute::GpuAcc };
210 Fill4dTest(backends);
211}
212
213TEST_CASE ("FillInt32_GpuAcc_Test")
214{
215 std::vector<armnn::BackendId> backends = { armnn::Compute::GpuAcc };
216 FillInt32Test(backends);
217}
218
219}
220
221} // namespace armnnDelegate