blob: a8c0634186a3275b6427647497b1dcd762bfdbe1 [file] [log] [blame]
Aron Virginas-Tar70104002018-10-24 15:33:28 +01001//
Ryan OShea3c2795a2022-11-03 17:51:52 +00002// Copyright © 2022 Arm Ltd and Contributors. All rights reserved.
Aron Virginas-Tar70104002018-10-24 15:33:28 +01003// 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
Jan Eilersbca73e12020-03-11 12:52:46 +00008#include <backendsCommon/test/ActivationEndToEndTestImpl.hpp>
Ryan OShea3c2795a2022-11-03 17:51:52 +00009#include <backendsCommon/test/AdditionEndToEndTestImpl.hpp>
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +000010#include <backendsCommon/test/ArgMinMaxEndToEndTestImpl.hpp>
Francis Murtaghe24e3cd2019-06-25 14:41:55 +010011#include <backendsCommon/test/BatchToSpaceNdEndToEndTestImpl.hpp>
Teresa Charlina38da592022-10-31 22:09:23 +000012#include <backendsCommon/test/BatchMatMulEndToEndTestImpl.hpp>
Teresa Charlin43baf502021-09-27 10:10:39 +010013#include <backendsCommon/test/ChannelShuffleEndToEndTestImpl.hpp>
Aron Virginas-Tar77bfb5e2019-10-16 17:45:38 +010014#include <backendsCommon/test/ComparisonEndToEndTestImpl.hpp>
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +010015#include <backendsCommon/test/ConcatEndToEndTestImpl.hpp>
Matthew Sloyan5d7b0a32021-10-18 13:07:49 +010016#include <backendsCommon/test/Convolution3dEndToEndTestImpl.hpp>
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +010017#include <backendsCommon/test/DepthToSpaceEndToEndTestImpl.hpp>
Narumol Prangnawarat8c7324d2019-05-31 16:42:11 +010018#include <backendsCommon/test/DequantizeEndToEndTestImpl.hpp>
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +010019#include <backendsCommon/test/DetectionPostProcessEndToEndTestImpl.hpp>
josh minor4a3c6102020-01-06 16:40:46 -060020#include <backendsCommon/test/ElementwiseUnaryEndToEndTestImpl.hpp>
Teresa Charlin44088502020-07-27 11:27:19 +010021#include <backendsCommon/test/FillEndToEndTestImpl.hpp>
Sadik Armaganf0a6dec2021-03-25 07:46:55 +000022#include <backendsCommon/test/FullyConnectedEndToEndTestImpl.hpp>
narpra01db2b1602019-01-23 15:23:11 +000023#include <backendsCommon/test/GatherEndToEndTestImpl.hpp>
Teresa Charlinb2d3ec52022-04-12 22:07:09 +010024#include <backendsCommon/test/GatherNdEndToEndTestImpl.hpp>
Sadik Armagan062e0e92019-10-14 10:31:43 +010025#include <backendsCommon/test/InstanceNormalizationEndToEndTestImpl.hpp>
Sadik Armagan20bea002019-10-16 09:29:38 +010026#include <backendsCommon/test/LogSoftmaxEndToEndTestImpl.hpp>
Nikhil Raj747f5862019-07-19 15:15:23 +010027#include <backendsCommon/test/PreluEndToEndTestImpl.hpp>
James Conroy0800bf52020-05-14 12:46:44 +010028#include <backendsCommon/test/QLstmEndToEndTestImpl.hpp>
Teresa Charlin2e3f4d22020-07-29 14:29:20 +010029#include <backendsCommon/test/RankEndToEndTestImpl.hpp>
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +010030#include <backendsCommon/test/ResizeEndToEndTestImpl.hpp>
Keith Davis9515c7e2019-06-21 09:33:59 +010031#include <backendsCommon/test/SpaceToDepthEndToEndTestImpl.hpp>
Narumol Prangnawarat0be43382019-05-27 11:29:59 +010032#include <backendsCommon/test/SplitterEndToEndTestImpl.hpp>
Mike Kelly386ff1a2021-03-29 15:04:50 +010033#include <backendsCommon/test/StridedSliceAsyncEndToEndTest.hpp>
Aron Virginas-Tar98180ef2019-06-26 15:02:47 +010034#include <backendsCommon/test/TransposeConvolution2dEndToEndTestImpl.hpp>
Aron Virginas-Tar70104002018-10-24 15:33:28 +010035
Sadik Armagan1625efc2021-06-10 18:24:34 +010036#include <doctest/doctest.h>
Aron Virginas-Tar70104002018-10-24 15:33:28 +010037
Sadik Armagan1625efc2021-06-10 18:24:34 +010038TEST_SUITE("RefEndToEnd")
39{
narpra01b9546cf2018-11-20 15:21:28 +000040std::vector<armnn::BackendId> defaultBackends = {armnn::Compute::CpuRef};
41
Aron Virginas-Tar8fccd862019-09-09 11:22:56 +010042// Abs
Sadik Armagan1625efc2021-06-10 18:24:34 +010043TEST_CASE("RefAbsEndToEndTestFloat32")
Aron Virginas-Tar8fccd862019-09-09 11:22:56 +010044{
josh minor4a3c6102020-01-06 16:40:46 -060045 std::vector<float> expectedOutput =
46 {
47 1.f, 1.f, 1.f, 1.f, 5.f, 5.f, 5.f, 5.f,
48 3.f, 3.f, 3.f, 3.f, 4.f, 4.f, 4.f, 4.f
49 };
50
51 ElementwiseUnarySimpleEndToEnd<armnn::DataType::Float32>(defaultBackends,
52 UnaryOperation::Abs,
53 expectedOutput);
Aron Virginas-Tar8fccd862019-09-09 11:22:56 +010054}
55
Sadik Armagan1625efc2021-06-10 18:24:34 +010056TEST_CASE("RefAbsEndToEndTestUint8")
Aron Virginas-Tar8fccd862019-09-09 11:22:56 +010057{
josh minor4a3c6102020-01-06 16:40:46 -060058 // Note the expected output will be implicitly quantized by the below test function
59 std::vector<float> expectedOutput =
60 {
61 1.f, 1.f, 1.f, 1.f, 5.f, 5.f, 5.f, 5.f,
62 3.f, 3.f, 3.f, 3.f, 4.f, 4.f, 4.f, 4.f
63 };
64
65 ElementwiseUnarySimpleEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends,
66 UnaryOperation::Abs,
67 expectedOutput);
Aron Virginas-Tar8fccd862019-09-09 11:22:56 +010068}
69
Sadik Armagan1625efc2021-06-10 18:24:34 +010070TEST_CASE("RefAbsEndToEndTestInt16")
Aron Virginas-Tar8fccd862019-09-09 11:22:56 +010071{
josh minor4a3c6102020-01-06 16:40:46 -060072 // Note the expected output will be implicitly quantized by the below test function
73 std::vector<float> expectedOutput =
74 {
75 1.f, 1.f, 1.f, 1.f, 5.f, 5.f, 5.f, 5.f,
76 3.f, 3.f, 3.f, 3.f, 4.f, 4.f, 4.f, 4.f
77 };
78
79 ElementwiseUnarySimpleEndToEnd<armnn::DataType::QSymmS16>(defaultBackends,
80 UnaryOperation::Abs,
81 expectedOutput);
Aron Virginas-Tar8fccd862019-09-09 11:22:56 +010082}
83
Ryan OShea3c2795a2022-11-03 17:51:52 +000084// Addition
85TEST_CASE("RefAdditionEndtoEndFloat32")
86{
87 AdditionEndToEnd<armnn::DataType::Float32>(defaultBackends);
88}
89
90TEST_CASE("RefAdditionEndtoEndUint8")
91{
92 AdditionEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
93}
94
Aron Virginas-Tar8fccd862019-09-09 11:22:56 +010095// Constant
Sadik Armagan1625efc2021-06-10 18:24:34 +010096TEST_CASE("ConstantUsage_Ref_Float32")
Aron Virginas-Tar70104002018-10-24 15:33:28 +010097{
Sadik Armagan1625efc2021-06-10 18:24:34 +010098 CHECK(ConstantUsageFloat32Test(defaultBackends));
Aron Virginas-Tar70104002018-10-24 15:33:28 +010099}
100
Sadik Armagan1625efc2021-06-10 18:24:34 +0100101TEST_CASE("ConstantUsage_Ref_Uint8")
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100102{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100103 CHECK(ConstantUsageUint8Test(defaultBackends));
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100104}
105
Sadik Armagan1625efc2021-06-10 18:24:34 +0100106TEST_CASE("Unsigned8")
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100107{
108 using namespace armnn;
109
110 // Create runtime in which test will run
111 armnn::IRuntime::CreationOptions options;
112 armnn::IRuntimePtr runtime(armnn::IRuntime::Create(options));
113
114 // Builds up the structure of the network.
115 armnn::INetworkPtr net(INetwork::Create());
116
117 IConnectableLayer* input = net->AddInputLayer(0, "input");
118 IConnectableLayer* softmax = net->AddSoftmaxLayer(SoftmaxDescriptor(), "softmax");
119 IConnectableLayer* output = net->AddOutputLayer(0, "output");
120
121 input->GetOutputSlot(0).Connect(softmax->GetInputSlot(0));
122 softmax->GetOutputSlot(0).Connect(output->GetInputSlot(0));
123
124 // Sets the tensors in the network.
Derek Lambertif90c56d2020-01-10 17:14:08 +0000125 TensorInfo inputTensorInfo(TensorShape({1, 5}), DataType::QAsymmU8);
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100126 inputTensorInfo.SetQuantizationOffset(100);
127 inputTensorInfo.SetQuantizationScale(10000.0f);
128 input->GetOutputSlot(0).SetTensorInfo(inputTensorInfo);
129
Derek Lambertif90c56d2020-01-10 17:14:08 +0000130 TensorInfo outputTensorInfo(TensorShape({1, 5}), DataType::QAsymmU8);
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100131 outputTensorInfo.SetQuantizationOffset(0);
132 outputTensorInfo.SetQuantizationScale(1.0f/255.0f);
133 softmax->GetOutputSlot(0).SetTensorInfo(outputTensorInfo);
134
135 // optimize the network
narpra01b9546cf2018-11-20 15:21:28 +0000136 IOptimizedNetworkPtr optNet = Optimize(*net, defaultBackends, runtime->GetDeviceSpec());
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100137
138 // Loads it into the runtime.
139 NetworkId netId;
140 auto error = runtime->LoadNetwork(netId, std::move(optNet));
Sadik Armagan1625efc2021-06-10 18:24:34 +0100141 CHECK(error == Status::Success);
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100142
143 // Creates structures for input & output.
144 std::vector<uint8_t> inputData
145 {
146 1, 10, 3, 200, 5 // Some inputs - one of which is sufficiently larger than the others to saturate softmax.
147 };
148 std::vector<uint8_t> outputData(5);
149
Cathal Corbett5b8093c2021-10-22 11:12:07 +0100150 TensorInfo inputTensorInfo2 = runtime->GetInputTensorInfo(netId, 0);
151 inputTensorInfo2.SetConstant(true);
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100152 armnn::InputTensors inputTensors
153 {
Cathal Corbett5b8093c2021-10-22 11:12:07 +0100154 {0, armnn::ConstTensor(inputTensorInfo2, inputData.data())}
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100155 };
156 armnn::OutputTensors outputTensors
157 {
158 {0, armnn::Tensor(runtime->GetOutputTensorInfo(netId, 0), outputData.data())}
159 };
160
161 // Does the inference.
162 runtime->EnqueueWorkload(netId, inputTensors, outputTensors);
163
164 // Checks the results.
Sadik Armagan1625efc2021-06-10 18:24:34 +0100165 CHECK(outputData[0] == 0);
166 CHECK(outputData[1] == 0);
167 CHECK(outputData[2] == 0);
168 CHECK(outputData[3] == 255); // softmax has been saturated.
169 CHECK(outputData[4] == 0);
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100170}
171
Sadik Armagan1625efc2021-06-10 18:24:34 +0100172TEST_CASE("TrivialAdd")
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100173{
174 // This test was designed to match "AddTwo" in android nn/runtime/test/TestTrivialModel.cpp.
175
176 using namespace armnn;
177
178 // Create runtime in which test will run
179 armnn::IRuntime::CreationOptions options;
180 armnn::IRuntimePtr runtime(armnn::IRuntime::Create(options));
181
182 // Builds up the structure of the network.
183 armnn::INetworkPtr net(INetwork::Create());
184
185 IConnectableLayer* input1 = net->AddInputLayer(0);
186 IConnectableLayer* input2 = net->AddInputLayer(1);
187 IConnectableLayer* add = net->AddAdditionLayer();
188 IConnectableLayer* output = net->AddOutputLayer(0);
189
190 input1->GetOutputSlot(0).Connect(add->GetInputSlot(0));
191 input2->GetOutputSlot(0).Connect(add->GetInputSlot(1));
192 add->GetOutputSlot(0).Connect(output->GetInputSlot(0));
193
194 // Sets the tensors in the network.
195 TensorInfo tensorInfo(TensorShape({3, 4}), DataType::Float32);
196 input1->GetOutputSlot(0).SetTensorInfo(tensorInfo);
197 input2->GetOutputSlot(0).SetTensorInfo(tensorInfo);
198 add->GetOutputSlot(0).SetTensorInfo(tensorInfo);
199
200 // optimize the network
narpra01b9546cf2018-11-20 15:21:28 +0000201 IOptimizedNetworkPtr optNet = Optimize(*net, defaultBackends, runtime->GetDeviceSpec());
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100202
203 // Loads it into the runtime.
204 NetworkId netId;
205 runtime->LoadNetwork(netId, std::move(optNet));
206
207 // Creates structures for input & output - matching android nn test.
208 std::vector<float> input1Data
209 {
210 1.f, 2.f, 3.f, 4.f, 5.f, 6.f, 7.f, 8.f, 9.f, 10.f, 11.f, 12.f
211 };
212 std::vector<float> input2Data
213 {
214 100.f, 200.f, 300.f, 400.f, 500.f, 600.f, 700.f, 800.f, 900.f, 1000.f, 1100.f, 1200.f
215 };
216 std::vector<float> outputData(12);
217
Cathal Corbett5b8093c2021-10-22 11:12:07 +0100218 TensorInfo inputTensorInfo = runtime->GetInputTensorInfo(netId, 0);
219 inputTensorInfo.SetConstant(true);
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100220 InputTensors inputTensors
221 {
Cathal Corbett5b8093c2021-10-22 11:12:07 +0100222 {0,armnn::ConstTensor(inputTensorInfo, input1Data.data())},
223 {1,armnn::ConstTensor(inputTensorInfo, input2Data.data())}
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100224 };
225 OutputTensors outputTensors
226 {
227 {0,armnn::Tensor(runtime->GetOutputTensorInfo(netId, 0), outputData.data())}
228 };
229
230 // Does the inference.
231 runtime->EnqueueWorkload(netId, inputTensors, outputTensors);
232
233 // Checks the results
Sadik Armagan1625efc2021-06-10 18:24:34 +0100234 CHECK(outputData[0] == 101);
235 CHECK(outputData[1] == 202);
236 CHECK(outputData[2] == 303);
237 CHECK(outputData[3] == 404);
238 CHECK(outputData[4] == 505);
239 CHECK(outputData[5] == 606);
240 CHECK(outputData[6] == 707);
241 CHECK(outputData[7] == 808);
242 CHECK(outputData[8] == 909);
243 CHECK(outputData[9] == 1010);
244 CHECK(outputData[10] == 1111);
245 CHECK(outputData[11] == 1212);
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100246}
247
Sadik Armagan1625efc2021-06-10 18:24:34 +0100248TEST_CASE("MultipleOutputs")
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100249{
250 using namespace armnn;
251
252 // Create runtime in which test will run
253 armnn::IRuntime::CreationOptions options;
254 armnn::IRuntimePtr runtime(armnn::IRuntime::Create(options));
255
256 // Builds up the structure of the network.
257 INetworkPtr net(INetwork::Create());
258
259 IConnectableLayer* input = net->AddInputLayer(0);
260
261 // ReLu1
262 ActivationDescriptor activation1Descriptor;
263 activation1Descriptor.m_Function = ActivationFunction::BoundedReLu;
264 activation1Descriptor.m_A = 1.f;
265 activation1Descriptor.m_B = -1.f;
266 IConnectableLayer* activation1 = net->AddActivationLayer(activation1Descriptor);
267
268 // ReLu6
269 ActivationDescriptor activation2Descriptor;
270 activation2Descriptor.m_Function = ActivationFunction::BoundedReLu;
271 activation2Descriptor.m_A = 6.0f;
272 IConnectableLayer* activation2 = net->AddActivationLayer(activation2Descriptor);
273
274 // BoundedReLu(min=2, max=5)
275 ActivationDescriptor activation3Descriptor;
276 activation3Descriptor.m_Function = ActivationFunction::BoundedReLu;
277 activation3Descriptor.m_A = 5.0f;
278 activation3Descriptor.m_B = 2.0f;
279 IConnectableLayer* activation3 = net->AddActivationLayer(activation3Descriptor);
280
281 IConnectableLayer* output1 = net->AddOutputLayer(0);
282 IConnectableLayer* output2 = net->AddOutputLayer(1);
283 IConnectableLayer* output3 = net->AddOutputLayer(2);
284
285 input->GetOutputSlot(0).Connect(activation1->GetInputSlot(0));
286 input->GetOutputSlot(0).Connect(activation2->GetInputSlot(0));
287 input->GetOutputSlot(0).Connect(activation3->GetInputSlot(0));
288
289 activation1->GetOutputSlot(0).Connect(output1->GetInputSlot(0));
290 activation2->GetOutputSlot(0).Connect(output2->GetInputSlot(0));
291 activation3->GetOutputSlot(0).Connect(output3->GetInputSlot(0));
292
293 // Sets the tensors in the network.
294 TensorInfo tensorInfo(TensorShape({ 10 }), DataType::Float32);
295 input->GetOutputSlot(0).SetTensorInfo(tensorInfo);
296 activation1->GetOutputSlot(0).SetTensorInfo(tensorInfo);
297 activation2->GetOutputSlot(0).SetTensorInfo(tensorInfo);
298 activation3->GetOutputSlot(0).SetTensorInfo(tensorInfo);
299
300 // optimize the network
narpra01b9546cf2018-11-20 15:21:28 +0000301 IOptimizedNetworkPtr optNet = Optimize(*net, defaultBackends, runtime->GetDeviceSpec());
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100302
303 // Loads it into the runtime.
304 NetworkId netId;
305 runtime->LoadNetwork(netId, std::move(optNet));
306
307 // Creates structures for input & output.
308 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 };
309
310 std::vector<float> output1Data(inputData.size());
311 std::vector<float> output2Data(inputData.size());
312 std::vector<float> output3Data(inputData.size());
313
Cathal Corbett5b8093c2021-10-22 11:12:07 +0100314 TensorInfo inputTensorInfo = runtime->GetInputTensorInfo(netId, 0);
315 inputTensorInfo.SetConstant(true);
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100316 InputTensors inputTensors
317 {
Cathal Corbett5b8093c2021-10-22 11:12:07 +0100318 {0,armnn::ConstTensor(inputTensorInfo, inputData.data())}
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100319 };
320 OutputTensors outputTensors
321 {
322 {0,armnn::Tensor(runtime->GetOutputTensorInfo(netId, 0), output1Data.data())},
323 {1,armnn::Tensor(runtime->GetOutputTensorInfo(netId, 1), output2Data.data())},
324 {2,armnn::Tensor(runtime->GetOutputTensorInfo(netId, 2), output3Data.data())}
325 };
326
327 // Does the inference.
328 runtime->EnqueueWorkload(netId, inputTensors, outputTensors);
329
330 // Checks the results.
Sadik Armagan1625efc2021-06-10 18:24:34 +0100331 CHECK(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
332 CHECK(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
333 CHECK(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]
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100334}
335
Sadik Armagan1625efc2021-06-10 18:24:34 +0100336TEST_CASE("TrivialMin")
Éanna Ó Catháin20e58802018-12-04 10:29:06 +0000337{
338 using namespace armnn;
339
340 // Create runtime in which test will run
341 armnn::IRuntime::CreationOptions options;
342 armnn::IRuntimePtr runtime(armnn::IRuntime::Create(options));
343
344 // Builds up the structure of the network.
345 armnn::INetworkPtr net(INetwork::Create());
346
347 IConnectableLayer* input1 = net->AddInputLayer(0);
348 IConnectableLayer* input2 = net->AddInputLayer(1);
349 IConnectableLayer* min = net->AddMinimumLayer();
350 IConnectableLayer* output = net->AddOutputLayer(0);
351
352 input1->GetOutputSlot(0).Connect(min->GetInputSlot(0));
353 input2->GetOutputSlot(0).Connect(min->GetInputSlot(1));
354 min->GetOutputSlot(0).Connect(output->GetInputSlot(0));
355
356 // Sets the tensors in the network.
357 TensorInfo tensorInfo(TensorShape({1, 1, 1, 4}), DataType::Float32);
358 input1->GetOutputSlot(0).SetTensorInfo(tensorInfo);
359 input2->GetOutputSlot(0).SetTensorInfo(tensorInfo);
360 min->GetOutputSlot(0).SetTensorInfo(tensorInfo);
361
362 // optimize the network
363 IOptimizedNetworkPtr optNet = Optimize(*net, defaultBackends, runtime->GetDeviceSpec());
364
365 // Loads it into the runtime.
366 NetworkId netId;
367 runtime->LoadNetwork(netId, std::move(optNet));
368
369 // Creates structures for input & output - matching android nn test.
370 std::vector<float> input1Data
371 {
372 1.0f, 2.0f, 3.0f, 4.0f
373 };
374 std::vector<float> input2Data
375 {
376 2.0f, 1.0f, 5.0f, 2.0f
377 };
378 std::vector<float> outputData(4);
379
Cathal Corbett5b8093c2021-10-22 11:12:07 +0100380 TensorInfo inputTensorInfo = runtime->GetInputTensorInfo(netId, 0);
381 inputTensorInfo.SetConstant(true);
Éanna Ó Catháin20e58802018-12-04 10:29:06 +0000382 InputTensors inputTensors
383 {
Cathal Corbett5b8093c2021-10-22 11:12:07 +0100384 {0,armnn::ConstTensor(inputTensorInfo, input1Data.data())},
385 {1,armnn::ConstTensor(inputTensorInfo, input2Data.data())}
Éanna Ó Catháin20e58802018-12-04 10:29:06 +0000386 };
387 OutputTensors outputTensors
388 {
389 {0,armnn::Tensor(runtime->GetOutputTensorInfo(netId, 0), outputData.data())}
390 };
391
392 // Does the inference.
393 runtime->EnqueueWorkload(netId, inputTensors, outputTensors);
394
395 // Checks the results
Sadik Armagan1625efc2021-06-10 18:24:34 +0100396 CHECK(outputData[0] == 1);
397 CHECK(outputData[1] == 1);
398 CHECK(outputData[2] == 3);
399 CHECK(outputData[3] == 2);
Éanna Ó Catháin20e58802018-12-04 10:29:06 +0000400}
401
Sadik Armagan1625efc2021-06-10 18:24:34 +0100402TEST_CASE("RefEqualSimpleEndToEndTest")
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000403{
kevmay012b4d88e2019-01-24 14:05:09 +0000404 const std::vector<uint8_t> expectedOutput({ 1, 1, 1, 1, 0, 0, 0, 0,
405 0, 0, 0, 0, 1, 1, 1, 1 });
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000406
Aron Virginas-Tar77bfb5e2019-10-16 17:45:38 +0100407 ComparisonSimpleEndToEnd<armnn::DataType::Float32>(defaultBackends,
408 ComparisonOperation::Equal,
409 expectedOutput);
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000410}
411
Sadik Armagan1625efc2021-06-10 18:24:34 +0100412TEST_CASE("RefGreaterSimpleEndToEndTest")
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000413{
kevmay012b4d88e2019-01-24 14:05:09 +0000414 const std::vector<uint8_t> expectedOutput({ 0, 0, 0, 0, 1, 1, 1, 1,
415 0, 0, 0, 0, 0, 0, 0, 0 });
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000416
Aron Virginas-Tar77bfb5e2019-10-16 17:45:38 +0100417 ComparisonSimpleEndToEnd<armnn::DataType::Float32>(defaultBackends,
418 ComparisonOperation::Greater,
419 expectedOutput);
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000420}
421
Sadik Armagan1625efc2021-06-10 18:24:34 +0100422TEST_CASE("RefEqualSimpleEndToEndUint8Test")
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000423{
424 const std::vector<uint8_t> expectedOutput({ 1, 1, 1, 1, 0, 0, 0, 0,
425 0, 0, 0, 0, 1, 1, 1, 1 });
426
Derek Lambertif90c56d2020-01-10 17:14:08 +0000427 ComparisonSimpleEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends,
Aron Virginas-Tar77bfb5e2019-10-16 17:45:38 +0100428 ComparisonOperation::Equal,
429 expectedOutput);
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000430}
431
Sadik Armagan1625efc2021-06-10 18:24:34 +0100432TEST_CASE("RefGreaterSimpleEndToEndUint8Test")
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000433{
434 const std::vector<uint8_t> expectedOutput({ 0, 0, 0, 0, 1, 1, 1, 1,
435 0, 0, 0, 0, 0, 0, 0, 0 });
436
Derek Lambertif90c56d2020-01-10 17:14:08 +0000437 ComparisonSimpleEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends,
Aron Virginas-Tar77bfb5e2019-10-16 17:45:38 +0100438 ComparisonOperation::Greater,
439 expectedOutput);
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000440}
441
Sadik Armagan1625efc2021-06-10 18:24:34 +0100442TEST_CASE("RefEqualBroadcastEndToEndTest")
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000443{
kevmay012b4d88e2019-01-24 14:05:09 +0000444 const std::vector<uint8_t> expectedOutput({ 1, 0, 1, 1, 0, 0,
445 0, 0, 0, 0, 0, 0 });
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000446
Aron Virginas-Tar77bfb5e2019-10-16 17:45:38 +0100447 ComparisonBroadcastEndToEnd<armnn::DataType::Float32>(defaultBackends,
448 ComparisonOperation::Equal,
449 expectedOutput);
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000450}
451
Sadik Armagan1625efc2021-06-10 18:24:34 +0100452TEST_CASE("RefGreaterBroadcastEndToEndTest")
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000453{
kevmay012b4d88e2019-01-24 14:05:09 +0000454 const std::vector<uint8_t> expectedOutput({ 0, 1, 0, 0, 0, 1,
455 1, 1, 1, 1, 1, 1 });
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000456
Aron Virginas-Tar77bfb5e2019-10-16 17:45:38 +0100457 ComparisonBroadcastEndToEnd<armnn::DataType::Float32>(defaultBackends,
458 ComparisonOperation::Greater,
459 expectedOutput);
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000460}
461
Sadik Armagan1625efc2021-06-10 18:24:34 +0100462TEST_CASE("RefEqualBroadcastEndToEndUint8Test")
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000463{
464 const std::vector<uint8_t > expectedOutput({ 1, 0, 1, 1, 0, 0,
465 0, 0, 0, 0, 0, 0 });
466
Derek Lambertif90c56d2020-01-10 17:14:08 +0000467 ComparisonBroadcastEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends,
Aron Virginas-Tar77bfb5e2019-10-16 17:45:38 +0100468 ComparisonOperation::Equal,
469 expectedOutput);
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000470}
471
Sadik Armagan1625efc2021-06-10 18:24:34 +0100472TEST_CASE("RefGreaterBroadcastEndToEndUint8Test")
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000473{
474 const std::vector<uint8_t> expectedOutput({ 0, 1, 0, 0, 0, 1,
475 1, 1, 1, 1, 1, 1 });
476
Derek Lambertif90c56d2020-01-10 17:14:08 +0000477 ComparisonBroadcastEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends,
Aron Virginas-Tar77bfb5e2019-10-16 17:45:38 +0100478 ComparisonOperation::Greater,
479 expectedOutput);
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000480}
Éanna Ó Catháin20e58802018-12-04 10:29:06 +0000481
Teresa Charlina38da592022-10-31 22:09:23 +0000482TEST_CASE("RefBatchMatMulEndToEndFloat32Test")
483{
484 BatchMatMulEndToEnd<armnn::DataType::Float32>(defaultBackends);
485}
486
Sadik Armagan1625efc2021-06-10 18:24:34 +0100487TEST_CASE("RefBatchToSpaceNdEndToEndFloat32NHWCTest")
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100488{
489 BatchToSpaceNdEndToEnd<armnn::DataType::Float32>(defaultBackends, armnn::DataLayout::NHWC);
490}
491
Sadik Armagan1625efc2021-06-10 18:24:34 +0100492TEST_CASE("RefBatchToSpaceNdEndToEndUint8NHWCTest")
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100493{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000494 BatchToSpaceNdEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, armnn::DataLayout::NHWC);
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100495}
496
Sadik Armagan1625efc2021-06-10 18:24:34 +0100497TEST_CASE("RefBatchToSpaceNdEndToEndQSymm16NHWCTest")
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100498{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000499 BatchToSpaceNdEndToEnd<armnn::DataType::QSymmS16>(defaultBackends, armnn::DataLayout::NHWC);
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100500}
501
Sadik Armagan1625efc2021-06-10 18:24:34 +0100502TEST_CASE("RefBatchToSpaceNdEndToEndFloat32NCHWTest")
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100503{
504 BatchToSpaceNdEndToEnd<armnn::DataType::Float32>(defaultBackends, armnn::DataLayout::NCHW);
505}
506
Sadik Armagan1625efc2021-06-10 18:24:34 +0100507TEST_CASE("RefBatchToSpaceNdEndToEndUint8NCHWTest")
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100508{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000509 BatchToSpaceNdEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, armnn::DataLayout::NCHW);
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100510}
511
Sadik Armagan1625efc2021-06-10 18:24:34 +0100512TEST_CASE("RefBatchToSpaceNdEndToEndQSymm16NCHWTest")
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100513{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000514 BatchToSpaceNdEndToEnd<armnn::DataType::QSymmS16>(defaultBackends, armnn::DataLayout::NCHW);
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100515}
516
Sadik Armagan1625efc2021-06-10 18:24:34 +0100517TEST_CASE("RefBatchToSpaceNdEndToEndComplexFloat32NHWCTest")
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100518{
519 BatchToSpaceNdComplexEndToEnd<armnn::DataType::Float32>(defaultBackends, armnn::DataLayout::NHWC);
520}
521
Sadik Armagan1625efc2021-06-10 18:24:34 +0100522TEST_CASE("RefBatchToSpaceNdEndToEndComplexUint8NHWCTest")
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100523{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000524 BatchToSpaceNdComplexEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, armnn::DataLayout::NHWC);
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100525}
526
Sadik Armagan1625efc2021-06-10 18:24:34 +0100527TEST_CASE("RefBatchToSpaceNdEndToEndComplexQSymm16NHWCTest")
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100528{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000529 BatchToSpaceNdComplexEndToEnd<armnn::DataType::QSymmS16>(defaultBackends, armnn::DataLayout::NHWC);
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100530}
531
Sadik Armagan1625efc2021-06-10 18:24:34 +0100532TEST_CASE("RefBatchToSpaceNdEndToEndComplexFloat32NCHWTest")
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100533{
534 BatchToSpaceNdComplexEndToEnd<armnn::DataType::Float32>(defaultBackends, armnn::DataLayout::NCHW);
535}
536
Sadik Armagan1625efc2021-06-10 18:24:34 +0100537TEST_CASE("RefBatchToSpaceNdEndToEndComplexUint8NCHWTest")
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100538{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000539 BatchToSpaceNdComplexEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, armnn::DataLayout::NCHW);
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100540}
541
Sadik Armagan1625efc2021-06-10 18:24:34 +0100542TEST_CASE("RefBatchToSpaceNdEndToEndComplexQSymm16NCHWTest")
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100543{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000544 BatchToSpaceNdComplexEndToEnd<armnn::DataType::QSymmS16>(defaultBackends, armnn::DataLayout::NCHW);
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100545}
546
Teresa Charlin43baf502021-09-27 10:10:39 +0100547TEST_CASE("RefChannelShuffleFloatTest")
548{
549 ChannelShuffleEndToEnd<armnn::DataType::Float32>(defaultBackends);
550}
551
552TEST_CASE("RefChannelShuffleUint8Test")
553{
554 ChannelShuffleEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
555}
556
Sadik Armagan1625efc2021-06-10 18:24:34 +0100557TEST_CASE("RefConcatEndToEndDim0Test")
narpra01b9546cf2018-11-20 15:21:28 +0000558{
Jim Flynne242f2d2019-05-22 14:24:13 +0100559 ConcatDim0EndToEnd<armnn::DataType::Float32>(defaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +0000560}
561
Sadik Armagan1625efc2021-06-10 18:24:34 +0100562TEST_CASE("RefConcatEndToEndDim0Uint8Test")
narpra01b9546cf2018-11-20 15:21:28 +0000563{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000564 ConcatDim0EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +0000565}
566
Sadik Armagan1625efc2021-06-10 18:24:34 +0100567TEST_CASE("RefConcatEndToEndDim1Test")
narpra01b9546cf2018-11-20 15:21:28 +0000568{
Jim Flynne242f2d2019-05-22 14:24:13 +0100569 ConcatDim1EndToEnd<armnn::DataType::Float32>(defaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +0000570}
571
Sadik Armagan1625efc2021-06-10 18:24:34 +0100572TEST_CASE("RefConcatEndToEndDim1Uint8Test")
narpra01b9546cf2018-11-20 15:21:28 +0000573{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000574 ConcatDim1EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +0000575}
576
Sadik Armagan1625efc2021-06-10 18:24:34 +0100577TEST_CASE("RefConcatEndToEndDim2Test")
narpra01b9546cf2018-11-20 15:21:28 +0000578{
Jim Flynne242f2d2019-05-22 14:24:13 +0100579 ConcatDim2EndToEnd<armnn::DataType::Float32>(defaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +0000580}
581
Sadik Armagan1625efc2021-06-10 18:24:34 +0100582TEST_CASE("RefConcatEndToEndDim2Uint8Test")
narpra01b9546cf2018-11-20 15:21:28 +0000583{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000584 ConcatDim2EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +0000585}
586
Sadik Armagan1625efc2021-06-10 18:24:34 +0100587TEST_CASE("RefConcatEndToEndDim3Test")
narpra01b9546cf2018-11-20 15:21:28 +0000588{
Jim Flynne242f2d2019-05-22 14:24:13 +0100589 ConcatDim3EndToEnd<armnn::DataType::Float32>(defaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +0000590}
591
Sadik Armagan1625efc2021-06-10 18:24:34 +0100592TEST_CASE("RefConcatEndToEndDim3Uint8Test")
narpra01b9546cf2018-11-20 15:21:28 +0000593{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000594 ConcatDim3EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +0000595}
596
Matthew Sloyan5d7b0a32021-10-18 13:07:49 +0100597TEST_CASE("RefConvolution3dFloat32Test")
598{
599 Convolution3dEndToEnd<armnn::DataType::Float32, armnn::DataType::Float32>(defaultBackends,
600 armnn::DataLayout::NDHWC);
601}
602
603TEST_CASE("RefConvolution3dNcdhwFloat32Test")
604{
605 Convolution3dEndToEnd<armnn::DataType::Float32, armnn::DataType::Float32>(defaultBackends,
606 armnn::DataLayout::NCDHW);
607}
608
609TEST_CASE("RefConvolution3dFloat16Test")
610{
611 Convolution3dEndToEnd<armnn::DataType::Float16, armnn::DataType::Float16>(defaultBackends,
612 armnn::DataLayout::NDHWC);
613}
614
615TEST_CASE("RefConvolution3dUint8Test")
616{
617 Convolution3dEndToEnd<armnn::DataType::QAsymmU8, armnn::DataType::Signed32>(defaultBackends,
618 armnn::DataLayout::NDHWC);
619}
620
621TEST_CASE("RefConvolution3dInt8Test")
622{
623 Convolution3dEndToEnd<armnn::DataType::QAsymmS8, armnn::DataType::Signed32>(defaultBackends,
624 armnn::DataLayout::NDHWC);
625}
626
Sadik Armagan1625efc2021-06-10 18:24:34 +0100627TEST_CASE("RefEluEndToEndTestFloat32")
Jan Eilersbca73e12020-03-11 12:52:46 +0000628{
629 EluEndToEndTest<armnn::DataType::Float32>(defaultBackends);
630}
631
Sadik Armagan1625efc2021-06-10 18:24:34 +0100632TEST_CASE("RefEluEndToEndTestFloat16")
Jan Eilersbca73e12020-03-11 12:52:46 +0000633{
634 EluEndToEndTest<armnn::DataType::Float16>(defaultBackends);
635}
636
Sadik Armagan1625efc2021-06-10 18:24:34 +0100637TEST_CASE("RefEluEndToEndTestQAsymmS8")
Jan Eilersbca73e12020-03-11 12:52:46 +0000638{
639 EluEndToEndTest<armnn::DataType::QAsymmS8>(defaultBackends);
640}
641
Sadik Armagan1625efc2021-06-10 18:24:34 +0100642TEST_CASE("RefEluEndToEndTestQAsymmU8")
Jan Eilersbca73e12020-03-11 12:52:46 +0000643{
644 EluEndToEndTest<armnn::DataType::QAsymmU8>(defaultBackends);
645}
646
Sadik Armagan1625efc2021-06-10 18:24:34 +0100647TEST_CASE("RefEluEndToEndTestQSymmS16")
Jan Eilersbca73e12020-03-11 12:52:46 +0000648{
649 EluEndToEndTest<armnn::DataType::QSymmS16>(defaultBackends);
650}
651
Sadik Armagan1625efc2021-06-10 18:24:34 +0100652TEST_CASE("RefFillEndToEndTest")
Teresa Charlin44088502020-07-27 11:27:19 +0100653{
654 FillEndToEnd<armnn::DataType::Float32>(defaultBackends);
655}
656
Sadik Armagan1625efc2021-06-10 18:24:34 +0100657TEST_CASE("RefFillEndToEndTestFloat16")
Teresa Charlin4b10fef2020-07-29 09:36:41 +0100658{
659 FillEndToEnd<armnn::DataType::Float16>(defaultBackends);
660}
Teresa Charlin44088502020-07-27 11:27:19 +0100661
Sadik Armagan1625efc2021-06-10 18:24:34 +0100662TEST_CASE("RefFillEndToEndTestInt32")
Teresa Charlin44088502020-07-27 11:27:19 +0100663{
664 FillEndToEnd<armnn::DataType::Signed32>(defaultBackends);
665}
666
Matthew Sloyan81beae32021-07-13 19:46:11 +0100667TEST_CASE("RefFullyConnectedEndToEndTestFloat32")
Sadik Armaganf0a6dec2021-03-25 07:46:55 +0000668{
669 FullyConnectedWithDynamicWeightsEndToEnd<armnn::DataType::Float32>(defaultBackends);
670}
671
Matthew Sloyan81beae32021-07-13 19:46:11 +0100672TEST_CASE("RefFullyConnectedEndToEndTestNonConstantWeightsConstantBiasesFloat32")
673{
Cathal Corbettb8cc2b92021-10-08 14:43:11 +0100674 FullyConnectedWithDynamicOrConstantInputsEndToEnd<armnn::DataType::Float32>(defaultBackends, true, true);
Matthew Sloyan81beae32021-07-13 19:46:11 +0100675}
676
677TEST_CASE("RefFullyConnectedEndToEndTestConstantWeightsNonConstantBiasesFloat32")
678{
Cathal Corbettb8cc2b92021-10-08 14:43:11 +0100679 FullyConnectedWithDynamicOrConstantInputsEndToEnd<armnn::DataType::Float32>(defaultBackends, true, false);
Cathal Corbett521032f2021-10-07 11:46:40 +0100680}
681
682TEST_CASE("RefFullyConnectedEndToEndTestConstantWeightsTensorInfoNotSet")
683{
Cathal Corbettb8cc2b92021-10-08 14:43:11 +0100684 FullyConnectedErrorChecking<armnn::DataType::Float32>(defaultBackends, false, true, true, true, false);
685}
686
687TEST_CASE("RefFullyConnectedEndToEndTestWeightsNotConnectedExplicitCheck")
688{
689 FullyConnectedErrorChecking<armnn::DataType::Float32>(defaultBackends, true, true, false, true, true);
690}
691
692TEST_CASE("RefFullyConnectedEndToEndTestBiasNotConnectedExplicitCheck")
693{
694 FullyConnectedErrorChecking<armnn::DataType::Float32>(defaultBackends, true, true, true, false, true);
695}
696
697TEST_CASE("RefFullyConnectedEndToEndTestWeightsAndBiasNotConnected")
698{
699 FullyConnectedErrorChecking<armnn::DataType::Float32>(defaultBackends, false, true, false, false, true);
700}
701
702TEST_CASE("RefFullyConnectedEndToEndTestBiasDisabledConnectBias")
703{
704 FullyConnectedErrorChecking<armnn::DataType::Float32>(defaultBackends, true, false, false, true, true);
Matthew Sloyan81beae32021-07-13 19:46:11 +0100705}
706
Sadik Armagan1625efc2021-06-10 18:24:34 +0100707TEST_CASE("RefGatherFloatTest")
narpra01db2b1602019-01-23 15:23:11 +0000708{
709 GatherEndToEnd<armnn::DataType::Float32>(defaultBackends);
710}
711
Sadik Armagan1625efc2021-06-10 18:24:34 +0100712TEST_CASE("RefGatherUint8Test")
narpra01db2b1602019-01-23 15:23:11 +0000713{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000714 GatherEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
narpra01db2b1602019-01-23 15:23:11 +0000715}
716
Sadik Armagan1625efc2021-06-10 18:24:34 +0100717TEST_CASE("RefGatherInt16Test")
Ellen Norris-Thompsone0dbedf2019-06-24 09:23:38 +0100718{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000719 GatherEndToEnd<armnn::DataType::QSymmS16>(defaultBackends);
Ellen Norris-Thompsone0dbedf2019-06-24 09:23:38 +0100720}
721
Sadik Armagan1625efc2021-06-10 18:24:34 +0100722TEST_CASE("RefGatherMultiDimFloatTest")
narpra01db2b1602019-01-23 15:23:11 +0000723{
724 GatherMultiDimEndToEnd<armnn::DataType::Float32>(defaultBackends);
725}
726
Sadik Armagan1625efc2021-06-10 18:24:34 +0100727TEST_CASE("RefGatherMultiDimUint8Test")
narpra01db2b1602019-01-23 15:23:11 +0000728{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000729 GatherMultiDimEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
narpra01db2b1602019-01-23 15:23:11 +0000730}
731
Sadik Armagan1625efc2021-06-10 18:24:34 +0100732TEST_CASE("RefGatherMultiDimInt16Test")
Ellen Norris-Thompsone0dbedf2019-06-24 09:23:38 +0100733{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000734 GatherMultiDimEndToEnd<armnn::DataType::QSymmS16>(defaultBackends);
Ellen Norris-Thompsone0dbedf2019-06-24 09:23:38 +0100735}
736
Teresa Charlinb2d3ec52022-04-12 22:07:09 +0100737TEST_CASE("RefGatherNdFloatTest")
738{
739 GatherNdEndToEnd<armnn::DataType::Float32>(defaultBackends);
740}
741
742TEST_CASE("RefGatherNdUint8Test")
743{
744 GatherNdEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
745}
746
747TEST_CASE("RefGatherNdInt16Test")
748{
749 GatherNdEndToEnd<armnn::DataType::QSymmS16>(defaultBackends);
750}
751
752TEST_CASE("RefGatherNdMultiDimFloatTest")
753{
754 GatherNdMultiDimEndToEnd<armnn::DataType::Float32>(defaultBackends);
755}
756
757TEST_CASE("RefGatherNdMultiDimUint8Test")
758{
759 GatherNdMultiDimEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
760}
761
762TEST_CASE("RefGatherNdMultiDimInt16Test")
763{
764 GatherNdMultiDimEndToEnd<armnn::DataType::QSymmS16>(defaultBackends);
765}
766
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100767// DepthToSpace
Sadik Armagan1625efc2021-06-10 18:24:34 +0100768TEST_CASE("DephtToSpaceEndToEndNchwFloat32")
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100769{
770 DepthToSpaceEndToEnd<armnn::DataType::Float32>(defaultBackends, armnn::DataLayout::NCHW);
771}
772
Sadik Armagan1625efc2021-06-10 18:24:34 +0100773TEST_CASE("DephtToSpaceEndToEndNchwFloat16")
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100774{
775 DepthToSpaceEndToEnd<armnn::DataType::Float16>(defaultBackends, armnn::DataLayout::NCHW);
776}
777
Sadik Armagan1625efc2021-06-10 18:24:34 +0100778TEST_CASE("DephtToSpaceEndToEndNchwUint8")
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100779{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000780 DepthToSpaceEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, armnn::DataLayout::NCHW);
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100781}
782
Sadik Armagan1625efc2021-06-10 18:24:34 +0100783TEST_CASE("DephtToSpaceEndToEndNchwInt16")
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100784{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000785 DepthToSpaceEndToEnd<armnn::DataType::QSymmS16>(defaultBackends, armnn::DataLayout::NCHW);
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100786}
787
Sadik Armagan1625efc2021-06-10 18:24:34 +0100788TEST_CASE("DephtToSpaceEndToEndNhwcFloat32")
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100789{
790 DepthToSpaceEndToEnd<armnn::DataType::Float32>(defaultBackends, armnn::DataLayout::NHWC);
791}
792
Sadik Armagan1625efc2021-06-10 18:24:34 +0100793TEST_CASE("DephtToSpaceEndToEndNhwcFloat16")
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100794{
795 DepthToSpaceEndToEnd<armnn::DataType::Float16>(defaultBackends, armnn::DataLayout::NHWC);
796}
797
Sadik Armagan1625efc2021-06-10 18:24:34 +0100798TEST_CASE("DephtToSpaceEndToEndNhwcUint8")
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100799{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000800 DepthToSpaceEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, armnn::DataLayout::NHWC);
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100801}
802
Sadik Armagan1625efc2021-06-10 18:24:34 +0100803TEST_CASE("DephtToSpaceEndToEndNhwcInt16")
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100804{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000805 DepthToSpaceEndToEnd<armnn::DataType::QSymmS16>(defaultBackends, armnn::DataLayout::NHWC);
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100806}
807
808// Dequantize
Sadik Armagan1625efc2021-06-10 18:24:34 +0100809TEST_CASE("DequantizeEndToEndSimpleTest")
Narumol Prangnawarat8c7324d2019-05-31 16:42:11 +0100810{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000811 DequantizeEndToEndSimple<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawarat8c7324d2019-05-31 16:42:11 +0100812}
813
Sadik Armagan1625efc2021-06-10 18:24:34 +0100814TEST_CASE("DequantizeEndToEndOffsetTest")
Narumol Prangnawarat8c7324d2019-05-31 16:42:11 +0100815{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000816 DequantizeEndToEndOffset<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawarat8c7324d2019-05-31 16:42:11 +0100817}
818
Sadik Armagan1625efc2021-06-10 18:24:34 +0100819TEST_CASE("DequantizeEndToEndSimpleInt16Test")
Narumol Prangnawaratb6441e42019-06-04 11:22:00 +0100820{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000821 DequantizeEndToEndSimple<armnn::DataType::QSymmS16>(defaultBackends);
Narumol Prangnawaratb6441e42019-06-04 11:22:00 +0100822}
823
Sadik Armagan1625efc2021-06-10 18:24:34 +0100824TEST_CASE("DequantizeEndToEndOffsetInt16Test")
Narumol Prangnawaratb6441e42019-06-04 11:22:00 +0100825{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000826 DequantizeEndToEndOffset<armnn::DataType::QSymmS16>(defaultBackends);
Narumol Prangnawaratb6441e42019-06-04 11:22:00 +0100827}
828
Sadik Armagan1625efc2021-06-10 18:24:34 +0100829TEST_CASE("RefDetectionPostProcessRegularNmsTest")
Narumol Prangnawarat6d302bf2019-02-04 11:46:26 +0000830{
831 std::vector<float> boxEncodings({
832 0.0f, 0.0f, 0.0f, 0.0f,
833 0.0f, 1.0f, 0.0f, 0.0f,
834 0.0f, -1.0f, 0.0f, 0.0f,
835 0.0f, 0.0f, 0.0f, 0.0f,
836 0.0f, 1.0f, 0.0f, 0.0f,
837 0.0f, 0.0f, 0.0f, 0.0f
838 });
839 std::vector<float> scores({
840 0.0f, 0.9f, 0.8f,
841 0.0f, 0.75f, 0.72f,
842 0.0f, 0.6f, 0.5f,
843 0.0f, 0.93f, 0.95f,
844 0.0f, 0.5f, 0.4f,
845 0.0f, 0.3f, 0.2f
846 });
847 std::vector<float> anchors({
848 0.5f, 0.5f, 1.0f, 1.0f,
849 0.5f, 0.5f, 1.0f, 1.0f,
850 0.5f, 0.5f, 1.0f, 1.0f,
851 0.5f, 10.5f, 1.0f, 1.0f,
852 0.5f, 10.5f, 1.0f, 1.0f,
853 0.5f, 100.5f, 1.0f, 1.0f
854 });
855 DetectionPostProcessRegularNmsEndToEnd<armnn::DataType::Float32>(defaultBackends, boxEncodings, scores, anchors);
856}
857
858inline void QuantizeData(uint8_t* quant, const float* dequant, const TensorInfo& info)
859{
860 for (size_t i = 0; i < info.GetNumElements(); i++)
861 {
862 quant[i] = armnn::Quantize<uint8_t>(dequant[i], info.GetQuantizationScale(), info.GetQuantizationOffset());
863 }
864}
865
Sadik Armagan1625efc2021-06-10 18:24:34 +0100866TEST_CASE("RefDetectionPostProcessRegularNmsUint8Test")
Narumol Prangnawarat6d302bf2019-02-04 11:46:26 +0000867{
868 armnn::TensorInfo boxEncodingsInfo({ 1, 6, 4 }, armnn::DataType::Float32);
869 armnn::TensorInfo scoresInfo({ 1, 6, 3 }, armnn::DataType::Float32);
870 armnn::TensorInfo anchorsInfo({ 6, 4 }, armnn::DataType::Float32);
871
872 boxEncodingsInfo.SetQuantizationScale(1.0f);
873 boxEncodingsInfo.SetQuantizationOffset(1);
874 scoresInfo.SetQuantizationScale(0.01f);
875 scoresInfo.SetQuantizationOffset(0);
876 anchorsInfo.SetQuantizationScale(0.5f);
877 anchorsInfo.SetQuantizationOffset(0);
878
879 std::vector<float> boxEncodings({
880 0.0f, 0.0f, 0.0f, 0.0f,
881 0.0f, 1.0f, 0.0f, 0.0f,
882 0.0f, -1.0f, 0.0f, 0.0f,
883 0.0f, 0.0f, 0.0f, 0.0f,
884 0.0f, 1.0f, 0.0f, 0.0f,
885 0.0f, 0.0f, 0.0f, 0.0f
886 });
887 std::vector<float> scores({
888 0.0f, 0.9f, 0.8f,
889 0.0f, 0.75f, 0.72f,
890 0.0f, 0.6f, 0.5f,
891 0.0f, 0.93f, 0.95f,
892 0.0f, 0.5f, 0.4f,
893 0.0f, 0.3f, 0.2f
894 });
895 std::vector<float> anchors({
896 0.5f, 0.5f, 1.0f, 1.0f,
897 0.5f, 0.5f, 1.0f, 1.0f,
898 0.5f, 0.5f, 1.0f, 1.0f,
899 0.5f, 10.5f, 1.0f, 1.0f,
900 0.5f, 10.5f, 1.0f, 1.0f,
901 0.5f, 100.5f, 1.0f, 1.0f
902 });
903
904 std::vector<uint8_t> qBoxEncodings(boxEncodings.size(), 0);
905 std::vector<uint8_t> qScores(scores.size(), 0);
906 std::vector<uint8_t> qAnchors(anchors.size(), 0);
907 QuantizeData(qBoxEncodings.data(), boxEncodings.data(), boxEncodingsInfo);
908 QuantizeData(qScores.data(), scores.data(), scoresInfo);
909 QuantizeData(qAnchors.data(), anchors.data(), anchorsInfo);
Derek Lambertif90c56d2020-01-10 17:14:08 +0000910 DetectionPostProcessRegularNmsEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, qBoxEncodings,
Narumol Prangnawarat6d302bf2019-02-04 11:46:26 +0000911 qScores, qAnchors,
912 1.0f, 1, 0.01f, 0, 0.5f, 0);
913}
914
Sadik Armagan1625efc2021-06-10 18:24:34 +0100915TEST_CASE("RefDetectionPostProcessFastNmsTest")
Narumol Prangnawarat6d302bf2019-02-04 11:46:26 +0000916{
917 std::vector<float> boxEncodings({
918 0.0f, 0.0f, 0.0f, 0.0f,
919 0.0f, 1.0f, 0.0f, 0.0f,
920 0.0f, -1.0f, 0.0f, 0.0f,
921 0.0f, 0.0f, 0.0f, 0.0f,
922 0.0f, 1.0f, 0.0f, 0.0f,
923 0.0f, 0.0f, 0.0f, 0.0f
924 });
925 std::vector<float> scores({
926 0.0f, 0.9f, 0.8f,
927 0.0f, 0.75f, 0.72f,
928 0.0f, 0.6f, 0.5f,
929 0.0f, 0.93f, 0.95f,
930 0.0f, 0.5f, 0.4f,
931 0.0f, 0.3f, 0.2f
932 });
933 std::vector<float> anchors({
934 0.5f, 0.5f, 1.0f, 1.0f,
935 0.5f, 0.5f, 1.0f, 1.0f,
936 0.5f, 0.5f, 1.0f, 1.0f,
937 0.5f, 10.5f, 1.0f, 1.0f,
938 0.5f, 10.5f, 1.0f, 1.0f,
939 0.5f, 100.5f, 1.0f, 1.0f
940 });
941 DetectionPostProcessFastNmsEndToEnd<armnn::DataType::Float32>(defaultBackends, boxEncodings, scores, anchors);
942}
943
Sadik Armagan1625efc2021-06-10 18:24:34 +0100944TEST_CASE("RefDetectionPostProcessFastNmsUint8Test")
Narumol Prangnawarat6d302bf2019-02-04 11:46:26 +0000945{
946 armnn::TensorInfo boxEncodingsInfo({ 1, 6, 4 }, armnn::DataType::Float32);
947 armnn::TensorInfo scoresInfo({ 1, 6, 3 }, armnn::DataType::Float32);
948 armnn::TensorInfo anchorsInfo({ 6, 4 }, armnn::DataType::Float32);
949
950 boxEncodingsInfo.SetQuantizationScale(1.0f);
951 boxEncodingsInfo.SetQuantizationOffset(1);
952 scoresInfo.SetQuantizationScale(0.01f);
953 scoresInfo.SetQuantizationOffset(0);
954 anchorsInfo.SetQuantizationScale(0.5f);
955 anchorsInfo.SetQuantizationOffset(0);
956
957 std::vector<float> boxEncodings({
958 0.0f, 0.0f, 0.0f, 0.0f,
959 0.0f, 1.0f, 0.0f, 0.0f,
960 0.0f, -1.0f, 0.0f, 0.0f,
961 0.0f, 0.0f, 0.0f, 0.0f,
962 0.0f, 1.0f, 0.0f, 0.0f,
963 0.0f, 0.0f, 0.0f, 0.0f
964 });
965 std::vector<float> scores({
966 0.0f, 0.9f, 0.8f,
967 0.0f, 0.75f, 0.72f,
968 0.0f, 0.6f, 0.5f,
969 0.0f, 0.93f, 0.95f,
970 0.0f, 0.5f, 0.4f,
971 0.0f, 0.3f, 0.2f
972 });
973 std::vector<float> anchors({
974 0.5f, 0.5f, 1.0f, 1.0f,
975 0.5f, 0.5f, 1.0f, 1.0f,
976 0.5f, 0.5f, 1.0f, 1.0f,
977 0.5f, 10.5f, 1.0f, 1.0f,
978 0.5f, 10.5f, 1.0f, 1.0f,
979 0.5f, 100.5f, 1.0f, 1.0f
980 });
981
982 std::vector<uint8_t> qBoxEncodings(boxEncodings.size(), 0);
983 std::vector<uint8_t> qScores(scores.size(), 0);
984 std::vector<uint8_t> qAnchors(anchors.size(), 0);
985 QuantizeData(qBoxEncodings.data(), boxEncodings.data(), boxEncodingsInfo);
986 QuantizeData(qScores.data(), scores.data(), scoresInfo);
987 QuantizeData(qAnchors.data(), anchors.data(), anchorsInfo);
Derek Lambertif90c56d2020-01-10 17:14:08 +0000988 DetectionPostProcessFastNmsEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, qBoxEncodings,
Narumol Prangnawarat6d302bf2019-02-04 11:46:26 +0000989 qScores, qAnchors,
990 1.0f, 1, 0.01f, 0, 0.5f, 0);
991}
992
Jan Eilersa83af7b2020-03-18 15:58:11 +0000993// HardSwish
Sadik Armagan1625efc2021-06-10 18:24:34 +0100994TEST_CASE("RefHardSwishEndToEndTestFloat32")
Jan Eilersa83af7b2020-03-18 15:58:11 +0000995{
996 HardSwishEndToEndTest<armnn::DataType::Float32>(defaultBackends);
997}
998
Sadik Armagan1625efc2021-06-10 18:24:34 +0100999TEST_CASE("RefHardSwishEndToEndTestFloat16")
Jan Eilersa83af7b2020-03-18 15:58:11 +00001000{
1001 HardSwishEndToEndTest<armnn::DataType::Float16>(defaultBackends);
1002}
1003
Sadik Armagan1625efc2021-06-10 18:24:34 +01001004TEST_CASE("RefHardSwishEndToEndTestQAsymmS8")
Jan Eilersa83af7b2020-03-18 15:58:11 +00001005{
1006 HardSwishEndToEndTest<armnn::DataType::QAsymmS8>(defaultBackends);
1007}
1008
Sadik Armagan1625efc2021-06-10 18:24:34 +01001009TEST_CASE("RefHardSwishEndToEndTestQAsymmU8")
Jan Eilersa83af7b2020-03-18 15:58:11 +00001010{
1011 HardSwishEndToEndTest<armnn::DataType::QAsymmU8>(defaultBackends);
1012}
1013
Sadik Armagan1625efc2021-06-10 18:24:34 +01001014TEST_CASE("RefHardSwishEndToEndTestQSymmS16")
Jan Eilersa83af7b2020-03-18 15:58:11 +00001015{
1016 HardSwishEndToEndTest<armnn::DataType::QSymmS16>(defaultBackends);
1017}
1018
Sadik Armagan20bea002019-10-16 09:29:38 +01001019// LogSoftmax
Sadik Armagan1625efc2021-06-10 18:24:34 +01001020TEST_CASE("RefLogSoftmaxEndToEndTest")
Sadik Armagan20bea002019-10-16 09:29:38 +01001021{
1022 LogSoftmaxEndToEndTest(defaultBackends);
1023}
1024
Sadik Armagan1625efc2021-06-10 18:24:34 +01001025TEST_CASE("RefPreluEndToEndTestFloat32")
Nikhil Raj747f5862019-07-19 15:15:23 +01001026{
1027 PreluEndToEndNegativeTest<armnn::DataType::Float32>(defaultBackends);
1028}
1029
Sadik Armagan1625efc2021-06-10 18:24:34 +01001030TEST_CASE("RefPreluEndToEndTestUint8")
Nikhil Raj747f5862019-07-19 15:15:23 +01001031{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001032 PreluEndToEndPositiveTest<armnn::DataType::QAsymmU8>(defaultBackends);
Nikhil Raj747f5862019-07-19 15:15:23 +01001033}
1034
Sadik Armagan1625efc2021-06-10 18:24:34 +01001035TEST_CASE("RefPreluEndToEndTestQSymm16")
Nikhil Raj747f5862019-07-19 15:15:23 +01001036{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001037 PreluEndToEndPositiveTest<armnn::DataType::QSymmS16>(defaultBackends);
Nikhil Raj747f5862019-07-19 15:15:23 +01001038}
1039
Sadik Armagan1625efc2021-06-10 18:24:34 +01001040TEST_CASE("RefSpaceToDepthNhwcEndToEndTest1")
Keith Davis9515c7e2019-06-21 09:33:59 +01001041{
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +01001042 SpaceToDepthNhwcEndToEndTest1(defaultBackends);
Keith Davis9515c7e2019-06-21 09:33:59 +01001043}
1044
Sadik Armagan1625efc2021-06-10 18:24:34 +01001045TEST_CASE("RefSpaceToDepthNchwEndToEndTest1")
Keith Davis9515c7e2019-06-21 09:33:59 +01001046{
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +01001047 SpaceToDepthNchwEndToEndTest1(defaultBackends);
Keith Davis9515c7e2019-06-21 09:33:59 +01001048}
1049
Sadik Armagan1625efc2021-06-10 18:24:34 +01001050TEST_CASE("RefSpaceToDepthNhwcEndToEndTest2")
Keith Davis9515c7e2019-06-21 09:33:59 +01001051{
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +01001052 SpaceToDepthNhwcEndToEndTest2(defaultBackends);
Keith Davis9515c7e2019-06-21 09:33:59 +01001053}
1054
Sadik Armagan1625efc2021-06-10 18:24:34 +01001055TEST_CASE("RefSpaceToDepthNchwEndToEndTest2")
Keith Davis9515c7e2019-06-21 09:33:59 +01001056{
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +01001057 SpaceToDepthNchwEndToEndTest2(defaultBackends);
Keith Davis9515c7e2019-06-21 09:33:59 +01001058}
1059
Sadik Armagan1625efc2021-06-10 18:24:34 +01001060TEST_CASE("RefSplitter1dEndToEndTest")
Narumol Prangnawarat0be43382019-05-27 11:29:59 +01001061{
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001062 Splitter1dEndToEnd<armnn::DataType::Float32>(defaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +01001063}
1064
Sadik Armagan1625efc2021-06-10 18:24:34 +01001065TEST_CASE("RefSplitter1dEndToEndUint8Test")
Narumol Prangnawarat0be43382019-05-27 11:29:59 +01001066{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001067 Splitter1dEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +01001068}
1069
Sadik Armagan1625efc2021-06-10 18:24:34 +01001070TEST_CASE("RefSplitter2dDim0EndToEndTest")
Narumol Prangnawarat0be43382019-05-27 11:29:59 +01001071{
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001072 Splitter2dDim0EndToEnd<armnn::DataType::Float32>(defaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +01001073}
1074
Sadik Armagan1625efc2021-06-10 18:24:34 +01001075TEST_CASE("RefSplitter2dDim1EndToEndTest")
Narumol Prangnawarat0be43382019-05-27 11:29:59 +01001076{
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001077 Splitter2dDim1EndToEnd<armnn::DataType::Float32>(defaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +01001078}
1079
Sadik Armagan1625efc2021-06-10 18:24:34 +01001080TEST_CASE("RefSplitter2dDim0EndToEndUint8Test")
Narumol Prangnawarat0be43382019-05-27 11:29:59 +01001081{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001082 Splitter2dDim0EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +01001083}
1084
Sadik Armagan1625efc2021-06-10 18:24:34 +01001085TEST_CASE("RefSplitter2dDim1EndToEndUint8Test")
Narumol Prangnawarat0be43382019-05-27 11:29:59 +01001086{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001087 Splitter2dDim1EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +01001088}
1089
Sadik Armagan1625efc2021-06-10 18:24:34 +01001090TEST_CASE("RefSplitter3dDim0EndToEndTest")
Narumol Prangnawarat0be43382019-05-27 11:29:59 +01001091{
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001092 Splitter3dDim0EndToEnd<armnn::DataType::Float32>(defaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +01001093}
1094
Sadik Armagan1625efc2021-06-10 18:24:34 +01001095TEST_CASE("RefSplitter3dDim1EndToEndTest")
Narumol Prangnawarat0be43382019-05-27 11:29:59 +01001096{
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001097 Splitter3dDim1EndToEnd<armnn::DataType::Float32>(defaultBackends);
1098}
1099
Sadik Armagan1625efc2021-06-10 18:24:34 +01001100TEST_CASE("RefSplitter3dDim2EndToEndTest")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001101{
1102 Splitter3dDim2EndToEnd<armnn::DataType::Float32>(defaultBackends);
1103}
1104
Sadik Armagan1625efc2021-06-10 18:24:34 +01001105TEST_CASE("RefSplitter3dDim0EndToEndUint8Test")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001106{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001107 Splitter3dDim0EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001108}
1109
Sadik Armagan1625efc2021-06-10 18:24:34 +01001110TEST_CASE("RefSplitter3dDim1EndToEndUint8Test")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001111{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001112 Splitter3dDim1EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001113}
1114
Sadik Armagan1625efc2021-06-10 18:24:34 +01001115TEST_CASE("RefSplitter3dDim2EndToEndUint8Test")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001116{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001117 Splitter3dDim2EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001118}
1119
Sadik Armagan1625efc2021-06-10 18:24:34 +01001120TEST_CASE("RefSplitter4dDim0EndToEndTest")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001121{
1122 Splitter4dDim0EndToEnd<armnn::DataType::Float32>(defaultBackends);
1123}
1124
Sadik Armagan1625efc2021-06-10 18:24:34 +01001125TEST_CASE("RefSplitter4dDim1EndToEndTest")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001126{
1127 Splitter4dDim1EndToEnd<armnn::DataType::Float32>(defaultBackends);
1128}
1129
Sadik Armagan1625efc2021-06-10 18:24:34 +01001130TEST_CASE("RefSplitter4dDim2EndToEndTest")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001131{
1132 Splitter4dDim2EndToEnd<armnn::DataType::Float32>(defaultBackends);
1133}
1134
Sadik Armagan1625efc2021-06-10 18:24:34 +01001135TEST_CASE("RefSplitter4dDim3EndToEndTest")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001136{
1137 Splitter4dDim3EndToEnd<armnn::DataType::Float32>(defaultBackends);
1138}
1139
Sadik Armagan1625efc2021-06-10 18:24:34 +01001140TEST_CASE("RefSplitter4dDim0EndToEndUint8Test")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001141{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001142 Splitter4dDim0EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001143}
1144
Sadik Armagan1625efc2021-06-10 18:24:34 +01001145TEST_CASE("RefSplitter4dDim1EndToEndUint8Test")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001146{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001147 Splitter4dDim1EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001148}
1149
Sadik Armagan1625efc2021-06-10 18:24:34 +01001150TEST_CASE("RefSplitter4dDim2EndToEndUint8Test")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001151{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001152 Splitter4dDim2EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001153}
1154
Sadik Armagan1625efc2021-06-10 18:24:34 +01001155TEST_CASE("RefSplitter4dDim3EndToEndUint8Test")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001156{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001157 Splitter4dDim3EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +01001158}
1159
Aron Virginas-Tar98180ef2019-06-26 15:02:47 +01001160// TransposeConvolution2d
Sadik Armagan1625efc2021-06-10 18:24:34 +01001161TEST_CASE("RefTransposeConvolution2dEndToEndFloatNchwTest")
Aron Virginas-Tar98180ef2019-06-26 15:02:47 +01001162{
1163 TransposeConvolution2dEndToEnd<armnn::DataType::Float32, armnn::DataType::Float32>(
1164 defaultBackends, armnn::DataLayout::NCHW);
1165}
1166
Sadik Armagan1625efc2021-06-10 18:24:34 +01001167TEST_CASE("RefTransposeConvolution2dEndToEndUint8NchwTest")
Aron Virginas-Tar98180ef2019-06-26 15:02:47 +01001168{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001169 TransposeConvolution2dEndToEnd<armnn::DataType::QAsymmU8, armnn::DataType::Signed32>(
Aron Virginas-Tar98180ef2019-06-26 15:02:47 +01001170 defaultBackends, armnn::DataLayout::NCHW);
1171}
1172
Sadik Armagan1625efc2021-06-10 18:24:34 +01001173TEST_CASE("RefTransposeConvolution2dEndToEndInt16NchwTest")
Aron Virginas-Tar98180ef2019-06-26 15:02:47 +01001174{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001175 TransposeConvolution2dEndToEnd<armnn::DataType::QSymmS16, armnn::DataType::Signed32>(
Aron Virginas-Tar98180ef2019-06-26 15:02:47 +01001176 defaultBackends, armnn::DataLayout::NCHW);
1177}
1178
Sadik Armagan1625efc2021-06-10 18:24:34 +01001179TEST_CASE("RefTransposeConvolution2dEndToEndFloatNhwcTest")
Aron Virginas-Tar98180ef2019-06-26 15:02:47 +01001180{
1181 TransposeConvolution2dEndToEnd<armnn::DataType::Float32, armnn::DataType::Float32>(
1182 defaultBackends, armnn::DataLayout::NHWC);
1183}
1184
Sadik Armagan1625efc2021-06-10 18:24:34 +01001185TEST_CASE("RefTransposeConvolution2dEndToEndUint8NhwcTest")
Aron Virginas-Tar98180ef2019-06-26 15:02:47 +01001186{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001187 TransposeConvolution2dEndToEnd<armnn::DataType::QAsymmU8, armnn::DataType::Signed32>(
Aron Virginas-Tar98180ef2019-06-26 15:02:47 +01001188 defaultBackends, armnn::DataLayout::NHWC);
1189}
1190
Sadik Armagan1625efc2021-06-10 18:24:34 +01001191TEST_CASE("RefTransposeConvolution2dEndToEndInt16NhwcTest")
Aron Virginas-Tar98180ef2019-06-26 15:02:47 +01001192{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001193 TransposeConvolution2dEndToEnd<armnn::DataType::QSymmS16, armnn::DataType::Signed32>(
Aron Virginas-Tar98180ef2019-06-26 15:02:47 +01001194 defaultBackends, armnn::DataLayout::NHWC);
1195}
1196
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001197// Resize Bilinear
Sadik Armagan1625efc2021-06-10 18:24:34 +01001198TEST_CASE("RefResizeBilinearEndToEndFloatNchwTest")
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001199{
1200 ResizeBilinearEndToEnd<armnn::DataType::Float32>(defaultBackends, armnn::DataLayout::NCHW);
1201}
1202
Sadik Armagan1625efc2021-06-10 18:24:34 +01001203TEST_CASE("RefResizeBilinearEndToEndUint8NchwTest")
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001204{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001205 ResizeBilinearEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, armnn::DataLayout::NCHW);
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001206}
1207
Sadik Armagan1625efc2021-06-10 18:24:34 +01001208TEST_CASE("RefResizeBilinearEndToEndInt16NchwTest")
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001209{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001210 ResizeBilinearEndToEnd<armnn::DataType::QSymmS16>(defaultBackends, armnn::DataLayout::NCHW);
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001211}
1212
Sadik Armagan1625efc2021-06-10 18:24:34 +01001213TEST_CASE("RefResizeBilinearEndToEndFloatNhwcTest")
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001214{
1215 ResizeBilinearEndToEnd<armnn::DataType::Float32>(defaultBackends, armnn::DataLayout::NHWC);
1216}
1217
Sadik Armagan1625efc2021-06-10 18:24:34 +01001218TEST_CASE("RefResizeBilinearEndToEndUint8NhwcTest")
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001219{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001220 ResizeBilinearEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, armnn::DataLayout::NHWC);
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001221}
1222
Sadik Armagan1625efc2021-06-10 18:24:34 +01001223TEST_CASE("RefResizeBilinearEndToEndInt16NhwcTest")
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001224{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001225 ResizeBilinearEndToEnd<armnn::DataType::QSymmS16>(defaultBackends, armnn::DataLayout::NHWC);
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001226}
1227
1228// Resize NearestNeighbor
Sadik Armagan1625efc2021-06-10 18:24:34 +01001229TEST_CASE("RefResizeNearestNeighborEndToEndFloatNchwTest")
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001230{
1231 ResizeNearestNeighborEndToEnd<armnn::DataType::Float32>(defaultBackends, armnn::DataLayout::NCHW);
1232}
1233
Sadik Armagan1625efc2021-06-10 18:24:34 +01001234TEST_CASE("RefResizeNearestNeighborEndToEndUint8NchwTest")
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001235{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001236 ResizeNearestNeighborEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, armnn::DataLayout::NCHW);
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001237}
1238
Sadik Armagan1625efc2021-06-10 18:24:34 +01001239TEST_CASE("RefResizeNearestNeighborEndToEndInt16NchwTest")
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001240{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001241 ResizeNearestNeighborEndToEnd<armnn::DataType::QSymmS16>(defaultBackends, armnn::DataLayout::NCHW);
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001242}
1243
Sadik Armagan1625efc2021-06-10 18:24:34 +01001244TEST_CASE("RefResizeNearestNeighborEndToEndFloatNhwcTest")
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001245{
1246 ResizeNearestNeighborEndToEnd<armnn::DataType::Float32>(defaultBackends, armnn::DataLayout::NHWC);
1247}
1248
Sadik Armagan1625efc2021-06-10 18:24:34 +01001249TEST_CASE("RefResizeNearestNeighborEndToEndUint8NhwcTest")
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001250{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001251 ResizeNearestNeighborEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, armnn::DataLayout::NHWC);
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001252}
1253
Sadik Armagan1625efc2021-06-10 18:24:34 +01001254TEST_CASE("RefResizeNearestNeighborEndToEndInt16NhwcTest")
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001255{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001256 ResizeNearestNeighborEndToEnd<armnn::DataType::QSymmS16>(defaultBackends, armnn::DataLayout::NHWC);
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001257}
1258
Sadik Armagan062e0e92019-10-14 10:31:43 +01001259// InstanceNormalization
Sadik Armagan1625efc2021-06-10 18:24:34 +01001260TEST_CASE("RefInstanceNormalizationNhwcEndToEndTest1")
Sadik Armagan062e0e92019-10-14 10:31:43 +01001261{
1262 InstanceNormalizationNhwcEndToEndTest1(defaultBackends);
1263}
1264
Sadik Armagan1625efc2021-06-10 18:24:34 +01001265TEST_CASE("RefInstanceNormalizationNchwEndToEndTest1")
Sadik Armagan062e0e92019-10-14 10:31:43 +01001266{
1267 InstanceNormalizationNchwEndToEndTest1(defaultBackends);
1268}
1269
Sadik Armagan1625efc2021-06-10 18:24:34 +01001270TEST_CASE("RefInstanceNormalizationNhwcEndToEndTest2")
Sadik Armagan062e0e92019-10-14 10:31:43 +01001271{
1272 InstanceNormalizationNhwcEndToEndTest2(defaultBackends);
1273}
1274
Sadik Armagan1625efc2021-06-10 18:24:34 +01001275TEST_CASE("RefInstanceNormalizationNchwEndToEndTest2")
Sadik Armagan062e0e92019-10-14 10:31:43 +01001276{
1277 InstanceNormalizationNchwEndToEndTest2(defaultBackends);
1278}
1279
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001280// ArgMinMax
Sadik Armagan1625efc2021-06-10 18:24:34 +01001281TEST_CASE("RefArgMaxSimpleTest")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001282{
1283 ArgMaxEndToEndSimple<armnn::DataType::Float32>(defaultBackends);
1284}
1285
Sadik Armagan1625efc2021-06-10 18:24:34 +01001286TEST_CASE("RefArgMaxSimpleUint8Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001287{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001288 ArgMaxEndToEndSimple<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001289}
1290
Sadik Armagan1625efc2021-06-10 18:24:34 +01001291TEST_CASE("RefArgMinSimpleTest")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001292{
1293 ArgMinEndToEndSimple<armnn::DataType::Float32>(defaultBackends);
1294}
1295
Sadik Armagan1625efc2021-06-10 18:24:34 +01001296TEST_CASE("RefArgMinSimpleUint8Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001297{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001298 ArgMinEndToEndSimple<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001299}
1300
Sadik Armagan1625efc2021-06-10 18:24:34 +01001301TEST_CASE("RefArgMaxAxis0Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001302{
1303 ArgMaxAxis0EndToEnd<armnn::DataType::Float32>(defaultBackends);
1304}
1305
Sadik Armagan1625efc2021-06-10 18:24:34 +01001306TEST_CASE("RefArgMaxAxis0Uint8Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001307{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001308 ArgMaxAxis0EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001309}
1310
Sadik Armagan1625efc2021-06-10 18:24:34 +01001311TEST_CASE("RefArgMinAxis0Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001312{
1313 ArgMinAxis0EndToEnd<armnn::DataType::Float32>(defaultBackends);
1314}
1315
Sadik Armagan1625efc2021-06-10 18:24:34 +01001316TEST_CASE("RefArgMinAxis0Uint8Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001317{
1318
Derek Lambertif90c56d2020-01-10 17:14:08 +00001319 ArgMinAxis0EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001320}
1321
Sadik Armagan1625efc2021-06-10 18:24:34 +01001322TEST_CASE("RefArgMaxAxis1Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001323{
1324 ArgMaxAxis1EndToEnd<armnn::DataType::Float32>(defaultBackends);
1325}
1326
Sadik Armagan1625efc2021-06-10 18:24:34 +01001327TEST_CASE("RefArgMaxAxis1Uint8Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001328{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001329 ArgMaxAxis1EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001330}
1331
Sadik Armagan1625efc2021-06-10 18:24:34 +01001332TEST_CASE("RefArgMinAxis1Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001333{
1334 ArgMinAxis1EndToEnd<armnn::DataType::Float32>(defaultBackends);
1335}
1336
Sadik Armagan1625efc2021-06-10 18:24:34 +01001337TEST_CASE("RefArgMinAxis1Uint8Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001338{
1339
Derek Lambertif90c56d2020-01-10 17:14:08 +00001340 ArgMinAxis1EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001341}
1342
Sadik Armagan1625efc2021-06-10 18:24:34 +01001343TEST_CASE("RefArgMaxAxis2Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001344{
1345 ArgMaxAxis2EndToEnd<armnn::DataType::Float32>(defaultBackends);
1346}
1347
Sadik Armagan1625efc2021-06-10 18:24:34 +01001348TEST_CASE("RefArgMaxAxis2Uint8Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001349{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001350 ArgMaxAxis2EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001351}
1352
Sadik Armagan1625efc2021-06-10 18:24:34 +01001353TEST_CASE("RefArgMinAxis2Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001354{
1355 ArgMinAxis2EndToEnd<armnn::DataType::Float32>(defaultBackends);
1356}
1357
Sadik Armagan1625efc2021-06-10 18:24:34 +01001358TEST_CASE("RefArgMinAxis2Uint8Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001359{
1360
Derek Lambertif90c56d2020-01-10 17:14:08 +00001361 ArgMinAxis2EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001362}
1363
Sadik Armagan1625efc2021-06-10 18:24:34 +01001364TEST_CASE("RefArgMaxAxis3Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001365{
1366 ArgMaxAxis3EndToEnd<armnn::DataType::Float32>(defaultBackends);
1367}
1368
Sadik Armagan1625efc2021-06-10 18:24:34 +01001369TEST_CASE("RefArgMaxAxis3Uint8Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001370{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001371 ArgMaxAxis3EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001372}
1373
Sadik Armagan1625efc2021-06-10 18:24:34 +01001374TEST_CASE("RefArgMinAxis3Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001375{
1376 ArgMinAxis3EndToEnd<armnn::DataType::Float32>(defaultBackends);
1377}
1378
Sadik Armagan1625efc2021-06-10 18:24:34 +01001379TEST_CASE("RefArgMinAxis3Uint8Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001380{
1381
Derek Lambertif90c56d2020-01-10 17:14:08 +00001382 ArgMinAxis3EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001383}
1384
Sadik Armagan1625efc2021-06-10 18:24:34 +01001385TEST_CASE("RefQLstmEndToEndTest")
James Conroy0800bf52020-05-14 12:46:44 +01001386{
1387 QLstmEndToEnd(defaultBackends);
1388}
1389
Sadik Armagan1625efc2021-06-10 18:24:34 +01001390TEST_CASE("RefRankEndToEndTest")
Teresa Charlin2e3f4d22020-07-29 14:29:20 +01001391{
1392 RankEndToEnd<armnn::DataType::Float32>(defaultBackends);
1393}
1394
Sadik Armagan1625efc2021-06-10 18:24:34 +01001395TEST_CASE("RefRankEndToEndTestFloat16")
Teresa Charlin2e3f4d22020-07-29 14:29:20 +01001396{
1397 RankEndToEnd<armnn::DataType::Float16>(defaultBackends);
1398}
1399
Sadik Armagan1625efc2021-06-10 18:24:34 +01001400TEST_CASE("RefRankEndToEndTestInt32")
Teresa Charlin2e3f4d22020-07-29 14:29:20 +01001401{
1402 RankEndToEnd<armnn::DataType::Signed32>(defaultBackends);
1403}
1404
Sadik Armagan1625efc2021-06-10 18:24:34 +01001405TEST_CASE("RefRankEndToEndTestQAsymmS8")
Teresa Charlin2e3f4d22020-07-29 14:29:20 +01001406{
1407 RankEndToEnd<armnn::DataType::QAsymmS8>(defaultBackends);
1408}
1409
Sadik Armagan1625efc2021-06-10 18:24:34 +01001410TEST_CASE("RefRankEndToEndTestQSymmS16")
Teresa Charlin2e3f4d22020-07-29 14:29:20 +01001411{
1412 RankEndToEnd<armnn::DataType::QSymmS16>(defaultBackends);
1413}
1414
Sadik Armagan1625efc2021-06-10 18:24:34 +01001415TEST_CASE("RefRankEndToEndTestQSymmS8")
Teresa Charlin2e3f4d22020-07-29 14:29:20 +01001416{
1417 RankEndToEnd<armnn::DataType::QSymmS8>(defaultBackends);
1418}
1419
David Monahan646bc8a2022-01-31 14:29:14 +00001420TEST_CASE("RefForceImportWithAlignedBuffersEndToEndTest")
Narumol Prangnawarate2af6f42022-01-28 17:59:18 +00001421{
David Monahan646bc8a2022-01-31 14:29:14 +00001422 ForceImportWithAlignedBuffersEndToEndTest(defaultBackends);
1423}
Narumol Prangnawarate2af6f42022-01-28 17:59:18 +00001424
David Monahan646bc8a2022-01-31 14:29:14 +00001425TEST_CASE("RefForceImportWithMisalignedInputBuffersEndToEndTest")
1426{
1427 ForceImportWithMisalignedInputBuffersEndToEndTest(defaultBackends);
1428}
Narumol Prangnawarate2af6f42022-01-28 17:59:18 +00001429
David Monahan646bc8a2022-01-31 14:29:14 +00001430TEST_CASE("RefForceImportWithMisalignedOutputBuffersEndToEndTest")
1431{
1432 ForceImportWithMisalignedOutputBuffersEndToEndTest(defaultBackends);
1433}
Narumol Prangnawarate2af6f42022-01-28 17:59:18 +00001434
David Monahan646bc8a2022-01-31 14:29:14 +00001435TEST_CASE("RefForceImportWithMisalignedInputAndOutputBuffersEndToEndTest")
1436{
1437 ForceImportWithMisalignedInputAndOutputBuffersEndToEndTest(defaultBackends);
Narumol Prangnawarate2af6f42022-01-28 17:59:18 +00001438}
1439
David Monahan16829712022-02-03 17:04:59 +00001440TEST_CASE("RefForceImportRepeatedInferencesEndToEndTest")
1441{
1442 ForceImportRepeatedInferencesEndToEndTest(defaultBackends);
1443}
1444
1445TEST_CASE("RefForceImportRepeatedInferencesInvertedEndToEndTest")
1446{
1447 ForceImportRepeatedInferencesInvertedEndToEndTest(defaultBackends);
1448}
1449
Ferran Balaguerdcaa6102019-08-21 13:28:38 +01001450#if !defined(__ANDROID__)
1451// Only run these tests on non Android platforms
Sadik Armagan1625efc2021-06-10 18:24:34 +01001452TEST_CASE("RefImportNonAlignedPointerTest")
Ferran Balaguerdcaa6102019-08-21 13:28:38 +01001453{
David Monahan4f1e8e42019-09-04 09:22:10 +01001454 ImportNonAlignedInputPointerTest(defaultBackends);
1455}
1456
Sadik Armagan1625efc2021-06-10 18:24:34 +01001457TEST_CASE("RefExportNonAlignedPointerTest")
David Monahan4f1e8e42019-09-04 09:22:10 +01001458{
Ferran Balaguer83239f92019-09-19 11:49:25 +01001459 ExportNonAlignedOutputPointerTest(defaultBackends);
Ferran Balaguerdcaa6102019-08-21 13:28:38 +01001460}
1461
Sadik Armagan1625efc2021-06-10 18:24:34 +01001462TEST_CASE("RefImportAlignedPointerTest")
Ferran Balaguerdcaa6102019-08-21 13:28:38 +01001463{
1464 ImportAlignedPointerTest(defaultBackends);
1465}
1466
Sadik Armagan1625efc2021-06-10 18:24:34 +01001467TEST_CASE("RefImportOnlyWorkload")
Ferran Balaguer83239f92019-09-19 11:49:25 +01001468{
1469 ImportOnlyWorkload(defaultBackends);
1470}
1471
Sadik Armagan1625efc2021-06-10 18:24:34 +01001472TEST_CASE("RefExportOnlyWorkload")
Ferran Balaguer83239f92019-09-19 11:49:25 +01001473{
1474 ExportOnlyWorkload(defaultBackends);
1475}
1476
Sadik Armagan1625efc2021-06-10 18:24:34 +01001477TEST_CASE("RefImportAndExportWorkload")
Ferran Balaguer83239f92019-09-19 11:49:25 +01001478{
1479 ImportAndExportWorkload(defaultBackends);
1480}
1481
Sadik Armagan1625efc2021-06-10 18:24:34 +01001482TEST_CASE("RefExportOutputWithSeveralOutputSlotConnectionsTest")
Ferran Balaguer83239f92019-09-19 11:49:25 +01001483{
1484 ExportOutputWithSeveralOutputSlotConnectionsTest(defaultBackends);
1485}
1486
Sadik Armagan1625efc2021-06-10 18:24:34 +01001487TEST_CASE("RefStridedSliceInvalidSliceEndToEndTest")
David Monahan0a99a142020-03-13 07:52:54 +00001488{
1489 StridedSliceInvalidSliceEndToEndTest(defaultBackends);
1490}
1491
Sadik Armagan1625efc2021-06-10 18:24:34 +01001492TEST_CASE("RefThreadSafeFP32StridedSlicedEndToEndTest")
Mike Kelly386ff1a2021-03-29 15:04:50 +01001493{
Kevin Mayb4b3ac92021-05-21 16:42:21 +01001494 armnn::experimental::StridedSlicedEndToEndTest<armnn::DataType::Float32>(defaultBackends, 1);
Mike Kelly386ff1a2021-03-29 15:04:50 +01001495}
Finn Williamsb8181f72021-04-07 10:23:21 +01001496
Sadik Armagan1625efc2021-06-10 18:24:34 +01001497TEST_CASE("RefAsyncFP32StridedSlicedMultiThreadedEndToEndTest")
Finn Williamsb8181f72021-04-07 10:23:21 +01001498{
1499 armnn::experimental::StridedSlicedMultiThreadedEndToEndTest<armnn::DataType::Float32>(defaultBackends);
1500}
Keith Davise813d672021-04-22 10:10:34 +01001501
Sadik Armagan1625efc2021-06-10 18:24:34 +01001502TEST_CASE("RefAsyncFP32StridedSlicedScheduledMultiThreadedEndToEndTest")
Keith Davise813d672021-04-22 10:10:34 +01001503{
Kevin Mayb4b3ac92021-05-21 16:42:21 +01001504 armnn::experimental::StridedSlicedEndToEndTest<armnn::DataType::Float32>(defaultBackends, 3);
Keith Davise813d672021-04-22 10:10:34 +01001505}
Ferran Balaguerdcaa6102019-08-21 13:28:38 +01001506#endif
1507
Sadik Armagan1625efc2021-06-10 18:24:34 +01001508}