blob: 369e98adb16a92732c7db8df357ccb73df0616f2 [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("RefEluEndToEndTestBFloat16")
Jan Eilersbca73e12020-03-11 12:52:46 +0000638{
639 EluEndToEndTest<armnn::DataType::BFloat16>(defaultBackends);
640}
641
Sadik Armagan1625efc2021-06-10 18:24:34 +0100642TEST_CASE("RefEluEndToEndTestQAsymmS8")
Jan Eilersbca73e12020-03-11 12:52:46 +0000643{
644 EluEndToEndTest<armnn::DataType::QAsymmS8>(defaultBackends);
645}
646
Sadik Armagan1625efc2021-06-10 18:24:34 +0100647TEST_CASE("RefEluEndToEndTestQAsymmU8")
Jan Eilersbca73e12020-03-11 12:52:46 +0000648{
649 EluEndToEndTest<armnn::DataType::QAsymmU8>(defaultBackends);
650}
651
Sadik Armagan1625efc2021-06-10 18:24:34 +0100652TEST_CASE("RefEluEndToEndTestQSymmS16")
Jan Eilersbca73e12020-03-11 12:52:46 +0000653{
654 EluEndToEndTest<armnn::DataType::QSymmS16>(defaultBackends);
655}
656
Sadik Armagan1625efc2021-06-10 18:24:34 +0100657TEST_CASE("RefFillEndToEndTest")
Teresa Charlin44088502020-07-27 11:27:19 +0100658{
659 FillEndToEnd<armnn::DataType::Float32>(defaultBackends);
660}
661
Sadik Armagan1625efc2021-06-10 18:24:34 +0100662TEST_CASE("RefFillEndToEndTestFloat16")
Teresa Charlin4b10fef2020-07-29 09:36:41 +0100663{
664 FillEndToEnd<armnn::DataType::Float16>(defaultBackends);
665}
Teresa Charlin44088502020-07-27 11:27:19 +0100666
Sadik Armagan1625efc2021-06-10 18:24:34 +0100667TEST_CASE("RefFillEndToEndTestInt32")
Teresa Charlin44088502020-07-27 11:27:19 +0100668{
669 FillEndToEnd<armnn::DataType::Signed32>(defaultBackends);
670}
671
Matthew Sloyan81beae32021-07-13 19:46:11 +0100672TEST_CASE("RefFullyConnectedEndToEndTestFloat32")
Sadik Armaganf0a6dec2021-03-25 07:46:55 +0000673{
674 FullyConnectedWithDynamicWeightsEndToEnd<armnn::DataType::Float32>(defaultBackends);
675}
676
Matthew Sloyan81beae32021-07-13 19:46:11 +0100677TEST_CASE("RefFullyConnectedEndToEndTestNonConstantWeightsConstantBiasesFloat32")
678{
Cathal Corbettb8cc2b92021-10-08 14:43:11 +0100679 FullyConnectedWithDynamicOrConstantInputsEndToEnd<armnn::DataType::Float32>(defaultBackends, true, true);
Matthew Sloyan81beae32021-07-13 19:46:11 +0100680}
681
682TEST_CASE("RefFullyConnectedEndToEndTestConstantWeightsNonConstantBiasesFloat32")
683{
Cathal Corbettb8cc2b92021-10-08 14:43:11 +0100684 FullyConnectedWithDynamicOrConstantInputsEndToEnd<armnn::DataType::Float32>(defaultBackends, true, false);
Cathal Corbett521032f2021-10-07 11:46:40 +0100685}
686
687TEST_CASE("RefFullyConnectedEndToEndTestConstantWeightsTensorInfoNotSet")
688{
Cathal Corbettb8cc2b92021-10-08 14:43:11 +0100689 FullyConnectedErrorChecking<armnn::DataType::Float32>(defaultBackends, false, true, true, true, false);
690}
691
692TEST_CASE("RefFullyConnectedEndToEndTestWeightsNotConnectedExplicitCheck")
693{
694 FullyConnectedErrorChecking<armnn::DataType::Float32>(defaultBackends, true, true, false, true, true);
695}
696
697TEST_CASE("RefFullyConnectedEndToEndTestBiasNotConnectedExplicitCheck")
698{
699 FullyConnectedErrorChecking<armnn::DataType::Float32>(defaultBackends, true, true, true, false, true);
700}
701
702TEST_CASE("RefFullyConnectedEndToEndTestWeightsAndBiasNotConnected")
703{
704 FullyConnectedErrorChecking<armnn::DataType::Float32>(defaultBackends, false, true, false, false, true);
705}
706
707TEST_CASE("RefFullyConnectedEndToEndTestBiasDisabledConnectBias")
708{
709 FullyConnectedErrorChecking<armnn::DataType::Float32>(defaultBackends, true, false, false, true, true);
Matthew Sloyan81beae32021-07-13 19:46:11 +0100710}
711
Sadik Armagan1625efc2021-06-10 18:24:34 +0100712TEST_CASE("RefGatherFloatTest")
narpra01db2b1602019-01-23 15:23:11 +0000713{
714 GatherEndToEnd<armnn::DataType::Float32>(defaultBackends);
715}
716
Sadik Armagan1625efc2021-06-10 18:24:34 +0100717TEST_CASE("RefGatherUint8Test")
narpra01db2b1602019-01-23 15:23:11 +0000718{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000719 GatherEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
narpra01db2b1602019-01-23 15:23:11 +0000720}
721
Sadik Armagan1625efc2021-06-10 18:24:34 +0100722TEST_CASE("RefGatherInt16Test")
Ellen Norris-Thompsone0dbedf2019-06-24 09:23:38 +0100723{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000724 GatherEndToEnd<armnn::DataType::QSymmS16>(defaultBackends);
Ellen Norris-Thompsone0dbedf2019-06-24 09:23:38 +0100725}
726
Sadik Armagan1625efc2021-06-10 18:24:34 +0100727TEST_CASE("RefGatherMultiDimFloatTest")
narpra01db2b1602019-01-23 15:23:11 +0000728{
729 GatherMultiDimEndToEnd<armnn::DataType::Float32>(defaultBackends);
730}
731
Sadik Armagan1625efc2021-06-10 18:24:34 +0100732TEST_CASE("RefGatherMultiDimUint8Test")
narpra01db2b1602019-01-23 15:23:11 +0000733{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000734 GatherMultiDimEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
narpra01db2b1602019-01-23 15:23:11 +0000735}
736
Sadik Armagan1625efc2021-06-10 18:24:34 +0100737TEST_CASE("RefGatherMultiDimInt16Test")
Ellen Norris-Thompsone0dbedf2019-06-24 09:23:38 +0100738{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000739 GatherMultiDimEndToEnd<armnn::DataType::QSymmS16>(defaultBackends);
Ellen Norris-Thompsone0dbedf2019-06-24 09:23:38 +0100740}
741
Teresa Charlinb2d3ec52022-04-12 22:07:09 +0100742TEST_CASE("RefGatherNdFloatTest")
743{
744 GatherNdEndToEnd<armnn::DataType::Float32>(defaultBackends);
745}
746
747TEST_CASE("RefGatherNdUint8Test")
748{
749 GatherNdEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
750}
751
752TEST_CASE("RefGatherNdInt16Test")
753{
754 GatherNdEndToEnd<armnn::DataType::QSymmS16>(defaultBackends);
755}
756
757TEST_CASE("RefGatherNdMultiDimFloatTest")
758{
759 GatherNdMultiDimEndToEnd<armnn::DataType::Float32>(defaultBackends);
760}
761
762TEST_CASE("RefGatherNdMultiDimUint8Test")
763{
764 GatherNdMultiDimEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
765}
766
767TEST_CASE("RefGatherNdMultiDimInt16Test")
768{
769 GatherNdMultiDimEndToEnd<armnn::DataType::QSymmS16>(defaultBackends);
770}
771
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100772// DepthToSpace
Sadik Armagan1625efc2021-06-10 18:24:34 +0100773TEST_CASE("DephtToSpaceEndToEndNchwFloat32")
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100774{
775 DepthToSpaceEndToEnd<armnn::DataType::Float32>(defaultBackends, armnn::DataLayout::NCHW);
776}
777
Sadik Armagan1625efc2021-06-10 18:24:34 +0100778TEST_CASE("DephtToSpaceEndToEndNchwFloat16")
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100779{
780 DepthToSpaceEndToEnd<armnn::DataType::Float16>(defaultBackends, armnn::DataLayout::NCHW);
781}
782
Sadik Armagan1625efc2021-06-10 18:24:34 +0100783TEST_CASE("DephtToSpaceEndToEndNchwUint8")
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100784{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000785 DepthToSpaceEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, armnn::DataLayout::NCHW);
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100786}
787
Sadik Armagan1625efc2021-06-10 18:24:34 +0100788TEST_CASE("DephtToSpaceEndToEndNchwInt16")
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100789{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000790 DepthToSpaceEndToEnd<armnn::DataType::QSymmS16>(defaultBackends, armnn::DataLayout::NCHW);
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100791}
792
Sadik Armagan1625efc2021-06-10 18:24:34 +0100793TEST_CASE("DephtToSpaceEndToEndNhwcFloat32")
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100794{
795 DepthToSpaceEndToEnd<armnn::DataType::Float32>(defaultBackends, armnn::DataLayout::NHWC);
796}
797
Sadik Armagan1625efc2021-06-10 18:24:34 +0100798TEST_CASE("DephtToSpaceEndToEndNhwcFloat16")
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100799{
800 DepthToSpaceEndToEnd<armnn::DataType::Float16>(defaultBackends, armnn::DataLayout::NHWC);
801}
802
Sadik Armagan1625efc2021-06-10 18:24:34 +0100803TEST_CASE("DephtToSpaceEndToEndNhwcUint8")
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100804{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000805 DepthToSpaceEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, armnn::DataLayout::NHWC);
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100806}
807
Sadik Armagan1625efc2021-06-10 18:24:34 +0100808TEST_CASE("DephtToSpaceEndToEndNhwcInt16")
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100809{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000810 DepthToSpaceEndToEnd<armnn::DataType::QSymmS16>(defaultBackends, armnn::DataLayout::NHWC);
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100811}
812
813// Dequantize
Sadik Armagan1625efc2021-06-10 18:24:34 +0100814TEST_CASE("DequantizeEndToEndSimpleTest")
Narumol Prangnawarat8c7324d2019-05-31 16:42:11 +0100815{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000816 DequantizeEndToEndSimple<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawarat8c7324d2019-05-31 16:42:11 +0100817}
818
Sadik Armagan1625efc2021-06-10 18:24:34 +0100819TEST_CASE("DequantizeEndToEndOffsetTest")
Narumol Prangnawarat8c7324d2019-05-31 16:42:11 +0100820{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000821 DequantizeEndToEndOffset<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawarat8c7324d2019-05-31 16:42:11 +0100822}
823
Sadik Armagan1625efc2021-06-10 18:24:34 +0100824TEST_CASE("DequantizeEndToEndSimpleInt16Test")
Narumol Prangnawaratb6441e42019-06-04 11:22:00 +0100825{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000826 DequantizeEndToEndSimple<armnn::DataType::QSymmS16>(defaultBackends);
Narumol Prangnawaratb6441e42019-06-04 11:22:00 +0100827}
828
Sadik Armagan1625efc2021-06-10 18:24:34 +0100829TEST_CASE("DequantizeEndToEndOffsetInt16Test")
Narumol Prangnawaratb6441e42019-06-04 11:22:00 +0100830{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000831 DequantizeEndToEndOffset<armnn::DataType::QSymmS16>(defaultBackends);
Narumol Prangnawaratb6441e42019-06-04 11:22:00 +0100832}
833
Sadik Armagan1625efc2021-06-10 18:24:34 +0100834TEST_CASE("RefDetectionPostProcessRegularNmsTest")
Narumol Prangnawarat6d302bf2019-02-04 11:46:26 +0000835{
836 std::vector<float> boxEncodings({
837 0.0f, 0.0f, 0.0f, 0.0f,
838 0.0f, 1.0f, 0.0f, 0.0f,
839 0.0f, -1.0f, 0.0f, 0.0f,
840 0.0f, 0.0f, 0.0f, 0.0f,
841 0.0f, 1.0f, 0.0f, 0.0f,
842 0.0f, 0.0f, 0.0f, 0.0f
843 });
844 std::vector<float> scores({
845 0.0f, 0.9f, 0.8f,
846 0.0f, 0.75f, 0.72f,
847 0.0f, 0.6f, 0.5f,
848 0.0f, 0.93f, 0.95f,
849 0.0f, 0.5f, 0.4f,
850 0.0f, 0.3f, 0.2f
851 });
852 std::vector<float> anchors({
853 0.5f, 0.5f, 1.0f, 1.0f,
854 0.5f, 0.5f, 1.0f, 1.0f,
855 0.5f, 0.5f, 1.0f, 1.0f,
856 0.5f, 10.5f, 1.0f, 1.0f,
857 0.5f, 10.5f, 1.0f, 1.0f,
858 0.5f, 100.5f, 1.0f, 1.0f
859 });
860 DetectionPostProcessRegularNmsEndToEnd<armnn::DataType::Float32>(defaultBackends, boxEncodings, scores, anchors);
861}
862
863inline void QuantizeData(uint8_t* quant, const float* dequant, const TensorInfo& info)
864{
865 for (size_t i = 0; i < info.GetNumElements(); i++)
866 {
867 quant[i] = armnn::Quantize<uint8_t>(dequant[i], info.GetQuantizationScale(), info.GetQuantizationOffset());
868 }
869}
870
Sadik Armagan1625efc2021-06-10 18:24:34 +0100871TEST_CASE("RefDetectionPostProcessRegularNmsUint8Test")
Narumol Prangnawarat6d302bf2019-02-04 11:46:26 +0000872{
873 armnn::TensorInfo boxEncodingsInfo({ 1, 6, 4 }, armnn::DataType::Float32);
874 armnn::TensorInfo scoresInfo({ 1, 6, 3 }, armnn::DataType::Float32);
875 armnn::TensorInfo anchorsInfo({ 6, 4 }, armnn::DataType::Float32);
876
877 boxEncodingsInfo.SetQuantizationScale(1.0f);
878 boxEncodingsInfo.SetQuantizationOffset(1);
879 scoresInfo.SetQuantizationScale(0.01f);
880 scoresInfo.SetQuantizationOffset(0);
881 anchorsInfo.SetQuantizationScale(0.5f);
882 anchorsInfo.SetQuantizationOffset(0);
883
884 std::vector<float> boxEncodings({
885 0.0f, 0.0f, 0.0f, 0.0f,
886 0.0f, 1.0f, 0.0f, 0.0f,
887 0.0f, -1.0f, 0.0f, 0.0f,
888 0.0f, 0.0f, 0.0f, 0.0f,
889 0.0f, 1.0f, 0.0f, 0.0f,
890 0.0f, 0.0f, 0.0f, 0.0f
891 });
892 std::vector<float> scores({
893 0.0f, 0.9f, 0.8f,
894 0.0f, 0.75f, 0.72f,
895 0.0f, 0.6f, 0.5f,
896 0.0f, 0.93f, 0.95f,
897 0.0f, 0.5f, 0.4f,
898 0.0f, 0.3f, 0.2f
899 });
900 std::vector<float> anchors({
901 0.5f, 0.5f, 1.0f, 1.0f,
902 0.5f, 0.5f, 1.0f, 1.0f,
903 0.5f, 0.5f, 1.0f, 1.0f,
904 0.5f, 10.5f, 1.0f, 1.0f,
905 0.5f, 10.5f, 1.0f, 1.0f,
906 0.5f, 100.5f, 1.0f, 1.0f
907 });
908
909 std::vector<uint8_t> qBoxEncodings(boxEncodings.size(), 0);
910 std::vector<uint8_t> qScores(scores.size(), 0);
911 std::vector<uint8_t> qAnchors(anchors.size(), 0);
912 QuantizeData(qBoxEncodings.data(), boxEncodings.data(), boxEncodingsInfo);
913 QuantizeData(qScores.data(), scores.data(), scoresInfo);
914 QuantizeData(qAnchors.data(), anchors.data(), anchorsInfo);
Derek Lambertif90c56d2020-01-10 17:14:08 +0000915 DetectionPostProcessRegularNmsEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, qBoxEncodings,
Narumol Prangnawarat6d302bf2019-02-04 11:46:26 +0000916 qScores, qAnchors,
917 1.0f, 1, 0.01f, 0, 0.5f, 0);
918}
919
Sadik Armagan1625efc2021-06-10 18:24:34 +0100920TEST_CASE("RefDetectionPostProcessFastNmsTest")
Narumol Prangnawarat6d302bf2019-02-04 11:46:26 +0000921{
922 std::vector<float> boxEncodings({
923 0.0f, 0.0f, 0.0f, 0.0f,
924 0.0f, 1.0f, 0.0f, 0.0f,
925 0.0f, -1.0f, 0.0f, 0.0f,
926 0.0f, 0.0f, 0.0f, 0.0f,
927 0.0f, 1.0f, 0.0f, 0.0f,
928 0.0f, 0.0f, 0.0f, 0.0f
929 });
930 std::vector<float> scores({
931 0.0f, 0.9f, 0.8f,
932 0.0f, 0.75f, 0.72f,
933 0.0f, 0.6f, 0.5f,
934 0.0f, 0.93f, 0.95f,
935 0.0f, 0.5f, 0.4f,
936 0.0f, 0.3f, 0.2f
937 });
938 std::vector<float> anchors({
939 0.5f, 0.5f, 1.0f, 1.0f,
940 0.5f, 0.5f, 1.0f, 1.0f,
941 0.5f, 0.5f, 1.0f, 1.0f,
942 0.5f, 10.5f, 1.0f, 1.0f,
943 0.5f, 10.5f, 1.0f, 1.0f,
944 0.5f, 100.5f, 1.0f, 1.0f
945 });
946 DetectionPostProcessFastNmsEndToEnd<armnn::DataType::Float32>(defaultBackends, boxEncodings, scores, anchors);
947}
948
Sadik Armagan1625efc2021-06-10 18:24:34 +0100949TEST_CASE("RefDetectionPostProcessFastNmsUint8Test")
Narumol Prangnawarat6d302bf2019-02-04 11:46:26 +0000950{
951 armnn::TensorInfo boxEncodingsInfo({ 1, 6, 4 }, armnn::DataType::Float32);
952 armnn::TensorInfo scoresInfo({ 1, 6, 3 }, armnn::DataType::Float32);
953 armnn::TensorInfo anchorsInfo({ 6, 4 }, armnn::DataType::Float32);
954
955 boxEncodingsInfo.SetQuantizationScale(1.0f);
956 boxEncodingsInfo.SetQuantizationOffset(1);
957 scoresInfo.SetQuantizationScale(0.01f);
958 scoresInfo.SetQuantizationOffset(0);
959 anchorsInfo.SetQuantizationScale(0.5f);
960 anchorsInfo.SetQuantizationOffset(0);
961
962 std::vector<float> boxEncodings({
963 0.0f, 0.0f, 0.0f, 0.0f,
964 0.0f, 1.0f, 0.0f, 0.0f,
965 0.0f, -1.0f, 0.0f, 0.0f,
966 0.0f, 0.0f, 0.0f, 0.0f,
967 0.0f, 1.0f, 0.0f, 0.0f,
968 0.0f, 0.0f, 0.0f, 0.0f
969 });
970 std::vector<float> scores({
971 0.0f, 0.9f, 0.8f,
972 0.0f, 0.75f, 0.72f,
973 0.0f, 0.6f, 0.5f,
974 0.0f, 0.93f, 0.95f,
975 0.0f, 0.5f, 0.4f,
976 0.0f, 0.3f, 0.2f
977 });
978 std::vector<float> anchors({
979 0.5f, 0.5f, 1.0f, 1.0f,
980 0.5f, 0.5f, 1.0f, 1.0f,
981 0.5f, 0.5f, 1.0f, 1.0f,
982 0.5f, 10.5f, 1.0f, 1.0f,
983 0.5f, 10.5f, 1.0f, 1.0f,
984 0.5f, 100.5f, 1.0f, 1.0f
985 });
986
987 std::vector<uint8_t> qBoxEncodings(boxEncodings.size(), 0);
988 std::vector<uint8_t> qScores(scores.size(), 0);
989 std::vector<uint8_t> qAnchors(anchors.size(), 0);
990 QuantizeData(qBoxEncodings.data(), boxEncodings.data(), boxEncodingsInfo);
991 QuantizeData(qScores.data(), scores.data(), scoresInfo);
992 QuantizeData(qAnchors.data(), anchors.data(), anchorsInfo);
Derek Lambertif90c56d2020-01-10 17:14:08 +0000993 DetectionPostProcessFastNmsEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, qBoxEncodings,
Narumol Prangnawarat6d302bf2019-02-04 11:46:26 +0000994 qScores, qAnchors,
995 1.0f, 1, 0.01f, 0, 0.5f, 0);
996}
997
Jan Eilersa83af7b2020-03-18 15:58:11 +0000998// HardSwish
Sadik Armagan1625efc2021-06-10 18:24:34 +0100999TEST_CASE("RefHardSwishEndToEndTestFloat32")
Jan Eilersa83af7b2020-03-18 15:58:11 +00001000{
1001 HardSwishEndToEndTest<armnn::DataType::Float32>(defaultBackends);
1002}
1003
Sadik Armagan1625efc2021-06-10 18:24:34 +01001004TEST_CASE("RefHardSwishEndToEndTestFloat16")
Jan Eilersa83af7b2020-03-18 15:58:11 +00001005{
1006 HardSwishEndToEndTest<armnn::DataType::Float16>(defaultBackends);
1007}
1008
Sadik Armagan1625efc2021-06-10 18:24:34 +01001009TEST_CASE("RefHardSwishEndToEndTestBFloat16")
Jan Eilersa83af7b2020-03-18 15:58:11 +00001010{
Sadik Armagan1625efc2021-06-10 18:24:34 +01001011 HardSwishEndToEndTest<armnn::DataType::BFloat16>(defaultBackends);
Jan Eilersa83af7b2020-03-18 15:58:11 +00001012}
1013
Sadik Armagan1625efc2021-06-10 18:24:34 +01001014TEST_CASE("RefHardSwishEndToEndTestQAsymmS8")
Jan Eilersa83af7b2020-03-18 15:58:11 +00001015{
1016 HardSwishEndToEndTest<armnn::DataType::QAsymmS8>(defaultBackends);
1017}
1018
Sadik Armagan1625efc2021-06-10 18:24:34 +01001019TEST_CASE("RefHardSwishEndToEndTestQAsymmU8")
Jan Eilersa83af7b2020-03-18 15:58:11 +00001020{
1021 HardSwishEndToEndTest<armnn::DataType::QAsymmU8>(defaultBackends);
1022}
1023
Sadik Armagan1625efc2021-06-10 18:24:34 +01001024TEST_CASE("RefHardSwishEndToEndTestQSymmS16")
Jan Eilersa83af7b2020-03-18 15:58:11 +00001025{
1026 HardSwishEndToEndTest<armnn::DataType::QSymmS16>(defaultBackends);
1027}
1028
Sadik Armagan20bea002019-10-16 09:29:38 +01001029// LogSoftmax
Sadik Armagan1625efc2021-06-10 18:24:34 +01001030TEST_CASE("RefLogSoftmaxEndToEndTest")
Sadik Armagan20bea002019-10-16 09:29:38 +01001031{
1032 LogSoftmaxEndToEndTest(defaultBackends);
1033}
1034
Sadik Armagan1625efc2021-06-10 18:24:34 +01001035TEST_CASE("RefPreluEndToEndTestFloat32")
Nikhil Raj747f5862019-07-19 15:15:23 +01001036{
1037 PreluEndToEndNegativeTest<armnn::DataType::Float32>(defaultBackends);
1038}
1039
Sadik Armagan1625efc2021-06-10 18:24:34 +01001040TEST_CASE("RefPreluEndToEndTestUint8")
Nikhil Raj747f5862019-07-19 15:15:23 +01001041{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001042 PreluEndToEndPositiveTest<armnn::DataType::QAsymmU8>(defaultBackends);
Nikhil Raj747f5862019-07-19 15:15:23 +01001043}
1044
Sadik Armagan1625efc2021-06-10 18:24:34 +01001045TEST_CASE("RefPreluEndToEndTestQSymm16")
Nikhil Raj747f5862019-07-19 15:15:23 +01001046{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001047 PreluEndToEndPositiveTest<armnn::DataType::QSymmS16>(defaultBackends);
Nikhil Raj747f5862019-07-19 15:15:23 +01001048}
1049
Sadik Armagan1625efc2021-06-10 18:24:34 +01001050TEST_CASE("RefSpaceToDepthNhwcEndToEndTest1")
Keith Davis9515c7e2019-06-21 09:33:59 +01001051{
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +01001052 SpaceToDepthNhwcEndToEndTest1(defaultBackends);
Keith Davis9515c7e2019-06-21 09:33:59 +01001053}
1054
Sadik Armagan1625efc2021-06-10 18:24:34 +01001055TEST_CASE("RefSpaceToDepthNchwEndToEndTest1")
Keith Davis9515c7e2019-06-21 09:33:59 +01001056{
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +01001057 SpaceToDepthNchwEndToEndTest1(defaultBackends);
Keith Davis9515c7e2019-06-21 09:33:59 +01001058}
1059
Sadik Armagan1625efc2021-06-10 18:24:34 +01001060TEST_CASE("RefSpaceToDepthNhwcEndToEndTest2")
Keith Davis9515c7e2019-06-21 09:33:59 +01001061{
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +01001062 SpaceToDepthNhwcEndToEndTest2(defaultBackends);
Keith Davis9515c7e2019-06-21 09:33:59 +01001063}
1064
Sadik Armagan1625efc2021-06-10 18:24:34 +01001065TEST_CASE("RefSpaceToDepthNchwEndToEndTest2")
Keith Davis9515c7e2019-06-21 09:33:59 +01001066{
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +01001067 SpaceToDepthNchwEndToEndTest2(defaultBackends);
Keith Davis9515c7e2019-06-21 09:33:59 +01001068}
1069
Sadik Armagan1625efc2021-06-10 18:24:34 +01001070TEST_CASE("RefSplitter1dEndToEndTest")
Narumol Prangnawarat0be43382019-05-27 11:29:59 +01001071{
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001072 Splitter1dEndToEnd<armnn::DataType::Float32>(defaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +01001073}
1074
Sadik Armagan1625efc2021-06-10 18:24:34 +01001075TEST_CASE("RefSplitter1dEndToEndUint8Test")
Narumol Prangnawarat0be43382019-05-27 11:29:59 +01001076{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001077 Splitter1dEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +01001078}
1079
Sadik Armagan1625efc2021-06-10 18:24:34 +01001080TEST_CASE("RefSplitter2dDim0EndToEndTest")
Narumol Prangnawarat0be43382019-05-27 11:29:59 +01001081{
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001082 Splitter2dDim0EndToEnd<armnn::DataType::Float32>(defaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +01001083}
1084
Sadik Armagan1625efc2021-06-10 18:24:34 +01001085TEST_CASE("RefSplitter2dDim1EndToEndTest")
Narumol Prangnawarat0be43382019-05-27 11:29:59 +01001086{
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001087 Splitter2dDim1EndToEnd<armnn::DataType::Float32>(defaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +01001088}
1089
Sadik Armagan1625efc2021-06-10 18:24:34 +01001090TEST_CASE("RefSplitter2dDim0EndToEndUint8Test")
Narumol Prangnawarat0be43382019-05-27 11:29:59 +01001091{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001092 Splitter2dDim0EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +01001093}
1094
Sadik Armagan1625efc2021-06-10 18:24:34 +01001095TEST_CASE("RefSplitter2dDim1EndToEndUint8Test")
Narumol Prangnawarat0be43382019-05-27 11:29:59 +01001096{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001097 Splitter2dDim1EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +01001098}
1099
Sadik Armagan1625efc2021-06-10 18:24:34 +01001100TEST_CASE("RefSplitter3dDim0EndToEndTest")
Narumol Prangnawarat0be43382019-05-27 11:29:59 +01001101{
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001102 Splitter3dDim0EndToEnd<armnn::DataType::Float32>(defaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +01001103}
1104
Sadik Armagan1625efc2021-06-10 18:24:34 +01001105TEST_CASE("RefSplitter3dDim1EndToEndTest")
Narumol Prangnawarat0be43382019-05-27 11:29:59 +01001106{
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001107 Splitter3dDim1EndToEnd<armnn::DataType::Float32>(defaultBackends);
1108}
1109
Sadik Armagan1625efc2021-06-10 18:24:34 +01001110TEST_CASE("RefSplitter3dDim2EndToEndTest")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001111{
1112 Splitter3dDim2EndToEnd<armnn::DataType::Float32>(defaultBackends);
1113}
1114
Sadik Armagan1625efc2021-06-10 18:24:34 +01001115TEST_CASE("RefSplitter3dDim0EndToEndUint8Test")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001116{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001117 Splitter3dDim0EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001118}
1119
Sadik Armagan1625efc2021-06-10 18:24:34 +01001120TEST_CASE("RefSplitter3dDim1EndToEndUint8Test")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001121{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001122 Splitter3dDim1EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001123}
1124
Sadik Armagan1625efc2021-06-10 18:24:34 +01001125TEST_CASE("RefSplitter3dDim2EndToEndUint8Test")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001126{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001127 Splitter3dDim2EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001128}
1129
Sadik Armagan1625efc2021-06-10 18:24:34 +01001130TEST_CASE("RefSplitter4dDim0EndToEndTest")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001131{
1132 Splitter4dDim0EndToEnd<armnn::DataType::Float32>(defaultBackends);
1133}
1134
Sadik Armagan1625efc2021-06-10 18:24:34 +01001135TEST_CASE("RefSplitter4dDim1EndToEndTest")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001136{
1137 Splitter4dDim1EndToEnd<armnn::DataType::Float32>(defaultBackends);
1138}
1139
Sadik Armagan1625efc2021-06-10 18:24:34 +01001140TEST_CASE("RefSplitter4dDim2EndToEndTest")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001141{
1142 Splitter4dDim2EndToEnd<armnn::DataType::Float32>(defaultBackends);
1143}
1144
Sadik Armagan1625efc2021-06-10 18:24:34 +01001145TEST_CASE("RefSplitter4dDim3EndToEndTest")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001146{
1147 Splitter4dDim3EndToEnd<armnn::DataType::Float32>(defaultBackends);
1148}
1149
Sadik Armagan1625efc2021-06-10 18:24:34 +01001150TEST_CASE("RefSplitter4dDim0EndToEndUint8Test")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001151{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001152 Splitter4dDim0EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001153}
1154
Sadik Armagan1625efc2021-06-10 18:24:34 +01001155TEST_CASE("RefSplitter4dDim1EndToEndUint8Test")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001156{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001157 Splitter4dDim1EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001158}
1159
Sadik Armagan1625efc2021-06-10 18:24:34 +01001160TEST_CASE("RefSplitter4dDim2EndToEndUint8Test")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001161{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001162 Splitter4dDim2EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001163}
1164
Sadik Armagan1625efc2021-06-10 18:24:34 +01001165TEST_CASE("RefSplitter4dDim3EndToEndUint8Test")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001166{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001167 Splitter4dDim3EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +01001168}
1169
Aron Virginas-Tar98180ef2019-06-26 15:02:47 +01001170// TransposeConvolution2d
Sadik Armagan1625efc2021-06-10 18:24:34 +01001171TEST_CASE("RefTransposeConvolution2dEndToEndFloatNchwTest")
Aron Virginas-Tar98180ef2019-06-26 15:02:47 +01001172{
1173 TransposeConvolution2dEndToEnd<armnn::DataType::Float32, armnn::DataType::Float32>(
1174 defaultBackends, armnn::DataLayout::NCHW);
1175}
1176
Sadik Armagan1625efc2021-06-10 18:24:34 +01001177TEST_CASE("RefTransposeConvolution2dEndToEndUint8NchwTest")
Aron Virginas-Tar98180ef2019-06-26 15:02:47 +01001178{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001179 TransposeConvolution2dEndToEnd<armnn::DataType::QAsymmU8, armnn::DataType::Signed32>(
Aron Virginas-Tar98180ef2019-06-26 15:02:47 +01001180 defaultBackends, armnn::DataLayout::NCHW);
1181}
1182
Sadik Armagan1625efc2021-06-10 18:24:34 +01001183TEST_CASE("RefTransposeConvolution2dEndToEndInt16NchwTest")
Aron Virginas-Tar98180ef2019-06-26 15:02:47 +01001184{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001185 TransposeConvolution2dEndToEnd<armnn::DataType::QSymmS16, armnn::DataType::Signed32>(
Aron Virginas-Tar98180ef2019-06-26 15:02:47 +01001186 defaultBackends, armnn::DataLayout::NCHW);
1187}
1188
Sadik Armagan1625efc2021-06-10 18:24:34 +01001189TEST_CASE("RefTransposeConvolution2dEndToEndFloatNhwcTest")
Aron Virginas-Tar98180ef2019-06-26 15:02:47 +01001190{
1191 TransposeConvolution2dEndToEnd<armnn::DataType::Float32, armnn::DataType::Float32>(
1192 defaultBackends, armnn::DataLayout::NHWC);
1193}
1194
Sadik Armagan1625efc2021-06-10 18:24:34 +01001195TEST_CASE("RefTransposeConvolution2dEndToEndUint8NhwcTest")
Aron Virginas-Tar98180ef2019-06-26 15:02:47 +01001196{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001197 TransposeConvolution2dEndToEnd<armnn::DataType::QAsymmU8, armnn::DataType::Signed32>(
Aron Virginas-Tar98180ef2019-06-26 15:02:47 +01001198 defaultBackends, armnn::DataLayout::NHWC);
1199}
1200
Sadik Armagan1625efc2021-06-10 18:24:34 +01001201TEST_CASE("RefTransposeConvolution2dEndToEndInt16NhwcTest")
Aron Virginas-Tar98180ef2019-06-26 15:02:47 +01001202{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001203 TransposeConvolution2dEndToEnd<armnn::DataType::QSymmS16, armnn::DataType::Signed32>(
Aron Virginas-Tar98180ef2019-06-26 15:02:47 +01001204 defaultBackends, armnn::DataLayout::NHWC);
1205}
1206
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001207// Resize Bilinear
Sadik Armagan1625efc2021-06-10 18:24:34 +01001208TEST_CASE("RefResizeBilinearEndToEndFloatNchwTest")
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001209{
1210 ResizeBilinearEndToEnd<armnn::DataType::Float32>(defaultBackends, armnn::DataLayout::NCHW);
1211}
1212
Sadik Armagan1625efc2021-06-10 18:24:34 +01001213TEST_CASE("RefResizeBilinearEndToEndUint8NchwTest")
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001214{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001215 ResizeBilinearEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, armnn::DataLayout::NCHW);
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001216}
1217
Sadik Armagan1625efc2021-06-10 18:24:34 +01001218TEST_CASE("RefResizeBilinearEndToEndInt16NchwTest")
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001219{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001220 ResizeBilinearEndToEnd<armnn::DataType::QSymmS16>(defaultBackends, armnn::DataLayout::NCHW);
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001221}
1222
Sadik Armagan1625efc2021-06-10 18:24:34 +01001223TEST_CASE("RefResizeBilinearEndToEndFloatNhwcTest")
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001224{
1225 ResizeBilinearEndToEnd<armnn::DataType::Float32>(defaultBackends, armnn::DataLayout::NHWC);
1226}
1227
Sadik Armagan1625efc2021-06-10 18:24:34 +01001228TEST_CASE("RefResizeBilinearEndToEndUint8NhwcTest")
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001229{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001230 ResizeBilinearEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, armnn::DataLayout::NHWC);
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001231}
1232
Sadik Armagan1625efc2021-06-10 18:24:34 +01001233TEST_CASE("RefResizeBilinearEndToEndInt16NhwcTest")
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001234{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001235 ResizeBilinearEndToEnd<armnn::DataType::QSymmS16>(defaultBackends, armnn::DataLayout::NHWC);
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001236}
1237
1238// Resize NearestNeighbor
Sadik Armagan1625efc2021-06-10 18:24:34 +01001239TEST_CASE("RefResizeNearestNeighborEndToEndFloatNchwTest")
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001240{
1241 ResizeNearestNeighborEndToEnd<armnn::DataType::Float32>(defaultBackends, armnn::DataLayout::NCHW);
1242}
1243
Sadik Armagan1625efc2021-06-10 18:24:34 +01001244TEST_CASE("RefResizeNearestNeighborEndToEndUint8NchwTest")
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001245{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001246 ResizeNearestNeighborEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, armnn::DataLayout::NCHW);
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001247}
1248
Sadik Armagan1625efc2021-06-10 18:24:34 +01001249TEST_CASE("RefResizeNearestNeighborEndToEndInt16NchwTest")
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001250{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001251 ResizeNearestNeighborEndToEnd<armnn::DataType::QSymmS16>(defaultBackends, armnn::DataLayout::NCHW);
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001252}
1253
Sadik Armagan1625efc2021-06-10 18:24:34 +01001254TEST_CASE("RefResizeNearestNeighborEndToEndFloatNhwcTest")
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001255{
1256 ResizeNearestNeighborEndToEnd<armnn::DataType::Float32>(defaultBackends, armnn::DataLayout::NHWC);
1257}
1258
Sadik Armagan1625efc2021-06-10 18:24:34 +01001259TEST_CASE("RefResizeNearestNeighborEndToEndUint8NhwcTest")
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001260{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001261 ResizeNearestNeighborEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, armnn::DataLayout::NHWC);
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001262}
1263
Sadik Armagan1625efc2021-06-10 18:24:34 +01001264TEST_CASE("RefResizeNearestNeighborEndToEndInt16NhwcTest")
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001265{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001266 ResizeNearestNeighborEndToEnd<armnn::DataType::QSymmS16>(defaultBackends, armnn::DataLayout::NHWC);
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001267}
1268
Sadik Armagan062e0e92019-10-14 10:31:43 +01001269// InstanceNormalization
Sadik Armagan1625efc2021-06-10 18:24:34 +01001270TEST_CASE("RefInstanceNormalizationNhwcEndToEndTest1")
Sadik Armagan062e0e92019-10-14 10:31:43 +01001271{
1272 InstanceNormalizationNhwcEndToEndTest1(defaultBackends);
1273}
1274
Sadik Armagan1625efc2021-06-10 18:24:34 +01001275TEST_CASE("RefInstanceNormalizationNchwEndToEndTest1")
Sadik Armagan062e0e92019-10-14 10:31:43 +01001276{
1277 InstanceNormalizationNchwEndToEndTest1(defaultBackends);
1278}
1279
Sadik Armagan1625efc2021-06-10 18:24:34 +01001280TEST_CASE("RefInstanceNormalizationNhwcEndToEndTest2")
Sadik Armagan062e0e92019-10-14 10:31:43 +01001281{
1282 InstanceNormalizationNhwcEndToEndTest2(defaultBackends);
1283}
1284
Sadik Armagan1625efc2021-06-10 18:24:34 +01001285TEST_CASE("RefInstanceNormalizationNchwEndToEndTest2")
Sadik Armagan062e0e92019-10-14 10:31:43 +01001286{
1287 InstanceNormalizationNchwEndToEndTest2(defaultBackends);
1288}
1289
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001290// ArgMinMax
Sadik Armagan1625efc2021-06-10 18:24:34 +01001291TEST_CASE("RefArgMaxSimpleTest")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001292{
1293 ArgMaxEndToEndSimple<armnn::DataType::Float32>(defaultBackends);
1294}
1295
Sadik Armagan1625efc2021-06-10 18:24:34 +01001296TEST_CASE("RefArgMaxSimpleUint8Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001297{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001298 ArgMaxEndToEndSimple<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001299}
1300
Sadik Armagan1625efc2021-06-10 18:24:34 +01001301TEST_CASE("RefArgMinSimpleTest")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001302{
1303 ArgMinEndToEndSimple<armnn::DataType::Float32>(defaultBackends);
1304}
1305
Sadik Armagan1625efc2021-06-10 18:24:34 +01001306TEST_CASE("RefArgMinSimpleUint8Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001307{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001308 ArgMinEndToEndSimple<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001309}
1310
Sadik Armagan1625efc2021-06-10 18:24:34 +01001311TEST_CASE("RefArgMaxAxis0Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001312{
1313 ArgMaxAxis0EndToEnd<armnn::DataType::Float32>(defaultBackends);
1314}
1315
Sadik Armagan1625efc2021-06-10 18:24:34 +01001316TEST_CASE("RefArgMaxAxis0Uint8Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001317{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001318 ArgMaxAxis0EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001319}
1320
Sadik Armagan1625efc2021-06-10 18:24:34 +01001321TEST_CASE("RefArgMinAxis0Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001322{
1323 ArgMinAxis0EndToEnd<armnn::DataType::Float32>(defaultBackends);
1324}
1325
Sadik Armagan1625efc2021-06-10 18:24:34 +01001326TEST_CASE("RefArgMinAxis0Uint8Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001327{
1328
Derek Lambertif90c56d2020-01-10 17:14:08 +00001329 ArgMinAxis0EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001330}
1331
Sadik Armagan1625efc2021-06-10 18:24:34 +01001332TEST_CASE("RefArgMaxAxis1Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001333{
1334 ArgMaxAxis1EndToEnd<armnn::DataType::Float32>(defaultBackends);
1335}
1336
Sadik Armagan1625efc2021-06-10 18:24:34 +01001337TEST_CASE("RefArgMaxAxis1Uint8Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001338{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001339 ArgMaxAxis1EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001340}
1341
Sadik Armagan1625efc2021-06-10 18:24:34 +01001342TEST_CASE("RefArgMinAxis1Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001343{
1344 ArgMinAxis1EndToEnd<armnn::DataType::Float32>(defaultBackends);
1345}
1346
Sadik Armagan1625efc2021-06-10 18:24:34 +01001347TEST_CASE("RefArgMinAxis1Uint8Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001348{
1349
Derek Lambertif90c56d2020-01-10 17:14:08 +00001350 ArgMinAxis1EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001351}
1352
Sadik Armagan1625efc2021-06-10 18:24:34 +01001353TEST_CASE("RefArgMaxAxis2Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001354{
1355 ArgMaxAxis2EndToEnd<armnn::DataType::Float32>(defaultBackends);
1356}
1357
Sadik Armagan1625efc2021-06-10 18:24:34 +01001358TEST_CASE("RefArgMaxAxis2Uint8Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001359{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001360 ArgMaxAxis2EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001361}
1362
Sadik Armagan1625efc2021-06-10 18:24:34 +01001363TEST_CASE("RefArgMinAxis2Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001364{
1365 ArgMinAxis2EndToEnd<armnn::DataType::Float32>(defaultBackends);
1366}
1367
Sadik Armagan1625efc2021-06-10 18:24:34 +01001368TEST_CASE("RefArgMinAxis2Uint8Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001369{
1370
Derek Lambertif90c56d2020-01-10 17:14:08 +00001371 ArgMinAxis2EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001372}
1373
Sadik Armagan1625efc2021-06-10 18:24:34 +01001374TEST_CASE("RefArgMaxAxis3Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001375{
1376 ArgMaxAxis3EndToEnd<armnn::DataType::Float32>(defaultBackends);
1377}
1378
Sadik Armagan1625efc2021-06-10 18:24:34 +01001379TEST_CASE("RefArgMaxAxis3Uint8Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001380{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001381 ArgMaxAxis3EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001382}
1383
Sadik Armagan1625efc2021-06-10 18:24:34 +01001384TEST_CASE("RefArgMinAxis3Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001385{
1386 ArgMinAxis3EndToEnd<armnn::DataType::Float32>(defaultBackends);
1387}
1388
Sadik Armagan1625efc2021-06-10 18:24:34 +01001389TEST_CASE("RefArgMinAxis3Uint8Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001390{
1391
Derek Lambertif90c56d2020-01-10 17:14:08 +00001392 ArgMinAxis3EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001393}
1394
Sadik Armagan1625efc2021-06-10 18:24:34 +01001395TEST_CASE("RefQLstmEndToEndTest")
James Conroy0800bf52020-05-14 12:46:44 +01001396{
1397 QLstmEndToEnd(defaultBackends);
1398}
1399
Sadik Armagan1625efc2021-06-10 18:24:34 +01001400TEST_CASE("RefRankEndToEndTest")
Teresa Charlin2e3f4d22020-07-29 14:29:20 +01001401{
1402 RankEndToEnd<armnn::DataType::Float32>(defaultBackends);
1403}
1404
Sadik Armagan1625efc2021-06-10 18:24:34 +01001405TEST_CASE("RefRankEndToEndTestFloat16")
Teresa Charlin2e3f4d22020-07-29 14:29:20 +01001406{
1407 RankEndToEnd<armnn::DataType::Float16>(defaultBackends);
1408}
1409
Sadik Armagan1625efc2021-06-10 18:24:34 +01001410TEST_CASE("RefRankEndToEndTestInt32")
Teresa Charlin2e3f4d22020-07-29 14:29:20 +01001411{
1412 RankEndToEnd<armnn::DataType::Signed32>(defaultBackends);
1413}
1414
Sadik Armagan1625efc2021-06-10 18:24:34 +01001415TEST_CASE("RefRankEndToEndTestQAsymmS8")
Teresa Charlin2e3f4d22020-07-29 14:29:20 +01001416{
1417 RankEndToEnd<armnn::DataType::QAsymmS8>(defaultBackends);
1418}
1419
Sadik Armagan1625efc2021-06-10 18:24:34 +01001420TEST_CASE("RefRankEndToEndTestQSymmS16")
Teresa Charlin2e3f4d22020-07-29 14:29:20 +01001421{
1422 RankEndToEnd<armnn::DataType::QSymmS16>(defaultBackends);
1423}
1424
Sadik Armagan1625efc2021-06-10 18:24:34 +01001425TEST_CASE("RefRankEndToEndTestQSymmS8")
Teresa Charlin2e3f4d22020-07-29 14:29:20 +01001426{
1427 RankEndToEnd<armnn::DataType::QSymmS8>(defaultBackends);
1428}
1429
David Monahan646bc8a2022-01-31 14:29:14 +00001430TEST_CASE("RefForceImportWithAlignedBuffersEndToEndTest")
Narumol Prangnawarate2af6f42022-01-28 17:59:18 +00001431{
David Monahan646bc8a2022-01-31 14:29:14 +00001432 ForceImportWithAlignedBuffersEndToEndTest(defaultBackends);
1433}
Narumol Prangnawarate2af6f42022-01-28 17:59:18 +00001434
David Monahan646bc8a2022-01-31 14:29:14 +00001435TEST_CASE("RefForceImportWithMisalignedInputBuffersEndToEndTest")
1436{
1437 ForceImportWithMisalignedInputBuffersEndToEndTest(defaultBackends);
1438}
Narumol Prangnawarate2af6f42022-01-28 17:59:18 +00001439
David Monahan646bc8a2022-01-31 14:29:14 +00001440TEST_CASE("RefForceImportWithMisalignedOutputBuffersEndToEndTest")
1441{
1442 ForceImportWithMisalignedOutputBuffersEndToEndTest(defaultBackends);
1443}
Narumol Prangnawarate2af6f42022-01-28 17:59:18 +00001444
David Monahan646bc8a2022-01-31 14:29:14 +00001445TEST_CASE("RefForceImportWithMisalignedInputAndOutputBuffersEndToEndTest")
1446{
1447 ForceImportWithMisalignedInputAndOutputBuffersEndToEndTest(defaultBackends);
Narumol Prangnawarate2af6f42022-01-28 17:59:18 +00001448}
1449
David Monahan16829712022-02-03 17:04:59 +00001450TEST_CASE("RefForceImportRepeatedInferencesEndToEndTest")
1451{
1452 ForceImportRepeatedInferencesEndToEndTest(defaultBackends);
1453}
1454
1455TEST_CASE("RefForceImportRepeatedInferencesInvertedEndToEndTest")
1456{
1457 ForceImportRepeatedInferencesInvertedEndToEndTest(defaultBackends);
1458}
1459
Ferran Balaguerdcaa6102019-08-21 13:28:38 +01001460#if !defined(__ANDROID__)
1461// Only run these tests on non Android platforms
Sadik Armagan1625efc2021-06-10 18:24:34 +01001462TEST_CASE("RefImportNonAlignedPointerTest")
Ferran Balaguerdcaa6102019-08-21 13:28:38 +01001463{
David Monahan4f1e8e42019-09-04 09:22:10 +01001464 ImportNonAlignedInputPointerTest(defaultBackends);
1465}
1466
Sadik Armagan1625efc2021-06-10 18:24:34 +01001467TEST_CASE("RefExportNonAlignedPointerTest")
David Monahan4f1e8e42019-09-04 09:22:10 +01001468{
Ferran Balaguer83239f92019-09-19 11:49:25 +01001469 ExportNonAlignedOutputPointerTest(defaultBackends);
Ferran Balaguerdcaa6102019-08-21 13:28:38 +01001470}
1471
Sadik Armagan1625efc2021-06-10 18:24:34 +01001472TEST_CASE("RefImportAlignedPointerTest")
Ferran Balaguerdcaa6102019-08-21 13:28:38 +01001473{
1474 ImportAlignedPointerTest(defaultBackends);
1475}
1476
Sadik Armagan1625efc2021-06-10 18:24:34 +01001477TEST_CASE("RefImportOnlyWorkload")
Ferran Balaguer83239f92019-09-19 11:49:25 +01001478{
1479 ImportOnlyWorkload(defaultBackends);
1480}
1481
Sadik Armagan1625efc2021-06-10 18:24:34 +01001482TEST_CASE("RefExportOnlyWorkload")
Ferran Balaguer83239f92019-09-19 11:49:25 +01001483{
1484 ExportOnlyWorkload(defaultBackends);
1485}
1486
Sadik Armagan1625efc2021-06-10 18:24:34 +01001487TEST_CASE("RefImportAndExportWorkload")
Ferran Balaguer83239f92019-09-19 11:49:25 +01001488{
1489 ImportAndExportWorkload(defaultBackends);
1490}
1491
Sadik Armagan1625efc2021-06-10 18:24:34 +01001492TEST_CASE("RefExportOutputWithSeveralOutputSlotConnectionsTest")
Ferran Balaguer83239f92019-09-19 11:49:25 +01001493{
1494 ExportOutputWithSeveralOutputSlotConnectionsTest(defaultBackends);
1495}
1496
Sadik Armagan1625efc2021-06-10 18:24:34 +01001497TEST_CASE("RefStridedSliceInvalidSliceEndToEndTest")
David Monahan0a99a142020-03-13 07:52:54 +00001498{
1499 StridedSliceInvalidSliceEndToEndTest(defaultBackends);
1500}
1501
Sadik Armagan1625efc2021-06-10 18:24:34 +01001502TEST_CASE("RefThreadSafeFP32StridedSlicedEndToEndTest")
Mike Kelly386ff1a2021-03-29 15:04:50 +01001503{
Kevin Mayb4b3ac92021-05-21 16:42:21 +01001504 armnn::experimental::StridedSlicedEndToEndTest<armnn::DataType::Float32>(defaultBackends, 1);
Mike Kelly386ff1a2021-03-29 15:04:50 +01001505}
Finn Williamsb8181f72021-04-07 10:23:21 +01001506
Sadik Armagan1625efc2021-06-10 18:24:34 +01001507TEST_CASE("RefAsyncFP32StridedSlicedMultiThreadedEndToEndTest")
Finn Williamsb8181f72021-04-07 10:23:21 +01001508{
1509 armnn::experimental::StridedSlicedMultiThreadedEndToEndTest<armnn::DataType::Float32>(defaultBackends);
1510}
Keith Davise813d672021-04-22 10:10:34 +01001511
Sadik Armagan1625efc2021-06-10 18:24:34 +01001512TEST_CASE("RefAsyncFP32StridedSlicedScheduledMultiThreadedEndToEndTest")
Keith Davise813d672021-04-22 10:10:34 +01001513{
Kevin Mayb4b3ac92021-05-21 16:42:21 +01001514 armnn::experimental::StridedSlicedEndToEndTest<armnn::DataType::Float32>(defaultBackends, 3);
Keith Davise813d672021-04-22 10:10:34 +01001515}
Ferran Balaguerdcaa6102019-08-21 13:28:38 +01001516#endif
1517
Sadik Armagan1625efc2021-06-10 18:24:34 +01001518}