blob: 78852bc6454b7ca4e503ed08c86317371e6b8abd [file] [log] [blame]
Aron Virginas-Tar70104002018-10-24 15:33:28 +01001//
Teresa Charlinc17a35f2023-01-12 14:13:09 +00002// Copyright © 2017-2023 Arm Ltd and Contributors. All rights reserved.
Aron Virginas-Tar70104002018-10-24 15:33:28 +01003// SPDX-License-Identifier: MIT
4//
5
Aron Virginas-Tarc9cc8042018-11-01 16:15:57 +00006#include <backendsCommon/test/EndToEndTestImpl.hpp>
Narumol Prangnawarat6d302bf2019-02-04 11:46:26 +00007
Jan Eilersbca73e12020-03-11 12:52:46 +00008#include <backendsCommon/test/ActivationEndToEndTestImpl.hpp>
Ryan OShea3c2795a2022-11-03 17:51:52 +00009#include <backendsCommon/test/AdditionEndToEndTestImpl.hpp>
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +000010#include <backendsCommon/test/ArgMinMaxEndToEndTestImpl.hpp>
Francis Murtaghe24e3cd2019-06-25 14:41:55 +010011#include <backendsCommon/test/BatchToSpaceNdEndToEndTestImpl.hpp>
Teresa Charlina38da592022-10-31 22:09:23 +000012#include <backendsCommon/test/BatchMatMulEndToEndTestImpl.hpp>
Idriss Chaouch98e383e2023-08-28 14:28:31 +010013#include <backendsCommon/test/BroadcastToEndToEndTestImpl.hpp>
Teresa Charlin43baf502021-09-27 10:10:39 +010014#include <backendsCommon/test/ChannelShuffleEndToEndTestImpl.hpp>
Aron Virginas-Tar77bfb5e2019-10-16 17:45:38 +010015#include <backendsCommon/test/ComparisonEndToEndTestImpl.hpp>
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +010016#include <backendsCommon/test/ConcatEndToEndTestImpl.hpp>
Matthew Sloyanc5fe6e72022-11-25 16:10:00 +000017#include <backendsCommon/test/Convolution2dEndToEndTestImpl.hpp>
Matthew Sloyan5d7b0a32021-10-18 13:07:49 +010018#include <backendsCommon/test/Convolution3dEndToEndTestImpl.hpp>
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +010019#include <backendsCommon/test/DepthToSpaceEndToEndTestImpl.hpp>
Narumol Prangnawarat8c7324d2019-05-31 16:42:11 +010020#include <backendsCommon/test/DequantizeEndToEndTestImpl.hpp>
Aron Virginas-Tar00d306e2019-08-28 18:08:46 +010021#include <backendsCommon/test/DetectionPostProcessEndToEndTestImpl.hpp>
Mike Kelly3ec30772023-03-08 13:47:17 +000022#include <backendsCommon/test/ElementwiseBinaryEndToEndTestImpl.hpp>
josh minor4a3c6102020-01-06 16:40:46 -060023#include <backendsCommon/test/ElementwiseUnaryEndToEndTestImpl.hpp>
Teresa Charlin44088502020-07-27 11:27:19 +010024#include <backendsCommon/test/FillEndToEndTestImpl.hpp>
Sadik Armaganf0a6dec2021-03-25 07:46:55 +000025#include <backendsCommon/test/FullyConnectedEndToEndTestImpl.hpp>
narpra01db2b1602019-01-23 15:23:11 +000026#include <backendsCommon/test/GatherEndToEndTestImpl.hpp>
Teresa Charlinb2d3ec52022-04-12 22:07:09 +010027#include <backendsCommon/test/GatherNdEndToEndTestImpl.hpp>
Sadik Armagan062e0e92019-10-14 10:31:43 +010028#include <backendsCommon/test/InstanceNormalizationEndToEndTestImpl.hpp>
Sadik Armagan20bea002019-10-16 09:29:38 +010029#include <backendsCommon/test/LogSoftmaxEndToEndTestImpl.hpp>
Nikhil Raj747f5862019-07-19 15:15:23 +010030#include <backendsCommon/test/PreluEndToEndTestImpl.hpp>
James Conroy0800bf52020-05-14 12:46:44 +010031#include <backendsCommon/test/QLstmEndToEndTestImpl.hpp>
Teresa Charlinca5a23a2023-12-15 14:20:47 +000032#include <backendsCommon/test/QuantizationEndToEndTestImpl.hpp>
Teresa Charlin2e3f4d22020-07-29 14:29:20 +010033#include <backendsCommon/test/RankEndToEndTestImpl.hpp>
Teresa Charlinc17a35f2023-01-12 14:13:09 +000034#include <backendsCommon/test/ReduceEndToEndTestImpl.hpp>
35#include <backendsCommon/test/ReshapeEndToEndTestImpl.hpp>
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +010036#include <backendsCommon/test/ResizeEndToEndTestImpl.hpp>
Declan-ARM1bf56cd2023-07-20 17:32:57 +010037#include <backendsCommon/test/ReverseV2EndToEndTestImpl.hpp>
Ryan OShea980446b2023-06-08 16:23:28 +010038#include <backendsCommon/test/SliceEndToEndTestImpl.hpp>
Keith Davis9515c7e2019-06-21 09:33:59 +010039#include <backendsCommon/test/SpaceToDepthEndToEndTestImpl.hpp>
Narumol Prangnawarat0be43382019-05-27 11:29:59 +010040#include <backendsCommon/test/SplitterEndToEndTestImpl.hpp>
Mike Kelly386ff1a2021-03-29 15:04:50 +010041#include <backendsCommon/test/StridedSliceAsyncEndToEndTest.hpp>
Mike Kelly4cc341c2023-07-07 15:43:06 +010042#include <backendsCommon/test/SubgraphUtilsTest.hpp>
Cian McGriskin160edb32023-07-25 14:15:45 +010043#include <backendsCommon/test/TileEndToEndTestImpl.hpp>
Aron Virginas-Tar98180ef2019-06-26 15:02:47 +010044#include <backendsCommon/test/TransposeConvolution2dEndToEndTestImpl.hpp>
Teresa Charlin6bc85252022-12-06 20:43:06 +000045#include <backendsCommon/test/TransposeEndToEndTestImpl.hpp>
Aron Virginas-Tar70104002018-10-24 15:33:28 +010046
Sadik Armagan1625efc2021-06-10 18:24:34 +010047#include <doctest/doctest.h>
Aron Virginas-Tar70104002018-10-24 15:33:28 +010048
Sadik Armagan1625efc2021-06-10 18:24:34 +010049TEST_SUITE("RefEndToEnd")
50{
narpra01b9546cf2018-11-20 15:21:28 +000051std::vector<armnn::BackendId> defaultBackends = {armnn::Compute::CpuRef};
52
David Monahand7fca092023-01-12 14:53:34 +000053// ElementwiseUnary
Aron Virginas-Tar8fccd862019-09-09 11:22:56 +010054// Abs
Sadik Armagan1625efc2021-06-10 18:24:34 +010055TEST_CASE("RefAbsEndToEndTestFloat32")
Aron Virginas-Tar8fccd862019-09-09 11:22:56 +010056{
josh minor4a3c6102020-01-06 16:40:46 -060057 ElementwiseUnarySimpleEndToEnd<armnn::DataType::Float32>(defaultBackends,
David Monahand7fca092023-01-12 14:53:34 +000058 UnaryOperation::Abs);
Aron Virginas-Tar8fccd862019-09-09 11:22:56 +010059}
60
Sadik Armagan1625efc2021-06-10 18:24:34 +010061TEST_CASE("RefAbsEndToEndTestUint8")
Aron Virginas-Tar8fccd862019-09-09 11:22:56 +010062{
josh minor4a3c6102020-01-06 16:40:46 -060063 ElementwiseUnarySimpleEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends,
David Monahand7fca092023-01-12 14:53:34 +000064 UnaryOperation::Abs);
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 ElementwiseUnarySimpleEndToEnd<armnn::DataType::QSymmS16>(defaultBackends,
David Monahand7fca092023-01-12 14:53:34 +000070 UnaryOperation::Abs);
71}
72
73// Rsqrt
74TEST_CASE("RefRsqrtEndToEndTestFloat32")
75{
76 ElementwiseUnarySimpleEndToEnd<armnn::DataType::Float32>(defaultBackends,
77 UnaryOperation::Rsqrt);
78}
79
80TEST_CASE("RefRsqrtEndToEndTestUint8")
81{
82 ElementwiseUnarySimpleEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends,
83 UnaryOperation::Rsqrt);
84}
85
86TEST_CASE("RefRsqrtEndToEndTestInt16")
87{
88 ElementwiseUnarySimpleEndToEnd<armnn::DataType::QSymmS16>(defaultBackends,
89 UnaryOperation::Rsqrt);
Aron Virginas-Tar8fccd862019-09-09 11:22:56 +010090}
91
Ryan OShea3c2795a2022-11-03 17:51:52 +000092// Addition
93TEST_CASE("RefAdditionEndtoEndFloat32")
94{
95 AdditionEndToEnd<armnn::DataType::Float32>(defaultBackends);
96}
97
98TEST_CASE("RefAdditionEndtoEndUint8")
99{
100 AdditionEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
101}
102
Aron Virginas-Tar8fccd862019-09-09 11:22:56 +0100103// Constant
Sadik Armagan1625efc2021-06-10 18:24:34 +0100104TEST_CASE("ConstantUsage_Ref_Float32")
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100105{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100106 CHECK(ConstantUsageFloat32Test(defaultBackends));
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100107}
108
Sadik Armagan1625efc2021-06-10 18:24:34 +0100109TEST_CASE("ConstantUsage_Ref_Uint8")
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100110{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100111 CHECK(ConstantUsageUint8Test(defaultBackends));
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100112}
113
Sadik Armagan1625efc2021-06-10 18:24:34 +0100114TEST_CASE("Unsigned8")
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100115{
116 using namespace armnn;
117
118 // Create runtime in which test will run
119 armnn::IRuntime::CreationOptions options;
120 armnn::IRuntimePtr runtime(armnn::IRuntime::Create(options));
121
122 // Builds up the structure of the network.
123 armnn::INetworkPtr net(INetwork::Create());
124
125 IConnectableLayer* input = net->AddInputLayer(0, "input");
126 IConnectableLayer* softmax = net->AddSoftmaxLayer(SoftmaxDescriptor(), "softmax");
127 IConnectableLayer* output = net->AddOutputLayer(0, "output");
128
129 input->GetOutputSlot(0).Connect(softmax->GetInputSlot(0));
130 softmax->GetOutputSlot(0).Connect(output->GetInputSlot(0));
131
132 // Sets the tensors in the network.
Derek Lambertif90c56d2020-01-10 17:14:08 +0000133 TensorInfo inputTensorInfo(TensorShape({1, 5}), DataType::QAsymmU8);
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100134 inputTensorInfo.SetQuantizationOffset(100);
135 inputTensorInfo.SetQuantizationScale(10000.0f);
136 input->GetOutputSlot(0).SetTensorInfo(inputTensorInfo);
137
Derek Lambertif90c56d2020-01-10 17:14:08 +0000138 TensorInfo outputTensorInfo(TensorShape({1, 5}), DataType::QAsymmU8);
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100139 outputTensorInfo.SetQuantizationOffset(0);
140 outputTensorInfo.SetQuantizationScale(1.0f/255.0f);
141 softmax->GetOutputSlot(0).SetTensorInfo(outputTensorInfo);
142
143 // optimize the network
narpra01b9546cf2018-11-20 15:21:28 +0000144 IOptimizedNetworkPtr optNet = Optimize(*net, defaultBackends, runtime->GetDeviceSpec());
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100145
146 // Loads it into the runtime.
147 NetworkId netId;
148 auto error = runtime->LoadNetwork(netId, std::move(optNet));
Sadik Armagan1625efc2021-06-10 18:24:34 +0100149 CHECK(error == Status::Success);
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100150
151 // Creates structures for input & output.
152 std::vector<uint8_t> inputData
153 {
154 1, 10, 3, 200, 5 // Some inputs - one of which is sufficiently larger than the others to saturate softmax.
155 };
156 std::vector<uint8_t> outputData(5);
157
Cathal Corbett5b8093c2021-10-22 11:12:07 +0100158 TensorInfo inputTensorInfo2 = runtime->GetInputTensorInfo(netId, 0);
159 inputTensorInfo2.SetConstant(true);
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100160 armnn::InputTensors inputTensors
161 {
Cathal Corbett5b8093c2021-10-22 11:12:07 +0100162 {0, armnn::ConstTensor(inputTensorInfo2, inputData.data())}
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100163 };
164 armnn::OutputTensors outputTensors
165 {
166 {0, armnn::Tensor(runtime->GetOutputTensorInfo(netId, 0), outputData.data())}
167 };
168
169 // Does the inference.
170 runtime->EnqueueWorkload(netId, inputTensors, outputTensors);
171
172 // Checks the results.
Sadik Armagan1625efc2021-06-10 18:24:34 +0100173 CHECK(outputData[0] == 0);
174 CHECK(outputData[1] == 0);
175 CHECK(outputData[2] == 0);
176 CHECK(outputData[3] == 255); // softmax has been saturated.
177 CHECK(outputData[4] == 0);
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100178}
179
Sadik Armagan1625efc2021-06-10 18:24:34 +0100180TEST_CASE("TrivialAdd")
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100181{
182 // This test was designed to match "AddTwo" in android nn/runtime/test/TestTrivialModel.cpp.
183
184 using namespace armnn;
185
186 // Create runtime in which test will run
187 armnn::IRuntime::CreationOptions options;
188 armnn::IRuntimePtr runtime(armnn::IRuntime::Create(options));
189
190 // Builds up the structure of the network.
191 armnn::INetworkPtr net(INetwork::Create());
192
193 IConnectableLayer* input1 = net->AddInputLayer(0);
194 IConnectableLayer* input2 = net->AddInputLayer(1);
Mike Kelly3ec30772023-03-08 13:47:17 +0000195 IConnectableLayer* add = net->AddElementwiseBinaryLayer(ElementwiseBinaryDescriptor(BinaryOperation::Add));
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100196 IConnectableLayer* output = net->AddOutputLayer(0);
197
198 input1->GetOutputSlot(0).Connect(add->GetInputSlot(0));
199 input2->GetOutputSlot(0).Connect(add->GetInputSlot(1));
200 add->GetOutputSlot(0).Connect(output->GetInputSlot(0));
201
202 // Sets the tensors in the network.
203 TensorInfo tensorInfo(TensorShape({3, 4}), DataType::Float32);
204 input1->GetOutputSlot(0).SetTensorInfo(tensorInfo);
205 input2->GetOutputSlot(0).SetTensorInfo(tensorInfo);
206 add->GetOutputSlot(0).SetTensorInfo(tensorInfo);
207
208 // optimize the network
narpra01b9546cf2018-11-20 15:21:28 +0000209 IOptimizedNetworkPtr optNet = Optimize(*net, defaultBackends, runtime->GetDeviceSpec());
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100210
211 // Loads it into the runtime.
212 NetworkId netId;
213 runtime->LoadNetwork(netId, std::move(optNet));
214
215 // Creates structures for input & output - matching android nn test.
216 std::vector<float> input1Data
217 {
218 1.f, 2.f, 3.f, 4.f, 5.f, 6.f, 7.f, 8.f, 9.f, 10.f, 11.f, 12.f
219 };
220 std::vector<float> input2Data
221 {
222 100.f, 200.f, 300.f, 400.f, 500.f, 600.f, 700.f, 800.f, 900.f, 1000.f, 1100.f, 1200.f
223 };
224 std::vector<float> outputData(12);
225
Cathal Corbett5b8093c2021-10-22 11:12:07 +0100226 TensorInfo inputTensorInfo = runtime->GetInputTensorInfo(netId, 0);
227 inputTensorInfo.SetConstant(true);
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100228 InputTensors inputTensors
229 {
Cathal Corbett5b8093c2021-10-22 11:12:07 +0100230 {0,armnn::ConstTensor(inputTensorInfo, input1Data.data())},
231 {1,armnn::ConstTensor(inputTensorInfo, input2Data.data())}
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100232 };
233 OutputTensors outputTensors
234 {
235 {0,armnn::Tensor(runtime->GetOutputTensorInfo(netId, 0), outputData.data())}
236 };
237
238 // Does the inference.
239 runtime->EnqueueWorkload(netId, inputTensors, outputTensors);
240
241 // Checks the results
Sadik Armagan1625efc2021-06-10 18:24:34 +0100242 CHECK(outputData[0] == 101);
243 CHECK(outputData[1] == 202);
244 CHECK(outputData[2] == 303);
245 CHECK(outputData[3] == 404);
246 CHECK(outputData[4] == 505);
247 CHECK(outputData[5] == 606);
248 CHECK(outputData[6] == 707);
249 CHECK(outputData[7] == 808);
250 CHECK(outputData[8] == 909);
251 CHECK(outputData[9] == 1010);
252 CHECK(outputData[10] == 1111);
253 CHECK(outputData[11] == 1212);
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100254}
255
Sadik Armagan1625efc2021-06-10 18:24:34 +0100256TEST_CASE("MultipleOutputs")
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100257{
258 using namespace armnn;
259
260 // Create runtime in which test will run
261 armnn::IRuntime::CreationOptions options;
262 armnn::IRuntimePtr runtime(armnn::IRuntime::Create(options));
263
264 // Builds up the structure of the network.
265 INetworkPtr net(INetwork::Create());
266
267 IConnectableLayer* input = net->AddInputLayer(0);
268
269 // ReLu1
270 ActivationDescriptor activation1Descriptor;
271 activation1Descriptor.m_Function = ActivationFunction::BoundedReLu;
272 activation1Descriptor.m_A = 1.f;
273 activation1Descriptor.m_B = -1.f;
274 IConnectableLayer* activation1 = net->AddActivationLayer(activation1Descriptor);
275
276 // ReLu6
277 ActivationDescriptor activation2Descriptor;
278 activation2Descriptor.m_Function = ActivationFunction::BoundedReLu;
279 activation2Descriptor.m_A = 6.0f;
280 IConnectableLayer* activation2 = net->AddActivationLayer(activation2Descriptor);
281
282 // BoundedReLu(min=2, max=5)
283 ActivationDescriptor activation3Descriptor;
284 activation3Descriptor.m_Function = ActivationFunction::BoundedReLu;
285 activation3Descriptor.m_A = 5.0f;
286 activation3Descriptor.m_B = 2.0f;
287 IConnectableLayer* activation3 = net->AddActivationLayer(activation3Descriptor);
288
289 IConnectableLayer* output1 = net->AddOutputLayer(0);
290 IConnectableLayer* output2 = net->AddOutputLayer(1);
291 IConnectableLayer* output3 = net->AddOutputLayer(2);
292
293 input->GetOutputSlot(0).Connect(activation1->GetInputSlot(0));
294 input->GetOutputSlot(0).Connect(activation2->GetInputSlot(0));
295 input->GetOutputSlot(0).Connect(activation3->GetInputSlot(0));
296
297 activation1->GetOutputSlot(0).Connect(output1->GetInputSlot(0));
298 activation2->GetOutputSlot(0).Connect(output2->GetInputSlot(0));
299 activation3->GetOutputSlot(0).Connect(output3->GetInputSlot(0));
300
301 // Sets the tensors in the network.
302 TensorInfo tensorInfo(TensorShape({ 10 }), DataType::Float32);
303 input->GetOutputSlot(0).SetTensorInfo(tensorInfo);
304 activation1->GetOutputSlot(0).SetTensorInfo(tensorInfo);
305 activation2->GetOutputSlot(0).SetTensorInfo(tensorInfo);
306 activation3->GetOutputSlot(0).SetTensorInfo(tensorInfo);
307
308 // optimize the network
narpra01b9546cf2018-11-20 15:21:28 +0000309 IOptimizedNetworkPtr optNet = Optimize(*net, defaultBackends, runtime->GetDeviceSpec());
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100310
311 // Loads it into the runtime.
312 NetworkId netId;
313 runtime->LoadNetwork(netId, std::move(optNet));
314
315 // Creates structures for input & output.
316 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 };
317
318 std::vector<float> output1Data(inputData.size());
319 std::vector<float> output2Data(inputData.size());
320 std::vector<float> output3Data(inputData.size());
321
Cathal Corbett5b8093c2021-10-22 11:12:07 +0100322 TensorInfo inputTensorInfo = runtime->GetInputTensorInfo(netId, 0);
323 inputTensorInfo.SetConstant(true);
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100324 InputTensors inputTensors
325 {
Cathal Corbett5b8093c2021-10-22 11:12:07 +0100326 {0,armnn::ConstTensor(inputTensorInfo, inputData.data())}
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100327 };
328 OutputTensors outputTensors
329 {
330 {0,armnn::Tensor(runtime->GetOutputTensorInfo(netId, 0), output1Data.data())},
331 {1,armnn::Tensor(runtime->GetOutputTensorInfo(netId, 1), output2Data.data())},
332 {2,armnn::Tensor(runtime->GetOutputTensorInfo(netId, 2), output3Data.data())}
333 };
334
335 // Does the inference.
336 runtime->EnqueueWorkload(netId, inputTensors, outputTensors);
337
338 // Checks the results.
Sadik Armagan1625efc2021-06-10 18:24:34 +0100339 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
340 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
341 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 +0100342}
343
Sadik Armagan1625efc2021-06-10 18:24:34 +0100344TEST_CASE("TrivialMin")
Éanna Ó Catháin20e58802018-12-04 10:29:06 +0000345{
346 using namespace armnn;
347
348 // Create runtime in which test will run
349 armnn::IRuntime::CreationOptions options;
350 armnn::IRuntimePtr runtime(armnn::IRuntime::Create(options));
351
352 // Builds up the structure of the network.
353 armnn::INetworkPtr net(INetwork::Create());
354
355 IConnectableLayer* input1 = net->AddInputLayer(0);
356 IConnectableLayer* input2 = net->AddInputLayer(1);
Mike Kelly3ec30772023-03-08 13:47:17 +0000357 IConnectableLayer* min = net->AddElementwiseBinaryLayer(ElementwiseBinaryDescriptor(BinaryOperation::Minimum));
Éanna Ó Catháin20e58802018-12-04 10:29:06 +0000358 IConnectableLayer* output = net->AddOutputLayer(0);
359
360 input1->GetOutputSlot(0).Connect(min->GetInputSlot(0));
361 input2->GetOutputSlot(0).Connect(min->GetInputSlot(1));
362 min->GetOutputSlot(0).Connect(output->GetInputSlot(0));
363
364 // Sets the tensors in the network.
365 TensorInfo tensorInfo(TensorShape({1, 1, 1, 4}), DataType::Float32);
366 input1->GetOutputSlot(0).SetTensorInfo(tensorInfo);
367 input2->GetOutputSlot(0).SetTensorInfo(tensorInfo);
368 min->GetOutputSlot(0).SetTensorInfo(tensorInfo);
369
370 // optimize the network
371 IOptimizedNetworkPtr optNet = Optimize(*net, defaultBackends, runtime->GetDeviceSpec());
372
373 // Loads it into the runtime.
374 NetworkId netId;
375 runtime->LoadNetwork(netId, std::move(optNet));
376
377 // Creates structures for input & output - matching android nn test.
378 std::vector<float> input1Data
379 {
380 1.0f, 2.0f, 3.0f, 4.0f
381 };
382 std::vector<float> input2Data
383 {
384 2.0f, 1.0f, 5.0f, 2.0f
385 };
386 std::vector<float> outputData(4);
387
Cathal Corbett5b8093c2021-10-22 11:12:07 +0100388 TensorInfo inputTensorInfo = runtime->GetInputTensorInfo(netId, 0);
389 inputTensorInfo.SetConstant(true);
Éanna Ó Catháin20e58802018-12-04 10:29:06 +0000390 InputTensors inputTensors
391 {
Cathal Corbett5b8093c2021-10-22 11:12:07 +0100392 {0,armnn::ConstTensor(inputTensorInfo, input1Data.data())},
393 {1,armnn::ConstTensor(inputTensorInfo, input2Data.data())}
Éanna Ó Catháin20e58802018-12-04 10:29:06 +0000394 };
395 OutputTensors outputTensors
396 {
397 {0,armnn::Tensor(runtime->GetOutputTensorInfo(netId, 0), outputData.data())}
398 };
399
400 // Does the inference.
401 runtime->EnqueueWorkload(netId, inputTensors, outputTensors);
402
403 // Checks the results
Sadik Armagan1625efc2021-06-10 18:24:34 +0100404 CHECK(outputData[0] == 1);
405 CHECK(outputData[1] == 1);
406 CHECK(outputData[2] == 3);
407 CHECK(outputData[3] == 2);
Éanna Ó Catháin20e58802018-12-04 10:29:06 +0000408}
409
Sadik Armagan1625efc2021-06-10 18:24:34 +0100410TEST_CASE("RefEqualSimpleEndToEndTest")
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000411{
kevmay012b4d88e2019-01-24 14:05:09 +0000412 const std::vector<uint8_t> expectedOutput({ 1, 1, 1, 1, 0, 0, 0, 0,
413 0, 0, 0, 0, 1, 1, 1, 1 });
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000414
Aron Virginas-Tar77bfb5e2019-10-16 17:45:38 +0100415 ComparisonSimpleEndToEnd<armnn::DataType::Float32>(defaultBackends,
416 ComparisonOperation::Equal,
417 expectedOutput);
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000418}
419
Sadik Armagan1625efc2021-06-10 18:24:34 +0100420TEST_CASE("RefGreaterSimpleEndToEndTest")
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000421{
kevmay012b4d88e2019-01-24 14:05:09 +0000422 const std::vector<uint8_t> expectedOutput({ 0, 0, 0, 0, 1, 1, 1, 1,
423 0, 0, 0, 0, 0, 0, 0, 0 });
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000424
Aron Virginas-Tar77bfb5e2019-10-16 17:45:38 +0100425 ComparisonSimpleEndToEnd<armnn::DataType::Float32>(defaultBackends,
426 ComparisonOperation::Greater,
427 expectedOutput);
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000428}
429
Sadik Armagan1625efc2021-06-10 18:24:34 +0100430TEST_CASE("RefEqualSimpleEndToEndUint8Test")
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000431{
432 const std::vector<uint8_t> expectedOutput({ 1, 1, 1, 1, 0, 0, 0, 0,
433 0, 0, 0, 0, 1, 1, 1, 1 });
434
Derek Lambertif90c56d2020-01-10 17:14:08 +0000435 ComparisonSimpleEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends,
Aron Virginas-Tar77bfb5e2019-10-16 17:45:38 +0100436 ComparisonOperation::Equal,
437 expectedOutput);
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000438}
439
Sadik Armagan1625efc2021-06-10 18:24:34 +0100440TEST_CASE("RefGreaterSimpleEndToEndUint8Test")
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000441{
442 const std::vector<uint8_t> expectedOutput({ 0, 0, 0, 0, 1, 1, 1, 1,
443 0, 0, 0, 0, 0, 0, 0, 0 });
444
Derek Lambertif90c56d2020-01-10 17:14:08 +0000445 ComparisonSimpleEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends,
Aron Virginas-Tar77bfb5e2019-10-16 17:45:38 +0100446 ComparisonOperation::Greater,
447 expectedOutput);
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000448}
449
Sadik Armagan1625efc2021-06-10 18:24:34 +0100450TEST_CASE("RefEqualBroadcastEndToEndTest")
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000451{
kevmay012b4d88e2019-01-24 14:05:09 +0000452 const std::vector<uint8_t> expectedOutput({ 1, 0, 1, 1, 0, 0,
453 0, 0, 0, 0, 0, 0 });
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000454
Aron Virginas-Tar77bfb5e2019-10-16 17:45:38 +0100455 ComparisonBroadcastEndToEnd<armnn::DataType::Float32>(defaultBackends,
456 ComparisonOperation::Equal,
457 expectedOutput);
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000458}
459
Sadik Armagan1625efc2021-06-10 18:24:34 +0100460TEST_CASE("RefGreaterBroadcastEndToEndTest")
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000461{
kevmay012b4d88e2019-01-24 14:05:09 +0000462 const std::vector<uint8_t> expectedOutput({ 0, 1, 0, 0, 0, 1,
463 1, 1, 1, 1, 1, 1 });
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000464
Aron Virginas-Tar77bfb5e2019-10-16 17:45:38 +0100465 ComparisonBroadcastEndToEnd<armnn::DataType::Float32>(defaultBackends,
466 ComparisonOperation::Greater,
467 expectedOutput);
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000468}
469
Sadik Armagan1625efc2021-06-10 18:24:34 +0100470TEST_CASE("RefEqualBroadcastEndToEndUint8Test")
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000471{
472 const std::vector<uint8_t > expectedOutput({ 1, 0, 1, 1, 0, 0,
473 0, 0, 0, 0, 0, 0 });
474
Derek Lambertif90c56d2020-01-10 17:14:08 +0000475 ComparisonBroadcastEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends,
Aron Virginas-Tar77bfb5e2019-10-16 17:45:38 +0100476 ComparisonOperation::Equal,
477 expectedOutput);
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000478}
479
Sadik Armagan1625efc2021-06-10 18:24:34 +0100480TEST_CASE("RefGreaterBroadcastEndToEndUint8Test")
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000481{
482 const std::vector<uint8_t> expectedOutput({ 0, 1, 0, 0, 0, 1,
483 1, 1, 1, 1, 1, 1 });
484
Derek Lambertif90c56d2020-01-10 17:14:08 +0000485 ComparisonBroadcastEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends,
Aron Virginas-Tar77bfb5e2019-10-16 17:45:38 +0100486 ComparisonOperation::Greater,
487 expectedOutput);
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000488}
Éanna Ó Catháin20e58802018-12-04 10:29:06 +0000489
Teresa Charlina38da592022-10-31 22:09:23 +0000490TEST_CASE("RefBatchMatMulEndToEndFloat32Test")
491{
492 BatchMatMulEndToEnd<armnn::DataType::Float32>(defaultBackends);
493}
494
Teresa Charlin1fe6c812022-11-01 15:59:50 +0000495TEST_CASE("RefBatchMatMulEndToEndInt8Test")
496{
497 BatchMatMulEndToEnd<armnn::DataType::QAsymmS8>(defaultBackends);
498}
499
Sadik Armagan1625efc2021-06-10 18:24:34 +0100500TEST_CASE("RefBatchToSpaceNdEndToEndFloat32NHWCTest")
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100501{
502 BatchToSpaceNdEndToEnd<armnn::DataType::Float32>(defaultBackends, armnn::DataLayout::NHWC);
503}
504
Sadik Armagan1625efc2021-06-10 18:24:34 +0100505TEST_CASE("RefBatchToSpaceNdEndToEndUint8NHWCTest")
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100506{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000507 BatchToSpaceNdEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, armnn::DataLayout::NHWC);
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100508}
509
Sadik Armagan1625efc2021-06-10 18:24:34 +0100510TEST_CASE("RefBatchToSpaceNdEndToEndQSymm16NHWCTest")
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100511{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000512 BatchToSpaceNdEndToEnd<armnn::DataType::QSymmS16>(defaultBackends, armnn::DataLayout::NHWC);
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100513}
514
Sadik Armagan1625efc2021-06-10 18:24:34 +0100515TEST_CASE("RefBatchToSpaceNdEndToEndFloat32NCHWTest")
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100516{
517 BatchToSpaceNdEndToEnd<armnn::DataType::Float32>(defaultBackends, armnn::DataLayout::NCHW);
518}
519
Sadik Armagan1625efc2021-06-10 18:24:34 +0100520TEST_CASE("RefBatchToSpaceNdEndToEndUint8NCHWTest")
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100521{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000522 BatchToSpaceNdEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, armnn::DataLayout::NCHW);
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100523}
524
Sadik Armagan1625efc2021-06-10 18:24:34 +0100525TEST_CASE("RefBatchToSpaceNdEndToEndQSymm16NCHWTest")
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100526{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000527 BatchToSpaceNdEndToEnd<armnn::DataType::QSymmS16>(defaultBackends, armnn::DataLayout::NCHW);
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100528}
529
Sadik Armagan1625efc2021-06-10 18:24:34 +0100530TEST_CASE("RefBatchToSpaceNdEndToEndComplexFloat32NHWCTest")
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100531{
532 BatchToSpaceNdComplexEndToEnd<armnn::DataType::Float32>(defaultBackends, armnn::DataLayout::NHWC);
533}
534
Sadik Armagan1625efc2021-06-10 18:24:34 +0100535TEST_CASE("RefBatchToSpaceNdEndToEndComplexUint8NHWCTest")
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100536{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000537 BatchToSpaceNdComplexEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, armnn::DataLayout::NHWC);
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100538}
539
Sadik Armagan1625efc2021-06-10 18:24:34 +0100540TEST_CASE("RefBatchToSpaceNdEndToEndComplexQSymm16NHWCTest")
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100541{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000542 BatchToSpaceNdComplexEndToEnd<armnn::DataType::QSymmS16>(defaultBackends, armnn::DataLayout::NHWC);
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100543}
544
Sadik Armagan1625efc2021-06-10 18:24:34 +0100545TEST_CASE("RefBatchToSpaceNdEndToEndComplexFloat32NCHWTest")
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100546{
547 BatchToSpaceNdComplexEndToEnd<armnn::DataType::Float32>(defaultBackends, armnn::DataLayout::NCHW);
548}
549
Sadik Armagan1625efc2021-06-10 18:24:34 +0100550TEST_CASE("RefBatchToSpaceNdEndToEndComplexUint8NCHWTest")
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100551{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000552 BatchToSpaceNdComplexEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, armnn::DataLayout::NCHW);
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100553}
554
Sadik Armagan1625efc2021-06-10 18:24:34 +0100555TEST_CASE("RefBatchToSpaceNdEndToEndComplexQSymm16NCHWTest")
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100556{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000557 BatchToSpaceNdComplexEndToEnd<armnn::DataType::QSymmS16>(defaultBackends, armnn::DataLayout::NCHW);
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100558}
559
Teresa Charlin43baf502021-09-27 10:10:39 +0100560TEST_CASE("RefChannelShuffleFloatTest")
561{
562 ChannelShuffleEndToEnd<armnn::DataType::Float32>(defaultBackends);
563}
564
565TEST_CASE("RefChannelShuffleUint8Test")
566{
567 ChannelShuffleEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
568}
569
Sadik Armagan1625efc2021-06-10 18:24:34 +0100570TEST_CASE("RefConcatEndToEndDim0Test")
narpra01b9546cf2018-11-20 15:21:28 +0000571{
Jim Flynne242f2d2019-05-22 14:24:13 +0100572 ConcatDim0EndToEnd<armnn::DataType::Float32>(defaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +0000573}
574
Sadik Armagan1625efc2021-06-10 18:24:34 +0100575TEST_CASE("RefConcatEndToEndDim0Uint8Test")
narpra01b9546cf2018-11-20 15:21:28 +0000576{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000577 ConcatDim0EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +0000578}
579
Sadik Armagan1625efc2021-06-10 18:24:34 +0100580TEST_CASE("RefConcatEndToEndDim1Test")
narpra01b9546cf2018-11-20 15:21:28 +0000581{
Jim Flynne242f2d2019-05-22 14:24:13 +0100582 ConcatDim1EndToEnd<armnn::DataType::Float32>(defaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +0000583}
584
Sadik Armagan1625efc2021-06-10 18:24:34 +0100585TEST_CASE("RefConcatEndToEndDim1Uint8Test")
narpra01b9546cf2018-11-20 15:21:28 +0000586{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000587 ConcatDim1EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +0000588}
589
Sadik Armagan1625efc2021-06-10 18:24:34 +0100590TEST_CASE("RefConcatEndToEndDim2Test")
narpra01b9546cf2018-11-20 15:21:28 +0000591{
Jim Flynne242f2d2019-05-22 14:24:13 +0100592 ConcatDim2EndToEnd<armnn::DataType::Float32>(defaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +0000593}
594
Sadik Armagan1625efc2021-06-10 18:24:34 +0100595TEST_CASE("RefConcatEndToEndDim2Uint8Test")
narpra01b9546cf2018-11-20 15:21:28 +0000596{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000597 ConcatDim2EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +0000598}
599
Sadik Armagan1625efc2021-06-10 18:24:34 +0100600TEST_CASE("RefConcatEndToEndDim3Test")
narpra01b9546cf2018-11-20 15:21:28 +0000601{
Jim Flynne242f2d2019-05-22 14:24:13 +0100602 ConcatDim3EndToEnd<armnn::DataType::Float32>(defaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +0000603}
604
Sadik Armagan1625efc2021-06-10 18:24:34 +0100605TEST_CASE("RefConcatEndToEndDim3Uint8Test")
narpra01b9546cf2018-11-20 15:21:28 +0000606{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000607 ConcatDim3EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +0000608}
609
Matthew Sloyanc5fe6e72022-11-25 16:10:00 +0000610TEST_CASE("RefConvolution2dFloat32Test")
611{
612 Convolution2dEndToEnd<armnn::DataType::Float32>(defaultBackends, armnn::DataLayout::NHWC);
613}
614
615TEST_CASE("RefConvolution2dNchwFloat32Test")
616{
617 Convolution2dEndToEnd<armnn::DataType::Float32>(defaultBackends, armnn::DataLayout::NCHW);
618}
619
620TEST_CASE("RefConvolution2dFloat16Test")
621{
622 Convolution2dEndToEnd<armnn::DataType::Float16>(defaultBackends, armnn::DataLayout::NHWC);
623}
624
Matthew Sloyan5d7b0a32021-10-18 13:07:49 +0100625TEST_CASE("RefConvolution3dFloat32Test")
626{
627 Convolution3dEndToEnd<armnn::DataType::Float32, armnn::DataType::Float32>(defaultBackends,
628 armnn::DataLayout::NDHWC);
629}
630
631TEST_CASE("RefConvolution3dNcdhwFloat32Test")
632{
633 Convolution3dEndToEnd<armnn::DataType::Float32, armnn::DataType::Float32>(defaultBackends,
634 armnn::DataLayout::NCDHW);
635}
636
637TEST_CASE("RefConvolution3dFloat16Test")
638{
639 Convolution3dEndToEnd<armnn::DataType::Float16, armnn::DataType::Float16>(defaultBackends,
640 armnn::DataLayout::NDHWC);
641}
642
643TEST_CASE("RefConvolution3dUint8Test")
644{
645 Convolution3dEndToEnd<armnn::DataType::QAsymmU8, armnn::DataType::Signed32>(defaultBackends,
646 armnn::DataLayout::NDHWC);
647}
648
649TEST_CASE("RefConvolution3dInt8Test")
650{
651 Convolution3dEndToEnd<armnn::DataType::QAsymmS8, armnn::DataType::Signed32>(defaultBackends,
652 armnn::DataLayout::NDHWC);
653}
654
Sadik Armagan1625efc2021-06-10 18:24:34 +0100655TEST_CASE("RefEluEndToEndTestFloat32")
Jan Eilersbca73e12020-03-11 12:52:46 +0000656{
657 EluEndToEndTest<armnn::DataType::Float32>(defaultBackends);
658}
659
Sadik Armagan1625efc2021-06-10 18:24:34 +0100660TEST_CASE("RefEluEndToEndTestFloat16")
Jan Eilersbca73e12020-03-11 12:52:46 +0000661{
662 EluEndToEndTest<armnn::DataType::Float16>(defaultBackends);
663}
664
Sadik Armagan1625efc2021-06-10 18:24:34 +0100665TEST_CASE("RefEluEndToEndTestQAsymmS8")
Jan Eilersbca73e12020-03-11 12:52:46 +0000666{
667 EluEndToEndTest<armnn::DataType::QAsymmS8>(defaultBackends);
668}
669
Sadik Armagan1625efc2021-06-10 18:24:34 +0100670TEST_CASE("RefEluEndToEndTestQAsymmU8")
Jan Eilersbca73e12020-03-11 12:52:46 +0000671{
672 EluEndToEndTest<armnn::DataType::QAsymmU8>(defaultBackends);
673}
674
Sadik Armagan1625efc2021-06-10 18:24:34 +0100675TEST_CASE("RefEluEndToEndTestQSymmS16")
Jan Eilersbca73e12020-03-11 12:52:46 +0000676{
677 EluEndToEndTest<armnn::DataType::QSymmS16>(defaultBackends);
678}
679
Sadik Armagan1625efc2021-06-10 18:24:34 +0100680TEST_CASE("RefFillEndToEndTest")
Teresa Charlin44088502020-07-27 11:27:19 +0100681{
682 FillEndToEnd<armnn::DataType::Float32>(defaultBackends);
683}
684
Sadik Armagan1625efc2021-06-10 18:24:34 +0100685TEST_CASE("RefFillEndToEndTestFloat16")
Teresa Charlin4b10fef2020-07-29 09:36:41 +0100686{
687 FillEndToEnd<armnn::DataType::Float16>(defaultBackends);
688}
Teresa Charlin44088502020-07-27 11:27:19 +0100689
Sadik Armagan1625efc2021-06-10 18:24:34 +0100690TEST_CASE("RefFillEndToEndTestInt32")
Teresa Charlin44088502020-07-27 11:27:19 +0100691{
692 FillEndToEnd<armnn::DataType::Signed32>(defaultBackends);
693}
694
Matthew Sloyan81beae32021-07-13 19:46:11 +0100695TEST_CASE("RefFullyConnectedEndToEndTestFloat32")
Sadik Armaganf0a6dec2021-03-25 07:46:55 +0000696{
697 FullyConnectedWithDynamicWeightsEndToEnd<armnn::DataType::Float32>(defaultBackends);
698}
699
Matthew Sloyan81beae32021-07-13 19:46:11 +0100700TEST_CASE("RefFullyConnectedEndToEndTestNonConstantWeightsConstantBiasesFloat32")
701{
Cathal Corbettb8cc2b92021-10-08 14:43:11 +0100702 FullyConnectedWithDynamicOrConstantInputsEndToEnd<armnn::DataType::Float32>(defaultBackends, true, true);
Matthew Sloyan81beae32021-07-13 19:46:11 +0100703}
704
705TEST_CASE("RefFullyConnectedEndToEndTestConstantWeightsNonConstantBiasesFloat32")
706{
Cathal Corbettb8cc2b92021-10-08 14:43:11 +0100707 FullyConnectedWithDynamicOrConstantInputsEndToEnd<armnn::DataType::Float32>(defaultBackends, true, false);
Cathal Corbett521032f2021-10-07 11:46:40 +0100708}
709
710TEST_CASE("RefFullyConnectedEndToEndTestConstantWeightsTensorInfoNotSet")
711{
Cathal Corbettb8cc2b92021-10-08 14:43:11 +0100712 FullyConnectedErrorChecking<armnn::DataType::Float32>(defaultBackends, false, true, true, true, false);
713}
714
715TEST_CASE("RefFullyConnectedEndToEndTestWeightsNotConnectedExplicitCheck")
716{
717 FullyConnectedErrorChecking<armnn::DataType::Float32>(defaultBackends, true, true, false, true, true);
718}
719
720TEST_CASE("RefFullyConnectedEndToEndTestBiasNotConnectedExplicitCheck")
721{
722 FullyConnectedErrorChecking<armnn::DataType::Float32>(defaultBackends, true, true, true, false, true);
723}
724
725TEST_CASE("RefFullyConnectedEndToEndTestWeightsAndBiasNotConnected")
726{
727 FullyConnectedErrorChecking<armnn::DataType::Float32>(defaultBackends, false, true, false, false, true);
728}
729
730TEST_CASE("RefFullyConnectedEndToEndTestBiasDisabledConnectBias")
731{
732 FullyConnectedErrorChecking<armnn::DataType::Float32>(defaultBackends, true, false, false, true, true);
Matthew Sloyan81beae32021-07-13 19:46:11 +0100733}
734
Sadik Armagan1625efc2021-06-10 18:24:34 +0100735TEST_CASE("RefGatherFloatTest")
narpra01db2b1602019-01-23 15:23:11 +0000736{
737 GatherEndToEnd<armnn::DataType::Float32>(defaultBackends);
738}
739
Sadik Armagan1625efc2021-06-10 18:24:34 +0100740TEST_CASE("RefGatherUint8Test")
narpra01db2b1602019-01-23 15:23:11 +0000741{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000742 GatherEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
narpra01db2b1602019-01-23 15:23:11 +0000743}
744
Sadik Armagan1625efc2021-06-10 18:24:34 +0100745TEST_CASE("RefGatherInt16Test")
Ellen Norris-Thompsone0dbedf2019-06-24 09:23:38 +0100746{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000747 GatherEndToEnd<armnn::DataType::QSymmS16>(defaultBackends);
Ellen Norris-Thompsone0dbedf2019-06-24 09:23:38 +0100748}
749
Sadik Armagan1625efc2021-06-10 18:24:34 +0100750TEST_CASE("RefGatherMultiDimFloatTest")
narpra01db2b1602019-01-23 15:23:11 +0000751{
752 GatherMultiDimEndToEnd<armnn::DataType::Float32>(defaultBackends);
753}
754
Sadik Armagan1625efc2021-06-10 18:24:34 +0100755TEST_CASE("RefGatherMultiDimUint8Test")
narpra01db2b1602019-01-23 15:23:11 +0000756{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000757 GatherMultiDimEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
narpra01db2b1602019-01-23 15:23:11 +0000758}
759
Sadik Armagan1625efc2021-06-10 18:24:34 +0100760TEST_CASE("RefGatherMultiDimInt16Test")
Ellen Norris-Thompsone0dbedf2019-06-24 09:23:38 +0100761{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000762 GatherMultiDimEndToEnd<armnn::DataType::QSymmS16>(defaultBackends);
Ellen Norris-Thompsone0dbedf2019-06-24 09:23:38 +0100763}
764
Teresa Charlinb2d3ec52022-04-12 22:07:09 +0100765TEST_CASE("RefGatherNdFloatTest")
766{
767 GatherNdEndToEnd<armnn::DataType::Float32>(defaultBackends);
768}
769
770TEST_CASE("RefGatherNdUint8Test")
771{
772 GatherNdEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
773}
774
775TEST_CASE("RefGatherNdInt16Test")
776{
777 GatherNdEndToEnd<armnn::DataType::QSymmS16>(defaultBackends);
778}
779
780TEST_CASE("RefGatherNdMultiDimFloatTest")
781{
782 GatherNdMultiDimEndToEnd<armnn::DataType::Float32>(defaultBackends);
783}
784
785TEST_CASE("RefGatherNdMultiDimUint8Test")
786{
787 GatherNdMultiDimEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
788}
789
790TEST_CASE("RefGatherNdMultiDimInt16Test")
791{
792 GatherNdMultiDimEndToEnd<armnn::DataType::QSymmS16>(defaultBackends);
793}
794
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100795// DepthToSpace
Teresa Charlinca5a23a2023-12-15 14:20:47 +0000796TEST_CASE("DepthToSpaceEndToEndNchwFloat32")
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100797{
798 DepthToSpaceEndToEnd<armnn::DataType::Float32>(defaultBackends, armnn::DataLayout::NCHW);
799}
800
Teresa Charlinca5a23a2023-12-15 14:20:47 +0000801TEST_CASE("DepthToSpaceEndToEndNchwFloat16")
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100802{
803 DepthToSpaceEndToEnd<armnn::DataType::Float16>(defaultBackends, armnn::DataLayout::NCHW);
804}
805
Teresa Charlinca5a23a2023-12-15 14:20:47 +0000806TEST_CASE("DepthToSpaceEndToEndNchwUint8")
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100807{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000808 DepthToSpaceEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, armnn::DataLayout::NCHW);
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100809}
810
Teresa Charlinca5a23a2023-12-15 14:20:47 +0000811TEST_CASE("DepthToSpaceEndToEndNchwInt16")
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100812{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000813 DepthToSpaceEndToEnd<armnn::DataType::QSymmS16>(defaultBackends, armnn::DataLayout::NCHW);
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100814}
815
Teresa Charlinca5a23a2023-12-15 14:20:47 +0000816TEST_CASE("DepthToSpaceEndToEndNhwcFloat32")
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100817{
818 DepthToSpaceEndToEnd<armnn::DataType::Float32>(defaultBackends, armnn::DataLayout::NHWC);
819}
820
Teresa Charlinca5a23a2023-12-15 14:20:47 +0000821TEST_CASE("DepthToSpaceEndToEndNhwcFloat16")
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100822{
823 DepthToSpaceEndToEnd<armnn::DataType::Float16>(defaultBackends, armnn::DataLayout::NHWC);
824}
825
Teresa Charlinca5a23a2023-12-15 14:20:47 +0000826TEST_CASE("DepthToSpaceEndToEndNhwcUint8")
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100827{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000828 DepthToSpaceEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, armnn::DataLayout::NHWC);
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100829}
830
Teresa Charlinca5a23a2023-12-15 14:20:47 +0000831TEST_CASE("DepthToSpaceEndToEndNhwcInt16")
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100832{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000833 DepthToSpaceEndToEnd<armnn::DataType::QSymmS16>(defaultBackends, armnn::DataLayout::NHWC);
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100834}
835
836// Dequantize
Sadik Armagan1625efc2021-06-10 18:24:34 +0100837TEST_CASE("DequantizeEndToEndSimpleTest")
Narumol Prangnawarat8c7324d2019-05-31 16:42:11 +0100838{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000839 DequantizeEndToEndSimple<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawarat8c7324d2019-05-31 16:42:11 +0100840}
841
Sadik Armagan1625efc2021-06-10 18:24:34 +0100842TEST_CASE("DequantizeEndToEndOffsetTest")
Narumol Prangnawarat8c7324d2019-05-31 16:42:11 +0100843{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000844 DequantizeEndToEndOffset<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawarat8c7324d2019-05-31 16:42:11 +0100845}
846
Sadik Armagan1625efc2021-06-10 18:24:34 +0100847TEST_CASE("DequantizeEndToEndSimpleInt16Test")
Narumol Prangnawaratb6441e42019-06-04 11:22:00 +0100848{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000849 DequantizeEndToEndSimple<armnn::DataType::QSymmS16>(defaultBackends);
Narumol Prangnawaratb6441e42019-06-04 11:22:00 +0100850}
851
Sadik Armagan1625efc2021-06-10 18:24:34 +0100852TEST_CASE("DequantizeEndToEndOffsetInt16Test")
Narumol Prangnawaratb6441e42019-06-04 11:22:00 +0100853{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000854 DequantizeEndToEndOffset<armnn::DataType::QSymmS16>(defaultBackends);
Narumol Prangnawaratb6441e42019-06-04 11:22:00 +0100855}
856
Sadik Armagan1625efc2021-06-10 18:24:34 +0100857TEST_CASE("RefDetectionPostProcessRegularNmsTest")
Narumol Prangnawarat6d302bf2019-02-04 11:46:26 +0000858{
859 std::vector<float> boxEncodings({
860 0.0f, 0.0f, 0.0f, 0.0f,
861 0.0f, 1.0f, 0.0f, 0.0f,
862 0.0f, -1.0f, 0.0f, 0.0f,
863 0.0f, 0.0f, 0.0f, 0.0f,
864 0.0f, 1.0f, 0.0f, 0.0f,
865 0.0f, 0.0f, 0.0f, 0.0f
866 });
867 std::vector<float> scores({
868 0.0f, 0.9f, 0.8f,
869 0.0f, 0.75f, 0.72f,
870 0.0f, 0.6f, 0.5f,
871 0.0f, 0.93f, 0.95f,
872 0.0f, 0.5f, 0.4f,
873 0.0f, 0.3f, 0.2f
874 });
875 std::vector<float> anchors({
876 0.5f, 0.5f, 1.0f, 1.0f,
877 0.5f, 0.5f, 1.0f, 1.0f,
878 0.5f, 0.5f, 1.0f, 1.0f,
879 0.5f, 10.5f, 1.0f, 1.0f,
880 0.5f, 10.5f, 1.0f, 1.0f,
881 0.5f, 100.5f, 1.0f, 1.0f
882 });
883 DetectionPostProcessRegularNmsEndToEnd<armnn::DataType::Float32>(defaultBackends, boxEncodings, scores, anchors);
884}
885
886inline void QuantizeData(uint8_t* quant, const float* dequant, const TensorInfo& info)
887{
888 for (size_t i = 0; i < info.GetNumElements(); i++)
889 {
890 quant[i] = armnn::Quantize<uint8_t>(dequant[i], info.GetQuantizationScale(), info.GetQuantizationOffset());
891 }
892}
893
Sadik Armagan1625efc2021-06-10 18:24:34 +0100894TEST_CASE("RefDetectionPostProcessRegularNmsUint8Test")
Narumol Prangnawarat6d302bf2019-02-04 11:46:26 +0000895{
896 armnn::TensorInfo boxEncodingsInfo({ 1, 6, 4 }, armnn::DataType::Float32);
897 armnn::TensorInfo scoresInfo({ 1, 6, 3 }, armnn::DataType::Float32);
898 armnn::TensorInfo anchorsInfo({ 6, 4 }, armnn::DataType::Float32);
899
900 boxEncodingsInfo.SetQuantizationScale(1.0f);
901 boxEncodingsInfo.SetQuantizationOffset(1);
902 scoresInfo.SetQuantizationScale(0.01f);
903 scoresInfo.SetQuantizationOffset(0);
904 anchorsInfo.SetQuantizationScale(0.5f);
905 anchorsInfo.SetQuantizationOffset(0);
906
907 std::vector<float> boxEncodings({
908 0.0f, 0.0f, 0.0f, 0.0f,
909 0.0f, 1.0f, 0.0f, 0.0f,
910 0.0f, -1.0f, 0.0f, 0.0f,
911 0.0f, 0.0f, 0.0f, 0.0f,
912 0.0f, 1.0f, 0.0f, 0.0f,
913 0.0f, 0.0f, 0.0f, 0.0f
914 });
915 std::vector<float> scores({
916 0.0f, 0.9f, 0.8f,
917 0.0f, 0.75f, 0.72f,
918 0.0f, 0.6f, 0.5f,
919 0.0f, 0.93f, 0.95f,
920 0.0f, 0.5f, 0.4f,
921 0.0f, 0.3f, 0.2f
922 });
923 std::vector<float> anchors({
924 0.5f, 0.5f, 1.0f, 1.0f,
925 0.5f, 0.5f, 1.0f, 1.0f,
926 0.5f, 0.5f, 1.0f, 1.0f,
927 0.5f, 10.5f, 1.0f, 1.0f,
928 0.5f, 10.5f, 1.0f, 1.0f,
929 0.5f, 100.5f, 1.0f, 1.0f
930 });
931
932 std::vector<uint8_t> qBoxEncodings(boxEncodings.size(), 0);
933 std::vector<uint8_t> qScores(scores.size(), 0);
934 std::vector<uint8_t> qAnchors(anchors.size(), 0);
935 QuantizeData(qBoxEncodings.data(), boxEncodings.data(), boxEncodingsInfo);
936 QuantizeData(qScores.data(), scores.data(), scoresInfo);
937 QuantizeData(qAnchors.data(), anchors.data(), anchorsInfo);
Derek Lambertif90c56d2020-01-10 17:14:08 +0000938 DetectionPostProcessRegularNmsEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, qBoxEncodings,
Narumol Prangnawarat6d302bf2019-02-04 11:46:26 +0000939 qScores, qAnchors,
940 1.0f, 1, 0.01f, 0, 0.5f, 0);
941}
942
Sadik Armagan1625efc2021-06-10 18:24:34 +0100943TEST_CASE("RefDetectionPostProcessFastNmsTest")
Narumol Prangnawarat6d302bf2019-02-04 11:46:26 +0000944{
945 std::vector<float> boxEncodings({
946 0.0f, 0.0f, 0.0f, 0.0f,
947 0.0f, 1.0f, 0.0f, 0.0f,
948 0.0f, -1.0f, 0.0f, 0.0f,
949 0.0f, 0.0f, 0.0f, 0.0f,
950 0.0f, 1.0f, 0.0f, 0.0f,
951 0.0f, 0.0f, 0.0f, 0.0f
952 });
953 std::vector<float> scores({
954 0.0f, 0.9f, 0.8f,
955 0.0f, 0.75f, 0.72f,
956 0.0f, 0.6f, 0.5f,
957 0.0f, 0.93f, 0.95f,
958 0.0f, 0.5f, 0.4f,
959 0.0f, 0.3f, 0.2f
960 });
961 std::vector<float> anchors({
962 0.5f, 0.5f, 1.0f, 1.0f,
963 0.5f, 0.5f, 1.0f, 1.0f,
964 0.5f, 0.5f, 1.0f, 1.0f,
965 0.5f, 10.5f, 1.0f, 1.0f,
966 0.5f, 10.5f, 1.0f, 1.0f,
967 0.5f, 100.5f, 1.0f, 1.0f
968 });
969 DetectionPostProcessFastNmsEndToEnd<armnn::DataType::Float32>(defaultBackends, boxEncodings, scores, anchors);
970}
971
Sadik Armagan1625efc2021-06-10 18:24:34 +0100972TEST_CASE("RefDetectionPostProcessFastNmsUint8Test")
Narumol Prangnawarat6d302bf2019-02-04 11:46:26 +0000973{
974 armnn::TensorInfo boxEncodingsInfo({ 1, 6, 4 }, armnn::DataType::Float32);
975 armnn::TensorInfo scoresInfo({ 1, 6, 3 }, armnn::DataType::Float32);
976 armnn::TensorInfo anchorsInfo({ 6, 4 }, armnn::DataType::Float32);
977
978 boxEncodingsInfo.SetQuantizationScale(1.0f);
979 boxEncodingsInfo.SetQuantizationOffset(1);
980 scoresInfo.SetQuantizationScale(0.01f);
981 scoresInfo.SetQuantizationOffset(0);
982 anchorsInfo.SetQuantizationScale(0.5f);
983 anchorsInfo.SetQuantizationOffset(0);
984
985 std::vector<float> boxEncodings({
986 0.0f, 0.0f, 0.0f, 0.0f,
987 0.0f, 1.0f, 0.0f, 0.0f,
988 0.0f, -1.0f, 0.0f, 0.0f,
989 0.0f, 0.0f, 0.0f, 0.0f,
990 0.0f, 1.0f, 0.0f, 0.0f,
991 0.0f, 0.0f, 0.0f, 0.0f
992 });
993 std::vector<float> scores({
994 0.0f, 0.9f, 0.8f,
995 0.0f, 0.75f, 0.72f,
996 0.0f, 0.6f, 0.5f,
997 0.0f, 0.93f, 0.95f,
998 0.0f, 0.5f, 0.4f,
999 0.0f, 0.3f, 0.2f
1000 });
1001 std::vector<float> anchors({
1002 0.5f, 0.5f, 1.0f, 1.0f,
1003 0.5f, 0.5f, 1.0f, 1.0f,
1004 0.5f, 0.5f, 1.0f, 1.0f,
1005 0.5f, 10.5f, 1.0f, 1.0f,
1006 0.5f, 10.5f, 1.0f, 1.0f,
1007 0.5f, 100.5f, 1.0f, 1.0f
1008 });
1009
1010 std::vector<uint8_t> qBoxEncodings(boxEncodings.size(), 0);
1011 std::vector<uint8_t> qScores(scores.size(), 0);
1012 std::vector<uint8_t> qAnchors(anchors.size(), 0);
1013 QuantizeData(qBoxEncodings.data(), boxEncodings.data(), boxEncodingsInfo);
1014 QuantizeData(qScores.data(), scores.data(), scoresInfo);
1015 QuantizeData(qAnchors.data(), anchors.data(), anchorsInfo);
Derek Lambertif90c56d2020-01-10 17:14:08 +00001016 DetectionPostProcessFastNmsEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, qBoxEncodings,
Narumol Prangnawarat6d302bf2019-02-04 11:46:26 +00001017 qScores, qAnchors,
1018 1.0f, 1, 0.01f, 0, 0.5f, 0);
1019}
1020
Jan Eilersa83af7b2020-03-18 15:58:11 +00001021// HardSwish
Sadik Armagan1625efc2021-06-10 18:24:34 +01001022TEST_CASE("RefHardSwishEndToEndTestFloat32")
Jan Eilersa83af7b2020-03-18 15:58:11 +00001023{
1024 HardSwishEndToEndTest<armnn::DataType::Float32>(defaultBackends);
1025}
1026
Sadik Armagan1625efc2021-06-10 18:24:34 +01001027TEST_CASE("RefHardSwishEndToEndTestFloat16")
Jan Eilersa83af7b2020-03-18 15:58:11 +00001028{
1029 HardSwishEndToEndTest<armnn::DataType::Float16>(defaultBackends);
1030}
1031
Sadik Armagan1625efc2021-06-10 18:24:34 +01001032TEST_CASE("RefHardSwishEndToEndTestQAsymmS8")
Jan Eilersa83af7b2020-03-18 15:58:11 +00001033{
1034 HardSwishEndToEndTest<armnn::DataType::QAsymmS8>(defaultBackends);
1035}
1036
Sadik Armagan1625efc2021-06-10 18:24:34 +01001037TEST_CASE("RefHardSwishEndToEndTestQAsymmU8")
Jan Eilersa83af7b2020-03-18 15:58:11 +00001038{
1039 HardSwishEndToEndTest<armnn::DataType::QAsymmU8>(defaultBackends);
1040}
1041
Sadik Armagan1625efc2021-06-10 18:24:34 +01001042TEST_CASE("RefHardSwishEndToEndTestQSymmS16")
Jan Eilersa83af7b2020-03-18 15:58:11 +00001043{
1044 HardSwishEndToEndTest<armnn::DataType::QSymmS16>(defaultBackends);
1045}
1046
Sadik Armagan20bea002019-10-16 09:29:38 +01001047// LogSoftmax
Sadik Armagan1625efc2021-06-10 18:24:34 +01001048TEST_CASE("RefLogSoftmaxEndToEndTest")
Sadik Armagan20bea002019-10-16 09:29:38 +01001049{
1050 LogSoftmaxEndToEndTest(defaultBackends);
1051}
1052
Sadik Armagan1625efc2021-06-10 18:24:34 +01001053TEST_CASE("RefPreluEndToEndTestFloat32")
Nikhil Raj747f5862019-07-19 15:15:23 +01001054{
1055 PreluEndToEndNegativeTest<armnn::DataType::Float32>(defaultBackends);
1056}
1057
Sadik Armagan1625efc2021-06-10 18:24:34 +01001058TEST_CASE("RefPreluEndToEndTestUint8")
Nikhil Raj747f5862019-07-19 15:15:23 +01001059{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001060 PreluEndToEndPositiveTest<armnn::DataType::QAsymmU8>(defaultBackends);
Nikhil Raj747f5862019-07-19 15:15:23 +01001061}
1062
Sadik Armagan1625efc2021-06-10 18:24:34 +01001063TEST_CASE("RefPreluEndToEndTestQSymm16")
Nikhil Raj747f5862019-07-19 15:15:23 +01001064{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001065 PreluEndToEndPositiveTest<armnn::DataType::QSymmS16>(defaultBackends);
Nikhil Raj747f5862019-07-19 15:15:23 +01001066}
1067
Teresa Charlinca5a23a2023-12-15 14:20:47 +00001068// Quantization
1069TEST_CASE("QuantizationEndToEndFloat32_U8Test")
1070{
1071 QuantizationEndToEndFloat32<armnn::DataType::QAsymmU8>(defaultBackends);
1072}
1073
1074TEST_CASE("QuantizationEndToEndFloat32_I8Test")
1075{
1076 QuantizationEndToEndFloat32<armnn::DataType::QAsymmS8>(defaultBackends);
1077}
1078
1079TEST_CASE("QuantizationEndToEndFloat32_S16Test")
1080{
1081 QuantizationEndToEndFloat32<armnn::DataType::QSymmS16>(defaultBackends);
1082}
1083
1084TEST_CASE("QuantizationEndToEndFloat16_U8Test")
1085{
1086 QuantizationEndToEndFloat16<armnn::DataType::QAsymmU8>(defaultBackends);
1087}
1088
1089TEST_CASE("QuantizationEndToEndFloat16_I8Test")
1090{
1091 QuantizationEndToEndFloat16<armnn::DataType::QAsymmS8>(defaultBackends);
1092}
1093
1094TEST_CASE("QuantizationEndToEndFloat16_S16Test")
1095{
1096 QuantizationEndToEndFloat16<armnn::DataType::QSymmS16>(defaultBackends);
1097}
1098
1099// SpaceToDepth
Sadik Armagan1625efc2021-06-10 18:24:34 +01001100TEST_CASE("RefSpaceToDepthNhwcEndToEndTest1")
Keith Davis9515c7e2019-06-21 09:33:59 +01001101{
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +01001102 SpaceToDepthNhwcEndToEndTest1(defaultBackends);
Keith Davis9515c7e2019-06-21 09:33:59 +01001103}
1104
Sadik Armagan1625efc2021-06-10 18:24:34 +01001105TEST_CASE("RefSpaceToDepthNchwEndToEndTest1")
Keith Davis9515c7e2019-06-21 09:33:59 +01001106{
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +01001107 SpaceToDepthNchwEndToEndTest1(defaultBackends);
Keith Davis9515c7e2019-06-21 09:33:59 +01001108}
1109
Sadik Armagan1625efc2021-06-10 18:24:34 +01001110TEST_CASE("RefSpaceToDepthNhwcEndToEndTest2")
Keith Davis9515c7e2019-06-21 09:33:59 +01001111{
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +01001112 SpaceToDepthNhwcEndToEndTest2(defaultBackends);
Keith Davis9515c7e2019-06-21 09:33:59 +01001113}
1114
Sadik Armagan1625efc2021-06-10 18:24:34 +01001115TEST_CASE("RefSpaceToDepthNchwEndToEndTest2")
Keith Davis9515c7e2019-06-21 09:33:59 +01001116{
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +01001117 SpaceToDepthNchwEndToEndTest2(defaultBackends);
Keith Davis9515c7e2019-06-21 09:33:59 +01001118}
1119
Kevin May1bea6be2023-12-12 11:18:46 +00001120// Split
1121TEST_CASE("RefSplit1dEndtoEndTestSigned16")
1122{
1123 Splitter1dEndToEnd<DataType::QSymmS16>(defaultBackends);
1124}
1125
1126TEST_CASE("TosaRefSplit1dEndtoEndTestFloat16")
1127{
1128 Splitter1dEndToEndFloat16<DataType::Float16>(defaultBackends);
1129}
1130
Sadik Armagan1625efc2021-06-10 18:24:34 +01001131TEST_CASE("RefSplitter1dEndToEndTest")
Narumol Prangnawarat0be43382019-05-27 11:29:59 +01001132{
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001133 Splitter1dEndToEnd<armnn::DataType::Float32>(defaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +01001134}
1135
Sadik Armagan1625efc2021-06-10 18:24:34 +01001136TEST_CASE("RefSplitter1dEndToEndUint8Test")
Narumol Prangnawarat0be43382019-05-27 11:29:59 +01001137{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001138 Splitter1dEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +01001139}
1140
Sadik Armagan1625efc2021-06-10 18:24:34 +01001141TEST_CASE("RefSplitter2dDim0EndToEndTest")
Narumol Prangnawarat0be43382019-05-27 11:29:59 +01001142{
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001143 Splitter2dDim0EndToEnd<armnn::DataType::Float32>(defaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +01001144}
1145
Sadik Armagan1625efc2021-06-10 18:24:34 +01001146TEST_CASE("RefSplitter2dDim1EndToEndTest")
Narumol Prangnawarat0be43382019-05-27 11:29:59 +01001147{
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001148 Splitter2dDim1EndToEnd<armnn::DataType::Float32>(defaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +01001149}
1150
Sadik Armagan1625efc2021-06-10 18:24:34 +01001151TEST_CASE("RefSplitter2dDim0EndToEndUint8Test")
Narumol Prangnawarat0be43382019-05-27 11:29:59 +01001152{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001153 Splitter2dDim0EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +01001154}
1155
Sadik Armagan1625efc2021-06-10 18:24:34 +01001156TEST_CASE("RefSplitter2dDim1EndToEndUint8Test")
Narumol Prangnawarat0be43382019-05-27 11:29:59 +01001157{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001158 Splitter2dDim1EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +01001159}
1160
Kevin May1bea6be2023-12-12 11:18:46 +00001161TEST_CASE("RefSplit3dDim1EndtoEndTestSigned16")
1162{
1163 Splitter3dDim1EndToEnd<DataType::QSymmS16>(defaultBackends);
1164}
1165
1166TEST_CASE("RefSplit3dDim1EndtoEndTestFloat16")
1167{
1168 Splitter3dDim1EndToEndFloat16<DataType::Float16>(defaultBackends);
1169}
1170
Sadik Armagan1625efc2021-06-10 18:24:34 +01001171TEST_CASE("RefSplitter3dDim0EndToEndTest")
Narumol Prangnawarat0be43382019-05-27 11:29:59 +01001172{
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001173 Splitter3dDim0EndToEnd<armnn::DataType::Float32>(defaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +01001174}
1175
Sadik Armagan1625efc2021-06-10 18:24:34 +01001176TEST_CASE("RefSplitter3dDim1EndToEndTest")
Narumol Prangnawarat0be43382019-05-27 11:29:59 +01001177{
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001178 Splitter3dDim1EndToEnd<armnn::DataType::Float32>(defaultBackends);
1179}
1180
Sadik Armagan1625efc2021-06-10 18:24:34 +01001181TEST_CASE("RefSplitter3dDim2EndToEndTest")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001182{
1183 Splitter3dDim2EndToEnd<armnn::DataType::Float32>(defaultBackends);
1184}
1185
Sadik Armagan1625efc2021-06-10 18:24:34 +01001186TEST_CASE("RefSplitter3dDim0EndToEndUint8Test")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001187{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001188 Splitter3dDim0EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001189}
1190
Sadik Armagan1625efc2021-06-10 18:24:34 +01001191TEST_CASE("RefSplitter3dDim1EndToEndUint8Test")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001192{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001193 Splitter3dDim1EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001194}
1195
Sadik Armagan1625efc2021-06-10 18:24:34 +01001196TEST_CASE("RefSplitter3dDim2EndToEndUint8Test")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001197{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001198 Splitter3dDim2EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001199}
1200
Sadik Armagan1625efc2021-06-10 18:24:34 +01001201TEST_CASE("RefSplitter4dDim0EndToEndTest")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001202{
1203 Splitter4dDim0EndToEnd<armnn::DataType::Float32>(defaultBackends);
1204}
1205
Sadik Armagan1625efc2021-06-10 18:24:34 +01001206TEST_CASE("RefSplitter4dDim1EndToEndTest")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001207{
1208 Splitter4dDim1EndToEnd<armnn::DataType::Float32>(defaultBackends);
1209}
1210
Sadik Armagan1625efc2021-06-10 18:24:34 +01001211TEST_CASE("RefSplitter4dDim2EndToEndTest")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001212{
1213 Splitter4dDim2EndToEnd<armnn::DataType::Float32>(defaultBackends);
1214}
1215
Kevin May1bea6be2023-12-12 11:18:46 +00001216TEST_CASE("RefSplit4dDim2EndtoEndTestFloat16")
1217{
1218 Splitter4dDim2EndToEndFloat16<DataType::Float16>(defaultBackends);
1219}
1220
Sadik Armagan1625efc2021-06-10 18:24:34 +01001221TEST_CASE("RefSplitter4dDim3EndToEndTest")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001222{
1223 Splitter4dDim3EndToEnd<armnn::DataType::Float32>(defaultBackends);
1224}
1225
Sadik Armagan1625efc2021-06-10 18:24:34 +01001226TEST_CASE("RefSplitter4dDim0EndToEndUint8Test")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001227{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001228 Splitter4dDim0EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001229}
1230
Sadik Armagan1625efc2021-06-10 18:24:34 +01001231TEST_CASE("RefSplitter4dDim1EndToEndUint8Test")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001232{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001233 Splitter4dDim1EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001234}
1235
Sadik Armagan1625efc2021-06-10 18:24:34 +01001236TEST_CASE("RefSplitter4dDim2EndToEndUint8Test")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001237{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001238 Splitter4dDim2EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001239}
1240
Sadik Armagan1625efc2021-06-10 18:24:34 +01001241TEST_CASE("RefSplitter4dDim3EndToEndUint8Test")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001242{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001243 Splitter4dDim3EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +01001244}
1245
Cian McGriskin160edb32023-07-25 14:15:45 +01001246// Tile
1247TEST_CASE("RefTileEndToEndFloat32")
1248{
1249 TileEndToEnd<armnn::DataType::Float32>(defaultBackends);
1250}
1251
1252TEST_CASE("RefTileEndToEndFloat16")
1253{
1254 TileEndToEnd<armnn::DataType::Float16>(defaultBackends);
1255}
1256
1257TEST_CASE("RefTileEndToEndQAsymmS8")
1258{
1259 TileEndToEnd<armnn::DataType::QAsymmS8>(defaultBackends);
1260}
1261
1262TEST_CASE("RefTileEndToEndQAsymmU8")
1263{
1264 TileEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
1265}
1266
1267TEST_CASE("RefTileEndToEndQSymmS8")
1268{
1269 TileEndToEnd<armnn::DataType::QSymmS8>(defaultBackends);
1270}
1271
1272TEST_CASE("RefTileEndToEndQSymmS16")
1273{
1274 TileEndToEnd<armnn::DataType::QSymmS16>(defaultBackends);
1275}
1276
1277TEST_CASE("RefTileEndToEndSigned32")
1278{
1279 TileEndToEnd<armnn::DataType::Signed32>(defaultBackends);
1280}
1281
Aron Virginas-Tar98180ef2019-06-26 15:02:47 +01001282// TransposeConvolution2d
Sadik Armagan1625efc2021-06-10 18:24:34 +01001283TEST_CASE("RefTransposeConvolution2dEndToEndFloatNchwTest")
Aron Virginas-Tar98180ef2019-06-26 15:02:47 +01001284{
1285 TransposeConvolution2dEndToEnd<armnn::DataType::Float32, armnn::DataType::Float32>(
1286 defaultBackends, armnn::DataLayout::NCHW);
1287}
1288
Sadik Armagan1625efc2021-06-10 18:24:34 +01001289TEST_CASE("RefTransposeConvolution2dEndToEndUint8NchwTest")
Aron Virginas-Tar98180ef2019-06-26 15:02:47 +01001290{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001291 TransposeConvolution2dEndToEnd<armnn::DataType::QAsymmU8, armnn::DataType::Signed32>(
Aron Virginas-Tar98180ef2019-06-26 15:02:47 +01001292 defaultBackends, armnn::DataLayout::NCHW);
1293}
1294
Sadik Armagan1625efc2021-06-10 18:24:34 +01001295TEST_CASE("RefTransposeConvolution2dEndToEndInt16NchwTest")
Aron Virginas-Tar98180ef2019-06-26 15:02:47 +01001296{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001297 TransposeConvolution2dEndToEnd<armnn::DataType::QSymmS16, armnn::DataType::Signed32>(
Aron Virginas-Tar98180ef2019-06-26 15:02:47 +01001298 defaultBackends, armnn::DataLayout::NCHW);
1299}
1300
Sadik Armagan1625efc2021-06-10 18:24:34 +01001301TEST_CASE("RefTransposeConvolution2dEndToEndFloatNhwcTest")
Aron Virginas-Tar98180ef2019-06-26 15:02:47 +01001302{
1303 TransposeConvolution2dEndToEnd<armnn::DataType::Float32, armnn::DataType::Float32>(
1304 defaultBackends, armnn::DataLayout::NHWC);
1305}
1306
Sadik Armagan1625efc2021-06-10 18:24:34 +01001307TEST_CASE("RefTransposeConvolution2dEndToEndUint8NhwcTest")
Aron Virginas-Tar98180ef2019-06-26 15:02:47 +01001308{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001309 TransposeConvolution2dEndToEnd<armnn::DataType::QAsymmU8, armnn::DataType::Signed32>(
Aron Virginas-Tar98180ef2019-06-26 15:02:47 +01001310 defaultBackends, armnn::DataLayout::NHWC);
1311}
1312
Sadik Armagan1625efc2021-06-10 18:24:34 +01001313TEST_CASE("RefTransposeConvolution2dEndToEndInt16NhwcTest")
Aron Virginas-Tar98180ef2019-06-26 15:02:47 +01001314{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001315 TransposeConvolution2dEndToEnd<armnn::DataType::QSymmS16, armnn::DataType::Signed32>(
Aron Virginas-Tar98180ef2019-06-26 15:02:47 +01001316 defaultBackends, armnn::DataLayout::NHWC);
1317}
1318
Teresa Charlin6bc85252022-12-06 20:43:06 +00001319// Transpose
1320TEST_CASE("RefTransposeEndToEndTest")
1321{
1322 TransposeEndToEnd<armnn::DataType::Float32>(defaultBackends);
1323}
1324
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001325// Resize Bilinear
Sadik Armagan1625efc2021-06-10 18:24:34 +01001326TEST_CASE("RefResizeBilinearEndToEndFloatNchwTest")
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001327{
1328 ResizeBilinearEndToEnd<armnn::DataType::Float32>(defaultBackends, armnn::DataLayout::NCHW);
1329}
1330
Sadik Armagan1625efc2021-06-10 18:24:34 +01001331TEST_CASE("RefResizeBilinearEndToEndUint8NchwTest")
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001332{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001333 ResizeBilinearEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, armnn::DataLayout::NCHW);
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001334}
1335
Teresa Charlince655882023-11-21 15:44:13 +00001336TEST_CASE("RefResizeBilinearEndToEndInt8NchwTest")
1337{
1338 ResizeBilinearEndToEnd<armnn::DataType::QSymmS8>(defaultBackends, armnn::DataLayout::NCHW);
1339}
1340
Sadik Armagan1625efc2021-06-10 18:24:34 +01001341TEST_CASE("RefResizeBilinearEndToEndInt16NchwTest")
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001342{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001343 ResizeBilinearEndToEnd<armnn::DataType::QSymmS16>(defaultBackends, armnn::DataLayout::NCHW);
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001344}
1345
Sadik Armagan1625efc2021-06-10 18:24:34 +01001346TEST_CASE("RefResizeBilinearEndToEndFloatNhwcTest")
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001347{
1348 ResizeBilinearEndToEnd<armnn::DataType::Float32>(defaultBackends, armnn::DataLayout::NHWC);
1349}
1350
Sadik Armagan1625efc2021-06-10 18:24:34 +01001351TEST_CASE("RefResizeBilinearEndToEndUint8NhwcTest")
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001352{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001353 ResizeBilinearEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, armnn::DataLayout::NHWC);
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001354}
1355
Teresa Charlince655882023-11-21 15:44:13 +00001356TEST_CASE("RefResizeBilinearEndToEndInt8NhwcTest")
1357{
1358 ResizeBilinearEndToEnd<armnn::DataType::QSymmS8>(defaultBackends, armnn::DataLayout::NHWC);
1359}
1360
Sadik Armagan1625efc2021-06-10 18:24:34 +01001361TEST_CASE("RefResizeBilinearEndToEndInt16NhwcTest")
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001362{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001363 ResizeBilinearEndToEnd<armnn::DataType::QSymmS16>(defaultBackends, armnn::DataLayout::NHWC);
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001364}
1365
1366// Resize NearestNeighbor
Sadik Armagan1625efc2021-06-10 18:24:34 +01001367TEST_CASE("RefResizeNearestNeighborEndToEndFloatNchwTest")
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001368{
1369 ResizeNearestNeighborEndToEnd<armnn::DataType::Float32>(defaultBackends, armnn::DataLayout::NCHW);
1370}
1371
Sadik Armagan1625efc2021-06-10 18:24:34 +01001372TEST_CASE("RefResizeNearestNeighborEndToEndUint8NchwTest")
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001373{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001374 ResizeNearestNeighborEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, armnn::DataLayout::NCHW);
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001375}
1376
Teresa Charlince655882023-11-21 15:44:13 +00001377TEST_CASE("RefResizeNearestNeighborEndToEndInt8NchwTest")
1378{
1379 ResizeNearestNeighborEndToEnd<armnn::DataType::QAsymmS8>(defaultBackends, armnn::DataLayout::NCHW);
1380}
1381
Sadik Armagan1625efc2021-06-10 18:24:34 +01001382TEST_CASE("RefResizeNearestNeighborEndToEndInt16NchwTest")
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001383{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001384 ResizeNearestNeighborEndToEnd<armnn::DataType::QSymmS16>(defaultBackends, armnn::DataLayout::NCHW);
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001385}
1386
Sadik Armagan1625efc2021-06-10 18:24:34 +01001387TEST_CASE("RefResizeNearestNeighborEndToEndFloatNhwcTest")
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001388{
1389 ResizeNearestNeighborEndToEnd<armnn::DataType::Float32>(defaultBackends, armnn::DataLayout::NHWC);
1390}
1391
Sadik Armagan1625efc2021-06-10 18:24:34 +01001392TEST_CASE("RefResizeNearestNeighborEndToEndUint8NhwcTest")
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001393{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001394 ResizeNearestNeighborEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, armnn::DataLayout::NHWC);
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001395}
1396
Teresa Charlince655882023-11-21 15:44:13 +00001397TEST_CASE("RefResizeNearestNeighborEndToEndInt8NhwcTest")
1398{
1399 ResizeNearestNeighborEndToEnd<armnn::DataType::QAsymmS8>(defaultBackends, armnn::DataLayout::NHWC);
1400}
1401
Sadik Armagan1625efc2021-06-10 18:24:34 +01001402TEST_CASE("RefResizeNearestNeighborEndToEndInt16NhwcTest")
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001403{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001404 ResizeNearestNeighborEndToEnd<armnn::DataType::QSymmS16>(defaultBackends, armnn::DataLayout::NHWC);
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001405}
1406
Teresa Charlin28658bc2023-12-19 15:49:31 +00001407TEST_CASE("RefResizeNearestNeighborEndToEndFloatAlignCornersNhwcTest")
1408{
1409 ResizeNearestNeighborEndToEnd<armnn::DataType::Float32>(defaultBackends, armnn::DataLayout::NHWC, true, false);
1410}
1411
Teresa Charlince655882023-11-21 15:44:13 +00001412TEST_CASE("RefResizeNearestNeighborEndToEndFloatHalfPixelNhwcTest")
1413{
1414 ResizeNearestNeighborEndToEnd<armnn::DataType::Float32>(defaultBackends, armnn::DataLayout::NHWC, false, true);
1415}
1416
Teresa Charlin28658bc2023-12-19 15:49:31 +00001417TEST_CASE("RefResizeNearestNeighborEndToEndInt8AlignCornersNhwcTest")
1418{
1419 ResizeNearestNeighborEndToEnd<armnn::DataType::QAsymmS8>(defaultBackends, armnn::DataLayout::NHWC, true, false);
1420}
1421
Teresa Charlin0587dd02023-12-21 09:05:39 +00001422TEST_CASE("RefResizeNearestNeighborEndToEndInt8HalfPixelNhwcTest")
Teresa Charlince655882023-11-21 15:44:13 +00001423{
1424 ResizeNearestNeighborEndToEnd<armnn::DataType::QSymmS8>(defaultBackends, armnn::DataLayout::NHWC, false, true);
1425}
1426
Declan-ARM1bf56cd2023-07-20 17:32:57 +01001427// ReverseV2
1428TEST_CASE("RefReverseV2EndToEndFloat16Test")
1429{
1430 ReverseV2EndToEnd<armnn::DataType::Float16>(defaultBackends);
1431}
1432
1433TEST_CASE("RefReverseV2EndToEndFloat32Test")
1434{
1435 ReverseV2EndToEnd<armnn::DataType::Float32>(defaultBackends);
1436}
1437
1438TEST_CASE("RefReverseV2EndToEndQAsymmS8Test")
1439{
1440 ReverseV2EndToEnd<armnn::DataType::QAsymmS8>(defaultBackends);
1441}
1442
1443TEST_CASE("RefReverseV2EndToEndQAsymmU8Test")
1444{
1445 ReverseV2EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
1446}
1447
1448TEST_CASE("RefReverseV2EndToEndQSymmS8Test")
1449{
1450 ReverseV2EndToEnd<armnn::DataType::QSymmS8>(defaultBackends);
1451}
1452
1453TEST_CASE("RefReverseV2EndToEndQSymmS16Test")
1454{
1455 ReverseV2EndToEnd<armnn::DataType::QSymmS16>(defaultBackends);
1456}
1457
1458TEST_CASE("RefReverseV2EndToEndSigned32Test")
1459{
1460 ReverseV2EndToEnd<armnn::DataType::Signed32>(defaultBackends);
1461}
1462
Sadik Armagan062e0e92019-10-14 10:31:43 +01001463// InstanceNormalization
Sadik Armagan1625efc2021-06-10 18:24:34 +01001464TEST_CASE("RefInstanceNormalizationNhwcEndToEndTest1")
Sadik Armagan062e0e92019-10-14 10:31:43 +01001465{
1466 InstanceNormalizationNhwcEndToEndTest1(defaultBackends);
1467}
1468
Sadik Armagan1625efc2021-06-10 18:24:34 +01001469TEST_CASE("RefInstanceNormalizationNchwEndToEndTest1")
Sadik Armagan062e0e92019-10-14 10:31:43 +01001470{
1471 InstanceNormalizationNchwEndToEndTest1(defaultBackends);
1472}
1473
Sadik Armagan1625efc2021-06-10 18:24:34 +01001474TEST_CASE("RefInstanceNormalizationNhwcEndToEndTest2")
Sadik Armagan062e0e92019-10-14 10:31:43 +01001475{
1476 InstanceNormalizationNhwcEndToEndTest2(defaultBackends);
1477}
1478
Sadik Armagan1625efc2021-06-10 18:24:34 +01001479TEST_CASE("RefInstanceNormalizationNchwEndToEndTest2")
Sadik Armagan062e0e92019-10-14 10:31:43 +01001480{
1481 InstanceNormalizationNchwEndToEndTest2(defaultBackends);
1482}
1483
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001484// ArgMinMax
Sadik Armagan1625efc2021-06-10 18:24:34 +01001485TEST_CASE("RefArgMaxSimpleTest")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001486{
1487 ArgMaxEndToEndSimple<armnn::DataType::Float32>(defaultBackends);
1488}
1489
Sadik Armagan1625efc2021-06-10 18:24:34 +01001490TEST_CASE("RefArgMaxSimpleUint8Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001491{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001492 ArgMaxEndToEndSimple<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001493}
1494
Sadik Armagan1625efc2021-06-10 18:24:34 +01001495TEST_CASE("RefArgMinSimpleTest")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001496{
1497 ArgMinEndToEndSimple<armnn::DataType::Float32>(defaultBackends);
1498}
1499
Sadik Armagan1625efc2021-06-10 18:24:34 +01001500TEST_CASE("RefArgMinSimpleUint8Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001501{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001502 ArgMinEndToEndSimple<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001503}
1504
Sadik Armagan1625efc2021-06-10 18:24:34 +01001505TEST_CASE("RefArgMaxAxis0Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001506{
1507 ArgMaxAxis0EndToEnd<armnn::DataType::Float32>(defaultBackends);
1508}
1509
Sadik Armagan1625efc2021-06-10 18:24:34 +01001510TEST_CASE("RefArgMaxAxis0Uint8Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001511{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001512 ArgMaxAxis0EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001513}
1514
Sadik Armagan1625efc2021-06-10 18:24:34 +01001515TEST_CASE("RefArgMinAxis0Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001516{
1517 ArgMinAxis0EndToEnd<armnn::DataType::Float32>(defaultBackends);
1518}
1519
Sadik Armagan1625efc2021-06-10 18:24:34 +01001520TEST_CASE("RefArgMinAxis0Uint8Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001521{
1522
Derek Lambertif90c56d2020-01-10 17:14:08 +00001523 ArgMinAxis0EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001524}
1525
Sadik Armagan1625efc2021-06-10 18:24:34 +01001526TEST_CASE("RefArgMaxAxis1Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001527{
1528 ArgMaxAxis1EndToEnd<armnn::DataType::Float32>(defaultBackends);
1529}
1530
Sadik Armagan1625efc2021-06-10 18:24:34 +01001531TEST_CASE("RefArgMaxAxis1Uint8Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001532{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001533 ArgMaxAxis1EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001534}
1535
Sadik Armagan1625efc2021-06-10 18:24:34 +01001536TEST_CASE("RefArgMinAxis1Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001537{
1538 ArgMinAxis1EndToEnd<armnn::DataType::Float32>(defaultBackends);
1539}
1540
Sadik Armagan1625efc2021-06-10 18:24:34 +01001541TEST_CASE("RefArgMinAxis1Uint8Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001542{
1543
Derek Lambertif90c56d2020-01-10 17:14:08 +00001544 ArgMinAxis1EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001545}
1546
Sadik Armagan1625efc2021-06-10 18:24:34 +01001547TEST_CASE("RefArgMaxAxis2Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001548{
1549 ArgMaxAxis2EndToEnd<armnn::DataType::Float32>(defaultBackends);
1550}
1551
Sadik Armagan1625efc2021-06-10 18:24:34 +01001552TEST_CASE("RefArgMaxAxis2Uint8Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001553{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001554 ArgMaxAxis2EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001555}
1556
Sadik Armagan1625efc2021-06-10 18:24:34 +01001557TEST_CASE("RefArgMinAxis2Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001558{
1559 ArgMinAxis2EndToEnd<armnn::DataType::Float32>(defaultBackends);
1560}
1561
Sadik Armagan1625efc2021-06-10 18:24:34 +01001562TEST_CASE("RefArgMinAxis2Uint8Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001563{
1564
Derek Lambertif90c56d2020-01-10 17:14:08 +00001565 ArgMinAxis2EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001566}
1567
Sadik Armagan1625efc2021-06-10 18:24:34 +01001568TEST_CASE("RefArgMaxAxis3Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001569{
1570 ArgMaxAxis3EndToEnd<armnn::DataType::Float32>(defaultBackends);
1571}
1572
Sadik Armagan1625efc2021-06-10 18:24:34 +01001573TEST_CASE("RefArgMaxAxis3Uint8Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001574{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001575 ArgMaxAxis3EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001576}
1577
Sadik Armagan1625efc2021-06-10 18:24:34 +01001578TEST_CASE("RefArgMinAxis3Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001579{
1580 ArgMinAxis3EndToEnd<armnn::DataType::Float32>(defaultBackends);
1581}
1582
Sadik Armagan1625efc2021-06-10 18:24:34 +01001583TEST_CASE("RefArgMinAxis3Uint8Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001584{
1585
Derek Lambertif90c56d2020-01-10 17:14:08 +00001586 ArgMinAxis3EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001587}
1588
Sadik Armagan1625efc2021-06-10 18:24:34 +01001589TEST_CASE("RefQLstmEndToEndTest")
James Conroy0800bf52020-05-14 12:46:44 +01001590{
1591 QLstmEndToEnd(defaultBackends);
1592}
1593
Sadik Armagan1625efc2021-06-10 18:24:34 +01001594TEST_CASE("RefRankEndToEndTest")
Teresa Charlin2e3f4d22020-07-29 14:29:20 +01001595{
1596 RankEndToEnd<armnn::DataType::Float32>(defaultBackends);
1597}
1598
Sadik Armagan1625efc2021-06-10 18:24:34 +01001599TEST_CASE("RefRankEndToEndTestFloat16")
Teresa Charlin2e3f4d22020-07-29 14:29:20 +01001600{
1601 RankEndToEnd<armnn::DataType::Float16>(defaultBackends);
1602}
1603
Sadik Armagan1625efc2021-06-10 18:24:34 +01001604TEST_CASE("RefRankEndToEndTestInt32")
Teresa Charlin2e3f4d22020-07-29 14:29:20 +01001605{
1606 RankEndToEnd<armnn::DataType::Signed32>(defaultBackends);
1607}
1608
Sadik Armagan1625efc2021-06-10 18:24:34 +01001609TEST_CASE("RefRankEndToEndTestQAsymmS8")
Teresa Charlin2e3f4d22020-07-29 14:29:20 +01001610{
1611 RankEndToEnd<armnn::DataType::QAsymmS8>(defaultBackends);
1612}
1613
Sadik Armagan1625efc2021-06-10 18:24:34 +01001614TEST_CASE("RefRankEndToEndTestQSymmS16")
Teresa Charlin2e3f4d22020-07-29 14:29:20 +01001615{
1616 RankEndToEnd<armnn::DataType::QSymmS16>(defaultBackends);
1617}
1618
Sadik Armagan1625efc2021-06-10 18:24:34 +01001619TEST_CASE("RefRankEndToEndTestQSymmS8")
Teresa Charlin2e3f4d22020-07-29 14:29:20 +01001620{
1621 RankEndToEnd<armnn::DataType::QSymmS8>(defaultBackends);
1622}
1623
Teresa Charlinc17a35f2023-01-12 14:13:09 +00001624// Reduce
1625TEST_CASE("RefReduceEndToEndTest")
1626{
1627 ReduceEndToEnd<armnn::DataType::Float32>(defaultBackends);
1628}
1629
1630TEST_CASE("RefReduceEndToEndTestFloat16")
1631{
1632 ReduceEndToEnd<armnn::DataType::Float16>(defaultBackends);
1633}
1634
1635// Reshape
1636TEST_CASE("RefReshapeEndToEndTest")
1637{
1638 ReshapeEndToEnd<armnn::DataType::Float32>(defaultBackends);
1639}
1640
1641TEST_CASE("RefReshapeEndToEndTestFloat16")
1642{
1643 ReshapeEndToEndFloat16<armnn::DataType::Float16>(defaultBackends);
1644}
1645
David Monahan646bc8a2022-01-31 14:29:14 +00001646TEST_CASE("RefForceImportWithAlignedBuffersEndToEndTest")
Narumol Prangnawarate2af6f42022-01-28 17:59:18 +00001647{
David Monahan646bc8a2022-01-31 14:29:14 +00001648 ForceImportWithAlignedBuffersEndToEndTest(defaultBackends);
1649}
Narumol Prangnawarate2af6f42022-01-28 17:59:18 +00001650
David Monahan646bc8a2022-01-31 14:29:14 +00001651TEST_CASE("RefForceImportWithMisalignedInputBuffersEndToEndTest")
1652{
1653 ForceImportWithMisalignedInputBuffersEndToEndTest(defaultBackends);
1654}
Narumol Prangnawarate2af6f42022-01-28 17:59:18 +00001655
David Monahan646bc8a2022-01-31 14:29:14 +00001656TEST_CASE("RefForceImportWithMisalignedOutputBuffersEndToEndTest")
1657{
1658 ForceImportWithMisalignedOutputBuffersEndToEndTest(defaultBackends);
1659}
Narumol Prangnawarate2af6f42022-01-28 17:59:18 +00001660
David Monahan646bc8a2022-01-31 14:29:14 +00001661TEST_CASE("RefForceImportWithMisalignedInputAndOutputBuffersEndToEndTest")
1662{
1663 ForceImportWithMisalignedInputAndOutputBuffersEndToEndTest(defaultBackends);
Narumol Prangnawarate2af6f42022-01-28 17:59:18 +00001664}
1665
David Monahan16829712022-02-03 17:04:59 +00001666TEST_CASE("RefForceImportRepeatedInferencesEndToEndTest")
1667{
1668 ForceImportRepeatedInferencesEndToEndTest(defaultBackends);
1669}
1670
1671TEST_CASE("RefForceImportRepeatedInferencesInvertedEndToEndTest")
1672{
1673 ForceImportRepeatedInferencesInvertedEndToEndTest(defaultBackends);
1674}
1675
Ferran Balaguerdcaa6102019-08-21 13:28:38 +01001676#if !defined(__ANDROID__)
1677// Only run these tests on non Android platforms
Sadik Armagan1625efc2021-06-10 18:24:34 +01001678TEST_CASE("RefImportNonAlignedPointerTest")
Ferran Balaguerdcaa6102019-08-21 13:28:38 +01001679{
David Monahan4f1e8e42019-09-04 09:22:10 +01001680 ImportNonAlignedInputPointerTest(defaultBackends);
1681}
1682
Sadik Armagan1625efc2021-06-10 18:24:34 +01001683TEST_CASE("RefExportNonAlignedPointerTest")
David Monahan4f1e8e42019-09-04 09:22:10 +01001684{
Ferran Balaguer83239f92019-09-19 11:49:25 +01001685 ExportNonAlignedOutputPointerTest(defaultBackends);
Ferran Balaguerdcaa6102019-08-21 13:28:38 +01001686}
1687
Sadik Armagan1625efc2021-06-10 18:24:34 +01001688TEST_CASE("RefImportAlignedPointerTest")
Ferran Balaguerdcaa6102019-08-21 13:28:38 +01001689{
1690 ImportAlignedPointerTest(defaultBackends);
1691}
1692
Sadik Armagan1625efc2021-06-10 18:24:34 +01001693TEST_CASE("RefImportOnlyWorkload")
Ferran Balaguer83239f92019-09-19 11:49:25 +01001694{
1695 ImportOnlyWorkload(defaultBackends);
1696}
1697
Sadik Armagan1625efc2021-06-10 18:24:34 +01001698TEST_CASE("RefExportOnlyWorkload")
Ferran Balaguer83239f92019-09-19 11:49:25 +01001699{
1700 ExportOnlyWorkload(defaultBackends);
1701}
1702
Sadik Armagan1625efc2021-06-10 18:24:34 +01001703TEST_CASE("RefImportAndExportWorkload")
Ferran Balaguer83239f92019-09-19 11:49:25 +01001704{
1705 ImportAndExportWorkload(defaultBackends);
1706}
1707
Sadik Armagan1625efc2021-06-10 18:24:34 +01001708TEST_CASE("RefExportOutputWithSeveralOutputSlotConnectionsTest")
Ferran Balaguer83239f92019-09-19 11:49:25 +01001709{
1710 ExportOutputWithSeveralOutputSlotConnectionsTest(defaultBackends);
1711}
1712
Ryan OShea980446b2023-06-08 16:23:28 +01001713// Slice
1714TEST_CASE("RefSliceEndtoEndTestFloat32")
1715{
1716 SliceEndToEnd<DataType::Float32>(defaultBackends);
1717}
1718
1719TEST_CASE("RefSliceEndtoEndTestInt32")
1720{
1721 SliceEndToEnd<DataType::Signed32>(defaultBackends);
1722}
1723
1724TEST_CASE("RefSliceEndtoEndTestFloat16")
1725{
1726 SliceEndToEndFloat16<DataType::Float16>(defaultBackends);
1727}
1728
Sadik Armagan1625efc2021-06-10 18:24:34 +01001729TEST_CASE("RefStridedSliceInvalidSliceEndToEndTest")
David Monahan0a99a142020-03-13 07:52:54 +00001730{
1731 StridedSliceInvalidSliceEndToEndTest(defaultBackends);
1732}
1733
Sadik Armagan1625efc2021-06-10 18:24:34 +01001734TEST_CASE("RefThreadSafeFP32StridedSlicedEndToEndTest")
Mike Kelly386ff1a2021-03-29 15:04:50 +01001735{
Kevin Mayb4b3ac92021-05-21 16:42:21 +01001736 armnn::experimental::StridedSlicedEndToEndTest<armnn::DataType::Float32>(defaultBackends, 1);
Mike Kelly386ff1a2021-03-29 15:04:50 +01001737}
Finn Williamsb8181f72021-04-07 10:23:21 +01001738
Sadik Armagan1625efc2021-06-10 18:24:34 +01001739TEST_CASE("RefAsyncFP32StridedSlicedMultiThreadedEndToEndTest")
Finn Williamsb8181f72021-04-07 10:23:21 +01001740{
1741 armnn::experimental::StridedSlicedMultiThreadedEndToEndTest<armnn::DataType::Float32>(defaultBackends);
1742}
Keith Davise813d672021-04-22 10:10:34 +01001743
Sadik Armagan1625efc2021-06-10 18:24:34 +01001744TEST_CASE("RefAsyncFP32StridedSlicedScheduledMultiThreadedEndToEndTest")
Keith Davise813d672021-04-22 10:10:34 +01001745{
Kevin Mayb4b3ac92021-05-21 16:42:21 +01001746 armnn::experimental::StridedSlicedEndToEndTest<armnn::DataType::Float32>(defaultBackends, 3);
Keith Davise813d672021-04-22 10:10:34 +01001747}
Mike Kelly3ec30772023-03-08 13:47:17 +00001748
1749TEST_CASE("RefAddEndToEndTestFloat32")
1750{
1751 ElementwiseBinarySimpleEndToEnd<armnn::DataType::Float32>(defaultBackends, BinaryOperation::Add);
1752}
1753TEST_CASE("RefAddEndToEndTestUint8")
1754{
1755 ElementwiseBinarySimpleEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, BinaryOperation::Add);
1756}
1757TEST_CASE("RefDivEndToEndTestFloat32")
1758{
1759 ElementwiseBinarySimpleEndToEnd<armnn::DataType::Float32>(defaultBackends, BinaryOperation::Div);
1760}
1761TEST_CASE("RefDivEndToEndTestUint8")
1762{
1763 ElementwiseBinarySimpleEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, BinaryOperation::Div);
1764}
1765TEST_CASE("RefMulEndToEndTestFloat32")
1766{
1767 ElementwiseBinarySimpleEndToEnd<armnn::DataType::Float32>(defaultBackends, BinaryOperation::Mul);
1768}
1769TEST_CASE("RefMulEndToEndTestUint8")
1770{
1771 ElementwiseBinarySimpleEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, BinaryOperation::Mul);
1772}
1773TEST_CASE("RefSubEndToEndTestFloat32")
1774{
1775 ElementwiseBinarySimpleEndToEnd<armnn::DataType::Float32>(defaultBackends, BinaryOperation::Sub);
1776}
1777TEST_CASE("RefSubEndToEndTestUint8")
1778{
1779 ElementwiseBinarySimpleEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, BinaryOperation::Sub);
1780}
1781TEST_CASE("RefMaximumEndToEndTestFloat32")
1782{
1783 ElementwiseBinarySimpleEndToEnd<armnn::DataType::Float32>(defaultBackends, BinaryOperation::Maximum);
1784}
1785TEST_CASE("RefMaximumEndToEndTestUint8")
1786{
1787 ElementwiseBinarySimpleEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, BinaryOperation::Maximum);
1788}
1789TEST_CASE("RefMinimumEndToEndTestFloat32")
1790{
1791 ElementwiseBinarySimpleEndToEnd<armnn::DataType::Float32>(defaultBackends, BinaryOperation::Minimum);
1792}
1793TEST_CASE("RefMinimumEndToEndTestUint8")
1794{
1795 ElementwiseBinarySimpleEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, BinaryOperation::Minimum);
1796}
John Mcloughlin0ec00872023-05-15 17:03:49 +01001797TEST_CASE("RefPowerEndToEndTestFloat32")
1798{
1799 ElementwiseBinarySimpleEndToEnd<armnn::DataType::Float32>(defaultBackends, BinaryOperation::Power);
1800}
1801TEST_CASE("RefPowerEndToEndTestUint8")
1802{
1803 ElementwiseBinarySimpleEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, BinaryOperation::Power);
1804}
1805TEST_CASE("RefSquaredDifferenceEndToEndTestFloat32")
1806{
1807 ElementwiseBinarySimpleEndToEnd<armnn::DataType::Float32>(defaultBackends, BinaryOperation::SqDiff);
1808}
1809TEST_CASE("RefSquaredDifferenceEndToEndTestUint8")
1810{
1811 ElementwiseBinarySimpleEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, BinaryOperation::SqDiff);
1812}
Mike Kelly4cc341c2023-07-07 15:43:06 +01001813
Ferran Balaguerdcaa6102019-08-21 13:28:38 +01001814#endif
1815
Mike Kelly4cc341c2023-07-07 15:43:06 +01001816// Backend Optimization Tests
1817TEST_CASE("RefReshapeRemovalSimpleCaseEndToEnd")
1818{
1819 ReshapeRemovalEndToEnd<armnn::DataType::Float32>(defaultBackends);
1820}
1821
1822TEST_CASE("RefReshapeRemovalNCHWFirstEndToEnd")
1823{
1824 ReshapeRemovalNCHWEndToEnd<armnn::DataType::Float32>(defaultBackends, true, true);
1825}
1826
1827TEST_CASE("RefReshapeRemovalNCHWSecondEndToEnd")
1828{
1829 ReshapeRemovalNCHWEndToEnd<armnn::DataType::Float32>(defaultBackends, true, false);
1830}
Idriss Chaouch98e383e2023-08-28 14:28:31 +01001831
1832// BroadcastTo
1833TEST_CASE("RefBroadcastToEndToEndFloat32")
1834{
1835 BroadcastToEndToEnd<armnn::DataType::Float32>(defaultBackends);
1836}
1837
Idriss Chaouch564c13d2023-09-01 17:58:38 +01001838TEST_CASE("RefBroadcastToEndToEndWithMultiplicationFloat32")
Idriss Chaouch98e383e2023-08-28 14:28:31 +01001839{
Idriss Chaouch564c13d2023-09-01 17:58:38 +01001840 BroadcastToEndToEndElementWiseBinary<armnn::DataType::Float32>(defaultBackends,
1841 BinaryOperation::Mul);
1842}
1843
1844TEST_CASE("RefBroadcastToEndToEndWithDivisionFloat32")
1845{
1846 BroadcastToEndToEndElementWiseBinary<armnn::DataType::Float32>(defaultBackends,
1847 BinaryOperation::Div);
1848}
1849
1850TEST_CASE("RefBroadcastToEndToEndWithAdditionFloat32")
1851{
1852 BroadcastToEndToEndElementWiseBinary<armnn::DataType::Float32>(defaultBackends,
1853 BinaryOperation::Add);
1854}
1855
1856TEST_CASE("RefBroadcastToEndToEndWithSubtractionFloat32")
1857{
1858 BroadcastToEndToEndElementWiseBinary<armnn::DataType::Float32>(defaultBackends,
1859 BinaryOperation::Sub);
Idriss Chaouch98e383e2023-08-28 14:28:31 +01001860}
Sadik Armagan1625efc2021-06-10 18:24:34 +01001861}