blob: e1c2e2f2a742349b8afd9eb1c522f606776d9f23 [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>
Sadik Armagan062e0e92019-10-14 10:31:43 +010022#include <backendsCommon/test/InstanceNormalizationEndToEndTestImpl.hpp>
Sadik Armagan20bea002019-10-16 09:29:38 +010023#include <backendsCommon/test/LogSoftmaxEndToEndTestImpl.hpp>
Nikhil Raj747f5862019-07-19 15:15:23 +010024#include <backendsCommon/test/PreluEndToEndTestImpl.hpp>
James Conroy0800bf52020-05-14 12:46:44 +010025#include <backendsCommon/test/QLstmEndToEndTestImpl.hpp>
Teresa Charlin2e3f4d22020-07-29 14:29:20 +010026#include <backendsCommon/test/RankEndToEndTestImpl.hpp>
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +010027#include <backendsCommon/test/ResizeEndToEndTestImpl.hpp>
Keith Davis9515c7e2019-06-21 09:33:59 +010028#include <backendsCommon/test/SpaceToDepthEndToEndTestImpl.hpp>
Narumol Prangnawarat0be43382019-05-27 11:29:59 +010029#include <backendsCommon/test/SplitterEndToEndTestImpl.hpp>
Mike Kelly386ff1a2021-03-29 15:04:50 +010030#include <backendsCommon/test/StridedSliceAsyncEndToEndTest.hpp>
Aron Virginas-Tar98180ef2019-06-26 15:02:47 +010031#include <backendsCommon/test/TransposeConvolution2dEndToEndTestImpl.hpp>
Aron Virginas-Tar70104002018-10-24 15:33:28 +010032
Sadik Armagan1625efc2021-06-10 18:24:34 +010033#include <doctest/doctest.h>
Aron Virginas-Tar70104002018-10-24 15:33:28 +010034
Sadik Armagan1625efc2021-06-10 18:24:34 +010035TEST_SUITE("RefEndToEnd")
36{
narpra01b9546cf2018-11-20 15:21:28 +000037std::vector<armnn::BackendId> defaultBackends = {armnn::Compute::CpuRef};
38
Aron Virginas-Tar8fccd862019-09-09 11:22:56 +010039// Abs
Sadik Armagan1625efc2021-06-10 18:24:34 +010040TEST_CASE("RefAbsEndToEndTestFloat32")
Aron Virginas-Tar8fccd862019-09-09 11:22:56 +010041{
josh minor4a3c6102020-01-06 16:40:46 -060042 std::vector<float> expectedOutput =
43 {
44 1.f, 1.f, 1.f, 1.f, 5.f, 5.f, 5.f, 5.f,
45 3.f, 3.f, 3.f, 3.f, 4.f, 4.f, 4.f, 4.f
46 };
47
48 ElementwiseUnarySimpleEndToEnd<armnn::DataType::Float32>(defaultBackends,
49 UnaryOperation::Abs,
50 expectedOutput);
Aron Virginas-Tar8fccd862019-09-09 11:22:56 +010051}
52
Sadik Armagan1625efc2021-06-10 18:24:34 +010053TEST_CASE("RefAbsEndToEndTestUint8")
Aron Virginas-Tar8fccd862019-09-09 11:22:56 +010054{
josh minor4a3c6102020-01-06 16:40:46 -060055 // Note the expected output will be implicitly quantized by the below test function
56 std::vector<float> expectedOutput =
57 {
58 1.f, 1.f, 1.f, 1.f, 5.f, 5.f, 5.f, 5.f,
59 3.f, 3.f, 3.f, 3.f, 4.f, 4.f, 4.f, 4.f
60 };
61
62 ElementwiseUnarySimpleEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends,
63 UnaryOperation::Abs,
64 expectedOutput);
Aron Virginas-Tar8fccd862019-09-09 11:22:56 +010065}
66
Sadik Armagan1625efc2021-06-10 18:24:34 +010067TEST_CASE("RefAbsEndToEndTestInt16")
Aron Virginas-Tar8fccd862019-09-09 11:22:56 +010068{
josh minor4a3c6102020-01-06 16:40:46 -060069 // Note the expected output will be implicitly quantized by the below test function
70 std::vector<float> expectedOutput =
71 {
72 1.f, 1.f, 1.f, 1.f, 5.f, 5.f, 5.f, 5.f,
73 3.f, 3.f, 3.f, 3.f, 4.f, 4.f, 4.f, 4.f
74 };
75
76 ElementwiseUnarySimpleEndToEnd<armnn::DataType::QSymmS16>(defaultBackends,
77 UnaryOperation::Abs,
78 expectedOutput);
Aron Virginas-Tar8fccd862019-09-09 11:22:56 +010079}
80
81// Constant
Sadik Armagan1625efc2021-06-10 18:24:34 +010082TEST_CASE("ConstantUsage_Ref_Float32")
Aron Virginas-Tar70104002018-10-24 15:33:28 +010083{
Sadik Armagan1625efc2021-06-10 18:24:34 +010084 CHECK(ConstantUsageFloat32Test(defaultBackends));
Aron Virginas-Tar70104002018-10-24 15:33:28 +010085}
86
Sadik Armagan1625efc2021-06-10 18:24:34 +010087TEST_CASE("ConstantUsage_Ref_Uint8")
Aron Virginas-Tar70104002018-10-24 15:33:28 +010088{
Sadik Armagan1625efc2021-06-10 18:24:34 +010089 CHECK(ConstantUsageUint8Test(defaultBackends));
Aron Virginas-Tar70104002018-10-24 15:33:28 +010090}
91
Sadik Armagan1625efc2021-06-10 18:24:34 +010092TEST_CASE("Unsigned8")
Aron Virginas-Tar70104002018-10-24 15:33:28 +010093{
94 using namespace armnn;
95
96 // Create runtime in which test will run
97 armnn::IRuntime::CreationOptions options;
98 armnn::IRuntimePtr runtime(armnn::IRuntime::Create(options));
99
100 // Builds up the structure of the network.
101 armnn::INetworkPtr net(INetwork::Create());
102
103 IConnectableLayer* input = net->AddInputLayer(0, "input");
104 IConnectableLayer* softmax = net->AddSoftmaxLayer(SoftmaxDescriptor(), "softmax");
105 IConnectableLayer* output = net->AddOutputLayer(0, "output");
106
107 input->GetOutputSlot(0).Connect(softmax->GetInputSlot(0));
108 softmax->GetOutputSlot(0).Connect(output->GetInputSlot(0));
109
110 // Sets the tensors in the network.
Derek Lambertif90c56d2020-01-10 17:14:08 +0000111 TensorInfo inputTensorInfo(TensorShape({1, 5}), DataType::QAsymmU8);
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100112 inputTensorInfo.SetQuantizationOffset(100);
113 inputTensorInfo.SetQuantizationScale(10000.0f);
114 input->GetOutputSlot(0).SetTensorInfo(inputTensorInfo);
115
Derek Lambertif90c56d2020-01-10 17:14:08 +0000116 TensorInfo outputTensorInfo(TensorShape({1, 5}), DataType::QAsymmU8);
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100117 outputTensorInfo.SetQuantizationOffset(0);
118 outputTensorInfo.SetQuantizationScale(1.0f/255.0f);
119 softmax->GetOutputSlot(0).SetTensorInfo(outputTensorInfo);
120
121 // optimize the network
narpra01b9546cf2018-11-20 15:21:28 +0000122 IOptimizedNetworkPtr optNet = Optimize(*net, defaultBackends, runtime->GetDeviceSpec());
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100123
124 // Loads it into the runtime.
125 NetworkId netId;
126 auto error = runtime->LoadNetwork(netId, std::move(optNet));
Sadik Armagan1625efc2021-06-10 18:24:34 +0100127 CHECK(error == Status::Success);
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100128
129 // Creates structures for input & output.
130 std::vector<uint8_t> inputData
131 {
132 1, 10, 3, 200, 5 // Some inputs - one of which is sufficiently larger than the others to saturate softmax.
133 };
134 std::vector<uint8_t> outputData(5);
135
Cathal Corbett5b8093c2021-10-22 11:12:07 +0100136 TensorInfo inputTensorInfo2 = runtime->GetInputTensorInfo(netId, 0);
137 inputTensorInfo2.SetConstant(true);
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100138 armnn::InputTensors inputTensors
139 {
Cathal Corbett5b8093c2021-10-22 11:12:07 +0100140 {0, armnn::ConstTensor(inputTensorInfo2, inputData.data())}
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100141 };
142 armnn::OutputTensors outputTensors
143 {
144 {0, armnn::Tensor(runtime->GetOutputTensorInfo(netId, 0), outputData.data())}
145 };
146
147 // Does the inference.
148 runtime->EnqueueWorkload(netId, inputTensors, outputTensors);
149
150 // Checks the results.
Sadik Armagan1625efc2021-06-10 18:24:34 +0100151 CHECK(outputData[0] == 0);
152 CHECK(outputData[1] == 0);
153 CHECK(outputData[2] == 0);
154 CHECK(outputData[3] == 255); // softmax has been saturated.
155 CHECK(outputData[4] == 0);
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100156}
157
Sadik Armagan1625efc2021-06-10 18:24:34 +0100158TEST_CASE("TrivialAdd")
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100159{
160 // This test was designed to match "AddTwo" in android nn/runtime/test/TestTrivialModel.cpp.
161
162 using namespace armnn;
163
164 // Create runtime in which test will run
165 armnn::IRuntime::CreationOptions options;
166 armnn::IRuntimePtr runtime(armnn::IRuntime::Create(options));
167
168 // Builds up the structure of the network.
169 armnn::INetworkPtr net(INetwork::Create());
170
171 IConnectableLayer* input1 = net->AddInputLayer(0);
172 IConnectableLayer* input2 = net->AddInputLayer(1);
173 IConnectableLayer* add = net->AddAdditionLayer();
174 IConnectableLayer* output = net->AddOutputLayer(0);
175
176 input1->GetOutputSlot(0).Connect(add->GetInputSlot(0));
177 input2->GetOutputSlot(0).Connect(add->GetInputSlot(1));
178 add->GetOutputSlot(0).Connect(output->GetInputSlot(0));
179
180 // Sets the tensors in the network.
181 TensorInfo tensorInfo(TensorShape({3, 4}), DataType::Float32);
182 input1->GetOutputSlot(0).SetTensorInfo(tensorInfo);
183 input2->GetOutputSlot(0).SetTensorInfo(tensorInfo);
184 add->GetOutputSlot(0).SetTensorInfo(tensorInfo);
185
186 // optimize the network
narpra01b9546cf2018-11-20 15:21:28 +0000187 IOptimizedNetworkPtr optNet = Optimize(*net, defaultBackends, runtime->GetDeviceSpec());
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100188
189 // Loads it into the runtime.
190 NetworkId netId;
191 runtime->LoadNetwork(netId, std::move(optNet));
192
193 // Creates structures for input & output - matching android nn test.
194 std::vector<float> input1Data
195 {
196 1.f, 2.f, 3.f, 4.f, 5.f, 6.f, 7.f, 8.f, 9.f, 10.f, 11.f, 12.f
197 };
198 std::vector<float> input2Data
199 {
200 100.f, 200.f, 300.f, 400.f, 500.f, 600.f, 700.f, 800.f, 900.f, 1000.f, 1100.f, 1200.f
201 };
202 std::vector<float> outputData(12);
203
Cathal Corbett5b8093c2021-10-22 11:12:07 +0100204 TensorInfo inputTensorInfo = runtime->GetInputTensorInfo(netId, 0);
205 inputTensorInfo.SetConstant(true);
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100206 InputTensors inputTensors
207 {
Cathal Corbett5b8093c2021-10-22 11:12:07 +0100208 {0,armnn::ConstTensor(inputTensorInfo, input1Data.data())},
209 {1,armnn::ConstTensor(inputTensorInfo, input2Data.data())}
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100210 };
211 OutputTensors outputTensors
212 {
213 {0,armnn::Tensor(runtime->GetOutputTensorInfo(netId, 0), outputData.data())}
214 };
215
216 // Does the inference.
217 runtime->EnqueueWorkload(netId, inputTensors, outputTensors);
218
219 // Checks the results
Sadik Armagan1625efc2021-06-10 18:24:34 +0100220 CHECK(outputData[0] == 101);
221 CHECK(outputData[1] == 202);
222 CHECK(outputData[2] == 303);
223 CHECK(outputData[3] == 404);
224 CHECK(outputData[4] == 505);
225 CHECK(outputData[5] == 606);
226 CHECK(outputData[6] == 707);
227 CHECK(outputData[7] == 808);
228 CHECK(outputData[8] == 909);
229 CHECK(outputData[9] == 1010);
230 CHECK(outputData[10] == 1111);
231 CHECK(outputData[11] == 1212);
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100232}
233
Sadik Armagan1625efc2021-06-10 18:24:34 +0100234TEST_CASE("MultipleOutputs")
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100235{
236 using namespace armnn;
237
238 // Create runtime in which test will run
239 armnn::IRuntime::CreationOptions options;
240 armnn::IRuntimePtr runtime(armnn::IRuntime::Create(options));
241
242 // Builds up the structure of the network.
243 INetworkPtr net(INetwork::Create());
244
245 IConnectableLayer* input = net->AddInputLayer(0);
246
247 // ReLu1
248 ActivationDescriptor activation1Descriptor;
249 activation1Descriptor.m_Function = ActivationFunction::BoundedReLu;
250 activation1Descriptor.m_A = 1.f;
251 activation1Descriptor.m_B = -1.f;
252 IConnectableLayer* activation1 = net->AddActivationLayer(activation1Descriptor);
253
254 // ReLu6
255 ActivationDescriptor activation2Descriptor;
256 activation2Descriptor.m_Function = ActivationFunction::BoundedReLu;
257 activation2Descriptor.m_A = 6.0f;
258 IConnectableLayer* activation2 = net->AddActivationLayer(activation2Descriptor);
259
260 // BoundedReLu(min=2, max=5)
261 ActivationDescriptor activation3Descriptor;
262 activation3Descriptor.m_Function = ActivationFunction::BoundedReLu;
263 activation3Descriptor.m_A = 5.0f;
264 activation3Descriptor.m_B = 2.0f;
265 IConnectableLayer* activation3 = net->AddActivationLayer(activation3Descriptor);
266
267 IConnectableLayer* output1 = net->AddOutputLayer(0);
268 IConnectableLayer* output2 = net->AddOutputLayer(1);
269 IConnectableLayer* output3 = net->AddOutputLayer(2);
270
271 input->GetOutputSlot(0).Connect(activation1->GetInputSlot(0));
272 input->GetOutputSlot(0).Connect(activation2->GetInputSlot(0));
273 input->GetOutputSlot(0).Connect(activation3->GetInputSlot(0));
274
275 activation1->GetOutputSlot(0).Connect(output1->GetInputSlot(0));
276 activation2->GetOutputSlot(0).Connect(output2->GetInputSlot(0));
277 activation3->GetOutputSlot(0).Connect(output3->GetInputSlot(0));
278
279 // Sets the tensors in the network.
280 TensorInfo tensorInfo(TensorShape({ 10 }), DataType::Float32);
281 input->GetOutputSlot(0).SetTensorInfo(tensorInfo);
282 activation1->GetOutputSlot(0).SetTensorInfo(tensorInfo);
283 activation2->GetOutputSlot(0).SetTensorInfo(tensorInfo);
284 activation3->GetOutputSlot(0).SetTensorInfo(tensorInfo);
285
286 // optimize the network
narpra01b9546cf2018-11-20 15:21:28 +0000287 IOptimizedNetworkPtr optNet = Optimize(*net, defaultBackends, runtime->GetDeviceSpec());
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100288
289 // Loads it into the runtime.
290 NetworkId netId;
291 runtime->LoadNetwork(netId, std::move(optNet));
292
293 // Creates structures for input & output.
294 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 };
295
296 std::vector<float> output1Data(inputData.size());
297 std::vector<float> output2Data(inputData.size());
298 std::vector<float> output3Data(inputData.size());
299
Cathal Corbett5b8093c2021-10-22 11:12:07 +0100300 TensorInfo inputTensorInfo = runtime->GetInputTensorInfo(netId, 0);
301 inputTensorInfo.SetConstant(true);
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100302 InputTensors inputTensors
303 {
Cathal Corbett5b8093c2021-10-22 11:12:07 +0100304 {0,armnn::ConstTensor(inputTensorInfo, inputData.data())}
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100305 };
306 OutputTensors outputTensors
307 {
308 {0,armnn::Tensor(runtime->GetOutputTensorInfo(netId, 0), output1Data.data())},
309 {1,armnn::Tensor(runtime->GetOutputTensorInfo(netId, 1), output2Data.data())},
310 {2,armnn::Tensor(runtime->GetOutputTensorInfo(netId, 2), output3Data.data())}
311 };
312
313 // Does the inference.
314 runtime->EnqueueWorkload(netId, inputTensors, outputTensors);
315
316 // Checks the results.
Sadik Armagan1625efc2021-06-10 18:24:34 +0100317 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
318 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
319 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 +0100320}
321
Sadik Armagan1625efc2021-06-10 18:24:34 +0100322TEST_CASE("TrivialMin")
Éanna Ó Catháin20e58802018-12-04 10:29:06 +0000323{
324 using namespace armnn;
325
326 // Create runtime in which test will run
327 armnn::IRuntime::CreationOptions options;
328 armnn::IRuntimePtr runtime(armnn::IRuntime::Create(options));
329
330 // Builds up the structure of the network.
331 armnn::INetworkPtr net(INetwork::Create());
332
333 IConnectableLayer* input1 = net->AddInputLayer(0);
334 IConnectableLayer* input2 = net->AddInputLayer(1);
335 IConnectableLayer* min = net->AddMinimumLayer();
336 IConnectableLayer* output = net->AddOutputLayer(0);
337
338 input1->GetOutputSlot(0).Connect(min->GetInputSlot(0));
339 input2->GetOutputSlot(0).Connect(min->GetInputSlot(1));
340 min->GetOutputSlot(0).Connect(output->GetInputSlot(0));
341
342 // Sets the tensors in the network.
343 TensorInfo tensorInfo(TensorShape({1, 1, 1, 4}), DataType::Float32);
344 input1->GetOutputSlot(0).SetTensorInfo(tensorInfo);
345 input2->GetOutputSlot(0).SetTensorInfo(tensorInfo);
346 min->GetOutputSlot(0).SetTensorInfo(tensorInfo);
347
348 // optimize the network
349 IOptimizedNetworkPtr optNet = Optimize(*net, defaultBackends, runtime->GetDeviceSpec());
350
351 // Loads it into the runtime.
352 NetworkId netId;
353 runtime->LoadNetwork(netId, std::move(optNet));
354
355 // Creates structures for input & output - matching android nn test.
356 std::vector<float> input1Data
357 {
358 1.0f, 2.0f, 3.0f, 4.0f
359 };
360 std::vector<float> input2Data
361 {
362 2.0f, 1.0f, 5.0f, 2.0f
363 };
364 std::vector<float> outputData(4);
365
Cathal Corbett5b8093c2021-10-22 11:12:07 +0100366 TensorInfo inputTensorInfo = runtime->GetInputTensorInfo(netId, 0);
367 inputTensorInfo.SetConstant(true);
Éanna Ó Catháin20e58802018-12-04 10:29:06 +0000368 InputTensors inputTensors
369 {
Cathal Corbett5b8093c2021-10-22 11:12:07 +0100370 {0,armnn::ConstTensor(inputTensorInfo, input1Data.data())},
371 {1,armnn::ConstTensor(inputTensorInfo, input2Data.data())}
Éanna Ó Catháin20e58802018-12-04 10:29:06 +0000372 };
373 OutputTensors outputTensors
374 {
375 {0,armnn::Tensor(runtime->GetOutputTensorInfo(netId, 0), outputData.data())}
376 };
377
378 // Does the inference.
379 runtime->EnqueueWorkload(netId, inputTensors, outputTensors);
380
381 // Checks the results
Sadik Armagan1625efc2021-06-10 18:24:34 +0100382 CHECK(outputData[0] == 1);
383 CHECK(outputData[1] == 1);
384 CHECK(outputData[2] == 3);
385 CHECK(outputData[3] == 2);
Éanna Ó Catháin20e58802018-12-04 10:29:06 +0000386}
387
Sadik Armagan1625efc2021-06-10 18:24:34 +0100388TEST_CASE("RefEqualSimpleEndToEndTest")
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000389{
kevmay012b4d88e2019-01-24 14:05:09 +0000390 const std::vector<uint8_t> expectedOutput({ 1, 1, 1, 1, 0, 0, 0, 0,
391 0, 0, 0, 0, 1, 1, 1, 1 });
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000392
Aron Virginas-Tar77bfb5e2019-10-16 17:45:38 +0100393 ComparisonSimpleEndToEnd<armnn::DataType::Float32>(defaultBackends,
394 ComparisonOperation::Equal,
395 expectedOutput);
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000396}
397
Sadik Armagan1625efc2021-06-10 18:24:34 +0100398TEST_CASE("RefGreaterSimpleEndToEndTest")
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000399{
kevmay012b4d88e2019-01-24 14:05:09 +0000400 const std::vector<uint8_t> expectedOutput({ 0, 0, 0, 0, 1, 1, 1, 1,
401 0, 0, 0, 0, 0, 0, 0, 0 });
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000402
Aron Virginas-Tar77bfb5e2019-10-16 17:45:38 +0100403 ComparisonSimpleEndToEnd<armnn::DataType::Float32>(defaultBackends,
404 ComparisonOperation::Greater,
405 expectedOutput);
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000406}
407
Sadik Armagan1625efc2021-06-10 18:24:34 +0100408TEST_CASE("RefEqualSimpleEndToEndUint8Test")
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000409{
410 const std::vector<uint8_t> expectedOutput({ 1, 1, 1, 1, 0, 0, 0, 0,
411 0, 0, 0, 0, 1, 1, 1, 1 });
412
Derek Lambertif90c56d2020-01-10 17:14:08 +0000413 ComparisonSimpleEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends,
Aron Virginas-Tar77bfb5e2019-10-16 17:45:38 +0100414 ComparisonOperation::Equal,
415 expectedOutput);
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000416}
417
Sadik Armagan1625efc2021-06-10 18:24:34 +0100418TEST_CASE("RefGreaterSimpleEndToEndUint8Test")
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000419{
420 const std::vector<uint8_t> expectedOutput({ 0, 0, 0, 0, 1, 1, 1, 1,
421 0, 0, 0, 0, 0, 0, 0, 0 });
422
Derek Lambertif90c56d2020-01-10 17:14:08 +0000423 ComparisonSimpleEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends,
Aron Virginas-Tar77bfb5e2019-10-16 17:45:38 +0100424 ComparisonOperation::Greater,
425 expectedOutput);
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000426}
427
Sadik Armagan1625efc2021-06-10 18:24:34 +0100428TEST_CASE("RefEqualBroadcastEndToEndTest")
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000429{
kevmay012b4d88e2019-01-24 14:05:09 +0000430 const std::vector<uint8_t> expectedOutput({ 1, 0, 1, 1, 0, 0,
431 0, 0, 0, 0, 0, 0 });
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000432
Aron Virginas-Tar77bfb5e2019-10-16 17:45:38 +0100433 ComparisonBroadcastEndToEnd<armnn::DataType::Float32>(defaultBackends,
434 ComparisonOperation::Equal,
435 expectedOutput);
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000436}
437
Sadik Armagan1625efc2021-06-10 18:24:34 +0100438TEST_CASE("RefGreaterBroadcastEndToEndTest")
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000439{
kevmay012b4d88e2019-01-24 14:05:09 +0000440 const std::vector<uint8_t> expectedOutput({ 0, 1, 0, 0, 0, 1,
441 1, 1, 1, 1, 1, 1 });
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000442
Aron Virginas-Tar77bfb5e2019-10-16 17:45:38 +0100443 ComparisonBroadcastEndToEnd<armnn::DataType::Float32>(defaultBackends,
444 ComparisonOperation::Greater,
445 expectedOutput);
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000446}
447
Sadik Armagan1625efc2021-06-10 18:24:34 +0100448TEST_CASE("RefEqualBroadcastEndToEndUint8Test")
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000449{
450 const std::vector<uint8_t > expectedOutput({ 1, 0, 1, 1, 0, 0,
451 0, 0, 0, 0, 0, 0 });
452
Derek Lambertif90c56d2020-01-10 17:14:08 +0000453 ComparisonBroadcastEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends,
Aron Virginas-Tar77bfb5e2019-10-16 17:45:38 +0100454 ComparisonOperation::Equal,
455 expectedOutput);
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000456}
457
Sadik Armagan1625efc2021-06-10 18:24:34 +0100458TEST_CASE("RefGreaterBroadcastEndToEndUint8Test")
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000459{
460 const std::vector<uint8_t> expectedOutput({ 0, 1, 0, 0, 0, 1,
461 1, 1, 1, 1, 1, 1 });
462
Derek Lambertif90c56d2020-01-10 17:14:08 +0000463 ComparisonBroadcastEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends,
Aron Virginas-Tar77bfb5e2019-10-16 17:45:38 +0100464 ComparisonOperation::Greater,
465 expectedOutput);
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000466}
Éanna Ó Catháin20e58802018-12-04 10:29:06 +0000467
Sadik Armagan1625efc2021-06-10 18:24:34 +0100468TEST_CASE("RefBatchToSpaceNdEndToEndFloat32NHWCTest")
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100469{
470 BatchToSpaceNdEndToEnd<armnn::DataType::Float32>(defaultBackends, armnn::DataLayout::NHWC);
471}
472
Sadik Armagan1625efc2021-06-10 18:24:34 +0100473TEST_CASE("RefBatchToSpaceNdEndToEndUint8NHWCTest")
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100474{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000475 BatchToSpaceNdEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, armnn::DataLayout::NHWC);
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100476}
477
Sadik Armagan1625efc2021-06-10 18:24:34 +0100478TEST_CASE("RefBatchToSpaceNdEndToEndQSymm16NHWCTest")
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100479{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000480 BatchToSpaceNdEndToEnd<armnn::DataType::QSymmS16>(defaultBackends, armnn::DataLayout::NHWC);
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100481}
482
Sadik Armagan1625efc2021-06-10 18:24:34 +0100483TEST_CASE("RefBatchToSpaceNdEndToEndFloat32NCHWTest")
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100484{
485 BatchToSpaceNdEndToEnd<armnn::DataType::Float32>(defaultBackends, armnn::DataLayout::NCHW);
486}
487
Sadik Armagan1625efc2021-06-10 18:24:34 +0100488TEST_CASE("RefBatchToSpaceNdEndToEndUint8NCHWTest")
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100489{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000490 BatchToSpaceNdEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, armnn::DataLayout::NCHW);
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100491}
492
Sadik Armagan1625efc2021-06-10 18:24:34 +0100493TEST_CASE("RefBatchToSpaceNdEndToEndQSymm16NCHWTest")
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100494{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000495 BatchToSpaceNdEndToEnd<armnn::DataType::QSymmS16>(defaultBackends, armnn::DataLayout::NCHW);
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100496}
497
Sadik Armagan1625efc2021-06-10 18:24:34 +0100498TEST_CASE("RefBatchToSpaceNdEndToEndComplexFloat32NHWCTest")
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100499{
500 BatchToSpaceNdComplexEndToEnd<armnn::DataType::Float32>(defaultBackends, armnn::DataLayout::NHWC);
501}
502
Sadik Armagan1625efc2021-06-10 18:24:34 +0100503TEST_CASE("RefBatchToSpaceNdEndToEndComplexUint8NHWCTest")
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100504{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000505 BatchToSpaceNdComplexEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, armnn::DataLayout::NHWC);
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100506}
507
Sadik Armagan1625efc2021-06-10 18:24:34 +0100508TEST_CASE("RefBatchToSpaceNdEndToEndComplexQSymm16NHWCTest")
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100509{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000510 BatchToSpaceNdComplexEndToEnd<armnn::DataType::QSymmS16>(defaultBackends, armnn::DataLayout::NHWC);
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100511}
512
Sadik Armagan1625efc2021-06-10 18:24:34 +0100513TEST_CASE("RefBatchToSpaceNdEndToEndComplexFloat32NCHWTest")
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100514{
515 BatchToSpaceNdComplexEndToEnd<armnn::DataType::Float32>(defaultBackends, armnn::DataLayout::NCHW);
516}
517
Sadik Armagan1625efc2021-06-10 18:24:34 +0100518TEST_CASE("RefBatchToSpaceNdEndToEndComplexUint8NCHWTest")
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100519{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000520 BatchToSpaceNdComplexEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, armnn::DataLayout::NCHW);
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100521}
522
Sadik Armagan1625efc2021-06-10 18:24:34 +0100523TEST_CASE("RefBatchToSpaceNdEndToEndComplexQSymm16NCHWTest")
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100524{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000525 BatchToSpaceNdComplexEndToEnd<armnn::DataType::QSymmS16>(defaultBackends, armnn::DataLayout::NCHW);
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100526}
527
Teresa Charlin43baf502021-09-27 10:10:39 +0100528TEST_CASE("RefChannelShuffleFloatTest")
529{
530 ChannelShuffleEndToEnd<armnn::DataType::Float32>(defaultBackends);
531}
532
533TEST_CASE("RefChannelShuffleUint8Test")
534{
535 ChannelShuffleEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
536}
537
Sadik Armagan1625efc2021-06-10 18:24:34 +0100538TEST_CASE("RefConcatEndToEndDim0Test")
narpra01b9546cf2018-11-20 15:21:28 +0000539{
Jim Flynne242f2d2019-05-22 14:24:13 +0100540 ConcatDim0EndToEnd<armnn::DataType::Float32>(defaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +0000541}
542
Sadik Armagan1625efc2021-06-10 18:24:34 +0100543TEST_CASE("RefConcatEndToEndDim0Uint8Test")
narpra01b9546cf2018-11-20 15:21:28 +0000544{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000545 ConcatDim0EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +0000546}
547
Sadik Armagan1625efc2021-06-10 18:24:34 +0100548TEST_CASE("RefConcatEndToEndDim1Test")
narpra01b9546cf2018-11-20 15:21:28 +0000549{
Jim Flynne242f2d2019-05-22 14:24:13 +0100550 ConcatDim1EndToEnd<armnn::DataType::Float32>(defaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +0000551}
552
Sadik Armagan1625efc2021-06-10 18:24:34 +0100553TEST_CASE("RefConcatEndToEndDim1Uint8Test")
narpra01b9546cf2018-11-20 15:21:28 +0000554{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000555 ConcatDim1EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +0000556}
557
Sadik Armagan1625efc2021-06-10 18:24:34 +0100558TEST_CASE("RefConcatEndToEndDim2Test")
narpra01b9546cf2018-11-20 15:21:28 +0000559{
Jim Flynne242f2d2019-05-22 14:24:13 +0100560 ConcatDim2EndToEnd<armnn::DataType::Float32>(defaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +0000561}
562
Sadik Armagan1625efc2021-06-10 18:24:34 +0100563TEST_CASE("RefConcatEndToEndDim2Uint8Test")
narpra01b9546cf2018-11-20 15:21:28 +0000564{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000565 ConcatDim2EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +0000566}
567
Sadik Armagan1625efc2021-06-10 18:24:34 +0100568TEST_CASE("RefConcatEndToEndDim3Test")
narpra01b9546cf2018-11-20 15:21:28 +0000569{
Jim Flynne242f2d2019-05-22 14:24:13 +0100570 ConcatDim3EndToEnd<armnn::DataType::Float32>(defaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +0000571}
572
Sadik Armagan1625efc2021-06-10 18:24:34 +0100573TEST_CASE("RefConcatEndToEndDim3Uint8Test")
narpra01b9546cf2018-11-20 15:21:28 +0000574{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000575 ConcatDim3EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +0000576}
577
Matthew Sloyan5d7b0a32021-10-18 13:07:49 +0100578TEST_CASE("RefConvolution3dFloat32Test")
579{
580 Convolution3dEndToEnd<armnn::DataType::Float32, armnn::DataType::Float32>(defaultBackends,
581 armnn::DataLayout::NDHWC);
582}
583
584TEST_CASE("RefConvolution3dNcdhwFloat32Test")
585{
586 Convolution3dEndToEnd<armnn::DataType::Float32, armnn::DataType::Float32>(defaultBackends,
587 armnn::DataLayout::NCDHW);
588}
589
590TEST_CASE("RefConvolution3dFloat16Test")
591{
592 Convolution3dEndToEnd<armnn::DataType::Float16, armnn::DataType::Float16>(defaultBackends,
593 armnn::DataLayout::NDHWC);
594}
595
596TEST_CASE("RefConvolution3dUint8Test")
597{
598 Convolution3dEndToEnd<armnn::DataType::QAsymmU8, armnn::DataType::Signed32>(defaultBackends,
599 armnn::DataLayout::NDHWC);
600}
601
602TEST_CASE("RefConvolution3dInt8Test")
603{
604 Convolution3dEndToEnd<armnn::DataType::QAsymmS8, armnn::DataType::Signed32>(defaultBackends,
605 armnn::DataLayout::NDHWC);
606}
607
Sadik Armagan1625efc2021-06-10 18:24:34 +0100608TEST_CASE("RefEluEndToEndTestFloat32")
Jan Eilersbca73e12020-03-11 12:52:46 +0000609{
610 EluEndToEndTest<armnn::DataType::Float32>(defaultBackends);
611}
612
Sadik Armagan1625efc2021-06-10 18:24:34 +0100613TEST_CASE("RefEluEndToEndTestFloat16")
Jan Eilersbca73e12020-03-11 12:52:46 +0000614{
615 EluEndToEndTest<armnn::DataType::Float16>(defaultBackends);
616}
617
Sadik Armagan1625efc2021-06-10 18:24:34 +0100618TEST_CASE("RefEluEndToEndTestBFloat16")
Jan Eilersbca73e12020-03-11 12:52:46 +0000619{
620 EluEndToEndTest<armnn::DataType::BFloat16>(defaultBackends);
621}
622
Sadik Armagan1625efc2021-06-10 18:24:34 +0100623TEST_CASE("RefEluEndToEndTestQAsymmS8")
Jan Eilersbca73e12020-03-11 12:52:46 +0000624{
625 EluEndToEndTest<armnn::DataType::QAsymmS8>(defaultBackends);
626}
627
Sadik Armagan1625efc2021-06-10 18:24:34 +0100628TEST_CASE("RefEluEndToEndTestQAsymmU8")
Jan Eilersbca73e12020-03-11 12:52:46 +0000629{
630 EluEndToEndTest<armnn::DataType::QAsymmU8>(defaultBackends);
631}
632
Sadik Armagan1625efc2021-06-10 18:24:34 +0100633TEST_CASE("RefEluEndToEndTestQSymmS16")
Jan Eilersbca73e12020-03-11 12:52:46 +0000634{
635 EluEndToEndTest<armnn::DataType::QSymmS16>(defaultBackends);
636}
637
Sadik Armagan1625efc2021-06-10 18:24:34 +0100638TEST_CASE("RefFillEndToEndTest")
Teresa Charlin44088502020-07-27 11:27:19 +0100639{
640 FillEndToEnd<armnn::DataType::Float32>(defaultBackends);
641}
642
Sadik Armagan1625efc2021-06-10 18:24:34 +0100643TEST_CASE("RefFillEndToEndTestFloat16")
Teresa Charlin4b10fef2020-07-29 09:36:41 +0100644{
645 FillEndToEnd<armnn::DataType::Float16>(defaultBackends);
646}
Teresa Charlin44088502020-07-27 11:27:19 +0100647
Sadik Armagan1625efc2021-06-10 18:24:34 +0100648TEST_CASE("RefFillEndToEndTestInt32")
Teresa Charlin44088502020-07-27 11:27:19 +0100649{
650 FillEndToEnd<armnn::DataType::Signed32>(defaultBackends);
651}
652
Matthew Sloyan81beae32021-07-13 19:46:11 +0100653TEST_CASE("RefFullyConnectedEndToEndTestFloat32")
Sadik Armaganf0a6dec2021-03-25 07:46:55 +0000654{
655 FullyConnectedWithDynamicWeightsEndToEnd<armnn::DataType::Float32>(defaultBackends);
656}
657
Matthew Sloyan81beae32021-07-13 19:46:11 +0100658TEST_CASE("RefFullyConnectedEndToEndTestNonConstantWeightsConstantBiasesFloat32")
659{
Cathal Corbettb8cc2b92021-10-08 14:43:11 +0100660 FullyConnectedWithDynamicOrConstantInputsEndToEnd<armnn::DataType::Float32>(defaultBackends, true, true);
Matthew Sloyan81beae32021-07-13 19:46:11 +0100661}
662
663TEST_CASE("RefFullyConnectedEndToEndTestConstantWeightsNonConstantBiasesFloat32")
664{
Cathal Corbettb8cc2b92021-10-08 14:43:11 +0100665 FullyConnectedWithDynamicOrConstantInputsEndToEnd<armnn::DataType::Float32>(defaultBackends, true, false);
Cathal Corbett521032f2021-10-07 11:46:40 +0100666}
667
668TEST_CASE("RefFullyConnectedEndToEndTestConstantWeightsTensorInfoNotSet")
669{
Cathal Corbettb8cc2b92021-10-08 14:43:11 +0100670 FullyConnectedErrorChecking<armnn::DataType::Float32>(defaultBackends, false, true, true, true, false);
671}
672
673TEST_CASE("RefFullyConnectedEndToEndTestWeightsNotConnectedExplicitCheck")
674{
675 FullyConnectedErrorChecking<armnn::DataType::Float32>(defaultBackends, true, true, false, true, true);
676}
677
678TEST_CASE("RefFullyConnectedEndToEndTestBiasNotConnectedExplicitCheck")
679{
680 FullyConnectedErrorChecking<armnn::DataType::Float32>(defaultBackends, true, true, true, false, true);
681}
682
683TEST_CASE("RefFullyConnectedEndToEndTestWeightsAndBiasNotConnected")
684{
685 FullyConnectedErrorChecking<armnn::DataType::Float32>(defaultBackends, false, true, false, false, true);
686}
687
688TEST_CASE("RefFullyConnectedEndToEndTestBiasDisabledConnectBias")
689{
690 FullyConnectedErrorChecking<armnn::DataType::Float32>(defaultBackends, true, false, false, true, true);
Matthew Sloyan81beae32021-07-13 19:46:11 +0100691}
692
Sadik Armagan1625efc2021-06-10 18:24:34 +0100693TEST_CASE("RefGatherFloatTest")
narpra01db2b1602019-01-23 15:23:11 +0000694{
695 GatherEndToEnd<armnn::DataType::Float32>(defaultBackends);
696}
697
Sadik Armagan1625efc2021-06-10 18:24:34 +0100698TEST_CASE("RefGatherUint8Test")
narpra01db2b1602019-01-23 15:23:11 +0000699{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000700 GatherEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
narpra01db2b1602019-01-23 15:23:11 +0000701}
702
Sadik Armagan1625efc2021-06-10 18:24:34 +0100703TEST_CASE("RefGatherInt16Test")
Ellen Norris-Thompsone0dbedf2019-06-24 09:23:38 +0100704{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000705 GatherEndToEnd<armnn::DataType::QSymmS16>(defaultBackends);
Ellen Norris-Thompsone0dbedf2019-06-24 09:23:38 +0100706}
707
Sadik Armagan1625efc2021-06-10 18:24:34 +0100708TEST_CASE("RefGatherMultiDimFloatTest")
narpra01db2b1602019-01-23 15:23:11 +0000709{
710 GatherMultiDimEndToEnd<armnn::DataType::Float32>(defaultBackends);
711}
712
Sadik Armagan1625efc2021-06-10 18:24:34 +0100713TEST_CASE("RefGatherMultiDimUint8Test")
narpra01db2b1602019-01-23 15:23:11 +0000714{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000715 GatherMultiDimEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
narpra01db2b1602019-01-23 15:23:11 +0000716}
717
Sadik Armagan1625efc2021-06-10 18:24:34 +0100718TEST_CASE("RefGatherMultiDimInt16Test")
Ellen Norris-Thompsone0dbedf2019-06-24 09:23:38 +0100719{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000720 GatherMultiDimEndToEnd<armnn::DataType::QSymmS16>(defaultBackends);
Ellen Norris-Thompsone0dbedf2019-06-24 09:23:38 +0100721}
722
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100723// DepthToSpace
Sadik Armagan1625efc2021-06-10 18:24:34 +0100724TEST_CASE("DephtToSpaceEndToEndNchwFloat32")
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100725{
726 DepthToSpaceEndToEnd<armnn::DataType::Float32>(defaultBackends, armnn::DataLayout::NCHW);
727}
728
Sadik Armagan1625efc2021-06-10 18:24:34 +0100729TEST_CASE("DephtToSpaceEndToEndNchwFloat16")
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100730{
731 DepthToSpaceEndToEnd<armnn::DataType::Float16>(defaultBackends, armnn::DataLayout::NCHW);
732}
733
Sadik Armagan1625efc2021-06-10 18:24:34 +0100734TEST_CASE("DephtToSpaceEndToEndNchwUint8")
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100735{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000736 DepthToSpaceEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, armnn::DataLayout::NCHW);
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100737}
738
Sadik Armagan1625efc2021-06-10 18:24:34 +0100739TEST_CASE("DephtToSpaceEndToEndNchwInt16")
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100740{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000741 DepthToSpaceEndToEnd<armnn::DataType::QSymmS16>(defaultBackends, armnn::DataLayout::NCHW);
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100742}
743
Sadik Armagan1625efc2021-06-10 18:24:34 +0100744TEST_CASE("DephtToSpaceEndToEndNhwcFloat32")
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100745{
746 DepthToSpaceEndToEnd<armnn::DataType::Float32>(defaultBackends, armnn::DataLayout::NHWC);
747}
748
Sadik Armagan1625efc2021-06-10 18:24:34 +0100749TEST_CASE("DephtToSpaceEndToEndNhwcFloat16")
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100750{
751 DepthToSpaceEndToEnd<armnn::DataType::Float16>(defaultBackends, armnn::DataLayout::NHWC);
752}
753
Sadik Armagan1625efc2021-06-10 18:24:34 +0100754TEST_CASE("DephtToSpaceEndToEndNhwcUint8")
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100755{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000756 DepthToSpaceEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, armnn::DataLayout::NHWC);
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100757}
758
Sadik Armagan1625efc2021-06-10 18:24:34 +0100759TEST_CASE("DephtToSpaceEndToEndNhwcInt16")
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100760{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000761 DepthToSpaceEndToEnd<armnn::DataType::QSymmS16>(defaultBackends, armnn::DataLayout::NHWC);
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100762}
763
764// Dequantize
Sadik Armagan1625efc2021-06-10 18:24:34 +0100765TEST_CASE("DequantizeEndToEndSimpleTest")
Narumol Prangnawarat8c7324d2019-05-31 16:42:11 +0100766{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000767 DequantizeEndToEndSimple<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawarat8c7324d2019-05-31 16:42:11 +0100768}
769
Sadik Armagan1625efc2021-06-10 18:24:34 +0100770TEST_CASE("DequantizeEndToEndOffsetTest")
Narumol Prangnawarat8c7324d2019-05-31 16:42:11 +0100771{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000772 DequantizeEndToEndOffset<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawarat8c7324d2019-05-31 16:42:11 +0100773}
774
Sadik Armagan1625efc2021-06-10 18:24:34 +0100775TEST_CASE("DequantizeEndToEndSimpleInt16Test")
Narumol Prangnawaratb6441e42019-06-04 11:22:00 +0100776{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000777 DequantizeEndToEndSimple<armnn::DataType::QSymmS16>(defaultBackends);
Narumol Prangnawaratb6441e42019-06-04 11:22:00 +0100778}
779
Sadik Armagan1625efc2021-06-10 18:24:34 +0100780TEST_CASE("DequantizeEndToEndOffsetInt16Test")
Narumol Prangnawaratb6441e42019-06-04 11:22:00 +0100781{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000782 DequantizeEndToEndOffset<armnn::DataType::QSymmS16>(defaultBackends);
Narumol Prangnawaratb6441e42019-06-04 11:22:00 +0100783}
784
Sadik Armagan1625efc2021-06-10 18:24:34 +0100785TEST_CASE("RefDetectionPostProcessRegularNmsTest")
Narumol Prangnawarat6d302bf2019-02-04 11:46:26 +0000786{
787 std::vector<float> boxEncodings({
788 0.0f, 0.0f, 0.0f, 0.0f,
789 0.0f, 1.0f, 0.0f, 0.0f,
790 0.0f, -1.0f, 0.0f, 0.0f,
791 0.0f, 0.0f, 0.0f, 0.0f,
792 0.0f, 1.0f, 0.0f, 0.0f,
793 0.0f, 0.0f, 0.0f, 0.0f
794 });
795 std::vector<float> scores({
796 0.0f, 0.9f, 0.8f,
797 0.0f, 0.75f, 0.72f,
798 0.0f, 0.6f, 0.5f,
799 0.0f, 0.93f, 0.95f,
800 0.0f, 0.5f, 0.4f,
801 0.0f, 0.3f, 0.2f
802 });
803 std::vector<float> anchors({
804 0.5f, 0.5f, 1.0f, 1.0f,
805 0.5f, 0.5f, 1.0f, 1.0f,
806 0.5f, 0.5f, 1.0f, 1.0f,
807 0.5f, 10.5f, 1.0f, 1.0f,
808 0.5f, 10.5f, 1.0f, 1.0f,
809 0.5f, 100.5f, 1.0f, 1.0f
810 });
811 DetectionPostProcessRegularNmsEndToEnd<armnn::DataType::Float32>(defaultBackends, boxEncodings, scores, anchors);
812}
813
814inline void QuantizeData(uint8_t* quant, const float* dequant, const TensorInfo& info)
815{
816 for (size_t i = 0; i < info.GetNumElements(); i++)
817 {
818 quant[i] = armnn::Quantize<uint8_t>(dequant[i], info.GetQuantizationScale(), info.GetQuantizationOffset());
819 }
820}
821
Sadik Armagan1625efc2021-06-10 18:24:34 +0100822TEST_CASE("RefDetectionPostProcessRegularNmsUint8Test")
Narumol Prangnawarat6d302bf2019-02-04 11:46:26 +0000823{
824 armnn::TensorInfo boxEncodingsInfo({ 1, 6, 4 }, armnn::DataType::Float32);
825 armnn::TensorInfo scoresInfo({ 1, 6, 3 }, armnn::DataType::Float32);
826 armnn::TensorInfo anchorsInfo({ 6, 4 }, armnn::DataType::Float32);
827
828 boxEncodingsInfo.SetQuantizationScale(1.0f);
829 boxEncodingsInfo.SetQuantizationOffset(1);
830 scoresInfo.SetQuantizationScale(0.01f);
831 scoresInfo.SetQuantizationOffset(0);
832 anchorsInfo.SetQuantizationScale(0.5f);
833 anchorsInfo.SetQuantizationOffset(0);
834
835 std::vector<float> boxEncodings({
836 0.0f, 0.0f, 0.0f, 0.0f,
837 0.0f, 1.0f, 0.0f, 0.0f,
838 0.0f, -1.0f, 0.0f, 0.0f,
839 0.0f, 0.0f, 0.0f, 0.0f,
840 0.0f, 1.0f, 0.0f, 0.0f,
841 0.0f, 0.0f, 0.0f, 0.0f
842 });
843 std::vector<float> scores({
844 0.0f, 0.9f, 0.8f,
845 0.0f, 0.75f, 0.72f,
846 0.0f, 0.6f, 0.5f,
847 0.0f, 0.93f, 0.95f,
848 0.0f, 0.5f, 0.4f,
849 0.0f, 0.3f, 0.2f
850 });
851 std::vector<float> anchors({
852 0.5f, 0.5f, 1.0f, 1.0f,
853 0.5f, 0.5f, 1.0f, 1.0f,
854 0.5f, 0.5f, 1.0f, 1.0f,
855 0.5f, 10.5f, 1.0f, 1.0f,
856 0.5f, 10.5f, 1.0f, 1.0f,
857 0.5f, 100.5f, 1.0f, 1.0f
858 });
859
860 std::vector<uint8_t> qBoxEncodings(boxEncodings.size(), 0);
861 std::vector<uint8_t> qScores(scores.size(), 0);
862 std::vector<uint8_t> qAnchors(anchors.size(), 0);
863 QuantizeData(qBoxEncodings.data(), boxEncodings.data(), boxEncodingsInfo);
864 QuantizeData(qScores.data(), scores.data(), scoresInfo);
865 QuantizeData(qAnchors.data(), anchors.data(), anchorsInfo);
Derek Lambertif90c56d2020-01-10 17:14:08 +0000866 DetectionPostProcessRegularNmsEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, qBoxEncodings,
Narumol Prangnawarat6d302bf2019-02-04 11:46:26 +0000867 qScores, qAnchors,
868 1.0f, 1, 0.01f, 0, 0.5f, 0);
869}
870
Sadik Armagan1625efc2021-06-10 18:24:34 +0100871TEST_CASE("RefDetectionPostProcessFastNmsTest")
Narumol Prangnawarat6d302bf2019-02-04 11:46:26 +0000872{
873 std::vector<float> boxEncodings({
874 0.0f, 0.0f, 0.0f, 0.0f,
875 0.0f, 1.0f, 0.0f, 0.0f,
876 0.0f, -1.0f, 0.0f, 0.0f,
877 0.0f, 0.0f, 0.0f, 0.0f,
878 0.0f, 1.0f, 0.0f, 0.0f,
879 0.0f, 0.0f, 0.0f, 0.0f
880 });
881 std::vector<float> scores({
882 0.0f, 0.9f, 0.8f,
883 0.0f, 0.75f, 0.72f,
884 0.0f, 0.6f, 0.5f,
885 0.0f, 0.93f, 0.95f,
886 0.0f, 0.5f, 0.4f,
887 0.0f, 0.3f, 0.2f
888 });
889 std::vector<float> anchors({
890 0.5f, 0.5f, 1.0f, 1.0f,
891 0.5f, 0.5f, 1.0f, 1.0f,
892 0.5f, 0.5f, 1.0f, 1.0f,
893 0.5f, 10.5f, 1.0f, 1.0f,
894 0.5f, 10.5f, 1.0f, 1.0f,
895 0.5f, 100.5f, 1.0f, 1.0f
896 });
897 DetectionPostProcessFastNmsEndToEnd<armnn::DataType::Float32>(defaultBackends, boxEncodings, scores, anchors);
898}
899
Sadik Armagan1625efc2021-06-10 18:24:34 +0100900TEST_CASE("RefDetectionPostProcessFastNmsUint8Test")
Narumol Prangnawarat6d302bf2019-02-04 11:46:26 +0000901{
902 armnn::TensorInfo boxEncodingsInfo({ 1, 6, 4 }, armnn::DataType::Float32);
903 armnn::TensorInfo scoresInfo({ 1, 6, 3 }, armnn::DataType::Float32);
904 armnn::TensorInfo anchorsInfo({ 6, 4 }, armnn::DataType::Float32);
905
906 boxEncodingsInfo.SetQuantizationScale(1.0f);
907 boxEncodingsInfo.SetQuantizationOffset(1);
908 scoresInfo.SetQuantizationScale(0.01f);
909 scoresInfo.SetQuantizationOffset(0);
910 anchorsInfo.SetQuantizationScale(0.5f);
911 anchorsInfo.SetQuantizationOffset(0);
912
913 std::vector<float> boxEncodings({
914 0.0f, 0.0f, 0.0f, 0.0f,
915 0.0f, 1.0f, 0.0f, 0.0f,
916 0.0f, -1.0f, 0.0f, 0.0f,
917 0.0f, 0.0f, 0.0f, 0.0f,
918 0.0f, 1.0f, 0.0f, 0.0f,
919 0.0f, 0.0f, 0.0f, 0.0f
920 });
921 std::vector<float> scores({
922 0.0f, 0.9f, 0.8f,
923 0.0f, 0.75f, 0.72f,
924 0.0f, 0.6f, 0.5f,
925 0.0f, 0.93f, 0.95f,
926 0.0f, 0.5f, 0.4f,
927 0.0f, 0.3f, 0.2f
928 });
929 std::vector<float> anchors({
930 0.5f, 0.5f, 1.0f, 1.0f,
931 0.5f, 0.5f, 1.0f, 1.0f,
932 0.5f, 0.5f, 1.0f, 1.0f,
933 0.5f, 10.5f, 1.0f, 1.0f,
934 0.5f, 10.5f, 1.0f, 1.0f,
935 0.5f, 100.5f, 1.0f, 1.0f
936 });
937
938 std::vector<uint8_t> qBoxEncodings(boxEncodings.size(), 0);
939 std::vector<uint8_t> qScores(scores.size(), 0);
940 std::vector<uint8_t> qAnchors(anchors.size(), 0);
941 QuantizeData(qBoxEncodings.data(), boxEncodings.data(), boxEncodingsInfo);
942 QuantizeData(qScores.data(), scores.data(), scoresInfo);
943 QuantizeData(qAnchors.data(), anchors.data(), anchorsInfo);
Derek Lambertif90c56d2020-01-10 17:14:08 +0000944 DetectionPostProcessFastNmsEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, qBoxEncodings,
Narumol Prangnawarat6d302bf2019-02-04 11:46:26 +0000945 qScores, qAnchors,
946 1.0f, 1, 0.01f, 0, 0.5f, 0);
947}
948
Jan Eilersa83af7b2020-03-18 15:58:11 +0000949// HardSwish
Sadik Armagan1625efc2021-06-10 18:24:34 +0100950TEST_CASE("RefHardSwishEndToEndTestFloat32")
Jan Eilersa83af7b2020-03-18 15:58:11 +0000951{
952 HardSwishEndToEndTest<armnn::DataType::Float32>(defaultBackends);
953}
954
Sadik Armagan1625efc2021-06-10 18:24:34 +0100955TEST_CASE("RefHardSwishEndToEndTestFloat16")
Jan Eilersa83af7b2020-03-18 15:58:11 +0000956{
957 HardSwishEndToEndTest<armnn::DataType::Float16>(defaultBackends);
958}
959
Sadik Armagan1625efc2021-06-10 18:24:34 +0100960TEST_CASE("RefHardSwishEndToEndTestBFloat16")
Jan Eilersa83af7b2020-03-18 15:58:11 +0000961{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100962 HardSwishEndToEndTest<armnn::DataType::BFloat16>(defaultBackends);
Jan Eilersa83af7b2020-03-18 15:58:11 +0000963}
964
Sadik Armagan1625efc2021-06-10 18:24:34 +0100965TEST_CASE("RefHardSwishEndToEndTestQAsymmS8")
Jan Eilersa83af7b2020-03-18 15:58:11 +0000966{
967 HardSwishEndToEndTest<armnn::DataType::QAsymmS8>(defaultBackends);
968}
969
Sadik Armagan1625efc2021-06-10 18:24:34 +0100970TEST_CASE("RefHardSwishEndToEndTestQAsymmU8")
Jan Eilersa83af7b2020-03-18 15:58:11 +0000971{
972 HardSwishEndToEndTest<armnn::DataType::QAsymmU8>(defaultBackends);
973}
974
Sadik Armagan1625efc2021-06-10 18:24:34 +0100975TEST_CASE("RefHardSwishEndToEndTestQSymmS16")
Jan Eilersa83af7b2020-03-18 15:58:11 +0000976{
977 HardSwishEndToEndTest<armnn::DataType::QSymmS16>(defaultBackends);
978}
979
Sadik Armagan20bea002019-10-16 09:29:38 +0100980// LogSoftmax
Sadik Armagan1625efc2021-06-10 18:24:34 +0100981TEST_CASE("RefLogSoftmaxEndToEndTest")
Sadik Armagan20bea002019-10-16 09:29:38 +0100982{
983 LogSoftmaxEndToEndTest(defaultBackends);
984}
985
Sadik Armagan1625efc2021-06-10 18:24:34 +0100986TEST_CASE("RefPreluEndToEndTestFloat32")
Nikhil Raj747f5862019-07-19 15:15:23 +0100987{
988 PreluEndToEndNegativeTest<armnn::DataType::Float32>(defaultBackends);
989}
990
Sadik Armagan1625efc2021-06-10 18:24:34 +0100991TEST_CASE("RefPreluEndToEndTestUint8")
Nikhil Raj747f5862019-07-19 15:15:23 +0100992{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000993 PreluEndToEndPositiveTest<armnn::DataType::QAsymmU8>(defaultBackends);
Nikhil Raj747f5862019-07-19 15:15:23 +0100994}
995
Sadik Armagan1625efc2021-06-10 18:24:34 +0100996TEST_CASE("RefPreluEndToEndTestQSymm16")
Nikhil Raj747f5862019-07-19 15:15:23 +0100997{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000998 PreluEndToEndPositiveTest<armnn::DataType::QSymmS16>(defaultBackends);
Nikhil Raj747f5862019-07-19 15:15:23 +0100999}
1000
Sadik Armagan1625efc2021-06-10 18:24:34 +01001001TEST_CASE("RefSpaceToDepthNhwcEndToEndTest1")
Keith Davis9515c7e2019-06-21 09:33:59 +01001002{
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +01001003 SpaceToDepthNhwcEndToEndTest1(defaultBackends);
Keith Davis9515c7e2019-06-21 09:33:59 +01001004}
1005
Sadik Armagan1625efc2021-06-10 18:24:34 +01001006TEST_CASE("RefSpaceToDepthNchwEndToEndTest1")
Keith Davis9515c7e2019-06-21 09:33:59 +01001007{
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +01001008 SpaceToDepthNchwEndToEndTest1(defaultBackends);
Keith Davis9515c7e2019-06-21 09:33:59 +01001009}
1010
Sadik Armagan1625efc2021-06-10 18:24:34 +01001011TEST_CASE("RefSpaceToDepthNhwcEndToEndTest2")
Keith Davis9515c7e2019-06-21 09:33:59 +01001012{
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +01001013 SpaceToDepthNhwcEndToEndTest2(defaultBackends);
Keith Davis9515c7e2019-06-21 09:33:59 +01001014}
1015
Sadik Armagan1625efc2021-06-10 18:24:34 +01001016TEST_CASE("RefSpaceToDepthNchwEndToEndTest2")
Keith Davis9515c7e2019-06-21 09:33:59 +01001017{
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +01001018 SpaceToDepthNchwEndToEndTest2(defaultBackends);
Keith Davis9515c7e2019-06-21 09:33:59 +01001019}
1020
Sadik Armagan1625efc2021-06-10 18:24:34 +01001021TEST_CASE("RefSplitter1dEndToEndTest")
Narumol Prangnawarat0be43382019-05-27 11:29:59 +01001022{
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001023 Splitter1dEndToEnd<armnn::DataType::Float32>(defaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +01001024}
1025
Sadik Armagan1625efc2021-06-10 18:24:34 +01001026TEST_CASE("RefSplitter1dEndToEndUint8Test")
Narumol Prangnawarat0be43382019-05-27 11:29:59 +01001027{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001028 Splitter1dEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +01001029}
1030
Sadik Armagan1625efc2021-06-10 18:24:34 +01001031TEST_CASE("RefSplitter2dDim0EndToEndTest")
Narumol Prangnawarat0be43382019-05-27 11:29:59 +01001032{
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001033 Splitter2dDim0EndToEnd<armnn::DataType::Float32>(defaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +01001034}
1035
Sadik Armagan1625efc2021-06-10 18:24:34 +01001036TEST_CASE("RefSplitter2dDim1EndToEndTest")
Narumol Prangnawarat0be43382019-05-27 11:29:59 +01001037{
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001038 Splitter2dDim1EndToEnd<armnn::DataType::Float32>(defaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +01001039}
1040
Sadik Armagan1625efc2021-06-10 18:24:34 +01001041TEST_CASE("RefSplitter2dDim0EndToEndUint8Test")
Narumol Prangnawarat0be43382019-05-27 11:29:59 +01001042{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001043 Splitter2dDim0EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +01001044}
1045
Sadik Armagan1625efc2021-06-10 18:24:34 +01001046TEST_CASE("RefSplitter2dDim1EndToEndUint8Test")
Narumol Prangnawarat0be43382019-05-27 11:29:59 +01001047{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001048 Splitter2dDim1EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +01001049}
1050
Sadik Armagan1625efc2021-06-10 18:24:34 +01001051TEST_CASE("RefSplitter3dDim0EndToEndTest")
Narumol Prangnawarat0be43382019-05-27 11:29:59 +01001052{
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001053 Splitter3dDim0EndToEnd<armnn::DataType::Float32>(defaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +01001054}
1055
Sadik Armagan1625efc2021-06-10 18:24:34 +01001056TEST_CASE("RefSplitter3dDim1EndToEndTest")
Narumol Prangnawarat0be43382019-05-27 11:29:59 +01001057{
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001058 Splitter3dDim1EndToEnd<armnn::DataType::Float32>(defaultBackends);
1059}
1060
Sadik Armagan1625efc2021-06-10 18:24:34 +01001061TEST_CASE("RefSplitter3dDim2EndToEndTest")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001062{
1063 Splitter3dDim2EndToEnd<armnn::DataType::Float32>(defaultBackends);
1064}
1065
Sadik Armagan1625efc2021-06-10 18:24:34 +01001066TEST_CASE("RefSplitter3dDim0EndToEndUint8Test")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001067{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001068 Splitter3dDim0EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001069}
1070
Sadik Armagan1625efc2021-06-10 18:24:34 +01001071TEST_CASE("RefSplitter3dDim1EndToEndUint8Test")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001072{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001073 Splitter3dDim1EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001074}
1075
Sadik Armagan1625efc2021-06-10 18:24:34 +01001076TEST_CASE("RefSplitter3dDim2EndToEndUint8Test")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001077{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001078 Splitter3dDim2EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001079}
1080
Sadik Armagan1625efc2021-06-10 18:24:34 +01001081TEST_CASE("RefSplitter4dDim0EndToEndTest")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001082{
1083 Splitter4dDim0EndToEnd<armnn::DataType::Float32>(defaultBackends);
1084}
1085
Sadik Armagan1625efc2021-06-10 18:24:34 +01001086TEST_CASE("RefSplitter4dDim1EndToEndTest")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001087{
1088 Splitter4dDim1EndToEnd<armnn::DataType::Float32>(defaultBackends);
1089}
1090
Sadik Armagan1625efc2021-06-10 18:24:34 +01001091TEST_CASE("RefSplitter4dDim2EndToEndTest")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001092{
1093 Splitter4dDim2EndToEnd<armnn::DataType::Float32>(defaultBackends);
1094}
1095
Sadik Armagan1625efc2021-06-10 18:24:34 +01001096TEST_CASE("RefSplitter4dDim3EndToEndTest")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001097{
1098 Splitter4dDim3EndToEnd<armnn::DataType::Float32>(defaultBackends);
1099}
1100
Sadik Armagan1625efc2021-06-10 18:24:34 +01001101TEST_CASE("RefSplitter4dDim0EndToEndUint8Test")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001102{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001103 Splitter4dDim0EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001104}
1105
Sadik Armagan1625efc2021-06-10 18:24:34 +01001106TEST_CASE("RefSplitter4dDim1EndToEndUint8Test")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001107{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001108 Splitter4dDim1EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001109}
1110
Sadik Armagan1625efc2021-06-10 18:24:34 +01001111TEST_CASE("RefSplitter4dDim2EndToEndUint8Test")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001112{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001113 Splitter4dDim2EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001114}
1115
Sadik Armagan1625efc2021-06-10 18:24:34 +01001116TEST_CASE("RefSplitter4dDim3EndToEndUint8Test")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001117{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001118 Splitter4dDim3EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +01001119}
1120
Aron Virginas-Tar98180ef2019-06-26 15:02:47 +01001121// TransposeConvolution2d
Sadik Armagan1625efc2021-06-10 18:24:34 +01001122TEST_CASE("RefTransposeConvolution2dEndToEndFloatNchwTest")
Aron Virginas-Tar98180ef2019-06-26 15:02:47 +01001123{
1124 TransposeConvolution2dEndToEnd<armnn::DataType::Float32, armnn::DataType::Float32>(
1125 defaultBackends, armnn::DataLayout::NCHW);
1126}
1127
Sadik Armagan1625efc2021-06-10 18:24:34 +01001128TEST_CASE("RefTransposeConvolution2dEndToEndUint8NchwTest")
Aron Virginas-Tar98180ef2019-06-26 15:02:47 +01001129{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001130 TransposeConvolution2dEndToEnd<armnn::DataType::QAsymmU8, armnn::DataType::Signed32>(
Aron Virginas-Tar98180ef2019-06-26 15:02:47 +01001131 defaultBackends, armnn::DataLayout::NCHW);
1132}
1133
Sadik Armagan1625efc2021-06-10 18:24:34 +01001134TEST_CASE("RefTransposeConvolution2dEndToEndInt16NchwTest")
Aron Virginas-Tar98180ef2019-06-26 15:02:47 +01001135{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001136 TransposeConvolution2dEndToEnd<armnn::DataType::QSymmS16, armnn::DataType::Signed32>(
Aron Virginas-Tar98180ef2019-06-26 15:02:47 +01001137 defaultBackends, armnn::DataLayout::NCHW);
1138}
1139
Sadik Armagan1625efc2021-06-10 18:24:34 +01001140TEST_CASE("RefTransposeConvolution2dEndToEndFloatNhwcTest")
Aron Virginas-Tar98180ef2019-06-26 15:02:47 +01001141{
1142 TransposeConvolution2dEndToEnd<armnn::DataType::Float32, armnn::DataType::Float32>(
1143 defaultBackends, armnn::DataLayout::NHWC);
1144}
1145
Sadik Armagan1625efc2021-06-10 18:24:34 +01001146TEST_CASE("RefTransposeConvolution2dEndToEndUint8NhwcTest")
Aron Virginas-Tar98180ef2019-06-26 15:02:47 +01001147{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001148 TransposeConvolution2dEndToEnd<armnn::DataType::QAsymmU8, armnn::DataType::Signed32>(
Aron Virginas-Tar98180ef2019-06-26 15:02:47 +01001149 defaultBackends, armnn::DataLayout::NHWC);
1150}
1151
Sadik Armagan1625efc2021-06-10 18:24:34 +01001152TEST_CASE("RefTransposeConvolution2dEndToEndInt16NhwcTest")
Aron Virginas-Tar98180ef2019-06-26 15:02:47 +01001153{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001154 TransposeConvolution2dEndToEnd<armnn::DataType::QSymmS16, armnn::DataType::Signed32>(
Aron Virginas-Tar98180ef2019-06-26 15:02:47 +01001155 defaultBackends, armnn::DataLayout::NHWC);
1156}
1157
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001158// Resize Bilinear
Sadik Armagan1625efc2021-06-10 18:24:34 +01001159TEST_CASE("RefResizeBilinearEndToEndFloatNchwTest")
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001160{
1161 ResizeBilinearEndToEnd<armnn::DataType::Float32>(defaultBackends, armnn::DataLayout::NCHW);
1162}
1163
Sadik Armagan1625efc2021-06-10 18:24:34 +01001164TEST_CASE("RefResizeBilinearEndToEndUint8NchwTest")
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001165{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001166 ResizeBilinearEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, armnn::DataLayout::NCHW);
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001167}
1168
Sadik Armagan1625efc2021-06-10 18:24:34 +01001169TEST_CASE("RefResizeBilinearEndToEndInt16NchwTest")
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001170{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001171 ResizeBilinearEndToEnd<armnn::DataType::QSymmS16>(defaultBackends, armnn::DataLayout::NCHW);
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001172}
1173
Sadik Armagan1625efc2021-06-10 18:24:34 +01001174TEST_CASE("RefResizeBilinearEndToEndFloatNhwcTest")
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001175{
1176 ResizeBilinearEndToEnd<armnn::DataType::Float32>(defaultBackends, armnn::DataLayout::NHWC);
1177}
1178
Sadik Armagan1625efc2021-06-10 18:24:34 +01001179TEST_CASE("RefResizeBilinearEndToEndUint8NhwcTest")
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001180{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001181 ResizeBilinearEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, armnn::DataLayout::NHWC);
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001182}
1183
Sadik Armagan1625efc2021-06-10 18:24:34 +01001184TEST_CASE("RefResizeBilinearEndToEndInt16NhwcTest")
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001185{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001186 ResizeBilinearEndToEnd<armnn::DataType::QSymmS16>(defaultBackends, armnn::DataLayout::NHWC);
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001187}
1188
1189// Resize NearestNeighbor
Sadik Armagan1625efc2021-06-10 18:24:34 +01001190TEST_CASE("RefResizeNearestNeighborEndToEndFloatNchwTest")
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001191{
1192 ResizeNearestNeighborEndToEnd<armnn::DataType::Float32>(defaultBackends, armnn::DataLayout::NCHW);
1193}
1194
Sadik Armagan1625efc2021-06-10 18:24:34 +01001195TEST_CASE("RefResizeNearestNeighborEndToEndUint8NchwTest")
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001196{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001197 ResizeNearestNeighborEndToEnd<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("RefResizeNearestNeighborEndToEndInt16NchwTest")
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001201{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001202 ResizeNearestNeighborEndToEnd<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("RefResizeNearestNeighborEndToEndFloatNhwcTest")
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001206{
1207 ResizeNearestNeighborEndToEnd<armnn::DataType::Float32>(defaultBackends, armnn::DataLayout::NHWC);
1208}
1209
Sadik Armagan1625efc2021-06-10 18:24:34 +01001210TEST_CASE("RefResizeNearestNeighborEndToEndUint8NhwcTest")
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001211{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001212 ResizeNearestNeighborEndToEnd<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("RefResizeNearestNeighborEndToEndInt16NhwcTest")
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001216{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001217 ResizeNearestNeighborEndToEnd<armnn::DataType::QSymmS16>(defaultBackends, armnn::DataLayout::NHWC);
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001218}
1219
Sadik Armagan062e0e92019-10-14 10:31:43 +01001220// InstanceNormalization
Sadik Armagan1625efc2021-06-10 18:24:34 +01001221TEST_CASE("RefInstanceNormalizationNhwcEndToEndTest1")
Sadik Armagan062e0e92019-10-14 10:31:43 +01001222{
1223 InstanceNormalizationNhwcEndToEndTest1(defaultBackends);
1224}
1225
Sadik Armagan1625efc2021-06-10 18:24:34 +01001226TEST_CASE("RefInstanceNormalizationNchwEndToEndTest1")
Sadik Armagan062e0e92019-10-14 10:31:43 +01001227{
1228 InstanceNormalizationNchwEndToEndTest1(defaultBackends);
1229}
1230
Sadik Armagan1625efc2021-06-10 18:24:34 +01001231TEST_CASE("RefInstanceNormalizationNhwcEndToEndTest2")
Sadik Armagan062e0e92019-10-14 10:31:43 +01001232{
1233 InstanceNormalizationNhwcEndToEndTest2(defaultBackends);
1234}
1235
Sadik Armagan1625efc2021-06-10 18:24:34 +01001236TEST_CASE("RefInstanceNormalizationNchwEndToEndTest2")
Sadik Armagan062e0e92019-10-14 10:31:43 +01001237{
1238 InstanceNormalizationNchwEndToEndTest2(defaultBackends);
1239}
1240
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001241// ArgMinMax
Sadik Armagan1625efc2021-06-10 18:24:34 +01001242TEST_CASE("RefArgMaxSimpleTest")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001243{
1244 ArgMaxEndToEndSimple<armnn::DataType::Float32>(defaultBackends);
1245}
1246
Sadik Armagan1625efc2021-06-10 18:24:34 +01001247TEST_CASE("RefArgMaxSimpleUint8Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001248{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001249 ArgMaxEndToEndSimple<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001250}
1251
Sadik Armagan1625efc2021-06-10 18:24:34 +01001252TEST_CASE("RefArgMinSimpleTest")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001253{
1254 ArgMinEndToEndSimple<armnn::DataType::Float32>(defaultBackends);
1255}
1256
Sadik Armagan1625efc2021-06-10 18:24:34 +01001257TEST_CASE("RefArgMinSimpleUint8Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001258{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001259 ArgMinEndToEndSimple<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001260}
1261
Sadik Armagan1625efc2021-06-10 18:24:34 +01001262TEST_CASE("RefArgMaxAxis0Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001263{
1264 ArgMaxAxis0EndToEnd<armnn::DataType::Float32>(defaultBackends);
1265}
1266
Sadik Armagan1625efc2021-06-10 18:24:34 +01001267TEST_CASE("RefArgMaxAxis0Uint8Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001268{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001269 ArgMaxAxis0EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001270}
1271
Sadik Armagan1625efc2021-06-10 18:24:34 +01001272TEST_CASE("RefArgMinAxis0Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001273{
1274 ArgMinAxis0EndToEnd<armnn::DataType::Float32>(defaultBackends);
1275}
1276
Sadik Armagan1625efc2021-06-10 18:24:34 +01001277TEST_CASE("RefArgMinAxis0Uint8Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001278{
1279
Derek Lambertif90c56d2020-01-10 17:14:08 +00001280 ArgMinAxis0EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001281}
1282
Sadik Armagan1625efc2021-06-10 18:24:34 +01001283TEST_CASE("RefArgMaxAxis1Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001284{
1285 ArgMaxAxis1EndToEnd<armnn::DataType::Float32>(defaultBackends);
1286}
1287
Sadik Armagan1625efc2021-06-10 18:24:34 +01001288TEST_CASE("RefArgMaxAxis1Uint8Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001289{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001290 ArgMaxAxis1EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001291}
1292
Sadik Armagan1625efc2021-06-10 18:24:34 +01001293TEST_CASE("RefArgMinAxis1Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001294{
1295 ArgMinAxis1EndToEnd<armnn::DataType::Float32>(defaultBackends);
1296}
1297
Sadik Armagan1625efc2021-06-10 18:24:34 +01001298TEST_CASE("RefArgMinAxis1Uint8Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001299{
1300
Derek Lambertif90c56d2020-01-10 17:14:08 +00001301 ArgMinAxis1EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001302}
1303
Sadik Armagan1625efc2021-06-10 18:24:34 +01001304TEST_CASE("RefArgMaxAxis2Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001305{
1306 ArgMaxAxis2EndToEnd<armnn::DataType::Float32>(defaultBackends);
1307}
1308
Sadik Armagan1625efc2021-06-10 18:24:34 +01001309TEST_CASE("RefArgMaxAxis2Uint8Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001310{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001311 ArgMaxAxis2EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001312}
1313
Sadik Armagan1625efc2021-06-10 18:24:34 +01001314TEST_CASE("RefArgMinAxis2Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001315{
1316 ArgMinAxis2EndToEnd<armnn::DataType::Float32>(defaultBackends);
1317}
1318
Sadik Armagan1625efc2021-06-10 18:24:34 +01001319TEST_CASE("RefArgMinAxis2Uint8Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001320{
1321
Derek Lambertif90c56d2020-01-10 17:14:08 +00001322 ArgMinAxis2EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001323}
1324
Sadik Armagan1625efc2021-06-10 18:24:34 +01001325TEST_CASE("RefArgMaxAxis3Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001326{
1327 ArgMaxAxis3EndToEnd<armnn::DataType::Float32>(defaultBackends);
1328}
1329
Sadik Armagan1625efc2021-06-10 18:24:34 +01001330TEST_CASE("RefArgMaxAxis3Uint8Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001331{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001332 ArgMaxAxis3EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001333}
1334
Sadik Armagan1625efc2021-06-10 18:24:34 +01001335TEST_CASE("RefArgMinAxis3Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001336{
1337 ArgMinAxis3EndToEnd<armnn::DataType::Float32>(defaultBackends);
1338}
1339
Sadik Armagan1625efc2021-06-10 18:24:34 +01001340TEST_CASE("RefArgMinAxis3Uint8Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001341{
1342
Derek Lambertif90c56d2020-01-10 17:14:08 +00001343 ArgMinAxis3EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001344}
1345
Sadik Armagan1625efc2021-06-10 18:24:34 +01001346TEST_CASE("RefQLstmEndToEndTest")
James Conroy0800bf52020-05-14 12:46:44 +01001347{
1348 QLstmEndToEnd(defaultBackends);
1349}
1350
Sadik Armagan1625efc2021-06-10 18:24:34 +01001351TEST_CASE("RefRankEndToEndTest")
Teresa Charlin2e3f4d22020-07-29 14:29:20 +01001352{
1353 RankEndToEnd<armnn::DataType::Float32>(defaultBackends);
1354}
1355
Sadik Armagan1625efc2021-06-10 18:24:34 +01001356TEST_CASE("RefRankEndToEndTestFloat16")
Teresa Charlin2e3f4d22020-07-29 14:29:20 +01001357{
1358 RankEndToEnd<armnn::DataType::Float16>(defaultBackends);
1359}
1360
Sadik Armagan1625efc2021-06-10 18:24:34 +01001361TEST_CASE("RefRankEndToEndTestInt32")
Teresa Charlin2e3f4d22020-07-29 14:29:20 +01001362{
1363 RankEndToEnd<armnn::DataType::Signed32>(defaultBackends);
1364}
1365
Sadik Armagan1625efc2021-06-10 18:24:34 +01001366TEST_CASE("RefRankEndToEndTestQAsymmS8")
Teresa Charlin2e3f4d22020-07-29 14:29:20 +01001367{
1368 RankEndToEnd<armnn::DataType::QAsymmS8>(defaultBackends);
1369}
1370
Sadik Armagan1625efc2021-06-10 18:24:34 +01001371TEST_CASE("RefRankEndToEndTestQSymmS16")
Teresa Charlin2e3f4d22020-07-29 14:29:20 +01001372{
1373 RankEndToEnd<armnn::DataType::QSymmS16>(defaultBackends);
1374}
1375
Sadik Armagan1625efc2021-06-10 18:24:34 +01001376TEST_CASE("RefRankEndToEndTestQSymmS8")
Teresa Charlin2e3f4d22020-07-29 14:29:20 +01001377{
1378 RankEndToEnd<armnn::DataType::QSymmS8>(defaultBackends);
1379}
1380
David Monahan646bc8a2022-01-31 14:29:14 +00001381TEST_CASE("RefForceImportWithAlignedBuffersEndToEndTest")
Narumol Prangnawarate2af6f42022-01-28 17:59:18 +00001382{
David Monahan646bc8a2022-01-31 14:29:14 +00001383 ForceImportWithAlignedBuffersEndToEndTest(defaultBackends);
1384}
Narumol Prangnawarate2af6f42022-01-28 17:59:18 +00001385
David Monahan646bc8a2022-01-31 14:29:14 +00001386TEST_CASE("RefForceImportWithMisalignedInputBuffersEndToEndTest")
1387{
1388 ForceImportWithMisalignedInputBuffersEndToEndTest(defaultBackends);
1389}
Narumol Prangnawarate2af6f42022-01-28 17:59:18 +00001390
David Monahan646bc8a2022-01-31 14:29:14 +00001391TEST_CASE("RefForceImportWithMisalignedOutputBuffersEndToEndTest")
1392{
1393 ForceImportWithMisalignedOutputBuffersEndToEndTest(defaultBackends);
1394}
Narumol Prangnawarate2af6f42022-01-28 17:59:18 +00001395
David Monahan646bc8a2022-01-31 14:29:14 +00001396TEST_CASE("RefForceImportWithMisalignedInputAndOutputBuffersEndToEndTest")
1397{
1398 ForceImportWithMisalignedInputAndOutputBuffersEndToEndTest(defaultBackends);
Narumol Prangnawarate2af6f42022-01-28 17:59:18 +00001399}
1400
David Monahan16829712022-02-03 17:04:59 +00001401TEST_CASE("RefForceImportRepeatedInferencesEndToEndTest")
1402{
1403 ForceImportRepeatedInferencesEndToEndTest(defaultBackends);
1404}
1405
1406TEST_CASE("RefForceImportRepeatedInferencesInvertedEndToEndTest")
1407{
1408 ForceImportRepeatedInferencesInvertedEndToEndTest(defaultBackends);
1409}
1410
Ferran Balaguerdcaa6102019-08-21 13:28:38 +01001411#if !defined(__ANDROID__)
1412// Only run these tests on non Android platforms
Sadik Armagan1625efc2021-06-10 18:24:34 +01001413TEST_CASE("RefImportNonAlignedPointerTest")
Ferran Balaguerdcaa6102019-08-21 13:28:38 +01001414{
David Monahan4f1e8e42019-09-04 09:22:10 +01001415 ImportNonAlignedInputPointerTest(defaultBackends);
1416}
1417
Sadik Armagan1625efc2021-06-10 18:24:34 +01001418TEST_CASE("RefExportNonAlignedPointerTest")
David Monahan4f1e8e42019-09-04 09:22:10 +01001419{
Ferran Balaguer83239f92019-09-19 11:49:25 +01001420 ExportNonAlignedOutputPointerTest(defaultBackends);
Ferran Balaguerdcaa6102019-08-21 13:28:38 +01001421}
1422
Sadik Armagan1625efc2021-06-10 18:24:34 +01001423TEST_CASE("RefImportAlignedPointerTest")
Ferran Balaguerdcaa6102019-08-21 13:28:38 +01001424{
1425 ImportAlignedPointerTest(defaultBackends);
1426}
1427
Sadik Armagan1625efc2021-06-10 18:24:34 +01001428TEST_CASE("RefImportOnlyWorkload")
Ferran Balaguer83239f92019-09-19 11:49:25 +01001429{
1430 ImportOnlyWorkload(defaultBackends);
1431}
1432
Sadik Armagan1625efc2021-06-10 18:24:34 +01001433TEST_CASE("RefExportOnlyWorkload")
Ferran Balaguer83239f92019-09-19 11:49:25 +01001434{
1435 ExportOnlyWorkload(defaultBackends);
1436}
1437
Sadik Armagan1625efc2021-06-10 18:24:34 +01001438TEST_CASE("RefImportAndExportWorkload")
Ferran Balaguer83239f92019-09-19 11:49:25 +01001439{
1440 ImportAndExportWorkload(defaultBackends);
1441}
1442
Sadik Armagan1625efc2021-06-10 18:24:34 +01001443TEST_CASE("RefExportOutputWithSeveralOutputSlotConnectionsTest")
Ferran Balaguer83239f92019-09-19 11:49:25 +01001444{
1445 ExportOutputWithSeveralOutputSlotConnectionsTest(defaultBackends);
1446}
1447
Sadik Armagan1625efc2021-06-10 18:24:34 +01001448TEST_CASE("RefStridedSliceInvalidSliceEndToEndTest")
David Monahan0a99a142020-03-13 07:52:54 +00001449{
1450 StridedSliceInvalidSliceEndToEndTest(defaultBackends);
1451}
1452
Sadik Armagan1625efc2021-06-10 18:24:34 +01001453TEST_CASE("RefThreadSafeFP32StridedSlicedEndToEndTest")
Mike Kelly386ff1a2021-03-29 15:04:50 +01001454{
Kevin Mayb4b3ac92021-05-21 16:42:21 +01001455 armnn::experimental::StridedSlicedEndToEndTest<armnn::DataType::Float32>(defaultBackends, 1);
Mike Kelly386ff1a2021-03-29 15:04:50 +01001456}
Finn Williamsb8181f72021-04-07 10:23:21 +01001457
Sadik Armagan1625efc2021-06-10 18:24:34 +01001458TEST_CASE("RefAsyncFP32StridedSlicedMultiThreadedEndToEndTest")
Finn Williamsb8181f72021-04-07 10:23:21 +01001459{
1460 armnn::experimental::StridedSlicedMultiThreadedEndToEndTest<armnn::DataType::Float32>(defaultBackends);
1461}
Keith Davise813d672021-04-22 10:10:34 +01001462
Sadik Armagan1625efc2021-06-10 18:24:34 +01001463TEST_CASE("RefAsyncFP32StridedSlicedScheduledMultiThreadedEndToEndTest")
Keith Davise813d672021-04-22 10:10:34 +01001464{
Kevin Mayb4b3ac92021-05-21 16:42:21 +01001465 armnn::experimental::StridedSlicedEndToEndTest<armnn::DataType::Float32>(defaultBackends, 3);
Keith Davise813d672021-04-22 10:10:34 +01001466}
Ferran Balaguerdcaa6102019-08-21 13:28:38 +01001467#endif
1468
Sadik Armagan1625efc2021-06-10 18:24:34 +01001469}