blob: 2ed5ad812c0ab53b92aaeb10fb8367ffa81d9e42 [file] [log] [blame]
Aron Virginas-Tar70104002018-10-24 15:33:28 +01001//
Mike Kelly386ff1a2021-03-29 15:04:50 +01002// Copyright © 2017 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>
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00009#include <backendsCommon/test/ArgMinMaxEndToEndTestImpl.hpp>
Francis Murtaghe24e3cd2019-06-25 14:41:55 +010010#include <backendsCommon/test/BatchToSpaceNdEndToEndTestImpl.hpp>
Teresa Charlin43baf502021-09-27 10:10:39 +010011#include <backendsCommon/test/ChannelShuffleEndToEndTestImpl.hpp>
Aron Virginas-Tar77bfb5e2019-10-16 17:45:38 +010012#include <backendsCommon/test/ComparisonEndToEndTestImpl.hpp>
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +010013#include <backendsCommon/test/ConcatEndToEndTestImpl.hpp>
Matthew Sloyan5d7b0a32021-10-18 13:07:49 +010014#include <backendsCommon/test/Convolution3dEndToEndTestImpl.hpp>
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +010015#include <backendsCommon/test/DepthToSpaceEndToEndTestImpl.hpp>
Narumol Prangnawarat8c7324d2019-05-31 16:42:11 +010016#include <backendsCommon/test/DequantizeEndToEndTestImpl.hpp>
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +010017#include <backendsCommon/test/DetectionPostProcessEndToEndTestImpl.hpp>
josh minor4a3c6102020-01-06 16:40:46 -060018#include <backendsCommon/test/ElementwiseUnaryEndToEndTestImpl.hpp>
Teresa Charlin44088502020-07-27 11:27:19 +010019#include <backendsCommon/test/FillEndToEndTestImpl.hpp>
Sadik Armaganf0a6dec2021-03-25 07:46:55 +000020#include <backendsCommon/test/FullyConnectedEndToEndTestImpl.hpp>
narpra01db2b1602019-01-23 15:23:11 +000021#include <backendsCommon/test/GatherEndToEndTestImpl.hpp>
Teresa Charlinb2d3ec52022-04-12 22:07:09 +010022#include <backendsCommon/test/GatherNdEndToEndTestImpl.hpp>
Sadik Armagan062e0e92019-10-14 10:31:43 +010023#include <backendsCommon/test/InstanceNormalizationEndToEndTestImpl.hpp>
Sadik Armagan20bea002019-10-16 09:29:38 +010024#include <backendsCommon/test/LogSoftmaxEndToEndTestImpl.hpp>
Nikhil Raj747f5862019-07-19 15:15:23 +010025#include <backendsCommon/test/PreluEndToEndTestImpl.hpp>
James Conroy0800bf52020-05-14 12:46:44 +010026#include <backendsCommon/test/QLstmEndToEndTestImpl.hpp>
Teresa Charlin2e3f4d22020-07-29 14:29:20 +010027#include <backendsCommon/test/RankEndToEndTestImpl.hpp>
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +010028#include <backendsCommon/test/ResizeEndToEndTestImpl.hpp>
Keith Davis9515c7e2019-06-21 09:33:59 +010029#include <backendsCommon/test/SpaceToDepthEndToEndTestImpl.hpp>
Narumol Prangnawarat0be43382019-05-27 11:29:59 +010030#include <backendsCommon/test/SplitterEndToEndTestImpl.hpp>
Mike Kelly386ff1a2021-03-29 15:04:50 +010031#include <backendsCommon/test/StridedSliceAsyncEndToEndTest.hpp>
Aron Virginas-Tar98180ef2019-06-26 15:02:47 +010032#include <backendsCommon/test/TransposeConvolution2dEndToEndTestImpl.hpp>
Aron Virginas-Tar70104002018-10-24 15:33:28 +010033
Sadik Armagan1625efc2021-06-10 18:24:34 +010034#include <doctest/doctest.h>
Aron Virginas-Tar70104002018-10-24 15:33:28 +010035
Sadik Armagan1625efc2021-06-10 18:24:34 +010036TEST_SUITE("RefEndToEnd")
37{
narpra01b9546cf2018-11-20 15:21:28 +000038std::vector<armnn::BackendId> defaultBackends = {armnn::Compute::CpuRef};
39
Aron Virginas-Tar8fccd862019-09-09 11:22:56 +010040// Abs
Sadik Armagan1625efc2021-06-10 18:24:34 +010041TEST_CASE("RefAbsEndToEndTestFloat32")
Aron Virginas-Tar8fccd862019-09-09 11:22:56 +010042{
josh minor4a3c6102020-01-06 16:40:46 -060043 std::vector<float> expectedOutput =
44 {
45 1.f, 1.f, 1.f, 1.f, 5.f, 5.f, 5.f, 5.f,
46 3.f, 3.f, 3.f, 3.f, 4.f, 4.f, 4.f, 4.f
47 };
48
49 ElementwiseUnarySimpleEndToEnd<armnn::DataType::Float32>(defaultBackends,
50 UnaryOperation::Abs,
51 expectedOutput);
Aron Virginas-Tar8fccd862019-09-09 11:22:56 +010052}
53
Sadik Armagan1625efc2021-06-10 18:24:34 +010054TEST_CASE("RefAbsEndToEndTestUint8")
Aron Virginas-Tar8fccd862019-09-09 11:22:56 +010055{
josh minor4a3c6102020-01-06 16:40:46 -060056 // Note the expected output will be implicitly quantized by the below test function
57 std::vector<float> expectedOutput =
58 {
59 1.f, 1.f, 1.f, 1.f, 5.f, 5.f, 5.f, 5.f,
60 3.f, 3.f, 3.f, 3.f, 4.f, 4.f, 4.f, 4.f
61 };
62
63 ElementwiseUnarySimpleEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends,
64 UnaryOperation::Abs,
65 expectedOutput);
Aron Virginas-Tar8fccd862019-09-09 11:22:56 +010066}
67
Sadik Armagan1625efc2021-06-10 18:24:34 +010068TEST_CASE("RefAbsEndToEndTestInt16")
Aron Virginas-Tar8fccd862019-09-09 11:22:56 +010069{
josh minor4a3c6102020-01-06 16:40:46 -060070 // Note the expected output will be implicitly quantized by the below test function
71 std::vector<float> expectedOutput =
72 {
73 1.f, 1.f, 1.f, 1.f, 5.f, 5.f, 5.f, 5.f,
74 3.f, 3.f, 3.f, 3.f, 4.f, 4.f, 4.f, 4.f
75 };
76
77 ElementwiseUnarySimpleEndToEnd<armnn::DataType::QSymmS16>(defaultBackends,
78 UnaryOperation::Abs,
79 expectedOutput);
Aron Virginas-Tar8fccd862019-09-09 11:22:56 +010080}
81
82// Constant
Sadik Armagan1625efc2021-06-10 18:24:34 +010083TEST_CASE("ConstantUsage_Ref_Float32")
Aron Virginas-Tar70104002018-10-24 15:33:28 +010084{
Sadik Armagan1625efc2021-06-10 18:24:34 +010085 CHECK(ConstantUsageFloat32Test(defaultBackends));
Aron Virginas-Tar70104002018-10-24 15:33:28 +010086}
87
Sadik Armagan1625efc2021-06-10 18:24:34 +010088TEST_CASE("ConstantUsage_Ref_Uint8")
Aron Virginas-Tar70104002018-10-24 15:33:28 +010089{
Sadik Armagan1625efc2021-06-10 18:24:34 +010090 CHECK(ConstantUsageUint8Test(defaultBackends));
Aron Virginas-Tar70104002018-10-24 15:33:28 +010091}
92
Sadik Armagan1625efc2021-06-10 18:24:34 +010093TEST_CASE("Unsigned8")
Aron Virginas-Tar70104002018-10-24 15:33:28 +010094{
95 using namespace armnn;
96
97 // Create runtime in which test will run
98 armnn::IRuntime::CreationOptions options;
99 armnn::IRuntimePtr runtime(armnn::IRuntime::Create(options));
100
101 // Builds up the structure of the network.
102 armnn::INetworkPtr net(INetwork::Create());
103
104 IConnectableLayer* input = net->AddInputLayer(0, "input");
105 IConnectableLayer* softmax = net->AddSoftmaxLayer(SoftmaxDescriptor(), "softmax");
106 IConnectableLayer* output = net->AddOutputLayer(0, "output");
107
108 input->GetOutputSlot(0).Connect(softmax->GetInputSlot(0));
109 softmax->GetOutputSlot(0).Connect(output->GetInputSlot(0));
110
111 // Sets the tensors in the network.
Derek Lambertif90c56d2020-01-10 17:14:08 +0000112 TensorInfo inputTensorInfo(TensorShape({1, 5}), DataType::QAsymmU8);
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100113 inputTensorInfo.SetQuantizationOffset(100);
114 inputTensorInfo.SetQuantizationScale(10000.0f);
115 input->GetOutputSlot(0).SetTensorInfo(inputTensorInfo);
116
Derek Lambertif90c56d2020-01-10 17:14:08 +0000117 TensorInfo outputTensorInfo(TensorShape({1, 5}), DataType::QAsymmU8);
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100118 outputTensorInfo.SetQuantizationOffset(0);
119 outputTensorInfo.SetQuantizationScale(1.0f/255.0f);
120 softmax->GetOutputSlot(0).SetTensorInfo(outputTensorInfo);
121
122 // optimize the network
narpra01b9546cf2018-11-20 15:21:28 +0000123 IOptimizedNetworkPtr optNet = Optimize(*net, defaultBackends, runtime->GetDeviceSpec());
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100124
125 // Loads it into the runtime.
126 NetworkId netId;
127 auto error = runtime->LoadNetwork(netId, std::move(optNet));
Sadik Armagan1625efc2021-06-10 18:24:34 +0100128 CHECK(error == Status::Success);
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100129
130 // Creates structures for input & output.
131 std::vector<uint8_t> inputData
132 {
133 1, 10, 3, 200, 5 // Some inputs - one of which is sufficiently larger than the others to saturate softmax.
134 };
135 std::vector<uint8_t> outputData(5);
136
Cathal Corbett5b8093c2021-10-22 11:12:07 +0100137 TensorInfo inputTensorInfo2 = runtime->GetInputTensorInfo(netId, 0);
138 inputTensorInfo2.SetConstant(true);
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100139 armnn::InputTensors inputTensors
140 {
Cathal Corbett5b8093c2021-10-22 11:12:07 +0100141 {0, armnn::ConstTensor(inputTensorInfo2, inputData.data())}
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100142 };
143 armnn::OutputTensors outputTensors
144 {
145 {0, armnn::Tensor(runtime->GetOutputTensorInfo(netId, 0), outputData.data())}
146 };
147
148 // Does the inference.
149 runtime->EnqueueWorkload(netId, inputTensors, outputTensors);
150
151 // Checks the results.
Sadik Armagan1625efc2021-06-10 18:24:34 +0100152 CHECK(outputData[0] == 0);
153 CHECK(outputData[1] == 0);
154 CHECK(outputData[2] == 0);
155 CHECK(outputData[3] == 255); // softmax has been saturated.
156 CHECK(outputData[4] == 0);
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100157}
158
Sadik Armagan1625efc2021-06-10 18:24:34 +0100159TEST_CASE("TrivialAdd")
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100160{
161 // This test was designed to match "AddTwo" in android nn/runtime/test/TestTrivialModel.cpp.
162
163 using namespace armnn;
164
165 // Create runtime in which test will run
166 armnn::IRuntime::CreationOptions options;
167 armnn::IRuntimePtr runtime(armnn::IRuntime::Create(options));
168
169 // Builds up the structure of the network.
170 armnn::INetworkPtr net(INetwork::Create());
171
172 IConnectableLayer* input1 = net->AddInputLayer(0);
173 IConnectableLayer* input2 = net->AddInputLayer(1);
174 IConnectableLayer* add = net->AddAdditionLayer();
175 IConnectableLayer* output = net->AddOutputLayer(0);
176
177 input1->GetOutputSlot(0).Connect(add->GetInputSlot(0));
178 input2->GetOutputSlot(0).Connect(add->GetInputSlot(1));
179 add->GetOutputSlot(0).Connect(output->GetInputSlot(0));
180
181 // Sets the tensors in the network.
182 TensorInfo tensorInfo(TensorShape({3, 4}), DataType::Float32);
183 input1->GetOutputSlot(0).SetTensorInfo(tensorInfo);
184 input2->GetOutputSlot(0).SetTensorInfo(tensorInfo);
185 add->GetOutputSlot(0).SetTensorInfo(tensorInfo);
186
187 // optimize the network
narpra01b9546cf2018-11-20 15:21:28 +0000188 IOptimizedNetworkPtr optNet = Optimize(*net, defaultBackends, runtime->GetDeviceSpec());
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100189
190 // Loads it into the runtime.
191 NetworkId netId;
192 runtime->LoadNetwork(netId, std::move(optNet));
193
194 // Creates structures for input & output - matching android nn test.
195 std::vector<float> input1Data
196 {
197 1.f, 2.f, 3.f, 4.f, 5.f, 6.f, 7.f, 8.f, 9.f, 10.f, 11.f, 12.f
198 };
199 std::vector<float> input2Data
200 {
201 100.f, 200.f, 300.f, 400.f, 500.f, 600.f, 700.f, 800.f, 900.f, 1000.f, 1100.f, 1200.f
202 };
203 std::vector<float> outputData(12);
204
Cathal Corbett5b8093c2021-10-22 11:12:07 +0100205 TensorInfo inputTensorInfo = runtime->GetInputTensorInfo(netId, 0);
206 inputTensorInfo.SetConstant(true);
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100207 InputTensors inputTensors
208 {
Cathal Corbett5b8093c2021-10-22 11:12:07 +0100209 {0,armnn::ConstTensor(inputTensorInfo, input1Data.data())},
210 {1,armnn::ConstTensor(inputTensorInfo, input2Data.data())}
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100211 };
212 OutputTensors outputTensors
213 {
214 {0,armnn::Tensor(runtime->GetOutputTensorInfo(netId, 0), outputData.data())}
215 };
216
217 // Does the inference.
218 runtime->EnqueueWorkload(netId, inputTensors, outputTensors);
219
220 // Checks the results
Sadik Armagan1625efc2021-06-10 18:24:34 +0100221 CHECK(outputData[0] == 101);
222 CHECK(outputData[1] == 202);
223 CHECK(outputData[2] == 303);
224 CHECK(outputData[3] == 404);
225 CHECK(outputData[4] == 505);
226 CHECK(outputData[5] == 606);
227 CHECK(outputData[6] == 707);
228 CHECK(outputData[7] == 808);
229 CHECK(outputData[8] == 909);
230 CHECK(outputData[9] == 1010);
231 CHECK(outputData[10] == 1111);
232 CHECK(outputData[11] == 1212);
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100233}
234
Sadik Armagan1625efc2021-06-10 18:24:34 +0100235TEST_CASE("MultipleOutputs")
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100236{
237 using namespace armnn;
238
239 // Create runtime in which test will run
240 armnn::IRuntime::CreationOptions options;
241 armnn::IRuntimePtr runtime(armnn::IRuntime::Create(options));
242
243 // Builds up the structure of the network.
244 INetworkPtr net(INetwork::Create());
245
246 IConnectableLayer* input = net->AddInputLayer(0);
247
248 // ReLu1
249 ActivationDescriptor activation1Descriptor;
250 activation1Descriptor.m_Function = ActivationFunction::BoundedReLu;
251 activation1Descriptor.m_A = 1.f;
252 activation1Descriptor.m_B = -1.f;
253 IConnectableLayer* activation1 = net->AddActivationLayer(activation1Descriptor);
254
255 // ReLu6
256 ActivationDescriptor activation2Descriptor;
257 activation2Descriptor.m_Function = ActivationFunction::BoundedReLu;
258 activation2Descriptor.m_A = 6.0f;
259 IConnectableLayer* activation2 = net->AddActivationLayer(activation2Descriptor);
260
261 // BoundedReLu(min=2, max=5)
262 ActivationDescriptor activation3Descriptor;
263 activation3Descriptor.m_Function = ActivationFunction::BoundedReLu;
264 activation3Descriptor.m_A = 5.0f;
265 activation3Descriptor.m_B = 2.0f;
266 IConnectableLayer* activation3 = net->AddActivationLayer(activation3Descriptor);
267
268 IConnectableLayer* output1 = net->AddOutputLayer(0);
269 IConnectableLayer* output2 = net->AddOutputLayer(1);
270 IConnectableLayer* output3 = net->AddOutputLayer(2);
271
272 input->GetOutputSlot(0).Connect(activation1->GetInputSlot(0));
273 input->GetOutputSlot(0).Connect(activation2->GetInputSlot(0));
274 input->GetOutputSlot(0).Connect(activation3->GetInputSlot(0));
275
276 activation1->GetOutputSlot(0).Connect(output1->GetInputSlot(0));
277 activation2->GetOutputSlot(0).Connect(output2->GetInputSlot(0));
278 activation3->GetOutputSlot(0).Connect(output3->GetInputSlot(0));
279
280 // Sets the tensors in the network.
281 TensorInfo tensorInfo(TensorShape({ 10 }), DataType::Float32);
282 input->GetOutputSlot(0).SetTensorInfo(tensorInfo);
283 activation1->GetOutputSlot(0).SetTensorInfo(tensorInfo);
284 activation2->GetOutputSlot(0).SetTensorInfo(tensorInfo);
285 activation3->GetOutputSlot(0).SetTensorInfo(tensorInfo);
286
287 // optimize the network
narpra01b9546cf2018-11-20 15:21:28 +0000288 IOptimizedNetworkPtr optNet = Optimize(*net, defaultBackends, runtime->GetDeviceSpec());
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100289
290 // Loads it into the runtime.
291 NetworkId netId;
292 runtime->LoadNetwork(netId, std::move(optNet));
293
294 // Creates structures for input & output.
295 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 };
296
297 std::vector<float> output1Data(inputData.size());
298 std::vector<float> output2Data(inputData.size());
299 std::vector<float> output3Data(inputData.size());
300
Cathal Corbett5b8093c2021-10-22 11:12:07 +0100301 TensorInfo inputTensorInfo = runtime->GetInputTensorInfo(netId, 0);
302 inputTensorInfo.SetConstant(true);
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100303 InputTensors inputTensors
304 {
Cathal Corbett5b8093c2021-10-22 11:12:07 +0100305 {0,armnn::ConstTensor(inputTensorInfo, inputData.data())}
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100306 };
307 OutputTensors outputTensors
308 {
309 {0,armnn::Tensor(runtime->GetOutputTensorInfo(netId, 0), output1Data.data())},
310 {1,armnn::Tensor(runtime->GetOutputTensorInfo(netId, 1), output2Data.data())},
311 {2,armnn::Tensor(runtime->GetOutputTensorInfo(netId, 2), output3Data.data())}
312 };
313
314 // Does the inference.
315 runtime->EnqueueWorkload(netId, inputTensors, outputTensors);
316
317 // Checks the results.
Sadik Armagan1625efc2021-06-10 18:24:34 +0100318 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
319 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
320 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 +0100321}
322
Sadik Armagan1625efc2021-06-10 18:24:34 +0100323TEST_CASE("TrivialMin")
Éanna Ó Catháin20e58802018-12-04 10:29:06 +0000324{
325 using namespace armnn;
326
327 // Create runtime in which test will run
328 armnn::IRuntime::CreationOptions options;
329 armnn::IRuntimePtr runtime(armnn::IRuntime::Create(options));
330
331 // Builds up the structure of the network.
332 armnn::INetworkPtr net(INetwork::Create());
333
334 IConnectableLayer* input1 = net->AddInputLayer(0);
335 IConnectableLayer* input2 = net->AddInputLayer(1);
336 IConnectableLayer* min = net->AddMinimumLayer();
337 IConnectableLayer* output = net->AddOutputLayer(0);
338
339 input1->GetOutputSlot(0).Connect(min->GetInputSlot(0));
340 input2->GetOutputSlot(0).Connect(min->GetInputSlot(1));
341 min->GetOutputSlot(0).Connect(output->GetInputSlot(0));
342
343 // Sets the tensors in the network.
344 TensorInfo tensorInfo(TensorShape({1, 1, 1, 4}), DataType::Float32);
345 input1->GetOutputSlot(0).SetTensorInfo(tensorInfo);
346 input2->GetOutputSlot(0).SetTensorInfo(tensorInfo);
347 min->GetOutputSlot(0).SetTensorInfo(tensorInfo);
348
349 // optimize the network
350 IOptimizedNetworkPtr optNet = Optimize(*net, defaultBackends, runtime->GetDeviceSpec());
351
352 // Loads it into the runtime.
353 NetworkId netId;
354 runtime->LoadNetwork(netId, std::move(optNet));
355
356 // Creates structures for input & output - matching android nn test.
357 std::vector<float> input1Data
358 {
359 1.0f, 2.0f, 3.0f, 4.0f
360 };
361 std::vector<float> input2Data
362 {
363 2.0f, 1.0f, 5.0f, 2.0f
364 };
365 std::vector<float> outputData(4);
366
Cathal Corbett5b8093c2021-10-22 11:12:07 +0100367 TensorInfo inputTensorInfo = runtime->GetInputTensorInfo(netId, 0);
368 inputTensorInfo.SetConstant(true);
Éanna Ó Catháin20e58802018-12-04 10:29:06 +0000369 InputTensors inputTensors
370 {
Cathal Corbett5b8093c2021-10-22 11:12:07 +0100371 {0,armnn::ConstTensor(inputTensorInfo, input1Data.data())},
372 {1,armnn::ConstTensor(inputTensorInfo, input2Data.data())}
Éanna Ó Catháin20e58802018-12-04 10:29:06 +0000373 };
374 OutputTensors outputTensors
375 {
376 {0,armnn::Tensor(runtime->GetOutputTensorInfo(netId, 0), outputData.data())}
377 };
378
379 // Does the inference.
380 runtime->EnqueueWorkload(netId, inputTensors, outputTensors);
381
382 // Checks the results
Sadik Armagan1625efc2021-06-10 18:24:34 +0100383 CHECK(outputData[0] == 1);
384 CHECK(outputData[1] == 1);
385 CHECK(outputData[2] == 3);
386 CHECK(outputData[3] == 2);
Éanna Ó Catháin20e58802018-12-04 10:29:06 +0000387}
388
Sadik Armagan1625efc2021-06-10 18:24:34 +0100389TEST_CASE("RefEqualSimpleEndToEndTest")
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000390{
kevmay012b4d88e2019-01-24 14:05:09 +0000391 const std::vector<uint8_t> expectedOutput({ 1, 1, 1, 1, 0, 0, 0, 0,
392 0, 0, 0, 0, 1, 1, 1, 1 });
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000393
Aron Virginas-Tar77bfb5e2019-10-16 17:45:38 +0100394 ComparisonSimpleEndToEnd<armnn::DataType::Float32>(defaultBackends,
395 ComparisonOperation::Equal,
396 expectedOutput);
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000397}
398
Sadik Armagan1625efc2021-06-10 18:24:34 +0100399TEST_CASE("RefGreaterSimpleEndToEndTest")
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000400{
kevmay012b4d88e2019-01-24 14:05:09 +0000401 const std::vector<uint8_t> expectedOutput({ 0, 0, 0, 0, 1, 1, 1, 1,
402 0, 0, 0, 0, 0, 0, 0, 0 });
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000403
Aron Virginas-Tar77bfb5e2019-10-16 17:45:38 +0100404 ComparisonSimpleEndToEnd<armnn::DataType::Float32>(defaultBackends,
405 ComparisonOperation::Greater,
406 expectedOutput);
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000407}
408
Sadik Armagan1625efc2021-06-10 18:24:34 +0100409TEST_CASE("RefEqualSimpleEndToEndUint8Test")
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000410{
411 const std::vector<uint8_t> expectedOutput({ 1, 1, 1, 1, 0, 0, 0, 0,
412 0, 0, 0, 0, 1, 1, 1, 1 });
413
Derek Lambertif90c56d2020-01-10 17:14:08 +0000414 ComparisonSimpleEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends,
Aron Virginas-Tar77bfb5e2019-10-16 17:45:38 +0100415 ComparisonOperation::Equal,
416 expectedOutput);
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000417}
418
Sadik Armagan1625efc2021-06-10 18:24:34 +0100419TEST_CASE("RefGreaterSimpleEndToEndUint8Test")
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000420{
421 const std::vector<uint8_t> expectedOutput({ 0, 0, 0, 0, 1, 1, 1, 1,
422 0, 0, 0, 0, 0, 0, 0, 0 });
423
Derek Lambertif90c56d2020-01-10 17:14:08 +0000424 ComparisonSimpleEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends,
Aron Virginas-Tar77bfb5e2019-10-16 17:45:38 +0100425 ComparisonOperation::Greater,
426 expectedOutput);
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000427}
428
Sadik Armagan1625efc2021-06-10 18:24:34 +0100429TEST_CASE("RefEqualBroadcastEndToEndTest")
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000430{
kevmay012b4d88e2019-01-24 14:05:09 +0000431 const std::vector<uint8_t> expectedOutput({ 1, 0, 1, 1, 0, 0,
432 0, 0, 0, 0, 0, 0 });
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000433
Aron Virginas-Tar77bfb5e2019-10-16 17:45:38 +0100434 ComparisonBroadcastEndToEnd<armnn::DataType::Float32>(defaultBackends,
435 ComparisonOperation::Equal,
436 expectedOutput);
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000437}
438
Sadik Armagan1625efc2021-06-10 18:24:34 +0100439TEST_CASE("RefGreaterBroadcastEndToEndTest")
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000440{
kevmay012b4d88e2019-01-24 14:05:09 +0000441 const std::vector<uint8_t> expectedOutput({ 0, 1, 0, 0, 0, 1,
442 1, 1, 1, 1, 1, 1 });
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000443
Aron Virginas-Tar77bfb5e2019-10-16 17:45:38 +0100444 ComparisonBroadcastEndToEnd<armnn::DataType::Float32>(defaultBackends,
445 ComparisonOperation::Greater,
446 expectedOutput);
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000447}
448
Sadik Armagan1625efc2021-06-10 18:24:34 +0100449TEST_CASE("RefEqualBroadcastEndToEndUint8Test")
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000450{
451 const std::vector<uint8_t > expectedOutput({ 1, 0, 1, 1, 0, 0,
452 0, 0, 0, 0, 0, 0 });
453
Derek Lambertif90c56d2020-01-10 17:14:08 +0000454 ComparisonBroadcastEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends,
Aron Virginas-Tar77bfb5e2019-10-16 17:45:38 +0100455 ComparisonOperation::Equal,
456 expectedOutput);
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000457}
458
Sadik Armagan1625efc2021-06-10 18:24:34 +0100459TEST_CASE("RefGreaterBroadcastEndToEndUint8Test")
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000460{
461 const std::vector<uint8_t> expectedOutput({ 0, 1, 0, 0, 0, 1,
462 1, 1, 1, 1, 1, 1 });
463
Derek Lambertif90c56d2020-01-10 17:14:08 +0000464 ComparisonBroadcastEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends,
Aron Virginas-Tar77bfb5e2019-10-16 17:45:38 +0100465 ComparisonOperation::Greater,
466 expectedOutput);
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000467}
Éanna Ó Catháin20e58802018-12-04 10:29:06 +0000468
Sadik Armagan1625efc2021-06-10 18:24:34 +0100469TEST_CASE("RefBatchToSpaceNdEndToEndFloat32NHWCTest")
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100470{
471 BatchToSpaceNdEndToEnd<armnn::DataType::Float32>(defaultBackends, armnn::DataLayout::NHWC);
472}
473
Sadik Armagan1625efc2021-06-10 18:24:34 +0100474TEST_CASE("RefBatchToSpaceNdEndToEndUint8NHWCTest")
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100475{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000476 BatchToSpaceNdEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, armnn::DataLayout::NHWC);
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100477}
478
Sadik Armagan1625efc2021-06-10 18:24:34 +0100479TEST_CASE("RefBatchToSpaceNdEndToEndQSymm16NHWCTest")
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100480{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000481 BatchToSpaceNdEndToEnd<armnn::DataType::QSymmS16>(defaultBackends, armnn::DataLayout::NHWC);
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100482}
483
Sadik Armagan1625efc2021-06-10 18:24:34 +0100484TEST_CASE("RefBatchToSpaceNdEndToEndFloat32NCHWTest")
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100485{
486 BatchToSpaceNdEndToEnd<armnn::DataType::Float32>(defaultBackends, armnn::DataLayout::NCHW);
487}
488
Sadik Armagan1625efc2021-06-10 18:24:34 +0100489TEST_CASE("RefBatchToSpaceNdEndToEndUint8NCHWTest")
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100490{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000491 BatchToSpaceNdEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, armnn::DataLayout::NCHW);
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100492}
493
Sadik Armagan1625efc2021-06-10 18:24:34 +0100494TEST_CASE("RefBatchToSpaceNdEndToEndQSymm16NCHWTest")
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100495{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000496 BatchToSpaceNdEndToEnd<armnn::DataType::QSymmS16>(defaultBackends, armnn::DataLayout::NCHW);
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100497}
498
Sadik Armagan1625efc2021-06-10 18:24:34 +0100499TEST_CASE("RefBatchToSpaceNdEndToEndComplexFloat32NHWCTest")
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100500{
501 BatchToSpaceNdComplexEndToEnd<armnn::DataType::Float32>(defaultBackends, armnn::DataLayout::NHWC);
502}
503
Sadik Armagan1625efc2021-06-10 18:24:34 +0100504TEST_CASE("RefBatchToSpaceNdEndToEndComplexUint8NHWCTest")
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100505{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000506 BatchToSpaceNdComplexEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, armnn::DataLayout::NHWC);
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100507}
508
Sadik Armagan1625efc2021-06-10 18:24:34 +0100509TEST_CASE("RefBatchToSpaceNdEndToEndComplexQSymm16NHWCTest")
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100510{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000511 BatchToSpaceNdComplexEndToEnd<armnn::DataType::QSymmS16>(defaultBackends, armnn::DataLayout::NHWC);
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100512}
513
Sadik Armagan1625efc2021-06-10 18:24:34 +0100514TEST_CASE("RefBatchToSpaceNdEndToEndComplexFloat32NCHWTest")
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100515{
516 BatchToSpaceNdComplexEndToEnd<armnn::DataType::Float32>(defaultBackends, armnn::DataLayout::NCHW);
517}
518
Sadik Armagan1625efc2021-06-10 18:24:34 +0100519TEST_CASE("RefBatchToSpaceNdEndToEndComplexUint8NCHWTest")
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100520{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000521 BatchToSpaceNdComplexEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, armnn::DataLayout::NCHW);
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100522}
523
Sadik Armagan1625efc2021-06-10 18:24:34 +0100524TEST_CASE("RefBatchToSpaceNdEndToEndComplexQSymm16NCHWTest")
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100525{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000526 BatchToSpaceNdComplexEndToEnd<armnn::DataType::QSymmS16>(defaultBackends, armnn::DataLayout::NCHW);
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100527}
528
Teresa Charlin43baf502021-09-27 10:10:39 +0100529TEST_CASE("RefChannelShuffleFloatTest")
530{
531 ChannelShuffleEndToEnd<armnn::DataType::Float32>(defaultBackends);
532}
533
534TEST_CASE("RefChannelShuffleUint8Test")
535{
536 ChannelShuffleEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
537}
538
Sadik Armagan1625efc2021-06-10 18:24:34 +0100539TEST_CASE("RefConcatEndToEndDim0Test")
narpra01b9546cf2018-11-20 15:21:28 +0000540{
Jim Flynne242f2d2019-05-22 14:24:13 +0100541 ConcatDim0EndToEnd<armnn::DataType::Float32>(defaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +0000542}
543
Sadik Armagan1625efc2021-06-10 18:24:34 +0100544TEST_CASE("RefConcatEndToEndDim0Uint8Test")
narpra01b9546cf2018-11-20 15:21:28 +0000545{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000546 ConcatDim0EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +0000547}
548
Sadik Armagan1625efc2021-06-10 18:24:34 +0100549TEST_CASE("RefConcatEndToEndDim1Test")
narpra01b9546cf2018-11-20 15:21:28 +0000550{
Jim Flynne242f2d2019-05-22 14:24:13 +0100551 ConcatDim1EndToEnd<armnn::DataType::Float32>(defaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +0000552}
553
Sadik Armagan1625efc2021-06-10 18:24:34 +0100554TEST_CASE("RefConcatEndToEndDim1Uint8Test")
narpra01b9546cf2018-11-20 15:21:28 +0000555{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000556 ConcatDim1EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +0000557}
558
Sadik Armagan1625efc2021-06-10 18:24:34 +0100559TEST_CASE("RefConcatEndToEndDim2Test")
narpra01b9546cf2018-11-20 15:21:28 +0000560{
Jim Flynne242f2d2019-05-22 14:24:13 +0100561 ConcatDim2EndToEnd<armnn::DataType::Float32>(defaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +0000562}
563
Sadik Armagan1625efc2021-06-10 18:24:34 +0100564TEST_CASE("RefConcatEndToEndDim2Uint8Test")
narpra01b9546cf2018-11-20 15:21:28 +0000565{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000566 ConcatDim2EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +0000567}
568
Sadik Armagan1625efc2021-06-10 18:24:34 +0100569TEST_CASE("RefConcatEndToEndDim3Test")
narpra01b9546cf2018-11-20 15:21:28 +0000570{
Jim Flynne242f2d2019-05-22 14:24:13 +0100571 ConcatDim3EndToEnd<armnn::DataType::Float32>(defaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +0000572}
573
Sadik Armagan1625efc2021-06-10 18:24:34 +0100574TEST_CASE("RefConcatEndToEndDim3Uint8Test")
narpra01b9546cf2018-11-20 15:21:28 +0000575{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000576 ConcatDim3EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +0000577}
578
Matthew Sloyan5d7b0a32021-10-18 13:07:49 +0100579TEST_CASE("RefConvolution3dFloat32Test")
580{
581 Convolution3dEndToEnd<armnn::DataType::Float32, armnn::DataType::Float32>(defaultBackends,
582 armnn::DataLayout::NDHWC);
583}
584
585TEST_CASE("RefConvolution3dNcdhwFloat32Test")
586{
587 Convolution3dEndToEnd<armnn::DataType::Float32, armnn::DataType::Float32>(defaultBackends,
588 armnn::DataLayout::NCDHW);
589}
590
591TEST_CASE("RefConvolution3dFloat16Test")
592{
593 Convolution3dEndToEnd<armnn::DataType::Float16, armnn::DataType::Float16>(defaultBackends,
594 armnn::DataLayout::NDHWC);
595}
596
597TEST_CASE("RefConvolution3dUint8Test")
598{
599 Convolution3dEndToEnd<armnn::DataType::QAsymmU8, armnn::DataType::Signed32>(defaultBackends,
600 armnn::DataLayout::NDHWC);
601}
602
603TEST_CASE("RefConvolution3dInt8Test")
604{
605 Convolution3dEndToEnd<armnn::DataType::QAsymmS8, armnn::DataType::Signed32>(defaultBackends,
606 armnn::DataLayout::NDHWC);
607}
608
Sadik Armagan1625efc2021-06-10 18:24:34 +0100609TEST_CASE("RefEluEndToEndTestFloat32")
Jan Eilersbca73e12020-03-11 12:52:46 +0000610{
611 EluEndToEndTest<armnn::DataType::Float32>(defaultBackends);
612}
613
Sadik Armagan1625efc2021-06-10 18:24:34 +0100614TEST_CASE("RefEluEndToEndTestFloat16")
Jan Eilersbca73e12020-03-11 12:52:46 +0000615{
616 EluEndToEndTest<armnn::DataType::Float16>(defaultBackends);
617}
618
Sadik Armagan1625efc2021-06-10 18:24:34 +0100619TEST_CASE("RefEluEndToEndTestBFloat16")
Jan Eilersbca73e12020-03-11 12:52:46 +0000620{
621 EluEndToEndTest<armnn::DataType::BFloat16>(defaultBackends);
622}
623
Sadik Armagan1625efc2021-06-10 18:24:34 +0100624TEST_CASE("RefEluEndToEndTestQAsymmS8")
Jan Eilersbca73e12020-03-11 12:52:46 +0000625{
626 EluEndToEndTest<armnn::DataType::QAsymmS8>(defaultBackends);
627}
628
Sadik Armagan1625efc2021-06-10 18:24:34 +0100629TEST_CASE("RefEluEndToEndTestQAsymmU8")
Jan Eilersbca73e12020-03-11 12:52:46 +0000630{
631 EluEndToEndTest<armnn::DataType::QAsymmU8>(defaultBackends);
632}
633
Sadik Armagan1625efc2021-06-10 18:24:34 +0100634TEST_CASE("RefEluEndToEndTestQSymmS16")
Jan Eilersbca73e12020-03-11 12:52:46 +0000635{
636 EluEndToEndTest<armnn::DataType::QSymmS16>(defaultBackends);
637}
638
Sadik Armagan1625efc2021-06-10 18:24:34 +0100639TEST_CASE("RefFillEndToEndTest")
Teresa Charlin44088502020-07-27 11:27:19 +0100640{
641 FillEndToEnd<armnn::DataType::Float32>(defaultBackends);
642}
643
Sadik Armagan1625efc2021-06-10 18:24:34 +0100644TEST_CASE("RefFillEndToEndTestFloat16")
Teresa Charlin4b10fef2020-07-29 09:36:41 +0100645{
646 FillEndToEnd<armnn::DataType::Float16>(defaultBackends);
647}
Teresa Charlin44088502020-07-27 11:27:19 +0100648
Sadik Armagan1625efc2021-06-10 18:24:34 +0100649TEST_CASE("RefFillEndToEndTestInt32")
Teresa Charlin44088502020-07-27 11:27:19 +0100650{
651 FillEndToEnd<armnn::DataType::Signed32>(defaultBackends);
652}
653
Matthew Sloyan81beae32021-07-13 19:46:11 +0100654TEST_CASE("RefFullyConnectedEndToEndTestFloat32")
Sadik Armaganf0a6dec2021-03-25 07:46:55 +0000655{
656 FullyConnectedWithDynamicWeightsEndToEnd<armnn::DataType::Float32>(defaultBackends);
657}
658
Matthew Sloyan81beae32021-07-13 19:46:11 +0100659TEST_CASE("RefFullyConnectedEndToEndTestNonConstantWeightsConstantBiasesFloat32")
660{
Cathal Corbettb8cc2b92021-10-08 14:43:11 +0100661 FullyConnectedWithDynamicOrConstantInputsEndToEnd<armnn::DataType::Float32>(defaultBackends, true, true);
Matthew Sloyan81beae32021-07-13 19:46:11 +0100662}
663
664TEST_CASE("RefFullyConnectedEndToEndTestConstantWeightsNonConstantBiasesFloat32")
665{
Cathal Corbettb8cc2b92021-10-08 14:43:11 +0100666 FullyConnectedWithDynamicOrConstantInputsEndToEnd<armnn::DataType::Float32>(defaultBackends, true, false);
Cathal Corbett521032f2021-10-07 11:46:40 +0100667}
668
669TEST_CASE("RefFullyConnectedEndToEndTestConstantWeightsTensorInfoNotSet")
670{
Cathal Corbettb8cc2b92021-10-08 14:43:11 +0100671 FullyConnectedErrorChecking<armnn::DataType::Float32>(defaultBackends, false, true, true, true, false);
672}
673
674TEST_CASE("RefFullyConnectedEndToEndTestWeightsNotConnectedExplicitCheck")
675{
676 FullyConnectedErrorChecking<armnn::DataType::Float32>(defaultBackends, true, true, false, true, true);
677}
678
679TEST_CASE("RefFullyConnectedEndToEndTestBiasNotConnectedExplicitCheck")
680{
681 FullyConnectedErrorChecking<armnn::DataType::Float32>(defaultBackends, true, true, true, false, true);
682}
683
684TEST_CASE("RefFullyConnectedEndToEndTestWeightsAndBiasNotConnected")
685{
686 FullyConnectedErrorChecking<armnn::DataType::Float32>(defaultBackends, false, true, false, false, true);
687}
688
689TEST_CASE("RefFullyConnectedEndToEndTestBiasDisabledConnectBias")
690{
691 FullyConnectedErrorChecking<armnn::DataType::Float32>(defaultBackends, true, false, false, true, true);
Matthew Sloyan81beae32021-07-13 19:46:11 +0100692}
693
Sadik Armagan1625efc2021-06-10 18:24:34 +0100694TEST_CASE("RefGatherFloatTest")
narpra01db2b1602019-01-23 15:23:11 +0000695{
696 GatherEndToEnd<armnn::DataType::Float32>(defaultBackends);
697}
698
Sadik Armagan1625efc2021-06-10 18:24:34 +0100699TEST_CASE("RefGatherUint8Test")
narpra01db2b1602019-01-23 15:23:11 +0000700{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000701 GatherEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
narpra01db2b1602019-01-23 15:23:11 +0000702}
703
Sadik Armagan1625efc2021-06-10 18:24:34 +0100704TEST_CASE("RefGatherInt16Test")
Ellen Norris-Thompsone0dbedf2019-06-24 09:23:38 +0100705{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000706 GatherEndToEnd<armnn::DataType::QSymmS16>(defaultBackends);
Ellen Norris-Thompsone0dbedf2019-06-24 09:23:38 +0100707}
708
Sadik Armagan1625efc2021-06-10 18:24:34 +0100709TEST_CASE("RefGatherMultiDimFloatTest")
narpra01db2b1602019-01-23 15:23:11 +0000710{
711 GatherMultiDimEndToEnd<armnn::DataType::Float32>(defaultBackends);
712}
713
Sadik Armagan1625efc2021-06-10 18:24:34 +0100714TEST_CASE("RefGatherMultiDimUint8Test")
narpra01db2b1602019-01-23 15:23:11 +0000715{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000716 GatherMultiDimEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
narpra01db2b1602019-01-23 15:23:11 +0000717}
718
Sadik Armagan1625efc2021-06-10 18:24:34 +0100719TEST_CASE("RefGatherMultiDimInt16Test")
Ellen Norris-Thompsone0dbedf2019-06-24 09:23:38 +0100720{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000721 GatherMultiDimEndToEnd<armnn::DataType::QSymmS16>(defaultBackends);
Ellen Norris-Thompsone0dbedf2019-06-24 09:23:38 +0100722}
723
Teresa Charlinb2d3ec52022-04-12 22:07:09 +0100724TEST_CASE("RefGatherNdFloatTest")
725{
726 GatherNdEndToEnd<armnn::DataType::Float32>(defaultBackends);
727}
728
729TEST_CASE("RefGatherNdUint8Test")
730{
731 GatherNdEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
732}
733
734TEST_CASE("RefGatherNdInt16Test")
735{
736 GatherNdEndToEnd<armnn::DataType::QSymmS16>(defaultBackends);
737}
738
739TEST_CASE("RefGatherNdMultiDimFloatTest")
740{
741 GatherNdMultiDimEndToEnd<armnn::DataType::Float32>(defaultBackends);
742}
743
744TEST_CASE("RefGatherNdMultiDimUint8Test")
745{
746 GatherNdMultiDimEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
747}
748
749TEST_CASE("RefGatherNdMultiDimInt16Test")
750{
751 GatherNdMultiDimEndToEnd<armnn::DataType::QSymmS16>(defaultBackends);
752}
753
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100754// DepthToSpace
Sadik Armagan1625efc2021-06-10 18:24:34 +0100755TEST_CASE("DephtToSpaceEndToEndNchwFloat32")
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100756{
757 DepthToSpaceEndToEnd<armnn::DataType::Float32>(defaultBackends, armnn::DataLayout::NCHW);
758}
759
Sadik Armagan1625efc2021-06-10 18:24:34 +0100760TEST_CASE("DephtToSpaceEndToEndNchwFloat16")
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100761{
762 DepthToSpaceEndToEnd<armnn::DataType::Float16>(defaultBackends, armnn::DataLayout::NCHW);
763}
764
Sadik Armagan1625efc2021-06-10 18:24:34 +0100765TEST_CASE("DephtToSpaceEndToEndNchwUint8")
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100766{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000767 DepthToSpaceEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, armnn::DataLayout::NCHW);
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100768}
769
Sadik Armagan1625efc2021-06-10 18:24:34 +0100770TEST_CASE("DephtToSpaceEndToEndNchwInt16")
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100771{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000772 DepthToSpaceEndToEnd<armnn::DataType::QSymmS16>(defaultBackends, armnn::DataLayout::NCHW);
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100773}
774
Sadik Armagan1625efc2021-06-10 18:24:34 +0100775TEST_CASE("DephtToSpaceEndToEndNhwcFloat32")
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100776{
777 DepthToSpaceEndToEnd<armnn::DataType::Float32>(defaultBackends, armnn::DataLayout::NHWC);
778}
779
Sadik Armagan1625efc2021-06-10 18:24:34 +0100780TEST_CASE("DephtToSpaceEndToEndNhwcFloat16")
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100781{
782 DepthToSpaceEndToEnd<armnn::DataType::Float16>(defaultBackends, armnn::DataLayout::NHWC);
783}
784
Sadik Armagan1625efc2021-06-10 18:24:34 +0100785TEST_CASE("DephtToSpaceEndToEndNhwcUint8")
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100786{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000787 DepthToSpaceEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, armnn::DataLayout::NHWC);
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100788}
789
Sadik Armagan1625efc2021-06-10 18:24:34 +0100790TEST_CASE("DephtToSpaceEndToEndNhwcInt16")
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100791{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000792 DepthToSpaceEndToEnd<armnn::DataType::QSymmS16>(defaultBackends, armnn::DataLayout::NHWC);
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100793}
794
795// Dequantize
Sadik Armagan1625efc2021-06-10 18:24:34 +0100796TEST_CASE("DequantizeEndToEndSimpleTest")
Narumol Prangnawarat8c7324d2019-05-31 16:42:11 +0100797{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000798 DequantizeEndToEndSimple<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawarat8c7324d2019-05-31 16:42:11 +0100799}
800
Sadik Armagan1625efc2021-06-10 18:24:34 +0100801TEST_CASE("DequantizeEndToEndOffsetTest")
Narumol Prangnawarat8c7324d2019-05-31 16:42:11 +0100802{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000803 DequantizeEndToEndOffset<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawarat8c7324d2019-05-31 16:42:11 +0100804}
805
Sadik Armagan1625efc2021-06-10 18:24:34 +0100806TEST_CASE("DequantizeEndToEndSimpleInt16Test")
Narumol Prangnawaratb6441e42019-06-04 11:22:00 +0100807{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000808 DequantizeEndToEndSimple<armnn::DataType::QSymmS16>(defaultBackends);
Narumol Prangnawaratb6441e42019-06-04 11:22:00 +0100809}
810
Sadik Armagan1625efc2021-06-10 18:24:34 +0100811TEST_CASE("DequantizeEndToEndOffsetInt16Test")
Narumol Prangnawaratb6441e42019-06-04 11:22:00 +0100812{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000813 DequantizeEndToEndOffset<armnn::DataType::QSymmS16>(defaultBackends);
Narumol Prangnawaratb6441e42019-06-04 11:22:00 +0100814}
815
Sadik Armagan1625efc2021-06-10 18:24:34 +0100816TEST_CASE("RefDetectionPostProcessRegularNmsTest")
Narumol Prangnawarat6d302bf2019-02-04 11:46:26 +0000817{
818 std::vector<float> boxEncodings({
819 0.0f, 0.0f, 0.0f, 0.0f,
820 0.0f, 1.0f, 0.0f, 0.0f,
821 0.0f, -1.0f, 0.0f, 0.0f,
822 0.0f, 0.0f, 0.0f, 0.0f,
823 0.0f, 1.0f, 0.0f, 0.0f,
824 0.0f, 0.0f, 0.0f, 0.0f
825 });
826 std::vector<float> scores({
827 0.0f, 0.9f, 0.8f,
828 0.0f, 0.75f, 0.72f,
829 0.0f, 0.6f, 0.5f,
830 0.0f, 0.93f, 0.95f,
831 0.0f, 0.5f, 0.4f,
832 0.0f, 0.3f, 0.2f
833 });
834 std::vector<float> anchors({
835 0.5f, 0.5f, 1.0f, 1.0f,
836 0.5f, 0.5f, 1.0f, 1.0f,
837 0.5f, 0.5f, 1.0f, 1.0f,
838 0.5f, 10.5f, 1.0f, 1.0f,
839 0.5f, 10.5f, 1.0f, 1.0f,
840 0.5f, 100.5f, 1.0f, 1.0f
841 });
842 DetectionPostProcessRegularNmsEndToEnd<armnn::DataType::Float32>(defaultBackends, boxEncodings, scores, anchors);
843}
844
845inline void QuantizeData(uint8_t* quant, const float* dequant, const TensorInfo& info)
846{
847 for (size_t i = 0; i < info.GetNumElements(); i++)
848 {
849 quant[i] = armnn::Quantize<uint8_t>(dequant[i], info.GetQuantizationScale(), info.GetQuantizationOffset());
850 }
851}
852
Sadik Armagan1625efc2021-06-10 18:24:34 +0100853TEST_CASE("RefDetectionPostProcessRegularNmsUint8Test")
Narumol Prangnawarat6d302bf2019-02-04 11:46:26 +0000854{
855 armnn::TensorInfo boxEncodingsInfo({ 1, 6, 4 }, armnn::DataType::Float32);
856 armnn::TensorInfo scoresInfo({ 1, 6, 3 }, armnn::DataType::Float32);
857 armnn::TensorInfo anchorsInfo({ 6, 4 }, armnn::DataType::Float32);
858
859 boxEncodingsInfo.SetQuantizationScale(1.0f);
860 boxEncodingsInfo.SetQuantizationOffset(1);
861 scoresInfo.SetQuantizationScale(0.01f);
862 scoresInfo.SetQuantizationOffset(0);
863 anchorsInfo.SetQuantizationScale(0.5f);
864 anchorsInfo.SetQuantizationOffset(0);
865
866 std::vector<float> boxEncodings({
867 0.0f, 0.0f, 0.0f, 0.0f,
868 0.0f, 1.0f, 0.0f, 0.0f,
869 0.0f, -1.0f, 0.0f, 0.0f,
870 0.0f, 0.0f, 0.0f, 0.0f,
871 0.0f, 1.0f, 0.0f, 0.0f,
872 0.0f, 0.0f, 0.0f, 0.0f
873 });
874 std::vector<float> scores({
875 0.0f, 0.9f, 0.8f,
876 0.0f, 0.75f, 0.72f,
877 0.0f, 0.6f, 0.5f,
878 0.0f, 0.93f, 0.95f,
879 0.0f, 0.5f, 0.4f,
880 0.0f, 0.3f, 0.2f
881 });
882 std::vector<float> anchors({
883 0.5f, 0.5f, 1.0f, 1.0f,
884 0.5f, 0.5f, 1.0f, 1.0f,
885 0.5f, 0.5f, 1.0f, 1.0f,
886 0.5f, 10.5f, 1.0f, 1.0f,
887 0.5f, 10.5f, 1.0f, 1.0f,
888 0.5f, 100.5f, 1.0f, 1.0f
889 });
890
891 std::vector<uint8_t> qBoxEncodings(boxEncodings.size(), 0);
892 std::vector<uint8_t> qScores(scores.size(), 0);
893 std::vector<uint8_t> qAnchors(anchors.size(), 0);
894 QuantizeData(qBoxEncodings.data(), boxEncodings.data(), boxEncodingsInfo);
895 QuantizeData(qScores.data(), scores.data(), scoresInfo);
896 QuantizeData(qAnchors.data(), anchors.data(), anchorsInfo);
Derek Lambertif90c56d2020-01-10 17:14:08 +0000897 DetectionPostProcessRegularNmsEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, qBoxEncodings,
Narumol Prangnawarat6d302bf2019-02-04 11:46:26 +0000898 qScores, qAnchors,
899 1.0f, 1, 0.01f, 0, 0.5f, 0);
900}
901
Sadik Armagan1625efc2021-06-10 18:24:34 +0100902TEST_CASE("RefDetectionPostProcessFastNmsTest")
Narumol Prangnawarat6d302bf2019-02-04 11:46:26 +0000903{
904 std::vector<float> boxEncodings({
905 0.0f, 0.0f, 0.0f, 0.0f,
906 0.0f, 1.0f, 0.0f, 0.0f,
907 0.0f, -1.0f, 0.0f, 0.0f,
908 0.0f, 0.0f, 0.0f, 0.0f,
909 0.0f, 1.0f, 0.0f, 0.0f,
910 0.0f, 0.0f, 0.0f, 0.0f
911 });
912 std::vector<float> scores({
913 0.0f, 0.9f, 0.8f,
914 0.0f, 0.75f, 0.72f,
915 0.0f, 0.6f, 0.5f,
916 0.0f, 0.93f, 0.95f,
917 0.0f, 0.5f, 0.4f,
918 0.0f, 0.3f, 0.2f
919 });
920 std::vector<float> anchors({
921 0.5f, 0.5f, 1.0f, 1.0f,
922 0.5f, 0.5f, 1.0f, 1.0f,
923 0.5f, 0.5f, 1.0f, 1.0f,
924 0.5f, 10.5f, 1.0f, 1.0f,
925 0.5f, 10.5f, 1.0f, 1.0f,
926 0.5f, 100.5f, 1.0f, 1.0f
927 });
928 DetectionPostProcessFastNmsEndToEnd<armnn::DataType::Float32>(defaultBackends, boxEncodings, scores, anchors);
929}
930
Sadik Armagan1625efc2021-06-10 18:24:34 +0100931TEST_CASE("RefDetectionPostProcessFastNmsUint8Test")
Narumol Prangnawarat6d302bf2019-02-04 11:46:26 +0000932{
933 armnn::TensorInfo boxEncodingsInfo({ 1, 6, 4 }, armnn::DataType::Float32);
934 armnn::TensorInfo scoresInfo({ 1, 6, 3 }, armnn::DataType::Float32);
935 armnn::TensorInfo anchorsInfo({ 6, 4 }, armnn::DataType::Float32);
936
937 boxEncodingsInfo.SetQuantizationScale(1.0f);
938 boxEncodingsInfo.SetQuantizationOffset(1);
939 scoresInfo.SetQuantizationScale(0.01f);
940 scoresInfo.SetQuantizationOffset(0);
941 anchorsInfo.SetQuantizationScale(0.5f);
942 anchorsInfo.SetQuantizationOffset(0);
943
944 std::vector<float> boxEncodings({
945 0.0f, 0.0f, 0.0f, 0.0f,
946 0.0f, 1.0f, 0.0f, 0.0f,
947 0.0f, -1.0f, 0.0f, 0.0f,
948 0.0f, 0.0f, 0.0f, 0.0f,
949 0.0f, 1.0f, 0.0f, 0.0f,
950 0.0f, 0.0f, 0.0f, 0.0f
951 });
952 std::vector<float> scores({
953 0.0f, 0.9f, 0.8f,
954 0.0f, 0.75f, 0.72f,
955 0.0f, 0.6f, 0.5f,
956 0.0f, 0.93f, 0.95f,
957 0.0f, 0.5f, 0.4f,
958 0.0f, 0.3f, 0.2f
959 });
960 std::vector<float> anchors({
961 0.5f, 0.5f, 1.0f, 1.0f,
962 0.5f, 0.5f, 1.0f, 1.0f,
963 0.5f, 0.5f, 1.0f, 1.0f,
964 0.5f, 10.5f, 1.0f, 1.0f,
965 0.5f, 10.5f, 1.0f, 1.0f,
966 0.5f, 100.5f, 1.0f, 1.0f
967 });
968
969 std::vector<uint8_t> qBoxEncodings(boxEncodings.size(), 0);
970 std::vector<uint8_t> qScores(scores.size(), 0);
971 std::vector<uint8_t> qAnchors(anchors.size(), 0);
972 QuantizeData(qBoxEncodings.data(), boxEncodings.data(), boxEncodingsInfo);
973 QuantizeData(qScores.data(), scores.data(), scoresInfo);
974 QuantizeData(qAnchors.data(), anchors.data(), anchorsInfo);
Derek Lambertif90c56d2020-01-10 17:14:08 +0000975 DetectionPostProcessFastNmsEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, qBoxEncodings,
Narumol Prangnawarat6d302bf2019-02-04 11:46:26 +0000976 qScores, qAnchors,
977 1.0f, 1, 0.01f, 0, 0.5f, 0);
978}
979
Jan Eilersa83af7b2020-03-18 15:58:11 +0000980// HardSwish
Sadik Armagan1625efc2021-06-10 18:24:34 +0100981TEST_CASE("RefHardSwishEndToEndTestFloat32")
Jan Eilersa83af7b2020-03-18 15:58:11 +0000982{
983 HardSwishEndToEndTest<armnn::DataType::Float32>(defaultBackends);
984}
985
Sadik Armagan1625efc2021-06-10 18:24:34 +0100986TEST_CASE("RefHardSwishEndToEndTestFloat16")
Jan Eilersa83af7b2020-03-18 15:58:11 +0000987{
988 HardSwishEndToEndTest<armnn::DataType::Float16>(defaultBackends);
989}
990
Sadik Armagan1625efc2021-06-10 18:24:34 +0100991TEST_CASE("RefHardSwishEndToEndTestBFloat16")
Jan Eilersa83af7b2020-03-18 15:58:11 +0000992{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100993 HardSwishEndToEndTest<armnn::DataType::BFloat16>(defaultBackends);
Jan Eilersa83af7b2020-03-18 15:58:11 +0000994}
995
Sadik Armagan1625efc2021-06-10 18:24:34 +0100996TEST_CASE("RefHardSwishEndToEndTestQAsymmS8")
Jan Eilersa83af7b2020-03-18 15:58:11 +0000997{
998 HardSwishEndToEndTest<armnn::DataType::QAsymmS8>(defaultBackends);
999}
1000
Sadik Armagan1625efc2021-06-10 18:24:34 +01001001TEST_CASE("RefHardSwishEndToEndTestQAsymmU8")
Jan Eilersa83af7b2020-03-18 15:58:11 +00001002{
1003 HardSwishEndToEndTest<armnn::DataType::QAsymmU8>(defaultBackends);
1004}
1005
Sadik Armagan1625efc2021-06-10 18:24:34 +01001006TEST_CASE("RefHardSwishEndToEndTestQSymmS16")
Jan Eilersa83af7b2020-03-18 15:58:11 +00001007{
1008 HardSwishEndToEndTest<armnn::DataType::QSymmS16>(defaultBackends);
1009}
1010
Sadik Armagan20bea002019-10-16 09:29:38 +01001011// LogSoftmax
Sadik Armagan1625efc2021-06-10 18:24:34 +01001012TEST_CASE("RefLogSoftmaxEndToEndTest")
Sadik Armagan20bea002019-10-16 09:29:38 +01001013{
1014 LogSoftmaxEndToEndTest(defaultBackends);
1015}
1016
Sadik Armagan1625efc2021-06-10 18:24:34 +01001017TEST_CASE("RefPreluEndToEndTestFloat32")
Nikhil Raj747f5862019-07-19 15:15:23 +01001018{
1019 PreluEndToEndNegativeTest<armnn::DataType::Float32>(defaultBackends);
1020}
1021
Sadik Armagan1625efc2021-06-10 18:24:34 +01001022TEST_CASE("RefPreluEndToEndTestUint8")
Nikhil Raj747f5862019-07-19 15:15:23 +01001023{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001024 PreluEndToEndPositiveTest<armnn::DataType::QAsymmU8>(defaultBackends);
Nikhil Raj747f5862019-07-19 15:15:23 +01001025}
1026
Sadik Armagan1625efc2021-06-10 18:24:34 +01001027TEST_CASE("RefPreluEndToEndTestQSymm16")
Nikhil Raj747f5862019-07-19 15:15:23 +01001028{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001029 PreluEndToEndPositiveTest<armnn::DataType::QSymmS16>(defaultBackends);
Nikhil Raj747f5862019-07-19 15:15:23 +01001030}
1031
Sadik Armagan1625efc2021-06-10 18:24:34 +01001032TEST_CASE("RefSpaceToDepthNhwcEndToEndTest1")
Keith Davis9515c7e2019-06-21 09:33:59 +01001033{
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +01001034 SpaceToDepthNhwcEndToEndTest1(defaultBackends);
Keith Davis9515c7e2019-06-21 09:33:59 +01001035}
1036
Sadik Armagan1625efc2021-06-10 18:24:34 +01001037TEST_CASE("RefSpaceToDepthNchwEndToEndTest1")
Keith Davis9515c7e2019-06-21 09:33:59 +01001038{
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +01001039 SpaceToDepthNchwEndToEndTest1(defaultBackends);
Keith Davis9515c7e2019-06-21 09:33:59 +01001040}
1041
Sadik Armagan1625efc2021-06-10 18:24:34 +01001042TEST_CASE("RefSpaceToDepthNhwcEndToEndTest2")
Keith Davis9515c7e2019-06-21 09:33:59 +01001043{
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +01001044 SpaceToDepthNhwcEndToEndTest2(defaultBackends);
Keith Davis9515c7e2019-06-21 09:33:59 +01001045}
1046
Sadik Armagan1625efc2021-06-10 18:24:34 +01001047TEST_CASE("RefSpaceToDepthNchwEndToEndTest2")
Keith Davis9515c7e2019-06-21 09:33:59 +01001048{
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +01001049 SpaceToDepthNchwEndToEndTest2(defaultBackends);
Keith Davis9515c7e2019-06-21 09:33:59 +01001050}
1051
Sadik Armagan1625efc2021-06-10 18:24:34 +01001052TEST_CASE("RefSplitter1dEndToEndTest")
Narumol Prangnawarat0be43382019-05-27 11:29:59 +01001053{
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001054 Splitter1dEndToEnd<armnn::DataType::Float32>(defaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +01001055}
1056
Sadik Armagan1625efc2021-06-10 18:24:34 +01001057TEST_CASE("RefSplitter1dEndToEndUint8Test")
Narumol Prangnawarat0be43382019-05-27 11:29:59 +01001058{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001059 Splitter1dEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +01001060}
1061
Sadik Armagan1625efc2021-06-10 18:24:34 +01001062TEST_CASE("RefSplitter2dDim0EndToEndTest")
Narumol Prangnawarat0be43382019-05-27 11:29:59 +01001063{
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001064 Splitter2dDim0EndToEnd<armnn::DataType::Float32>(defaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +01001065}
1066
Sadik Armagan1625efc2021-06-10 18:24:34 +01001067TEST_CASE("RefSplitter2dDim1EndToEndTest")
Narumol Prangnawarat0be43382019-05-27 11:29:59 +01001068{
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001069 Splitter2dDim1EndToEnd<armnn::DataType::Float32>(defaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +01001070}
1071
Sadik Armagan1625efc2021-06-10 18:24:34 +01001072TEST_CASE("RefSplitter2dDim0EndToEndUint8Test")
Narumol Prangnawarat0be43382019-05-27 11:29:59 +01001073{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001074 Splitter2dDim0EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +01001075}
1076
Sadik Armagan1625efc2021-06-10 18:24:34 +01001077TEST_CASE("RefSplitter2dDim1EndToEndUint8Test")
Narumol Prangnawarat0be43382019-05-27 11:29:59 +01001078{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001079 Splitter2dDim1EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +01001080}
1081
Sadik Armagan1625efc2021-06-10 18:24:34 +01001082TEST_CASE("RefSplitter3dDim0EndToEndTest")
Narumol Prangnawarat0be43382019-05-27 11:29:59 +01001083{
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001084 Splitter3dDim0EndToEnd<armnn::DataType::Float32>(defaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +01001085}
1086
Sadik Armagan1625efc2021-06-10 18:24:34 +01001087TEST_CASE("RefSplitter3dDim1EndToEndTest")
Narumol Prangnawarat0be43382019-05-27 11:29:59 +01001088{
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001089 Splitter3dDim1EndToEnd<armnn::DataType::Float32>(defaultBackends);
1090}
1091
Sadik Armagan1625efc2021-06-10 18:24:34 +01001092TEST_CASE("RefSplitter3dDim2EndToEndTest")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001093{
1094 Splitter3dDim2EndToEnd<armnn::DataType::Float32>(defaultBackends);
1095}
1096
Sadik Armagan1625efc2021-06-10 18:24:34 +01001097TEST_CASE("RefSplitter3dDim0EndToEndUint8Test")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001098{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001099 Splitter3dDim0EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001100}
1101
Sadik Armagan1625efc2021-06-10 18:24:34 +01001102TEST_CASE("RefSplitter3dDim1EndToEndUint8Test")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001103{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001104 Splitter3dDim1EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001105}
1106
Sadik Armagan1625efc2021-06-10 18:24:34 +01001107TEST_CASE("RefSplitter3dDim2EndToEndUint8Test")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001108{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001109 Splitter3dDim2EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001110}
1111
Sadik Armagan1625efc2021-06-10 18:24:34 +01001112TEST_CASE("RefSplitter4dDim0EndToEndTest")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001113{
1114 Splitter4dDim0EndToEnd<armnn::DataType::Float32>(defaultBackends);
1115}
1116
Sadik Armagan1625efc2021-06-10 18:24:34 +01001117TEST_CASE("RefSplitter4dDim1EndToEndTest")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001118{
1119 Splitter4dDim1EndToEnd<armnn::DataType::Float32>(defaultBackends);
1120}
1121
Sadik Armagan1625efc2021-06-10 18:24:34 +01001122TEST_CASE("RefSplitter4dDim2EndToEndTest")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001123{
1124 Splitter4dDim2EndToEnd<armnn::DataType::Float32>(defaultBackends);
1125}
1126
Sadik Armagan1625efc2021-06-10 18:24:34 +01001127TEST_CASE("RefSplitter4dDim3EndToEndTest")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001128{
1129 Splitter4dDim3EndToEnd<armnn::DataType::Float32>(defaultBackends);
1130}
1131
Sadik Armagan1625efc2021-06-10 18:24:34 +01001132TEST_CASE("RefSplitter4dDim0EndToEndUint8Test")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001133{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001134 Splitter4dDim0EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001135}
1136
Sadik Armagan1625efc2021-06-10 18:24:34 +01001137TEST_CASE("RefSplitter4dDim1EndToEndUint8Test")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001138{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001139 Splitter4dDim1EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001140}
1141
Sadik Armagan1625efc2021-06-10 18:24:34 +01001142TEST_CASE("RefSplitter4dDim2EndToEndUint8Test")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001143{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001144 Splitter4dDim2EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001145}
1146
Sadik Armagan1625efc2021-06-10 18:24:34 +01001147TEST_CASE("RefSplitter4dDim3EndToEndUint8Test")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001148{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001149 Splitter4dDim3EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +01001150}
1151
Aron Virginas-Tar98180ef2019-06-26 15:02:47 +01001152// TransposeConvolution2d
Sadik Armagan1625efc2021-06-10 18:24:34 +01001153TEST_CASE("RefTransposeConvolution2dEndToEndFloatNchwTest")
Aron Virginas-Tar98180ef2019-06-26 15:02:47 +01001154{
1155 TransposeConvolution2dEndToEnd<armnn::DataType::Float32, armnn::DataType::Float32>(
1156 defaultBackends, armnn::DataLayout::NCHW);
1157}
1158
Sadik Armagan1625efc2021-06-10 18:24:34 +01001159TEST_CASE("RefTransposeConvolution2dEndToEndUint8NchwTest")
Aron Virginas-Tar98180ef2019-06-26 15:02:47 +01001160{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001161 TransposeConvolution2dEndToEnd<armnn::DataType::QAsymmU8, armnn::DataType::Signed32>(
Aron Virginas-Tar98180ef2019-06-26 15:02:47 +01001162 defaultBackends, armnn::DataLayout::NCHW);
1163}
1164
Sadik Armagan1625efc2021-06-10 18:24:34 +01001165TEST_CASE("RefTransposeConvolution2dEndToEndInt16NchwTest")
Aron Virginas-Tar98180ef2019-06-26 15:02:47 +01001166{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001167 TransposeConvolution2dEndToEnd<armnn::DataType::QSymmS16, armnn::DataType::Signed32>(
Aron Virginas-Tar98180ef2019-06-26 15:02:47 +01001168 defaultBackends, armnn::DataLayout::NCHW);
1169}
1170
Sadik Armagan1625efc2021-06-10 18:24:34 +01001171TEST_CASE("RefTransposeConvolution2dEndToEndFloatNhwcTest")
Aron Virginas-Tar98180ef2019-06-26 15:02:47 +01001172{
1173 TransposeConvolution2dEndToEnd<armnn::DataType::Float32, armnn::DataType::Float32>(
1174 defaultBackends, armnn::DataLayout::NHWC);
1175}
1176
Sadik Armagan1625efc2021-06-10 18:24:34 +01001177TEST_CASE("RefTransposeConvolution2dEndToEndUint8NhwcTest")
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::NHWC);
1181}
1182
Sadik Armagan1625efc2021-06-10 18:24:34 +01001183TEST_CASE("RefTransposeConvolution2dEndToEndInt16NhwcTest")
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::NHWC);
1187}
1188
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001189// Resize Bilinear
Sadik Armagan1625efc2021-06-10 18:24:34 +01001190TEST_CASE("RefResizeBilinearEndToEndFloatNchwTest")
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001191{
1192 ResizeBilinearEndToEnd<armnn::DataType::Float32>(defaultBackends, armnn::DataLayout::NCHW);
1193}
1194
Sadik Armagan1625efc2021-06-10 18:24:34 +01001195TEST_CASE("RefResizeBilinearEndToEndUint8NchwTest")
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001196{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001197 ResizeBilinearEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, armnn::DataLayout::NCHW);
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001198}
1199
Sadik Armagan1625efc2021-06-10 18:24:34 +01001200TEST_CASE("RefResizeBilinearEndToEndInt16NchwTest")
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001201{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001202 ResizeBilinearEndToEnd<armnn::DataType::QSymmS16>(defaultBackends, armnn::DataLayout::NCHW);
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001203}
1204
Sadik Armagan1625efc2021-06-10 18:24:34 +01001205TEST_CASE("RefResizeBilinearEndToEndFloatNhwcTest")
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001206{
1207 ResizeBilinearEndToEnd<armnn::DataType::Float32>(defaultBackends, armnn::DataLayout::NHWC);
1208}
1209
Sadik Armagan1625efc2021-06-10 18:24:34 +01001210TEST_CASE("RefResizeBilinearEndToEndUint8NhwcTest")
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001211{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001212 ResizeBilinearEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, armnn::DataLayout::NHWC);
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001213}
1214
Sadik Armagan1625efc2021-06-10 18:24:34 +01001215TEST_CASE("RefResizeBilinearEndToEndInt16NhwcTest")
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001216{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001217 ResizeBilinearEndToEnd<armnn::DataType::QSymmS16>(defaultBackends, armnn::DataLayout::NHWC);
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001218}
1219
1220// Resize NearestNeighbor
Sadik Armagan1625efc2021-06-10 18:24:34 +01001221TEST_CASE("RefResizeNearestNeighborEndToEndFloatNchwTest")
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001222{
1223 ResizeNearestNeighborEndToEnd<armnn::DataType::Float32>(defaultBackends, armnn::DataLayout::NCHW);
1224}
1225
Sadik Armagan1625efc2021-06-10 18:24:34 +01001226TEST_CASE("RefResizeNearestNeighborEndToEndUint8NchwTest")
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001227{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001228 ResizeNearestNeighborEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, armnn::DataLayout::NCHW);
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001229}
1230
Sadik Armagan1625efc2021-06-10 18:24:34 +01001231TEST_CASE("RefResizeNearestNeighborEndToEndInt16NchwTest")
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001232{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001233 ResizeNearestNeighborEndToEnd<armnn::DataType::QSymmS16>(defaultBackends, armnn::DataLayout::NCHW);
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001234}
1235
Sadik Armagan1625efc2021-06-10 18:24:34 +01001236TEST_CASE("RefResizeNearestNeighborEndToEndFloatNhwcTest")
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001237{
1238 ResizeNearestNeighborEndToEnd<armnn::DataType::Float32>(defaultBackends, armnn::DataLayout::NHWC);
1239}
1240
Sadik Armagan1625efc2021-06-10 18:24:34 +01001241TEST_CASE("RefResizeNearestNeighborEndToEndUint8NhwcTest")
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001242{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001243 ResizeNearestNeighborEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, armnn::DataLayout::NHWC);
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001244}
1245
Sadik Armagan1625efc2021-06-10 18:24:34 +01001246TEST_CASE("RefResizeNearestNeighborEndToEndInt16NhwcTest")
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001247{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001248 ResizeNearestNeighborEndToEnd<armnn::DataType::QSymmS16>(defaultBackends, armnn::DataLayout::NHWC);
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001249}
1250
Sadik Armagan062e0e92019-10-14 10:31:43 +01001251// InstanceNormalization
Sadik Armagan1625efc2021-06-10 18:24:34 +01001252TEST_CASE("RefInstanceNormalizationNhwcEndToEndTest1")
Sadik Armagan062e0e92019-10-14 10:31:43 +01001253{
1254 InstanceNormalizationNhwcEndToEndTest1(defaultBackends);
1255}
1256
Sadik Armagan1625efc2021-06-10 18:24:34 +01001257TEST_CASE("RefInstanceNormalizationNchwEndToEndTest1")
Sadik Armagan062e0e92019-10-14 10:31:43 +01001258{
1259 InstanceNormalizationNchwEndToEndTest1(defaultBackends);
1260}
1261
Sadik Armagan1625efc2021-06-10 18:24:34 +01001262TEST_CASE("RefInstanceNormalizationNhwcEndToEndTest2")
Sadik Armagan062e0e92019-10-14 10:31:43 +01001263{
1264 InstanceNormalizationNhwcEndToEndTest2(defaultBackends);
1265}
1266
Sadik Armagan1625efc2021-06-10 18:24:34 +01001267TEST_CASE("RefInstanceNormalizationNchwEndToEndTest2")
Sadik Armagan062e0e92019-10-14 10:31:43 +01001268{
1269 InstanceNormalizationNchwEndToEndTest2(defaultBackends);
1270}
1271
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001272// ArgMinMax
Sadik Armagan1625efc2021-06-10 18:24:34 +01001273TEST_CASE("RefArgMaxSimpleTest")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001274{
1275 ArgMaxEndToEndSimple<armnn::DataType::Float32>(defaultBackends);
1276}
1277
Sadik Armagan1625efc2021-06-10 18:24:34 +01001278TEST_CASE("RefArgMaxSimpleUint8Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001279{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001280 ArgMaxEndToEndSimple<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001281}
1282
Sadik Armagan1625efc2021-06-10 18:24:34 +01001283TEST_CASE("RefArgMinSimpleTest")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001284{
1285 ArgMinEndToEndSimple<armnn::DataType::Float32>(defaultBackends);
1286}
1287
Sadik Armagan1625efc2021-06-10 18:24:34 +01001288TEST_CASE("RefArgMinSimpleUint8Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001289{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001290 ArgMinEndToEndSimple<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001291}
1292
Sadik Armagan1625efc2021-06-10 18:24:34 +01001293TEST_CASE("RefArgMaxAxis0Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001294{
1295 ArgMaxAxis0EndToEnd<armnn::DataType::Float32>(defaultBackends);
1296}
1297
Sadik Armagan1625efc2021-06-10 18:24:34 +01001298TEST_CASE("RefArgMaxAxis0Uint8Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001299{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001300 ArgMaxAxis0EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001301}
1302
Sadik Armagan1625efc2021-06-10 18:24:34 +01001303TEST_CASE("RefArgMinAxis0Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001304{
1305 ArgMinAxis0EndToEnd<armnn::DataType::Float32>(defaultBackends);
1306}
1307
Sadik Armagan1625efc2021-06-10 18:24:34 +01001308TEST_CASE("RefArgMinAxis0Uint8Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001309{
1310
Derek Lambertif90c56d2020-01-10 17:14:08 +00001311 ArgMinAxis0EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001312}
1313
Sadik Armagan1625efc2021-06-10 18:24:34 +01001314TEST_CASE("RefArgMaxAxis1Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001315{
1316 ArgMaxAxis1EndToEnd<armnn::DataType::Float32>(defaultBackends);
1317}
1318
Sadik Armagan1625efc2021-06-10 18:24:34 +01001319TEST_CASE("RefArgMaxAxis1Uint8Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001320{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001321 ArgMaxAxis1EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001322}
1323
Sadik Armagan1625efc2021-06-10 18:24:34 +01001324TEST_CASE("RefArgMinAxis1Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001325{
1326 ArgMinAxis1EndToEnd<armnn::DataType::Float32>(defaultBackends);
1327}
1328
Sadik Armagan1625efc2021-06-10 18:24:34 +01001329TEST_CASE("RefArgMinAxis1Uint8Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001330{
1331
Derek Lambertif90c56d2020-01-10 17:14:08 +00001332 ArgMinAxis1EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001333}
1334
Sadik Armagan1625efc2021-06-10 18:24:34 +01001335TEST_CASE("RefArgMaxAxis2Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001336{
1337 ArgMaxAxis2EndToEnd<armnn::DataType::Float32>(defaultBackends);
1338}
1339
Sadik Armagan1625efc2021-06-10 18:24:34 +01001340TEST_CASE("RefArgMaxAxis2Uint8Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001341{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001342 ArgMaxAxis2EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001343}
1344
Sadik Armagan1625efc2021-06-10 18:24:34 +01001345TEST_CASE("RefArgMinAxis2Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001346{
1347 ArgMinAxis2EndToEnd<armnn::DataType::Float32>(defaultBackends);
1348}
1349
Sadik Armagan1625efc2021-06-10 18:24:34 +01001350TEST_CASE("RefArgMinAxis2Uint8Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001351{
1352
Derek Lambertif90c56d2020-01-10 17:14:08 +00001353 ArgMinAxis2EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001354}
1355
Sadik Armagan1625efc2021-06-10 18:24:34 +01001356TEST_CASE("RefArgMaxAxis3Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001357{
1358 ArgMaxAxis3EndToEnd<armnn::DataType::Float32>(defaultBackends);
1359}
1360
Sadik Armagan1625efc2021-06-10 18:24:34 +01001361TEST_CASE("RefArgMaxAxis3Uint8Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001362{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001363 ArgMaxAxis3EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001364}
1365
Sadik Armagan1625efc2021-06-10 18:24:34 +01001366TEST_CASE("RefArgMinAxis3Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001367{
1368 ArgMinAxis3EndToEnd<armnn::DataType::Float32>(defaultBackends);
1369}
1370
Sadik Armagan1625efc2021-06-10 18:24:34 +01001371TEST_CASE("RefArgMinAxis3Uint8Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001372{
1373
Derek Lambertif90c56d2020-01-10 17:14:08 +00001374 ArgMinAxis3EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001375}
1376
Sadik Armagan1625efc2021-06-10 18:24:34 +01001377TEST_CASE("RefQLstmEndToEndTest")
James Conroy0800bf52020-05-14 12:46:44 +01001378{
1379 QLstmEndToEnd(defaultBackends);
1380}
1381
Sadik Armagan1625efc2021-06-10 18:24:34 +01001382TEST_CASE("RefRankEndToEndTest")
Teresa Charlin2e3f4d22020-07-29 14:29:20 +01001383{
1384 RankEndToEnd<armnn::DataType::Float32>(defaultBackends);
1385}
1386
Sadik Armagan1625efc2021-06-10 18:24:34 +01001387TEST_CASE("RefRankEndToEndTestFloat16")
Teresa Charlin2e3f4d22020-07-29 14:29:20 +01001388{
1389 RankEndToEnd<armnn::DataType::Float16>(defaultBackends);
1390}
1391
Sadik Armagan1625efc2021-06-10 18:24:34 +01001392TEST_CASE("RefRankEndToEndTestInt32")
Teresa Charlin2e3f4d22020-07-29 14:29:20 +01001393{
1394 RankEndToEnd<armnn::DataType::Signed32>(defaultBackends);
1395}
1396
Sadik Armagan1625efc2021-06-10 18:24:34 +01001397TEST_CASE("RefRankEndToEndTestQAsymmS8")
Teresa Charlin2e3f4d22020-07-29 14:29:20 +01001398{
1399 RankEndToEnd<armnn::DataType::QAsymmS8>(defaultBackends);
1400}
1401
Sadik Armagan1625efc2021-06-10 18:24:34 +01001402TEST_CASE("RefRankEndToEndTestQSymmS16")
Teresa Charlin2e3f4d22020-07-29 14:29:20 +01001403{
1404 RankEndToEnd<armnn::DataType::QSymmS16>(defaultBackends);
1405}
1406
Sadik Armagan1625efc2021-06-10 18:24:34 +01001407TEST_CASE("RefRankEndToEndTestQSymmS8")
Teresa Charlin2e3f4d22020-07-29 14:29:20 +01001408{
1409 RankEndToEnd<armnn::DataType::QSymmS8>(defaultBackends);
1410}
1411
David Monahan646bc8a2022-01-31 14:29:14 +00001412TEST_CASE("RefForceImportWithAlignedBuffersEndToEndTest")
Narumol Prangnawarate2af6f42022-01-28 17:59:18 +00001413{
David Monahan646bc8a2022-01-31 14:29:14 +00001414 ForceImportWithAlignedBuffersEndToEndTest(defaultBackends);
1415}
Narumol Prangnawarate2af6f42022-01-28 17:59:18 +00001416
David Monahan646bc8a2022-01-31 14:29:14 +00001417TEST_CASE("RefForceImportWithMisalignedInputBuffersEndToEndTest")
1418{
1419 ForceImportWithMisalignedInputBuffersEndToEndTest(defaultBackends);
1420}
Narumol Prangnawarate2af6f42022-01-28 17:59:18 +00001421
David Monahan646bc8a2022-01-31 14:29:14 +00001422TEST_CASE("RefForceImportWithMisalignedOutputBuffersEndToEndTest")
1423{
1424 ForceImportWithMisalignedOutputBuffersEndToEndTest(defaultBackends);
1425}
Narumol Prangnawarate2af6f42022-01-28 17:59:18 +00001426
David Monahan646bc8a2022-01-31 14:29:14 +00001427TEST_CASE("RefForceImportWithMisalignedInputAndOutputBuffersEndToEndTest")
1428{
1429 ForceImportWithMisalignedInputAndOutputBuffersEndToEndTest(defaultBackends);
Narumol Prangnawarate2af6f42022-01-28 17:59:18 +00001430}
1431
David Monahan16829712022-02-03 17:04:59 +00001432TEST_CASE("RefForceImportRepeatedInferencesEndToEndTest")
1433{
1434 ForceImportRepeatedInferencesEndToEndTest(defaultBackends);
1435}
1436
1437TEST_CASE("RefForceImportRepeatedInferencesInvertedEndToEndTest")
1438{
1439 ForceImportRepeatedInferencesInvertedEndToEndTest(defaultBackends);
1440}
1441
Ferran Balaguerdcaa6102019-08-21 13:28:38 +01001442#if !defined(__ANDROID__)
1443// Only run these tests on non Android platforms
Sadik Armagan1625efc2021-06-10 18:24:34 +01001444TEST_CASE("RefImportNonAlignedPointerTest")
Ferran Balaguerdcaa6102019-08-21 13:28:38 +01001445{
David Monahan4f1e8e42019-09-04 09:22:10 +01001446 ImportNonAlignedInputPointerTest(defaultBackends);
1447}
1448
Sadik Armagan1625efc2021-06-10 18:24:34 +01001449TEST_CASE("RefExportNonAlignedPointerTest")
David Monahan4f1e8e42019-09-04 09:22:10 +01001450{
Ferran Balaguer83239f92019-09-19 11:49:25 +01001451 ExportNonAlignedOutputPointerTest(defaultBackends);
Ferran Balaguerdcaa6102019-08-21 13:28:38 +01001452}
1453
Sadik Armagan1625efc2021-06-10 18:24:34 +01001454TEST_CASE("RefImportAlignedPointerTest")
Ferran Balaguerdcaa6102019-08-21 13:28:38 +01001455{
1456 ImportAlignedPointerTest(defaultBackends);
1457}
1458
Sadik Armagan1625efc2021-06-10 18:24:34 +01001459TEST_CASE("RefImportOnlyWorkload")
Ferran Balaguer83239f92019-09-19 11:49:25 +01001460{
1461 ImportOnlyWorkload(defaultBackends);
1462}
1463
Sadik Armagan1625efc2021-06-10 18:24:34 +01001464TEST_CASE("RefExportOnlyWorkload")
Ferran Balaguer83239f92019-09-19 11:49:25 +01001465{
1466 ExportOnlyWorkload(defaultBackends);
1467}
1468
Sadik Armagan1625efc2021-06-10 18:24:34 +01001469TEST_CASE("RefImportAndExportWorkload")
Ferran Balaguer83239f92019-09-19 11:49:25 +01001470{
1471 ImportAndExportWorkload(defaultBackends);
1472}
1473
Sadik Armagan1625efc2021-06-10 18:24:34 +01001474TEST_CASE("RefExportOutputWithSeveralOutputSlotConnectionsTest")
Ferran Balaguer83239f92019-09-19 11:49:25 +01001475{
1476 ExportOutputWithSeveralOutputSlotConnectionsTest(defaultBackends);
1477}
1478
Sadik Armagan1625efc2021-06-10 18:24:34 +01001479TEST_CASE("RefStridedSliceInvalidSliceEndToEndTest")
David Monahan0a99a142020-03-13 07:52:54 +00001480{
1481 StridedSliceInvalidSliceEndToEndTest(defaultBackends);
1482}
1483
Sadik Armagan1625efc2021-06-10 18:24:34 +01001484TEST_CASE("RefThreadSafeFP32StridedSlicedEndToEndTest")
Mike Kelly386ff1a2021-03-29 15:04:50 +01001485{
Kevin Mayb4b3ac92021-05-21 16:42:21 +01001486 armnn::experimental::StridedSlicedEndToEndTest<armnn::DataType::Float32>(defaultBackends, 1);
Mike Kelly386ff1a2021-03-29 15:04:50 +01001487}
Finn Williamsb8181f72021-04-07 10:23:21 +01001488
Sadik Armagan1625efc2021-06-10 18:24:34 +01001489TEST_CASE("RefAsyncFP32StridedSlicedMultiThreadedEndToEndTest")
Finn Williamsb8181f72021-04-07 10:23:21 +01001490{
1491 armnn::experimental::StridedSlicedMultiThreadedEndToEndTest<armnn::DataType::Float32>(defaultBackends);
1492}
Keith Davise813d672021-04-22 10:10:34 +01001493
Sadik Armagan1625efc2021-06-10 18:24:34 +01001494TEST_CASE("RefAsyncFP32StridedSlicedScheduledMultiThreadedEndToEndTest")
Keith Davise813d672021-04-22 10:10:34 +01001495{
Kevin Mayb4b3ac92021-05-21 16:42:21 +01001496 armnn::experimental::StridedSlicedEndToEndTest<armnn::DataType::Float32>(defaultBackends, 3);
Keith Davise813d672021-04-22 10:10:34 +01001497}
Ferran Balaguerdcaa6102019-08-21 13:28:38 +01001498#endif
1499
Sadik Armagan1625efc2021-06-10 18:24:34 +01001500}