blob: bdda12f392b87425c69b29a570b3ec3ca81d42e2 [file] [log] [blame]
Aron Virginas-Tar70104002018-10-24 15:33:28 +01001//
2// Copyright © 2017 Arm Ltd. All rights reserved.
3// SPDX-License-Identifier: MIT
4//
5
Aron Virginas-Tarc9cc8042018-11-01 16:15:57 +00006#include <backendsCommon/test/EndToEndTestImpl.hpp>
Narumol Prangnawarat6d302bf2019-02-04 11:46:26 +00007
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00008#include <backendsCommon/test/ArgMinMaxEndToEndTestImpl.hpp>
Francis Murtaghe24e3cd2019-06-25 14:41:55 +01009#include <backendsCommon/test/BatchToSpaceNdEndToEndTestImpl.hpp>
Aron Virginas-Tar77bfb5e2019-10-16 17:45:38 +010010#include <backendsCommon/test/ComparisonEndToEndTestImpl.hpp>
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +010011#include <backendsCommon/test/ConcatEndToEndTestImpl.hpp>
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +010012#include <backendsCommon/test/DepthToSpaceEndToEndTestImpl.hpp>
Narumol Prangnawarat8c7324d2019-05-31 16:42:11 +010013#include <backendsCommon/test/DequantizeEndToEndTestImpl.hpp>
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +010014#include <backendsCommon/test/DetectionPostProcessEndToEndTestImpl.hpp>
josh minor4a3c6102020-01-06 16:40:46 -060015#include <backendsCommon/test/ElementwiseUnaryEndToEndTestImpl.hpp>
narpra01db2b1602019-01-23 15:23:11 +000016#include <backendsCommon/test/GatherEndToEndTestImpl.hpp>
Sadik Armagan062e0e92019-10-14 10:31:43 +010017#include <backendsCommon/test/InstanceNormalizationEndToEndTestImpl.hpp>
Sadik Armagan20bea002019-10-16 09:29:38 +010018#include <backendsCommon/test/LogSoftmaxEndToEndTestImpl.hpp>
Nikhil Raj747f5862019-07-19 15:15:23 +010019#include <backendsCommon/test/PreluEndToEndTestImpl.hpp>
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +010020#include <backendsCommon/test/ResizeEndToEndTestImpl.hpp>
Keith Davis9515c7e2019-06-21 09:33:59 +010021#include <backendsCommon/test/SpaceToDepthEndToEndTestImpl.hpp>
Narumol Prangnawarat0be43382019-05-27 11:29:59 +010022#include <backendsCommon/test/SplitterEndToEndTestImpl.hpp>
Aron Virginas-Tar98180ef2019-06-26 15:02:47 +010023#include <backendsCommon/test/TransposeConvolution2dEndToEndTestImpl.hpp>
Aron Virginas-Tar70104002018-10-24 15:33:28 +010024
25#include <boost/test/unit_test.hpp>
Éanna Ó Catháin20e58802018-12-04 10:29:06 +000026#include <boost/test/execution_monitor.hpp>
Aron Virginas-Tar70104002018-10-24 15:33:28 +010027
28BOOST_AUTO_TEST_SUITE(RefEndToEnd)
29
narpra01b9546cf2018-11-20 15:21:28 +000030std::vector<armnn::BackendId> defaultBackends = {armnn::Compute::CpuRef};
31
Aron Virginas-Tar8fccd862019-09-09 11:22:56 +010032// Abs
33BOOST_AUTO_TEST_CASE(RefAbsEndToEndTestFloat32)
34{
josh minor4a3c6102020-01-06 16:40:46 -060035 std::vector<float> expectedOutput =
36 {
37 1.f, 1.f, 1.f, 1.f, 5.f, 5.f, 5.f, 5.f,
38 3.f, 3.f, 3.f, 3.f, 4.f, 4.f, 4.f, 4.f
39 };
40
41 ElementwiseUnarySimpleEndToEnd<armnn::DataType::Float32>(defaultBackends,
42 UnaryOperation::Abs,
43 expectedOutput);
Aron Virginas-Tar8fccd862019-09-09 11:22:56 +010044}
45
46BOOST_AUTO_TEST_CASE(RefAbsEndToEndTestUint8)
47{
josh minor4a3c6102020-01-06 16:40:46 -060048 // Note the expected output will be implicitly quantized by the below test function
49 std::vector<float> expectedOutput =
50 {
51 1.f, 1.f, 1.f, 1.f, 5.f, 5.f, 5.f, 5.f,
52 3.f, 3.f, 3.f, 3.f, 4.f, 4.f, 4.f, 4.f
53 };
54
55 ElementwiseUnarySimpleEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends,
56 UnaryOperation::Abs,
57 expectedOutput);
Aron Virginas-Tar8fccd862019-09-09 11:22:56 +010058}
59
60BOOST_AUTO_TEST_CASE(RefAbsEndToEndTestInt16)
61{
josh minor4a3c6102020-01-06 16:40:46 -060062 // Note the expected output will be implicitly quantized by the below test function
63 std::vector<float> expectedOutput =
64 {
65 1.f, 1.f, 1.f, 1.f, 5.f, 5.f, 5.f, 5.f,
66 3.f, 3.f, 3.f, 3.f, 4.f, 4.f, 4.f, 4.f
67 };
68
69 ElementwiseUnarySimpleEndToEnd<armnn::DataType::QSymmS16>(defaultBackends,
70 UnaryOperation::Abs,
71 expectedOutput);
Aron Virginas-Tar8fccd862019-09-09 11:22:56 +010072}
73
74// Constant
Aron Virginas-Tar70104002018-10-24 15:33:28 +010075BOOST_AUTO_TEST_CASE(ConstantUsage_Ref_Float32)
76{
narpra01b9546cf2018-11-20 15:21:28 +000077 BOOST_TEST(ConstantUsageFloat32Test(defaultBackends));
Aron Virginas-Tar70104002018-10-24 15:33:28 +010078}
79
80BOOST_AUTO_TEST_CASE(ConstantUsage_Ref_Uint8)
81{
narpra01b9546cf2018-11-20 15:21:28 +000082 BOOST_TEST(ConstantUsageUint8Test(defaultBackends));
Aron Virginas-Tar70104002018-10-24 15:33:28 +010083}
84
85BOOST_AUTO_TEST_CASE(Unsigned8)
86{
87 using namespace armnn;
88
89 // Create runtime in which test will run
90 armnn::IRuntime::CreationOptions options;
91 armnn::IRuntimePtr runtime(armnn::IRuntime::Create(options));
92
93 // Builds up the structure of the network.
94 armnn::INetworkPtr net(INetwork::Create());
95
96 IConnectableLayer* input = net->AddInputLayer(0, "input");
97 IConnectableLayer* softmax = net->AddSoftmaxLayer(SoftmaxDescriptor(), "softmax");
98 IConnectableLayer* output = net->AddOutputLayer(0, "output");
99
100 input->GetOutputSlot(0).Connect(softmax->GetInputSlot(0));
101 softmax->GetOutputSlot(0).Connect(output->GetInputSlot(0));
102
103 // Sets the tensors in the network.
Derek Lambertif90c56d2020-01-10 17:14:08 +0000104 TensorInfo inputTensorInfo(TensorShape({1, 5}), DataType::QAsymmU8);
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100105 inputTensorInfo.SetQuantizationOffset(100);
106 inputTensorInfo.SetQuantizationScale(10000.0f);
107 input->GetOutputSlot(0).SetTensorInfo(inputTensorInfo);
108
Derek Lambertif90c56d2020-01-10 17:14:08 +0000109 TensorInfo outputTensorInfo(TensorShape({1, 5}), DataType::QAsymmU8);
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100110 outputTensorInfo.SetQuantizationOffset(0);
111 outputTensorInfo.SetQuantizationScale(1.0f/255.0f);
112 softmax->GetOutputSlot(0).SetTensorInfo(outputTensorInfo);
113
114 // optimize the network
narpra01b9546cf2018-11-20 15:21:28 +0000115 IOptimizedNetworkPtr optNet = Optimize(*net, defaultBackends, runtime->GetDeviceSpec());
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100116
117 // Loads it into the runtime.
118 NetworkId netId;
119 auto error = runtime->LoadNetwork(netId, std::move(optNet));
120 BOOST_TEST(error == Status::Success);
121
122 // Creates structures for input & output.
123 std::vector<uint8_t> inputData
124 {
125 1, 10, 3, 200, 5 // Some inputs - one of which is sufficiently larger than the others to saturate softmax.
126 };
127 std::vector<uint8_t> outputData(5);
128
129 armnn::InputTensors inputTensors
130 {
131 {0, armnn::ConstTensor(runtime->GetInputTensorInfo(netId, 0), inputData.data())}
132 };
133 armnn::OutputTensors outputTensors
134 {
135 {0, armnn::Tensor(runtime->GetOutputTensorInfo(netId, 0), outputData.data())}
136 };
137
138 // Does the inference.
139 runtime->EnqueueWorkload(netId, inputTensors, outputTensors);
140
141 // Checks the results.
142 BOOST_TEST(outputData[0] == 0);
143 BOOST_TEST(outputData[1] == 0);
144 BOOST_TEST(outputData[2] == 0);
145 BOOST_TEST(outputData[3] == 255); // softmax has been saturated.
146 BOOST_TEST(outputData[4] == 0);
147}
148
149BOOST_AUTO_TEST_CASE(TrivialAdd)
150{
151 // This test was designed to match "AddTwo" in android nn/runtime/test/TestTrivialModel.cpp.
152
153 using namespace armnn;
154
155 // Create runtime in which test will run
156 armnn::IRuntime::CreationOptions options;
157 armnn::IRuntimePtr runtime(armnn::IRuntime::Create(options));
158
159 // Builds up the structure of the network.
160 armnn::INetworkPtr net(INetwork::Create());
161
162 IConnectableLayer* input1 = net->AddInputLayer(0);
163 IConnectableLayer* input2 = net->AddInputLayer(1);
164 IConnectableLayer* add = net->AddAdditionLayer();
165 IConnectableLayer* output = net->AddOutputLayer(0);
166
167 input1->GetOutputSlot(0).Connect(add->GetInputSlot(0));
168 input2->GetOutputSlot(0).Connect(add->GetInputSlot(1));
169 add->GetOutputSlot(0).Connect(output->GetInputSlot(0));
170
171 // Sets the tensors in the network.
172 TensorInfo tensorInfo(TensorShape({3, 4}), DataType::Float32);
173 input1->GetOutputSlot(0).SetTensorInfo(tensorInfo);
174 input2->GetOutputSlot(0).SetTensorInfo(tensorInfo);
175 add->GetOutputSlot(0).SetTensorInfo(tensorInfo);
176
177 // optimize the network
narpra01b9546cf2018-11-20 15:21:28 +0000178 IOptimizedNetworkPtr optNet = Optimize(*net, defaultBackends, runtime->GetDeviceSpec());
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100179
180 // Loads it into the runtime.
181 NetworkId netId;
182 runtime->LoadNetwork(netId, std::move(optNet));
183
184 // Creates structures for input & output - matching android nn test.
185 std::vector<float> input1Data
186 {
187 1.f, 2.f, 3.f, 4.f, 5.f, 6.f, 7.f, 8.f, 9.f, 10.f, 11.f, 12.f
188 };
189 std::vector<float> input2Data
190 {
191 100.f, 200.f, 300.f, 400.f, 500.f, 600.f, 700.f, 800.f, 900.f, 1000.f, 1100.f, 1200.f
192 };
193 std::vector<float> outputData(12);
194
195 InputTensors inputTensors
196 {
197 {0,armnn::ConstTensor(runtime->GetInputTensorInfo(netId, 0), input1Data.data())},
198 {1,armnn::ConstTensor(runtime->GetInputTensorInfo(netId, 0), input2Data.data())}
199 };
200 OutputTensors outputTensors
201 {
202 {0,armnn::Tensor(runtime->GetOutputTensorInfo(netId, 0), outputData.data())}
203 };
204
205 // Does the inference.
206 runtime->EnqueueWorkload(netId, inputTensors, outputTensors);
207
208 // Checks the results
209 BOOST_TEST(outputData[0] == 101);
210 BOOST_TEST(outputData[1] == 202);
211 BOOST_TEST(outputData[2] == 303);
212 BOOST_TEST(outputData[3] == 404);
213 BOOST_TEST(outputData[4] == 505);
214 BOOST_TEST(outputData[5] == 606);
215 BOOST_TEST(outputData[6] == 707);
216 BOOST_TEST(outputData[7] == 808);
217 BOOST_TEST(outputData[8] == 909);
218 BOOST_TEST(outputData[9] == 1010);
219 BOOST_TEST(outputData[10] == 1111);
220 BOOST_TEST(outputData[11] == 1212);
221}
222
223BOOST_AUTO_TEST_CASE(MultipleOutputs)
224{
225 using namespace armnn;
226
227 // Create runtime in which test will run
228 armnn::IRuntime::CreationOptions options;
229 armnn::IRuntimePtr runtime(armnn::IRuntime::Create(options));
230
231 // Builds up the structure of the network.
232 INetworkPtr net(INetwork::Create());
233
234 IConnectableLayer* input = net->AddInputLayer(0);
235
236 // ReLu1
237 ActivationDescriptor activation1Descriptor;
238 activation1Descriptor.m_Function = ActivationFunction::BoundedReLu;
239 activation1Descriptor.m_A = 1.f;
240 activation1Descriptor.m_B = -1.f;
241 IConnectableLayer* activation1 = net->AddActivationLayer(activation1Descriptor);
242
243 // ReLu6
244 ActivationDescriptor activation2Descriptor;
245 activation2Descriptor.m_Function = ActivationFunction::BoundedReLu;
246 activation2Descriptor.m_A = 6.0f;
247 IConnectableLayer* activation2 = net->AddActivationLayer(activation2Descriptor);
248
249 // BoundedReLu(min=2, max=5)
250 ActivationDescriptor activation3Descriptor;
251 activation3Descriptor.m_Function = ActivationFunction::BoundedReLu;
252 activation3Descriptor.m_A = 5.0f;
253 activation3Descriptor.m_B = 2.0f;
254 IConnectableLayer* activation3 = net->AddActivationLayer(activation3Descriptor);
255
256 IConnectableLayer* output1 = net->AddOutputLayer(0);
257 IConnectableLayer* output2 = net->AddOutputLayer(1);
258 IConnectableLayer* output3 = net->AddOutputLayer(2);
259
260 input->GetOutputSlot(0).Connect(activation1->GetInputSlot(0));
261 input->GetOutputSlot(0).Connect(activation2->GetInputSlot(0));
262 input->GetOutputSlot(0).Connect(activation3->GetInputSlot(0));
263
264 activation1->GetOutputSlot(0).Connect(output1->GetInputSlot(0));
265 activation2->GetOutputSlot(0).Connect(output2->GetInputSlot(0));
266 activation3->GetOutputSlot(0).Connect(output3->GetInputSlot(0));
267
268 // Sets the tensors in the network.
269 TensorInfo tensorInfo(TensorShape({ 10 }), DataType::Float32);
270 input->GetOutputSlot(0).SetTensorInfo(tensorInfo);
271 activation1->GetOutputSlot(0).SetTensorInfo(tensorInfo);
272 activation2->GetOutputSlot(0).SetTensorInfo(tensorInfo);
273 activation3->GetOutputSlot(0).SetTensorInfo(tensorInfo);
274
275 // optimize the network
narpra01b9546cf2018-11-20 15:21:28 +0000276 IOptimizedNetworkPtr optNet = Optimize(*net, defaultBackends, runtime->GetDeviceSpec());
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100277
278 // Loads it into the runtime.
279 NetworkId netId;
280 runtime->LoadNetwork(netId, std::move(optNet));
281
282 // Creates structures for input & output.
283 const std::vector<float> inputData{ 3.f, 5.f, 2.f, 3.f, 7.f, 0.f, -2.f, -1.f, 3.f, 3.f };
284
285 std::vector<float> output1Data(inputData.size());
286 std::vector<float> output2Data(inputData.size());
287 std::vector<float> output3Data(inputData.size());
288
289 InputTensors inputTensors
290 {
291 {0,armnn::ConstTensor(runtime->GetInputTensorInfo(netId, 0), inputData.data())}
292 };
293 OutputTensors outputTensors
294 {
295 {0,armnn::Tensor(runtime->GetOutputTensorInfo(netId, 0), output1Data.data())},
296 {1,armnn::Tensor(runtime->GetOutputTensorInfo(netId, 1), output2Data.data())},
297 {2,armnn::Tensor(runtime->GetOutputTensorInfo(netId, 2), output3Data.data())}
298 };
299
300 // Does the inference.
301 runtime->EnqueueWorkload(netId, inputTensors, outputTensors);
302
303 // Checks the results.
304 BOOST_TEST(output1Data == std::vector<float>({ 1.f, 1.f, 1.f, 1.f, 1.f, 0.f, -1.f, -1.f, 1.f, 1.f })); // ReLu1
305 BOOST_TEST(output2Data == std::vector<float>({ 3.f, 5.f, 2.f, 3.f, 6.f, 0.f, 0.f, 0.f, 3.f, 3.f })); // ReLu6
306 BOOST_TEST(output3Data == std::vector<float>({ 3.f, 5.f, 2.f, 3.f, 5.f, 2.f, 2.f, 2.f, 3.f, 3.f })); // [2, 5]
307}
308
Éanna Ó Catháin20e58802018-12-04 10:29:06 +0000309BOOST_AUTO_TEST_CASE(TrivialMin)
310{
311 using namespace armnn;
312
313 // Create runtime in which test will run
314 armnn::IRuntime::CreationOptions options;
315 armnn::IRuntimePtr runtime(armnn::IRuntime::Create(options));
316
317 // Builds up the structure of the network.
318 armnn::INetworkPtr net(INetwork::Create());
319
320 IConnectableLayer* input1 = net->AddInputLayer(0);
321 IConnectableLayer* input2 = net->AddInputLayer(1);
322 IConnectableLayer* min = net->AddMinimumLayer();
323 IConnectableLayer* output = net->AddOutputLayer(0);
324
325 input1->GetOutputSlot(0).Connect(min->GetInputSlot(0));
326 input2->GetOutputSlot(0).Connect(min->GetInputSlot(1));
327 min->GetOutputSlot(0).Connect(output->GetInputSlot(0));
328
329 // Sets the tensors in the network.
330 TensorInfo tensorInfo(TensorShape({1, 1, 1, 4}), DataType::Float32);
331 input1->GetOutputSlot(0).SetTensorInfo(tensorInfo);
332 input2->GetOutputSlot(0).SetTensorInfo(tensorInfo);
333 min->GetOutputSlot(0).SetTensorInfo(tensorInfo);
334
335 // optimize the network
336 IOptimizedNetworkPtr optNet = Optimize(*net, defaultBackends, runtime->GetDeviceSpec());
337
338 // Loads it into the runtime.
339 NetworkId netId;
340 runtime->LoadNetwork(netId, std::move(optNet));
341
342 // Creates structures for input & output - matching android nn test.
343 std::vector<float> input1Data
344 {
345 1.0f, 2.0f, 3.0f, 4.0f
346 };
347 std::vector<float> input2Data
348 {
349 2.0f, 1.0f, 5.0f, 2.0f
350 };
351 std::vector<float> outputData(4);
352
353 InputTensors inputTensors
354 {
355 {0,armnn::ConstTensor(runtime->GetInputTensorInfo(netId, 0), input1Data.data())},
356 {1,armnn::ConstTensor(runtime->GetInputTensorInfo(netId, 0), input2Data.data())}
357 };
358 OutputTensors outputTensors
359 {
360 {0,armnn::Tensor(runtime->GetOutputTensorInfo(netId, 0), outputData.data())}
361 };
362
363 // Does the inference.
364 runtime->EnqueueWorkload(netId, inputTensors, outputTensors);
365
366 // Checks the results
367 BOOST_TEST(outputData[0] == 1);
368 BOOST_TEST(outputData[1] == 1);
369 BOOST_TEST(outputData[2] == 3);
370 BOOST_TEST(outputData[3] == 2);
371}
372
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000373BOOST_AUTO_TEST_CASE(RefEqualSimpleEndToEndTest)
374{
kevmay012b4d88e2019-01-24 14:05:09 +0000375 const std::vector<uint8_t> expectedOutput({ 1, 1, 1, 1, 0, 0, 0, 0,
376 0, 0, 0, 0, 1, 1, 1, 1 });
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000377
Aron Virginas-Tar77bfb5e2019-10-16 17:45:38 +0100378 ComparisonSimpleEndToEnd<armnn::DataType::Float32>(defaultBackends,
379 ComparisonOperation::Equal,
380 expectedOutput);
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000381}
382
383BOOST_AUTO_TEST_CASE(RefGreaterSimpleEndToEndTest)
384{
kevmay012b4d88e2019-01-24 14:05:09 +0000385 const std::vector<uint8_t> expectedOutput({ 0, 0, 0, 0, 1, 1, 1, 1,
386 0, 0, 0, 0, 0, 0, 0, 0 });
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000387
Aron Virginas-Tar77bfb5e2019-10-16 17:45:38 +0100388 ComparisonSimpleEndToEnd<armnn::DataType::Float32>(defaultBackends,
389 ComparisonOperation::Greater,
390 expectedOutput);
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000391}
392
393BOOST_AUTO_TEST_CASE(RefEqualSimpleEndToEndUint8Test)
394{
395 const std::vector<uint8_t> expectedOutput({ 1, 1, 1, 1, 0, 0, 0, 0,
396 0, 0, 0, 0, 1, 1, 1, 1 });
397
Derek Lambertif90c56d2020-01-10 17:14:08 +0000398 ComparisonSimpleEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends,
Aron Virginas-Tar77bfb5e2019-10-16 17:45:38 +0100399 ComparisonOperation::Equal,
400 expectedOutput);
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000401}
402
403BOOST_AUTO_TEST_CASE(RefGreaterSimpleEndToEndUint8Test)
404{
405 const std::vector<uint8_t> expectedOutput({ 0, 0, 0, 0, 1, 1, 1, 1,
406 0, 0, 0, 0, 0, 0, 0, 0 });
407
Derek Lambertif90c56d2020-01-10 17:14:08 +0000408 ComparisonSimpleEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends,
Aron Virginas-Tar77bfb5e2019-10-16 17:45:38 +0100409 ComparisonOperation::Greater,
410 expectedOutput);
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000411}
412
413BOOST_AUTO_TEST_CASE(RefEqualBroadcastEndToEndTest)
414{
kevmay012b4d88e2019-01-24 14:05:09 +0000415 const std::vector<uint8_t> expectedOutput({ 1, 0, 1, 1, 0, 0,
416 0, 0, 0, 0, 0, 0 });
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000417
Aron Virginas-Tar77bfb5e2019-10-16 17:45:38 +0100418 ComparisonBroadcastEndToEnd<armnn::DataType::Float32>(defaultBackends,
419 ComparisonOperation::Equal,
420 expectedOutput);
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000421}
422
423BOOST_AUTO_TEST_CASE(RefGreaterBroadcastEndToEndTest)
424{
kevmay012b4d88e2019-01-24 14:05:09 +0000425 const std::vector<uint8_t> expectedOutput({ 0, 1, 0, 0, 0, 1,
426 1, 1, 1, 1, 1, 1 });
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000427
Aron Virginas-Tar77bfb5e2019-10-16 17:45:38 +0100428 ComparisonBroadcastEndToEnd<armnn::DataType::Float32>(defaultBackends,
429 ComparisonOperation::Greater,
430 expectedOutput);
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000431}
432
433BOOST_AUTO_TEST_CASE(RefEqualBroadcastEndToEndUint8Test)
434{
435 const std::vector<uint8_t > expectedOutput({ 1, 0, 1, 1, 0, 0,
436 0, 0, 0, 0, 0, 0 });
437
Derek Lambertif90c56d2020-01-10 17:14:08 +0000438 ComparisonBroadcastEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends,
Aron Virginas-Tar77bfb5e2019-10-16 17:45:38 +0100439 ComparisonOperation::Equal,
440 expectedOutput);
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000441}
442
443BOOST_AUTO_TEST_CASE(RefGreaterBroadcastEndToEndUint8Test)
444{
445 const std::vector<uint8_t> expectedOutput({ 0, 1, 0, 0, 0, 1,
446 1, 1, 1, 1, 1, 1 });
447
Derek Lambertif90c56d2020-01-10 17:14:08 +0000448 ComparisonBroadcastEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends,
Aron Virginas-Tar77bfb5e2019-10-16 17:45:38 +0100449 ComparisonOperation::Greater,
450 expectedOutput);
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000451}
Éanna Ó Catháin20e58802018-12-04 10:29:06 +0000452
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100453BOOST_AUTO_TEST_CASE(RefBatchToSpaceNdEndToEndFloat32NHWCTest)
454{
455 BatchToSpaceNdEndToEnd<armnn::DataType::Float32>(defaultBackends, armnn::DataLayout::NHWC);
456}
457
458BOOST_AUTO_TEST_CASE(RefBatchToSpaceNdEndToEndUint8NHWCTest)
459{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000460 BatchToSpaceNdEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, armnn::DataLayout::NHWC);
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100461}
462
463BOOST_AUTO_TEST_CASE(RefBatchToSpaceNdEndToEndQSymm16NHWCTest)
464{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000465 BatchToSpaceNdEndToEnd<armnn::DataType::QSymmS16>(defaultBackends, armnn::DataLayout::NHWC);
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100466}
467
468BOOST_AUTO_TEST_CASE(RefBatchToSpaceNdEndToEndFloat32NCHWTest)
469{
470 BatchToSpaceNdEndToEnd<armnn::DataType::Float32>(defaultBackends, armnn::DataLayout::NCHW);
471}
472
473BOOST_AUTO_TEST_CASE(RefBatchToSpaceNdEndToEndUint8NCHWTest)
474{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000475 BatchToSpaceNdEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, armnn::DataLayout::NCHW);
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100476}
477
478BOOST_AUTO_TEST_CASE(RefBatchToSpaceNdEndToEndQSymm16NCHWTest)
479{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000480 BatchToSpaceNdEndToEnd<armnn::DataType::QSymmS16>(defaultBackends, armnn::DataLayout::NCHW);
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100481}
482
483BOOST_AUTO_TEST_CASE(RefBatchToSpaceNdEndToEndComplexFloat32NHWCTest)
484{
485 BatchToSpaceNdComplexEndToEnd<armnn::DataType::Float32>(defaultBackends, armnn::DataLayout::NHWC);
486}
487
488BOOST_AUTO_TEST_CASE(RefBatchToSpaceNdEndToEndComplexUint8NHWCTest)
489{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000490 BatchToSpaceNdComplexEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, armnn::DataLayout::NHWC);
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100491}
492
493BOOST_AUTO_TEST_CASE(RefBatchToSpaceNdEndToEndComplexQSymm16NHWCTest)
494{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000495 BatchToSpaceNdComplexEndToEnd<armnn::DataType::QSymmS16>(defaultBackends, armnn::DataLayout::NHWC);
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100496}
497
498BOOST_AUTO_TEST_CASE(RefBatchToSpaceNdEndToEndComplexFloat32NCHWTest)
499{
500 BatchToSpaceNdComplexEndToEnd<armnn::DataType::Float32>(defaultBackends, armnn::DataLayout::NCHW);
501}
502
503BOOST_AUTO_TEST_CASE(RefBatchToSpaceNdEndToEndComplexUint8NCHWTest)
504{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000505 BatchToSpaceNdComplexEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, armnn::DataLayout::NCHW);
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100506}
507
508BOOST_AUTO_TEST_CASE(RefBatchToSpaceNdEndToEndComplexQSymm16NCHWTest)
509{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000510 BatchToSpaceNdComplexEndToEnd<armnn::DataType::QSymmS16>(defaultBackends, armnn::DataLayout::NCHW);
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100511}
512
Jim Flynne242f2d2019-05-22 14:24:13 +0100513BOOST_AUTO_TEST_CASE(RefConcatEndToEndDim0Test)
narpra01b9546cf2018-11-20 15:21:28 +0000514{
Jim Flynne242f2d2019-05-22 14:24:13 +0100515 ConcatDim0EndToEnd<armnn::DataType::Float32>(defaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +0000516}
517
Jim Flynne242f2d2019-05-22 14:24:13 +0100518BOOST_AUTO_TEST_CASE(RefConcatEndToEndDim0Uint8Test)
narpra01b9546cf2018-11-20 15:21:28 +0000519{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000520 ConcatDim0EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +0000521}
522
Jim Flynne242f2d2019-05-22 14:24:13 +0100523BOOST_AUTO_TEST_CASE(RefConcatEndToEndDim1Test)
narpra01b9546cf2018-11-20 15:21:28 +0000524{
Jim Flynne242f2d2019-05-22 14:24:13 +0100525 ConcatDim1EndToEnd<armnn::DataType::Float32>(defaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +0000526}
527
Jim Flynne242f2d2019-05-22 14:24:13 +0100528BOOST_AUTO_TEST_CASE(RefConcatEndToEndDim1Uint8Test)
narpra01b9546cf2018-11-20 15:21:28 +0000529{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000530 ConcatDim1EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +0000531}
532
Jim Flynne242f2d2019-05-22 14:24:13 +0100533BOOST_AUTO_TEST_CASE(RefConcatEndToEndDim2Test)
narpra01b9546cf2018-11-20 15:21:28 +0000534{
Jim Flynne242f2d2019-05-22 14:24:13 +0100535 ConcatDim2EndToEnd<armnn::DataType::Float32>(defaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +0000536}
537
Jim Flynne242f2d2019-05-22 14:24:13 +0100538BOOST_AUTO_TEST_CASE(RefConcatEndToEndDim2Uint8Test)
narpra01b9546cf2018-11-20 15:21:28 +0000539{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000540 ConcatDim2EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +0000541}
542
Jim Flynne242f2d2019-05-22 14:24:13 +0100543BOOST_AUTO_TEST_CASE(RefConcatEndToEndDim3Test)
narpra01b9546cf2018-11-20 15:21:28 +0000544{
Jim Flynne242f2d2019-05-22 14:24:13 +0100545 ConcatDim3EndToEnd<armnn::DataType::Float32>(defaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +0000546}
547
Jim Flynne242f2d2019-05-22 14:24:13 +0100548BOOST_AUTO_TEST_CASE(RefConcatEndToEndDim3Uint8Test)
narpra01b9546cf2018-11-20 15:21:28 +0000549{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000550 ConcatDim3EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +0000551}
552
narpra01db2b1602019-01-23 15:23:11 +0000553BOOST_AUTO_TEST_CASE(RefGatherFloatTest)
554{
555 GatherEndToEnd<armnn::DataType::Float32>(defaultBackends);
556}
557
558BOOST_AUTO_TEST_CASE(RefGatherUint8Test)
559{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000560 GatherEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
narpra01db2b1602019-01-23 15:23:11 +0000561}
562
Ellen Norris-Thompsone0dbedf2019-06-24 09:23:38 +0100563BOOST_AUTO_TEST_CASE(RefGatherInt16Test)
564{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000565 GatherEndToEnd<armnn::DataType::QSymmS16>(defaultBackends);
Ellen Norris-Thompsone0dbedf2019-06-24 09:23:38 +0100566}
567
narpra01db2b1602019-01-23 15:23:11 +0000568BOOST_AUTO_TEST_CASE(RefGatherMultiDimFloatTest)
569{
570 GatherMultiDimEndToEnd<armnn::DataType::Float32>(defaultBackends);
571}
572
573BOOST_AUTO_TEST_CASE(RefGatherMultiDimUint8Test)
574{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000575 GatherMultiDimEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
narpra01db2b1602019-01-23 15:23:11 +0000576}
577
Ellen Norris-Thompsone0dbedf2019-06-24 09:23:38 +0100578BOOST_AUTO_TEST_CASE(RefGatherMultiDimInt16Test)
579{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000580 GatherMultiDimEndToEnd<armnn::DataType::QSymmS16>(defaultBackends);
Ellen Norris-Thompsone0dbedf2019-06-24 09:23:38 +0100581}
582
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100583// DepthToSpace
584BOOST_AUTO_TEST_CASE(DephtToSpaceEndToEndNchwFloat32)
585{
586 DepthToSpaceEndToEnd<armnn::DataType::Float32>(defaultBackends, armnn::DataLayout::NCHW);
587}
588
589BOOST_AUTO_TEST_CASE(DephtToSpaceEndToEndNchwFloat16)
590{
591 DepthToSpaceEndToEnd<armnn::DataType::Float16>(defaultBackends, armnn::DataLayout::NCHW);
592}
593
594BOOST_AUTO_TEST_CASE(DephtToSpaceEndToEndNchwUint8)
595{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000596 DepthToSpaceEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, armnn::DataLayout::NCHW);
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100597}
598
599BOOST_AUTO_TEST_CASE(DephtToSpaceEndToEndNchwInt16)
600{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000601 DepthToSpaceEndToEnd<armnn::DataType::QSymmS16>(defaultBackends, armnn::DataLayout::NCHW);
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100602}
603
604BOOST_AUTO_TEST_CASE(DephtToSpaceEndToEndNhwcFloat32)
605{
606 DepthToSpaceEndToEnd<armnn::DataType::Float32>(defaultBackends, armnn::DataLayout::NHWC);
607}
608
609BOOST_AUTO_TEST_CASE(DephtToSpaceEndToEndNhwcFloat16)
610{
611 DepthToSpaceEndToEnd<armnn::DataType::Float16>(defaultBackends, armnn::DataLayout::NHWC);
612}
613
614BOOST_AUTO_TEST_CASE(DephtToSpaceEndToEndNhwcUint8)
615{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000616 DepthToSpaceEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, armnn::DataLayout::NHWC);
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100617}
618
619BOOST_AUTO_TEST_CASE(DephtToSpaceEndToEndNhwcInt16)
620{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000621 DepthToSpaceEndToEnd<armnn::DataType::QSymmS16>(defaultBackends, armnn::DataLayout::NHWC);
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100622}
623
624// Dequantize
Narumol Prangnawarat8c7324d2019-05-31 16:42:11 +0100625BOOST_AUTO_TEST_CASE(DequantizeEndToEndSimpleTest)
626{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000627 DequantizeEndToEndSimple<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawarat8c7324d2019-05-31 16:42:11 +0100628}
629
630BOOST_AUTO_TEST_CASE(DequantizeEndToEndOffsetTest)
631{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000632 DequantizeEndToEndOffset<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawarat8c7324d2019-05-31 16:42:11 +0100633}
634
Narumol Prangnawaratb6441e42019-06-04 11:22:00 +0100635BOOST_AUTO_TEST_CASE(DequantizeEndToEndSimpleInt16Test)
636{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000637 DequantizeEndToEndSimple<armnn::DataType::QSymmS16>(defaultBackends);
Narumol Prangnawaratb6441e42019-06-04 11:22:00 +0100638}
639
640BOOST_AUTO_TEST_CASE(DequantizeEndToEndOffsetInt16Test)
641{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000642 DequantizeEndToEndOffset<armnn::DataType::QSymmS16>(defaultBackends);
Narumol Prangnawaratb6441e42019-06-04 11:22:00 +0100643}
644
Narumol Prangnawarat6d302bf2019-02-04 11:46:26 +0000645BOOST_AUTO_TEST_CASE(RefDetectionPostProcessRegularNmsTest)
646{
647 std::vector<float> boxEncodings({
648 0.0f, 0.0f, 0.0f, 0.0f,
649 0.0f, 1.0f, 0.0f, 0.0f,
650 0.0f, -1.0f, 0.0f, 0.0f,
651 0.0f, 0.0f, 0.0f, 0.0f,
652 0.0f, 1.0f, 0.0f, 0.0f,
653 0.0f, 0.0f, 0.0f, 0.0f
654 });
655 std::vector<float> scores({
656 0.0f, 0.9f, 0.8f,
657 0.0f, 0.75f, 0.72f,
658 0.0f, 0.6f, 0.5f,
659 0.0f, 0.93f, 0.95f,
660 0.0f, 0.5f, 0.4f,
661 0.0f, 0.3f, 0.2f
662 });
663 std::vector<float> anchors({
664 0.5f, 0.5f, 1.0f, 1.0f,
665 0.5f, 0.5f, 1.0f, 1.0f,
666 0.5f, 0.5f, 1.0f, 1.0f,
667 0.5f, 10.5f, 1.0f, 1.0f,
668 0.5f, 10.5f, 1.0f, 1.0f,
669 0.5f, 100.5f, 1.0f, 1.0f
670 });
671 DetectionPostProcessRegularNmsEndToEnd<armnn::DataType::Float32>(defaultBackends, boxEncodings, scores, anchors);
672}
673
674inline void QuantizeData(uint8_t* quant, const float* dequant, const TensorInfo& info)
675{
676 for (size_t i = 0; i < info.GetNumElements(); i++)
677 {
678 quant[i] = armnn::Quantize<uint8_t>(dequant[i], info.GetQuantizationScale(), info.GetQuantizationOffset());
679 }
680}
681
682BOOST_AUTO_TEST_CASE(RefDetectionPostProcessRegularNmsUint8Test)
683{
684 armnn::TensorInfo boxEncodingsInfo({ 1, 6, 4 }, armnn::DataType::Float32);
685 armnn::TensorInfo scoresInfo({ 1, 6, 3 }, armnn::DataType::Float32);
686 armnn::TensorInfo anchorsInfo({ 6, 4 }, armnn::DataType::Float32);
687
688 boxEncodingsInfo.SetQuantizationScale(1.0f);
689 boxEncodingsInfo.SetQuantizationOffset(1);
690 scoresInfo.SetQuantizationScale(0.01f);
691 scoresInfo.SetQuantizationOffset(0);
692 anchorsInfo.SetQuantizationScale(0.5f);
693 anchorsInfo.SetQuantizationOffset(0);
694
695 std::vector<float> boxEncodings({
696 0.0f, 0.0f, 0.0f, 0.0f,
697 0.0f, 1.0f, 0.0f, 0.0f,
698 0.0f, -1.0f, 0.0f, 0.0f,
699 0.0f, 0.0f, 0.0f, 0.0f,
700 0.0f, 1.0f, 0.0f, 0.0f,
701 0.0f, 0.0f, 0.0f, 0.0f
702 });
703 std::vector<float> scores({
704 0.0f, 0.9f, 0.8f,
705 0.0f, 0.75f, 0.72f,
706 0.0f, 0.6f, 0.5f,
707 0.0f, 0.93f, 0.95f,
708 0.0f, 0.5f, 0.4f,
709 0.0f, 0.3f, 0.2f
710 });
711 std::vector<float> anchors({
712 0.5f, 0.5f, 1.0f, 1.0f,
713 0.5f, 0.5f, 1.0f, 1.0f,
714 0.5f, 0.5f, 1.0f, 1.0f,
715 0.5f, 10.5f, 1.0f, 1.0f,
716 0.5f, 10.5f, 1.0f, 1.0f,
717 0.5f, 100.5f, 1.0f, 1.0f
718 });
719
720 std::vector<uint8_t> qBoxEncodings(boxEncodings.size(), 0);
721 std::vector<uint8_t> qScores(scores.size(), 0);
722 std::vector<uint8_t> qAnchors(anchors.size(), 0);
723 QuantizeData(qBoxEncodings.data(), boxEncodings.data(), boxEncodingsInfo);
724 QuantizeData(qScores.data(), scores.data(), scoresInfo);
725 QuantizeData(qAnchors.data(), anchors.data(), anchorsInfo);
Derek Lambertif90c56d2020-01-10 17:14:08 +0000726 DetectionPostProcessRegularNmsEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, qBoxEncodings,
Narumol Prangnawarat6d302bf2019-02-04 11:46:26 +0000727 qScores, qAnchors,
728 1.0f, 1, 0.01f, 0, 0.5f, 0);
729}
730
731BOOST_AUTO_TEST_CASE(RefDetectionPostProcessFastNmsTest)
732{
733 std::vector<float> boxEncodings({
734 0.0f, 0.0f, 0.0f, 0.0f,
735 0.0f, 1.0f, 0.0f, 0.0f,
736 0.0f, -1.0f, 0.0f, 0.0f,
737 0.0f, 0.0f, 0.0f, 0.0f,
738 0.0f, 1.0f, 0.0f, 0.0f,
739 0.0f, 0.0f, 0.0f, 0.0f
740 });
741 std::vector<float> scores({
742 0.0f, 0.9f, 0.8f,
743 0.0f, 0.75f, 0.72f,
744 0.0f, 0.6f, 0.5f,
745 0.0f, 0.93f, 0.95f,
746 0.0f, 0.5f, 0.4f,
747 0.0f, 0.3f, 0.2f
748 });
749 std::vector<float> anchors({
750 0.5f, 0.5f, 1.0f, 1.0f,
751 0.5f, 0.5f, 1.0f, 1.0f,
752 0.5f, 0.5f, 1.0f, 1.0f,
753 0.5f, 10.5f, 1.0f, 1.0f,
754 0.5f, 10.5f, 1.0f, 1.0f,
755 0.5f, 100.5f, 1.0f, 1.0f
756 });
757 DetectionPostProcessFastNmsEndToEnd<armnn::DataType::Float32>(defaultBackends, boxEncodings, scores, anchors);
758}
759
760BOOST_AUTO_TEST_CASE(RefDetectionPostProcessFastNmsUint8Test)
761{
762 armnn::TensorInfo boxEncodingsInfo({ 1, 6, 4 }, armnn::DataType::Float32);
763 armnn::TensorInfo scoresInfo({ 1, 6, 3 }, armnn::DataType::Float32);
764 armnn::TensorInfo anchorsInfo({ 6, 4 }, armnn::DataType::Float32);
765
766 boxEncodingsInfo.SetQuantizationScale(1.0f);
767 boxEncodingsInfo.SetQuantizationOffset(1);
768 scoresInfo.SetQuantizationScale(0.01f);
769 scoresInfo.SetQuantizationOffset(0);
770 anchorsInfo.SetQuantizationScale(0.5f);
771 anchorsInfo.SetQuantizationOffset(0);
772
773 std::vector<float> boxEncodings({
774 0.0f, 0.0f, 0.0f, 0.0f,
775 0.0f, 1.0f, 0.0f, 0.0f,
776 0.0f, -1.0f, 0.0f, 0.0f,
777 0.0f, 0.0f, 0.0f, 0.0f,
778 0.0f, 1.0f, 0.0f, 0.0f,
779 0.0f, 0.0f, 0.0f, 0.0f
780 });
781 std::vector<float> scores({
782 0.0f, 0.9f, 0.8f,
783 0.0f, 0.75f, 0.72f,
784 0.0f, 0.6f, 0.5f,
785 0.0f, 0.93f, 0.95f,
786 0.0f, 0.5f, 0.4f,
787 0.0f, 0.3f, 0.2f
788 });
789 std::vector<float> anchors({
790 0.5f, 0.5f, 1.0f, 1.0f,
791 0.5f, 0.5f, 1.0f, 1.0f,
792 0.5f, 0.5f, 1.0f, 1.0f,
793 0.5f, 10.5f, 1.0f, 1.0f,
794 0.5f, 10.5f, 1.0f, 1.0f,
795 0.5f, 100.5f, 1.0f, 1.0f
796 });
797
798 std::vector<uint8_t> qBoxEncodings(boxEncodings.size(), 0);
799 std::vector<uint8_t> qScores(scores.size(), 0);
800 std::vector<uint8_t> qAnchors(anchors.size(), 0);
801 QuantizeData(qBoxEncodings.data(), boxEncodings.data(), boxEncodingsInfo);
802 QuantizeData(qScores.data(), scores.data(), scoresInfo);
803 QuantizeData(qAnchors.data(), anchors.data(), anchorsInfo);
Derek Lambertif90c56d2020-01-10 17:14:08 +0000804 DetectionPostProcessFastNmsEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, qBoxEncodings,
Narumol Prangnawarat6d302bf2019-02-04 11:46:26 +0000805 qScores, qAnchors,
806 1.0f, 1, 0.01f, 0, 0.5f, 0);
807}
808
Sadik Armagan20bea002019-10-16 09:29:38 +0100809// LogSoftmax
810BOOST_AUTO_TEST_CASE(RefLogSoftmaxEndToEndTest)
811{
812 LogSoftmaxEndToEndTest(defaultBackends);
813}
814
Nikhil Raj747f5862019-07-19 15:15:23 +0100815BOOST_AUTO_TEST_CASE(RefPreluEndToEndTestFloat32)
816{
817 PreluEndToEndNegativeTest<armnn::DataType::Float32>(defaultBackends);
818}
819
820BOOST_AUTO_TEST_CASE(RefPreluEndToEndTestUint8)
821{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000822 PreluEndToEndPositiveTest<armnn::DataType::QAsymmU8>(defaultBackends);
Nikhil Raj747f5862019-07-19 15:15:23 +0100823}
824
825BOOST_AUTO_TEST_CASE(RefPreluEndToEndTestQSymm16)
826{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000827 PreluEndToEndPositiveTest<armnn::DataType::QSymmS16>(defaultBackends);
Nikhil Raj747f5862019-07-19 15:15:23 +0100828}
829
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100830BOOST_AUTO_TEST_CASE(RefSpaceToDepthNhwcEndToEndTest1)
Keith Davis9515c7e2019-06-21 09:33:59 +0100831{
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100832 SpaceToDepthNhwcEndToEndTest1(defaultBackends);
Keith Davis9515c7e2019-06-21 09:33:59 +0100833}
834
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100835BOOST_AUTO_TEST_CASE(RefSpaceToDepthNchwEndToEndTest1)
Keith Davis9515c7e2019-06-21 09:33:59 +0100836{
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100837 SpaceToDepthNchwEndToEndTest1(defaultBackends);
Keith Davis9515c7e2019-06-21 09:33:59 +0100838
Keith Davis9515c7e2019-06-21 09:33:59 +0100839}
840
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100841BOOST_AUTO_TEST_CASE(RefSpaceToDepthNhwcEndToEndTest2)
Keith Davis9515c7e2019-06-21 09:33:59 +0100842{
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100843 SpaceToDepthNhwcEndToEndTest2(defaultBackends);
Keith Davis9515c7e2019-06-21 09:33:59 +0100844}
845
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100846BOOST_AUTO_TEST_CASE(RefSpaceToDepthNchwEndToEndTest2)
Keith Davis9515c7e2019-06-21 09:33:59 +0100847{
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100848 SpaceToDepthNchwEndToEndTest2(defaultBackends);
Keith Davis9515c7e2019-06-21 09:33:59 +0100849}
850
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100851BOOST_AUTO_TEST_CASE(RefSplitter1dEndToEndTest)
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100852{
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100853 Splitter1dEndToEnd<armnn::DataType::Float32>(defaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100854}
855
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100856BOOST_AUTO_TEST_CASE(RefSplitter1dEndToEndUint8Test)
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100857{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000858 Splitter1dEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100859}
860
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100861BOOST_AUTO_TEST_CASE(RefSplitter2dDim0EndToEndTest)
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100862{
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100863 Splitter2dDim0EndToEnd<armnn::DataType::Float32>(defaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100864}
865
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100866BOOST_AUTO_TEST_CASE(RefSplitter2dDim1EndToEndTest)
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100867{
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100868 Splitter2dDim1EndToEnd<armnn::DataType::Float32>(defaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100869}
870
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100871BOOST_AUTO_TEST_CASE(RefSplitter2dDim0EndToEndUint8Test)
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100872{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000873 Splitter2dDim0EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100874}
875
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100876BOOST_AUTO_TEST_CASE(RefSplitter2dDim1EndToEndUint8Test)
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100877{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000878 Splitter2dDim1EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100879}
880
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100881BOOST_AUTO_TEST_CASE(RefSplitter3dDim0EndToEndTest)
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100882{
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100883 Splitter3dDim0EndToEnd<armnn::DataType::Float32>(defaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100884}
885
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100886BOOST_AUTO_TEST_CASE(RefSplitter3dDim1EndToEndTest)
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100887{
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100888 Splitter3dDim1EndToEnd<armnn::DataType::Float32>(defaultBackends);
889}
890
891BOOST_AUTO_TEST_CASE(RefSplitter3dDim2EndToEndTest)
892{
893 Splitter3dDim2EndToEnd<armnn::DataType::Float32>(defaultBackends);
894}
895
896BOOST_AUTO_TEST_CASE(RefSplitter3dDim0EndToEndUint8Test)
897{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000898 Splitter3dDim0EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100899}
900
901BOOST_AUTO_TEST_CASE(RefSplitter3dDim1EndToEndUint8Test)
902{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000903 Splitter3dDim1EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100904}
905
906BOOST_AUTO_TEST_CASE(RefSplitter3dDim2EndToEndUint8Test)
907{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000908 Splitter3dDim2EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100909}
910
911BOOST_AUTO_TEST_CASE(RefSplitter4dDim0EndToEndTest)
912{
913 Splitter4dDim0EndToEnd<armnn::DataType::Float32>(defaultBackends);
914}
915
916BOOST_AUTO_TEST_CASE(RefSplitter4dDim1EndToEndTest)
917{
918 Splitter4dDim1EndToEnd<armnn::DataType::Float32>(defaultBackends);
919}
920
921BOOST_AUTO_TEST_CASE(RefSplitter4dDim2EndToEndTest)
922{
923 Splitter4dDim2EndToEnd<armnn::DataType::Float32>(defaultBackends);
924}
925
926BOOST_AUTO_TEST_CASE(RefSplitter4dDim3EndToEndTest)
927{
928 Splitter4dDim3EndToEnd<armnn::DataType::Float32>(defaultBackends);
929}
930
931BOOST_AUTO_TEST_CASE(RefSplitter4dDim0EndToEndUint8Test)
932{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000933 Splitter4dDim0EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100934}
935
936BOOST_AUTO_TEST_CASE(RefSplitter4dDim1EndToEndUint8Test)
937{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000938 Splitter4dDim1EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100939}
940
941BOOST_AUTO_TEST_CASE(RefSplitter4dDim2EndToEndUint8Test)
942{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000943 Splitter4dDim2EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +0100944}
945
946BOOST_AUTO_TEST_CASE(RefSplitter4dDim3EndToEndUint8Test)
947{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000948 Splitter4dDim3EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +0100949}
950
Aron Virginas-Tar98180ef2019-06-26 15:02:47 +0100951// TransposeConvolution2d
952BOOST_AUTO_TEST_CASE(RefTransposeConvolution2dEndToEndFloatNchwTest)
953{
954 TransposeConvolution2dEndToEnd<armnn::DataType::Float32, armnn::DataType::Float32>(
955 defaultBackends, armnn::DataLayout::NCHW);
956}
957
958BOOST_AUTO_TEST_CASE(RefTransposeConvolution2dEndToEndUint8NchwTest)
959{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000960 TransposeConvolution2dEndToEnd<armnn::DataType::QAsymmU8, armnn::DataType::Signed32>(
Aron Virginas-Tar98180ef2019-06-26 15:02:47 +0100961 defaultBackends, armnn::DataLayout::NCHW);
962}
963
964BOOST_AUTO_TEST_CASE(RefTransposeConvolution2dEndToEndInt16NchwTest)
965{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000966 TransposeConvolution2dEndToEnd<armnn::DataType::QSymmS16, armnn::DataType::Signed32>(
Aron Virginas-Tar98180ef2019-06-26 15:02:47 +0100967 defaultBackends, armnn::DataLayout::NCHW);
968}
969
970BOOST_AUTO_TEST_CASE(RefTransposeConvolution2dEndToEndFloatNhwcTest)
971{
972 TransposeConvolution2dEndToEnd<armnn::DataType::Float32, armnn::DataType::Float32>(
973 defaultBackends, armnn::DataLayout::NHWC);
974}
975
976BOOST_AUTO_TEST_CASE(RefTransposeConvolution2dEndToEndUint8NhwcTest)
977{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000978 TransposeConvolution2dEndToEnd<armnn::DataType::QAsymmU8, armnn::DataType::Signed32>(
Aron Virginas-Tar98180ef2019-06-26 15:02:47 +0100979 defaultBackends, armnn::DataLayout::NHWC);
980}
981
982BOOST_AUTO_TEST_CASE(RefTransposeConvolution2dEndToEndInt16NhwcTest)
983{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000984 TransposeConvolution2dEndToEnd<armnn::DataType::QSymmS16, armnn::DataType::Signed32>(
Aron Virginas-Tar98180ef2019-06-26 15:02:47 +0100985 defaultBackends, armnn::DataLayout::NHWC);
986}
987
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +0100988// Resize Bilinear
989BOOST_AUTO_TEST_CASE(RefResizeBilinearEndToEndFloatNchwTest)
990{
991 ResizeBilinearEndToEnd<armnn::DataType::Float32>(defaultBackends, armnn::DataLayout::NCHW);
992}
993
994BOOST_AUTO_TEST_CASE(RefResizeBilinearEndToEndUint8NchwTest)
995{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000996 ResizeBilinearEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, armnn::DataLayout::NCHW);
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +0100997}
998
999BOOST_AUTO_TEST_CASE(RefResizeBilinearEndToEndInt16NchwTest)
1000{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001001 ResizeBilinearEndToEnd<armnn::DataType::QSymmS16>(defaultBackends, armnn::DataLayout::NCHW);
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001002}
1003
1004BOOST_AUTO_TEST_CASE(RefResizeBilinearEndToEndFloatNhwcTest)
1005{
1006 ResizeBilinearEndToEnd<armnn::DataType::Float32>(defaultBackends, armnn::DataLayout::NHWC);
1007}
1008
1009BOOST_AUTO_TEST_CASE(RefResizeBilinearEndToEndUint8NhwcTest)
1010{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001011 ResizeBilinearEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, armnn::DataLayout::NHWC);
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001012}
1013
1014BOOST_AUTO_TEST_CASE(RefResizeBilinearEndToEndInt16NhwcTest)
1015{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001016 ResizeBilinearEndToEnd<armnn::DataType::QSymmS16>(defaultBackends, armnn::DataLayout::NHWC);
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001017}
1018
1019// Resize NearestNeighbor
1020BOOST_AUTO_TEST_CASE(RefResizeNearestNeighborEndToEndFloatNchwTest)
1021{
1022 ResizeNearestNeighborEndToEnd<armnn::DataType::Float32>(defaultBackends, armnn::DataLayout::NCHW);
1023}
1024
1025BOOST_AUTO_TEST_CASE(RefResizeNearestNeighborEndToEndUint8NchwTest)
1026{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001027 ResizeNearestNeighborEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, armnn::DataLayout::NCHW);
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001028}
1029
1030BOOST_AUTO_TEST_CASE(RefResizeNearestNeighborEndToEndInt16NchwTest)
1031{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001032 ResizeNearestNeighborEndToEnd<armnn::DataType::QSymmS16>(defaultBackends, armnn::DataLayout::NCHW);
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001033}
1034
1035BOOST_AUTO_TEST_CASE(RefResizeNearestNeighborEndToEndFloatNhwcTest)
1036{
1037 ResizeNearestNeighborEndToEnd<armnn::DataType::Float32>(defaultBackends, armnn::DataLayout::NHWC);
1038}
1039
1040BOOST_AUTO_TEST_CASE(RefResizeNearestNeighborEndToEndUint8NhwcTest)
1041{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001042 ResizeNearestNeighborEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, armnn::DataLayout::NHWC);
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001043}
1044
1045BOOST_AUTO_TEST_CASE(RefResizeNearestNeighborEndToEndInt16NhwcTest)
1046{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001047 ResizeNearestNeighborEndToEnd<armnn::DataType::QSymmS16>(defaultBackends, armnn::DataLayout::NHWC);
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001048}
1049
Sadik Armagan062e0e92019-10-14 10:31:43 +01001050// InstanceNormalization
1051BOOST_AUTO_TEST_CASE(RefInstanceNormalizationNhwcEndToEndTest1)
1052{
1053 InstanceNormalizationNhwcEndToEndTest1(defaultBackends);
1054}
1055
1056BOOST_AUTO_TEST_CASE(RefInstanceNormalizationNchwEndToEndTest1)
1057{
1058 InstanceNormalizationNchwEndToEndTest1(defaultBackends);
1059}
1060
1061BOOST_AUTO_TEST_CASE(RefInstanceNormalizationNhwcEndToEndTest2)
1062{
1063 InstanceNormalizationNhwcEndToEndTest2(defaultBackends);
1064}
1065
1066BOOST_AUTO_TEST_CASE(RefInstanceNormalizationNchwEndToEndTest2)
1067{
1068 InstanceNormalizationNchwEndToEndTest2(defaultBackends);
1069}
1070
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001071// ArgMinMax
1072BOOST_AUTO_TEST_CASE(RefArgMaxSimpleTest)
1073{
1074 ArgMaxEndToEndSimple<armnn::DataType::Float32>(defaultBackends);
1075}
1076
1077BOOST_AUTO_TEST_CASE(RefArgMaxSimpleUint8Test)
1078{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001079 ArgMaxEndToEndSimple<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001080}
1081
1082BOOST_AUTO_TEST_CASE(RefArgMinSimpleTest)
1083{
1084 ArgMinEndToEndSimple<armnn::DataType::Float32>(defaultBackends);
1085}
1086
1087BOOST_AUTO_TEST_CASE(RefArgMinSimpleUint8Test)
1088{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001089 ArgMinEndToEndSimple<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001090}
1091
1092BOOST_AUTO_TEST_CASE(RefArgMaxAxis0Test)
1093{
1094 ArgMaxAxis0EndToEnd<armnn::DataType::Float32>(defaultBackends);
1095}
1096
1097BOOST_AUTO_TEST_CASE(RefArgMaxAxis0Uint8Test)
1098{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001099 ArgMaxAxis0EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001100}
1101
1102BOOST_AUTO_TEST_CASE(RefArgMinAxis0Test)
1103{
1104 ArgMinAxis0EndToEnd<armnn::DataType::Float32>(defaultBackends);
1105}
1106
1107BOOST_AUTO_TEST_CASE(RefArgMinAxis0Uint8Test)
1108{
1109
Derek Lambertif90c56d2020-01-10 17:14:08 +00001110 ArgMinAxis0EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001111}
1112
1113BOOST_AUTO_TEST_CASE(RefArgMaxAxis1Test)
1114{
1115 ArgMaxAxis1EndToEnd<armnn::DataType::Float32>(defaultBackends);
1116}
1117
1118BOOST_AUTO_TEST_CASE(RefArgMaxAxis1Uint8Test)
1119{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001120 ArgMaxAxis1EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001121}
1122
1123BOOST_AUTO_TEST_CASE(RefArgMinAxis1Test)
1124{
1125 ArgMinAxis1EndToEnd<armnn::DataType::Float32>(defaultBackends);
1126}
1127
1128BOOST_AUTO_TEST_CASE(RefArgMinAxis1Uint8Test)
1129{
1130
Derek Lambertif90c56d2020-01-10 17:14:08 +00001131 ArgMinAxis1EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001132}
1133
1134BOOST_AUTO_TEST_CASE(RefArgMaxAxis2Test)
1135{
1136 ArgMaxAxis2EndToEnd<armnn::DataType::Float32>(defaultBackends);
1137}
1138
1139BOOST_AUTO_TEST_CASE(RefArgMaxAxis2Uint8Test)
1140{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001141 ArgMaxAxis2EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001142}
1143
1144BOOST_AUTO_TEST_CASE(RefArgMinAxis2Test)
1145{
1146 ArgMinAxis2EndToEnd<armnn::DataType::Float32>(defaultBackends);
1147}
1148
1149BOOST_AUTO_TEST_CASE(RefArgMinAxis2Uint8Test)
1150{
1151
Derek Lambertif90c56d2020-01-10 17:14:08 +00001152 ArgMinAxis2EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001153}
1154
1155BOOST_AUTO_TEST_CASE(RefArgMaxAxis3Test)
1156{
1157 ArgMaxAxis3EndToEnd<armnn::DataType::Float32>(defaultBackends);
1158}
1159
1160BOOST_AUTO_TEST_CASE(RefArgMaxAxis3Uint8Test)
1161{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001162 ArgMaxAxis3EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001163}
1164
1165BOOST_AUTO_TEST_CASE(RefArgMinAxis3Test)
1166{
1167 ArgMinAxis3EndToEnd<armnn::DataType::Float32>(defaultBackends);
1168}
1169
1170BOOST_AUTO_TEST_CASE(RefArgMinAxis3Uint8Test)
1171{
1172
Derek Lambertif90c56d2020-01-10 17:14:08 +00001173 ArgMinAxis3EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001174}
1175
Ferran Balaguerdcaa6102019-08-21 13:28:38 +01001176#if !defined(__ANDROID__)
1177// Only run these tests on non Android platforms
1178BOOST_AUTO_TEST_CASE(RefImportNonAlignedPointerTest)
1179{
David Monahan4f1e8e42019-09-04 09:22:10 +01001180 ImportNonAlignedInputPointerTest(defaultBackends);
1181}
1182
1183BOOST_AUTO_TEST_CASE(RefExportNonAlignedPointerTest)
1184{
Ferran Balaguer83239f92019-09-19 11:49:25 +01001185 ExportNonAlignedOutputPointerTest(defaultBackends);
Ferran Balaguerdcaa6102019-08-21 13:28:38 +01001186}
1187
1188BOOST_AUTO_TEST_CASE(RefImportAlignedPointerTest)
1189{
1190 ImportAlignedPointerTest(defaultBackends);
1191}
1192
Ferran Balaguer83239f92019-09-19 11:49:25 +01001193BOOST_AUTO_TEST_CASE(RefImportOnlyWorkload)
1194{
1195 ImportOnlyWorkload(defaultBackends);
1196}
1197
1198BOOST_AUTO_TEST_CASE(RefExportOnlyWorkload)
1199{
1200 ExportOnlyWorkload(defaultBackends);
1201}
1202
1203BOOST_AUTO_TEST_CASE(RefImportAndExportWorkload)
1204{
1205 ImportAndExportWorkload(defaultBackends);
1206}
1207
1208BOOST_AUTO_TEST_CASE(RefExportOutputWithSeveralOutputSlotConnectionsTest)
1209{
1210 ExportOutputWithSeveralOutputSlotConnectionsTest(defaultBackends);
1211}
1212
David Monahan0a99a142020-03-13 07:52:54 +00001213BOOST_AUTO_TEST_CASE(RefStridedSliceInvalidSliceEndToEndTest)
1214{
1215 StridedSliceInvalidSliceEndToEndTest(defaultBackends);
1216}
1217
Ferran Balaguerdcaa6102019-08-21 13:28:38 +01001218#endif
1219
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +01001220BOOST_AUTO_TEST_SUITE_END()