blob: 9fb622766390f1711d933da3e733be1c19ffdb62 [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 Charlin2e3f4d22020-07-29 14:29:20 +010032#include <backendsCommon/test/RankEndToEndTestImpl.hpp>
Teresa Charlinc17a35f2023-01-12 14:13:09 +000033#include <backendsCommon/test/ReduceEndToEndTestImpl.hpp>
34#include <backendsCommon/test/ReshapeEndToEndTestImpl.hpp>
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +010035#include <backendsCommon/test/ResizeEndToEndTestImpl.hpp>
Declan-ARM1bf56cd2023-07-20 17:32:57 +010036#include <backendsCommon/test/ReverseV2EndToEndTestImpl.hpp>
Ryan OShea980446b2023-06-08 16:23:28 +010037#include <backendsCommon/test/SliceEndToEndTestImpl.hpp>
Keith Davis9515c7e2019-06-21 09:33:59 +010038#include <backendsCommon/test/SpaceToDepthEndToEndTestImpl.hpp>
Narumol Prangnawarat0be43382019-05-27 11:29:59 +010039#include <backendsCommon/test/SplitterEndToEndTestImpl.hpp>
Mike Kelly386ff1a2021-03-29 15:04:50 +010040#include <backendsCommon/test/StridedSliceAsyncEndToEndTest.hpp>
Mike Kelly4cc341c2023-07-07 15:43:06 +010041#include <backendsCommon/test/SubgraphUtilsTest.hpp>
Cian McGriskin160edb32023-07-25 14:15:45 +010042#include <backendsCommon/test/TileEndToEndTestImpl.hpp>
Aron Virginas-Tar98180ef2019-06-26 15:02:47 +010043#include <backendsCommon/test/TransposeConvolution2dEndToEndTestImpl.hpp>
Teresa Charlin6bc85252022-12-06 20:43:06 +000044#include <backendsCommon/test/TransposeEndToEndTestImpl.hpp>
Aron Virginas-Tar70104002018-10-24 15:33:28 +010045
Sadik Armagan1625efc2021-06-10 18:24:34 +010046#include <doctest/doctest.h>
Aron Virginas-Tar70104002018-10-24 15:33:28 +010047
Sadik Armagan1625efc2021-06-10 18:24:34 +010048TEST_SUITE("RefEndToEnd")
49{
narpra01b9546cf2018-11-20 15:21:28 +000050std::vector<armnn::BackendId> defaultBackends = {armnn::Compute::CpuRef};
51
David Monahand7fca092023-01-12 14:53:34 +000052// ElementwiseUnary
Aron Virginas-Tar8fccd862019-09-09 11:22:56 +010053// Abs
Sadik Armagan1625efc2021-06-10 18:24:34 +010054TEST_CASE("RefAbsEndToEndTestFloat32")
Aron Virginas-Tar8fccd862019-09-09 11:22:56 +010055{
josh minor4a3c6102020-01-06 16:40:46 -060056 ElementwiseUnarySimpleEndToEnd<armnn::DataType::Float32>(defaultBackends,
David Monahand7fca092023-01-12 14:53:34 +000057 UnaryOperation::Abs);
Aron Virginas-Tar8fccd862019-09-09 11:22:56 +010058}
59
Sadik Armagan1625efc2021-06-10 18:24:34 +010060TEST_CASE("RefAbsEndToEndTestUint8")
Aron Virginas-Tar8fccd862019-09-09 11:22:56 +010061{
josh minor4a3c6102020-01-06 16:40:46 -060062 ElementwiseUnarySimpleEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends,
David Monahand7fca092023-01-12 14:53:34 +000063 UnaryOperation::Abs);
Aron Virginas-Tar8fccd862019-09-09 11:22:56 +010064}
65
Sadik Armagan1625efc2021-06-10 18:24:34 +010066TEST_CASE("RefAbsEndToEndTestInt16")
Aron Virginas-Tar8fccd862019-09-09 11:22:56 +010067{
josh minor4a3c6102020-01-06 16:40:46 -060068 ElementwiseUnarySimpleEndToEnd<armnn::DataType::QSymmS16>(defaultBackends,
David Monahand7fca092023-01-12 14:53:34 +000069 UnaryOperation::Abs);
70}
71
72// Rsqrt
73TEST_CASE("RefRsqrtEndToEndTestFloat32")
74{
75 ElementwiseUnarySimpleEndToEnd<armnn::DataType::Float32>(defaultBackends,
76 UnaryOperation::Rsqrt);
77}
78
79TEST_CASE("RefRsqrtEndToEndTestUint8")
80{
81 ElementwiseUnarySimpleEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends,
82 UnaryOperation::Rsqrt);
83}
84
85TEST_CASE("RefRsqrtEndToEndTestInt16")
86{
87 ElementwiseUnarySimpleEndToEnd<armnn::DataType::QSymmS16>(defaultBackends,
88 UnaryOperation::Rsqrt);
Aron Virginas-Tar8fccd862019-09-09 11:22:56 +010089}
90
Ryan OShea3c2795a2022-11-03 17:51:52 +000091// Addition
92TEST_CASE("RefAdditionEndtoEndFloat32")
93{
94 AdditionEndToEnd<armnn::DataType::Float32>(defaultBackends);
95}
96
97TEST_CASE("RefAdditionEndtoEndUint8")
98{
99 AdditionEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
100}
101
Aron Virginas-Tar8fccd862019-09-09 11:22:56 +0100102// Constant
Sadik Armagan1625efc2021-06-10 18:24:34 +0100103TEST_CASE("ConstantUsage_Ref_Float32")
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100104{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100105 CHECK(ConstantUsageFloat32Test(defaultBackends));
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100106}
107
Sadik Armagan1625efc2021-06-10 18:24:34 +0100108TEST_CASE("ConstantUsage_Ref_Uint8")
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100109{
Sadik Armagan1625efc2021-06-10 18:24:34 +0100110 CHECK(ConstantUsageUint8Test(defaultBackends));
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100111}
112
Sadik Armagan1625efc2021-06-10 18:24:34 +0100113TEST_CASE("Unsigned8")
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100114{
115 using namespace armnn;
116
117 // Create runtime in which test will run
118 armnn::IRuntime::CreationOptions options;
119 armnn::IRuntimePtr runtime(armnn::IRuntime::Create(options));
120
121 // Builds up the structure of the network.
122 armnn::INetworkPtr net(INetwork::Create());
123
124 IConnectableLayer* input = net->AddInputLayer(0, "input");
125 IConnectableLayer* softmax = net->AddSoftmaxLayer(SoftmaxDescriptor(), "softmax");
126 IConnectableLayer* output = net->AddOutputLayer(0, "output");
127
128 input->GetOutputSlot(0).Connect(softmax->GetInputSlot(0));
129 softmax->GetOutputSlot(0).Connect(output->GetInputSlot(0));
130
131 // Sets the tensors in the network.
Derek Lambertif90c56d2020-01-10 17:14:08 +0000132 TensorInfo inputTensorInfo(TensorShape({1, 5}), DataType::QAsymmU8);
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100133 inputTensorInfo.SetQuantizationOffset(100);
134 inputTensorInfo.SetQuantizationScale(10000.0f);
135 input->GetOutputSlot(0).SetTensorInfo(inputTensorInfo);
136
Derek Lambertif90c56d2020-01-10 17:14:08 +0000137 TensorInfo outputTensorInfo(TensorShape({1, 5}), DataType::QAsymmU8);
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100138 outputTensorInfo.SetQuantizationOffset(0);
139 outputTensorInfo.SetQuantizationScale(1.0f/255.0f);
140 softmax->GetOutputSlot(0).SetTensorInfo(outputTensorInfo);
141
142 // optimize the network
narpra01b9546cf2018-11-20 15:21:28 +0000143 IOptimizedNetworkPtr optNet = Optimize(*net, defaultBackends, runtime->GetDeviceSpec());
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100144
145 // Loads it into the runtime.
146 NetworkId netId;
147 auto error = runtime->LoadNetwork(netId, std::move(optNet));
Sadik Armagan1625efc2021-06-10 18:24:34 +0100148 CHECK(error == Status::Success);
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100149
150 // Creates structures for input & output.
151 std::vector<uint8_t> inputData
152 {
153 1, 10, 3, 200, 5 // Some inputs - one of which is sufficiently larger than the others to saturate softmax.
154 };
155 std::vector<uint8_t> outputData(5);
156
Cathal Corbett5b8093c2021-10-22 11:12:07 +0100157 TensorInfo inputTensorInfo2 = runtime->GetInputTensorInfo(netId, 0);
158 inputTensorInfo2.SetConstant(true);
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100159 armnn::InputTensors inputTensors
160 {
Cathal Corbett5b8093c2021-10-22 11:12:07 +0100161 {0, armnn::ConstTensor(inputTensorInfo2, inputData.data())}
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100162 };
163 armnn::OutputTensors outputTensors
164 {
165 {0, armnn::Tensor(runtime->GetOutputTensorInfo(netId, 0), outputData.data())}
166 };
167
168 // Does the inference.
169 runtime->EnqueueWorkload(netId, inputTensors, outputTensors);
170
171 // Checks the results.
Sadik Armagan1625efc2021-06-10 18:24:34 +0100172 CHECK(outputData[0] == 0);
173 CHECK(outputData[1] == 0);
174 CHECK(outputData[2] == 0);
175 CHECK(outputData[3] == 255); // softmax has been saturated.
176 CHECK(outputData[4] == 0);
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100177}
178
Sadik Armagan1625efc2021-06-10 18:24:34 +0100179TEST_CASE("TrivialAdd")
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100180{
181 // This test was designed to match "AddTwo" in android nn/runtime/test/TestTrivialModel.cpp.
182
183 using namespace armnn;
184
185 // Create runtime in which test will run
186 armnn::IRuntime::CreationOptions options;
187 armnn::IRuntimePtr runtime(armnn::IRuntime::Create(options));
188
189 // Builds up the structure of the network.
190 armnn::INetworkPtr net(INetwork::Create());
191
192 IConnectableLayer* input1 = net->AddInputLayer(0);
193 IConnectableLayer* input2 = net->AddInputLayer(1);
Mike Kelly3ec30772023-03-08 13:47:17 +0000194 IConnectableLayer* add = net->AddElementwiseBinaryLayer(ElementwiseBinaryDescriptor(BinaryOperation::Add));
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100195 IConnectableLayer* output = net->AddOutputLayer(0);
196
197 input1->GetOutputSlot(0).Connect(add->GetInputSlot(0));
198 input2->GetOutputSlot(0).Connect(add->GetInputSlot(1));
199 add->GetOutputSlot(0).Connect(output->GetInputSlot(0));
200
201 // Sets the tensors in the network.
202 TensorInfo tensorInfo(TensorShape({3, 4}), DataType::Float32);
203 input1->GetOutputSlot(0).SetTensorInfo(tensorInfo);
204 input2->GetOutputSlot(0).SetTensorInfo(tensorInfo);
205 add->GetOutputSlot(0).SetTensorInfo(tensorInfo);
206
207 // optimize the network
narpra01b9546cf2018-11-20 15:21:28 +0000208 IOptimizedNetworkPtr optNet = Optimize(*net, defaultBackends, runtime->GetDeviceSpec());
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100209
210 // Loads it into the runtime.
211 NetworkId netId;
212 runtime->LoadNetwork(netId, std::move(optNet));
213
214 // Creates structures for input & output - matching android nn test.
215 std::vector<float> input1Data
216 {
217 1.f, 2.f, 3.f, 4.f, 5.f, 6.f, 7.f, 8.f, 9.f, 10.f, 11.f, 12.f
218 };
219 std::vector<float> input2Data
220 {
221 100.f, 200.f, 300.f, 400.f, 500.f, 600.f, 700.f, 800.f, 900.f, 1000.f, 1100.f, 1200.f
222 };
223 std::vector<float> outputData(12);
224
Cathal Corbett5b8093c2021-10-22 11:12:07 +0100225 TensorInfo inputTensorInfo = runtime->GetInputTensorInfo(netId, 0);
226 inputTensorInfo.SetConstant(true);
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100227 InputTensors inputTensors
228 {
Cathal Corbett5b8093c2021-10-22 11:12:07 +0100229 {0,armnn::ConstTensor(inputTensorInfo, input1Data.data())},
230 {1,armnn::ConstTensor(inputTensorInfo, input2Data.data())}
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100231 };
232 OutputTensors outputTensors
233 {
234 {0,armnn::Tensor(runtime->GetOutputTensorInfo(netId, 0), outputData.data())}
235 };
236
237 // Does the inference.
238 runtime->EnqueueWorkload(netId, inputTensors, outputTensors);
239
240 // Checks the results
Sadik Armagan1625efc2021-06-10 18:24:34 +0100241 CHECK(outputData[0] == 101);
242 CHECK(outputData[1] == 202);
243 CHECK(outputData[2] == 303);
244 CHECK(outputData[3] == 404);
245 CHECK(outputData[4] == 505);
246 CHECK(outputData[5] == 606);
247 CHECK(outputData[6] == 707);
248 CHECK(outputData[7] == 808);
249 CHECK(outputData[8] == 909);
250 CHECK(outputData[9] == 1010);
251 CHECK(outputData[10] == 1111);
252 CHECK(outputData[11] == 1212);
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100253}
254
Sadik Armagan1625efc2021-06-10 18:24:34 +0100255TEST_CASE("MultipleOutputs")
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100256{
257 using namespace armnn;
258
259 // Create runtime in which test will run
260 armnn::IRuntime::CreationOptions options;
261 armnn::IRuntimePtr runtime(armnn::IRuntime::Create(options));
262
263 // Builds up the structure of the network.
264 INetworkPtr net(INetwork::Create());
265
266 IConnectableLayer* input = net->AddInputLayer(0);
267
268 // ReLu1
269 ActivationDescriptor activation1Descriptor;
270 activation1Descriptor.m_Function = ActivationFunction::BoundedReLu;
271 activation1Descriptor.m_A = 1.f;
272 activation1Descriptor.m_B = -1.f;
273 IConnectableLayer* activation1 = net->AddActivationLayer(activation1Descriptor);
274
275 // ReLu6
276 ActivationDescriptor activation2Descriptor;
277 activation2Descriptor.m_Function = ActivationFunction::BoundedReLu;
278 activation2Descriptor.m_A = 6.0f;
279 IConnectableLayer* activation2 = net->AddActivationLayer(activation2Descriptor);
280
281 // BoundedReLu(min=2, max=5)
282 ActivationDescriptor activation3Descriptor;
283 activation3Descriptor.m_Function = ActivationFunction::BoundedReLu;
284 activation3Descriptor.m_A = 5.0f;
285 activation3Descriptor.m_B = 2.0f;
286 IConnectableLayer* activation3 = net->AddActivationLayer(activation3Descriptor);
287
288 IConnectableLayer* output1 = net->AddOutputLayer(0);
289 IConnectableLayer* output2 = net->AddOutputLayer(1);
290 IConnectableLayer* output3 = net->AddOutputLayer(2);
291
292 input->GetOutputSlot(0).Connect(activation1->GetInputSlot(0));
293 input->GetOutputSlot(0).Connect(activation2->GetInputSlot(0));
294 input->GetOutputSlot(0).Connect(activation3->GetInputSlot(0));
295
296 activation1->GetOutputSlot(0).Connect(output1->GetInputSlot(0));
297 activation2->GetOutputSlot(0).Connect(output2->GetInputSlot(0));
298 activation3->GetOutputSlot(0).Connect(output3->GetInputSlot(0));
299
300 // Sets the tensors in the network.
301 TensorInfo tensorInfo(TensorShape({ 10 }), DataType::Float32);
302 input->GetOutputSlot(0).SetTensorInfo(tensorInfo);
303 activation1->GetOutputSlot(0).SetTensorInfo(tensorInfo);
304 activation2->GetOutputSlot(0).SetTensorInfo(tensorInfo);
305 activation3->GetOutputSlot(0).SetTensorInfo(tensorInfo);
306
307 // optimize the network
narpra01b9546cf2018-11-20 15:21:28 +0000308 IOptimizedNetworkPtr optNet = Optimize(*net, defaultBackends, runtime->GetDeviceSpec());
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100309
310 // Loads it into the runtime.
311 NetworkId netId;
312 runtime->LoadNetwork(netId, std::move(optNet));
313
314 // Creates structures for input & output.
315 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 };
316
317 std::vector<float> output1Data(inputData.size());
318 std::vector<float> output2Data(inputData.size());
319 std::vector<float> output3Data(inputData.size());
320
Cathal Corbett5b8093c2021-10-22 11:12:07 +0100321 TensorInfo inputTensorInfo = runtime->GetInputTensorInfo(netId, 0);
322 inputTensorInfo.SetConstant(true);
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100323 InputTensors inputTensors
324 {
Cathal Corbett5b8093c2021-10-22 11:12:07 +0100325 {0,armnn::ConstTensor(inputTensorInfo, inputData.data())}
Aron Virginas-Tar70104002018-10-24 15:33:28 +0100326 };
327 OutputTensors outputTensors
328 {
329 {0,armnn::Tensor(runtime->GetOutputTensorInfo(netId, 0), output1Data.data())},
330 {1,armnn::Tensor(runtime->GetOutputTensorInfo(netId, 1), output2Data.data())},
331 {2,armnn::Tensor(runtime->GetOutputTensorInfo(netId, 2), output3Data.data())}
332 };
333
334 // Does the inference.
335 runtime->EnqueueWorkload(netId, inputTensors, outputTensors);
336
337 // Checks the results.
Sadik Armagan1625efc2021-06-10 18:24:34 +0100338 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
339 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
340 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 +0100341}
342
Sadik Armagan1625efc2021-06-10 18:24:34 +0100343TEST_CASE("TrivialMin")
Éanna Ó Catháin20e58802018-12-04 10:29:06 +0000344{
345 using namespace armnn;
346
347 // Create runtime in which test will run
348 armnn::IRuntime::CreationOptions options;
349 armnn::IRuntimePtr runtime(armnn::IRuntime::Create(options));
350
351 // Builds up the structure of the network.
352 armnn::INetworkPtr net(INetwork::Create());
353
354 IConnectableLayer* input1 = net->AddInputLayer(0);
355 IConnectableLayer* input2 = net->AddInputLayer(1);
Mike Kelly3ec30772023-03-08 13:47:17 +0000356 IConnectableLayer* min = net->AddElementwiseBinaryLayer(ElementwiseBinaryDescriptor(BinaryOperation::Minimum));
Éanna Ó Catháin20e58802018-12-04 10:29:06 +0000357 IConnectableLayer* output = net->AddOutputLayer(0);
358
359 input1->GetOutputSlot(0).Connect(min->GetInputSlot(0));
360 input2->GetOutputSlot(0).Connect(min->GetInputSlot(1));
361 min->GetOutputSlot(0).Connect(output->GetInputSlot(0));
362
363 // Sets the tensors in the network.
364 TensorInfo tensorInfo(TensorShape({1, 1, 1, 4}), DataType::Float32);
365 input1->GetOutputSlot(0).SetTensorInfo(tensorInfo);
366 input2->GetOutputSlot(0).SetTensorInfo(tensorInfo);
367 min->GetOutputSlot(0).SetTensorInfo(tensorInfo);
368
369 // optimize the network
370 IOptimizedNetworkPtr optNet = Optimize(*net, defaultBackends, runtime->GetDeviceSpec());
371
372 // Loads it into the runtime.
373 NetworkId netId;
374 runtime->LoadNetwork(netId, std::move(optNet));
375
376 // Creates structures for input & output - matching android nn test.
377 std::vector<float> input1Data
378 {
379 1.0f, 2.0f, 3.0f, 4.0f
380 };
381 std::vector<float> input2Data
382 {
383 2.0f, 1.0f, 5.0f, 2.0f
384 };
385 std::vector<float> outputData(4);
386
Cathal Corbett5b8093c2021-10-22 11:12:07 +0100387 TensorInfo inputTensorInfo = runtime->GetInputTensorInfo(netId, 0);
388 inputTensorInfo.SetConstant(true);
Éanna Ó Catháin20e58802018-12-04 10:29:06 +0000389 InputTensors inputTensors
390 {
Cathal Corbett5b8093c2021-10-22 11:12:07 +0100391 {0,armnn::ConstTensor(inputTensorInfo, input1Data.data())},
392 {1,armnn::ConstTensor(inputTensorInfo, input2Data.data())}
Éanna Ó Catháin20e58802018-12-04 10:29:06 +0000393 };
394 OutputTensors outputTensors
395 {
396 {0,armnn::Tensor(runtime->GetOutputTensorInfo(netId, 0), outputData.data())}
397 };
398
399 // Does the inference.
400 runtime->EnqueueWorkload(netId, inputTensors, outputTensors);
401
402 // Checks the results
Sadik Armagan1625efc2021-06-10 18:24:34 +0100403 CHECK(outputData[0] == 1);
404 CHECK(outputData[1] == 1);
405 CHECK(outputData[2] == 3);
406 CHECK(outputData[3] == 2);
Éanna Ó Catháin20e58802018-12-04 10:29:06 +0000407}
408
Sadik Armagan1625efc2021-06-10 18:24:34 +0100409TEST_CASE("RefEqualSimpleEndToEndTest")
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000410{
kevmay012b4d88e2019-01-24 14:05:09 +0000411 const std::vector<uint8_t> expectedOutput({ 1, 1, 1, 1, 0, 0, 0, 0,
412 0, 0, 0, 0, 1, 1, 1, 1 });
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000413
Aron Virginas-Tar77bfb5e2019-10-16 17:45:38 +0100414 ComparisonSimpleEndToEnd<armnn::DataType::Float32>(defaultBackends,
415 ComparisonOperation::Equal,
416 expectedOutput);
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000417}
418
Sadik Armagan1625efc2021-06-10 18:24:34 +0100419TEST_CASE("RefGreaterSimpleEndToEndTest")
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000420{
kevmay012b4d88e2019-01-24 14:05:09 +0000421 const std::vector<uint8_t> expectedOutput({ 0, 0, 0, 0, 1, 1, 1, 1,
422 0, 0, 0, 0, 0, 0, 0, 0 });
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000423
Aron Virginas-Tar77bfb5e2019-10-16 17:45:38 +0100424 ComparisonSimpleEndToEnd<armnn::DataType::Float32>(defaultBackends,
425 ComparisonOperation::Greater,
426 expectedOutput);
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000427}
428
Sadik Armagan1625efc2021-06-10 18:24:34 +0100429TEST_CASE("RefEqualSimpleEndToEndUint8Test")
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000430{
431 const std::vector<uint8_t> expectedOutput({ 1, 1, 1, 1, 0, 0, 0, 0,
432 0, 0, 0, 0, 1, 1, 1, 1 });
433
Derek Lambertif90c56d2020-01-10 17:14:08 +0000434 ComparisonSimpleEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends,
Aron Virginas-Tar77bfb5e2019-10-16 17:45:38 +0100435 ComparisonOperation::Equal,
436 expectedOutput);
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000437}
438
Sadik Armagan1625efc2021-06-10 18:24:34 +0100439TEST_CASE("RefGreaterSimpleEndToEndUint8Test")
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000440{
441 const std::vector<uint8_t> expectedOutput({ 0, 0, 0, 0, 1, 1, 1, 1,
442 0, 0, 0, 0, 0, 0, 0, 0 });
443
Derek Lambertif90c56d2020-01-10 17:14:08 +0000444 ComparisonSimpleEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends,
Aron Virginas-Tar77bfb5e2019-10-16 17:45:38 +0100445 ComparisonOperation::Greater,
446 expectedOutput);
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000447}
448
Sadik Armagan1625efc2021-06-10 18:24:34 +0100449TEST_CASE("RefEqualBroadcastEndToEndTest")
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000450{
kevmay012b4d88e2019-01-24 14:05:09 +0000451 const std::vector<uint8_t> expectedOutput({ 1, 0, 1, 1, 0, 0,
452 0, 0, 0, 0, 0, 0 });
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000453
Aron Virginas-Tar77bfb5e2019-10-16 17:45:38 +0100454 ComparisonBroadcastEndToEnd<armnn::DataType::Float32>(defaultBackends,
455 ComparisonOperation::Equal,
456 expectedOutput);
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000457}
458
Sadik Armagan1625efc2021-06-10 18:24:34 +0100459TEST_CASE("RefGreaterBroadcastEndToEndTest")
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000460{
kevmay012b4d88e2019-01-24 14:05:09 +0000461 const std::vector<uint8_t> expectedOutput({ 0, 1, 0, 0, 0, 1,
462 1, 1, 1, 1, 1, 1 });
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000463
Aron Virginas-Tar77bfb5e2019-10-16 17:45:38 +0100464 ComparisonBroadcastEndToEnd<armnn::DataType::Float32>(defaultBackends,
465 ComparisonOperation::Greater,
466 expectedOutput);
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000467}
468
Sadik Armagan1625efc2021-06-10 18:24:34 +0100469TEST_CASE("RefEqualBroadcastEndToEndUint8Test")
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000470{
471 const std::vector<uint8_t > expectedOutput({ 1, 0, 1, 1, 0, 0,
472 0, 0, 0, 0, 0, 0 });
473
Derek Lambertif90c56d2020-01-10 17:14:08 +0000474 ComparisonBroadcastEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends,
Aron Virginas-Tar77bfb5e2019-10-16 17:45:38 +0100475 ComparisonOperation::Equal,
476 expectedOutput);
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000477}
478
Sadik Armagan1625efc2021-06-10 18:24:34 +0100479TEST_CASE("RefGreaterBroadcastEndToEndUint8Test")
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000480{
481 const std::vector<uint8_t> expectedOutput({ 0, 1, 0, 0, 0, 1,
482 1, 1, 1, 1, 1, 1 });
483
Derek Lambertif90c56d2020-01-10 17:14:08 +0000484 ComparisonBroadcastEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends,
Aron Virginas-Tar77bfb5e2019-10-16 17:45:38 +0100485 ComparisonOperation::Greater,
486 expectedOutput);
FrancisMurtagh2262bbd2018-12-20 16:09:45 +0000487}
Éanna Ó Catháin20e58802018-12-04 10:29:06 +0000488
Teresa Charlina38da592022-10-31 22:09:23 +0000489TEST_CASE("RefBatchMatMulEndToEndFloat32Test")
490{
491 BatchMatMulEndToEnd<armnn::DataType::Float32>(defaultBackends);
492}
493
Teresa Charlin1fe6c812022-11-01 15:59:50 +0000494TEST_CASE("RefBatchMatMulEndToEndInt8Test")
495{
496 BatchMatMulEndToEnd<armnn::DataType::QAsymmS8>(defaultBackends);
497}
498
Sadik Armagan1625efc2021-06-10 18:24:34 +0100499TEST_CASE("RefBatchToSpaceNdEndToEndFloat32NHWCTest")
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100500{
501 BatchToSpaceNdEndToEnd<armnn::DataType::Float32>(defaultBackends, armnn::DataLayout::NHWC);
502}
503
Sadik Armagan1625efc2021-06-10 18:24:34 +0100504TEST_CASE("RefBatchToSpaceNdEndToEndUint8NHWCTest")
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100505{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000506 BatchToSpaceNdEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, armnn::DataLayout::NHWC);
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100507}
508
Sadik Armagan1625efc2021-06-10 18:24:34 +0100509TEST_CASE("RefBatchToSpaceNdEndToEndQSymm16NHWCTest")
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100510{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000511 BatchToSpaceNdEndToEnd<armnn::DataType::QSymmS16>(defaultBackends, armnn::DataLayout::NHWC);
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100512}
513
Sadik Armagan1625efc2021-06-10 18:24:34 +0100514TEST_CASE("RefBatchToSpaceNdEndToEndFloat32NCHWTest")
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100515{
516 BatchToSpaceNdEndToEnd<armnn::DataType::Float32>(defaultBackends, armnn::DataLayout::NCHW);
517}
518
Sadik Armagan1625efc2021-06-10 18:24:34 +0100519TEST_CASE("RefBatchToSpaceNdEndToEndUint8NCHWTest")
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100520{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000521 BatchToSpaceNdEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, armnn::DataLayout::NCHW);
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100522}
523
Sadik Armagan1625efc2021-06-10 18:24:34 +0100524TEST_CASE("RefBatchToSpaceNdEndToEndQSymm16NCHWTest")
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100525{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000526 BatchToSpaceNdEndToEnd<armnn::DataType::QSymmS16>(defaultBackends, armnn::DataLayout::NCHW);
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100527}
528
Sadik Armagan1625efc2021-06-10 18:24:34 +0100529TEST_CASE("RefBatchToSpaceNdEndToEndComplexFloat32NHWCTest")
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100530{
531 BatchToSpaceNdComplexEndToEnd<armnn::DataType::Float32>(defaultBackends, armnn::DataLayout::NHWC);
532}
533
Sadik Armagan1625efc2021-06-10 18:24:34 +0100534TEST_CASE("RefBatchToSpaceNdEndToEndComplexUint8NHWCTest")
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100535{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000536 BatchToSpaceNdComplexEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, armnn::DataLayout::NHWC);
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100537}
538
Sadik Armagan1625efc2021-06-10 18:24:34 +0100539TEST_CASE("RefBatchToSpaceNdEndToEndComplexQSymm16NHWCTest")
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100540{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000541 BatchToSpaceNdComplexEndToEnd<armnn::DataType::QSymmS16>(defaultBackends, armnn::DataLayout::NHWC);
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100542}
543
Sadik Armagan1625efc2021-06-10 18:24:34 +0100544TEST_CASE("RefBatchToSpaceNdEndToEndComplexFloat32NCHWTest")
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100545{
546 BatchToSpaceNdComplexEndToEnd<armnn::DataType::Float32>(defaultBackends, armnn::DataLayout::NCHW);
547}
548
Sadik Armagan1625efc2021-06-10 18:24:34 +0100549TEST_CASE("RefBatchToSpaceNdEndToEndComplexUint8NCHWTest")
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100550{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000551 BatchToSpaceNdComplexEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, armnn::DataLayout::NCHW);
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100552}
553
Sadik Armagan1625efc2021-06-10 18:24:34 +0100554TEST_CASE("RefBatchToSpaceNdEndToEndComplexQSymm16NCHWTest")
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100555{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000556 BatchToSpaceNdComplexEndToEnd<armnn::DataType::QSymmS16>(defaultBackends, armnn::DataLayout::NCHW);
Francis Murtaghe24e3cd2019-06-25 14:41:55 +0100557}
558
Teresa Charlin43baf502021-09-27 10:10:39 +0100559TEST_CASE("RefChannelShuffleFloatTest")
560{
561 ChannelShuffleEndToEnd<armnn::DataType::Float32>(defaultBackends);
562}
563
564TEST_CASE("RefChannelShuffleUint8Test")
565{
566 ChannelShuffleEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
567}
568
Sadik Armagan1625efc2021-06-10 18:24:34 +0100569TEST_CASE("RefConcatEndToEndDim0Test")
narpra01b9546cf2018-11-20 15:21:28 +0000570{
Jim Flynne242f2d2019-05-22 14:24:13 +0100571 ConcatDim0EndToEnd<armnn::DataType::Float32>(defaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +0000572}
573
Sadik Armagan1625efc2021-06-10 18:24:34 +0100574TEST_CASE("RefConcatEndToEndDim0Uint8Test")
narpra01b9546cf2018-11-20 15:21:28 +0000575{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000576 ConcatDim0EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +0000577}
578
Sadik Armagan1625efc2021-06-10 18:24:34 +0100579TEST_CASE("RefConcatEndToEndDim1Test")
narpra01b9546cf2018-11-20 15:21:28 +0000580{
Jim Flynne242f2d2019-05-22 14:24:13 +0100581 ConcatDim1EndToEnd<armnn::DataType::Float32>(defaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +0000582}
583
Sadik Armagan1625efc2021-06-10 18:24:34 +0100584TEST_CASE("RefConcatEndToEndDim1Uint8Test")
narpra01b9546cf2018-11-20 15:21:28 +0000585{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000586 ConcatDim1EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +0000587}
588
Sadik Armagan1625efc2021-06-10 18:24:34 +0100589TEST_CASE("RefConcatEndToEndDim2Test")
narpra01b9546cf2018-11-20 15:21:28 +0000590{
Jim Flynne242f2d2019-05-22 14:24:13 +0100591 ConcatDim2EndToEnd<armnn::DataType::Float32>(defaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +0000592}
593
Sadik Armagan1625efc2021-06-10 18:24:34 +0100594TEST_CASE("RefConcatEndToEndDim2Uint8Test")
narpra01b9546cf2018-11-20 15:21:28 +0000595{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000596 ConcatDim2EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +0000597}
598
Sadik Armagan1625efc2021-06-10 18:24:34 +0100599TEST_CASE("RefConcatEndToEndDim3Test")
narpra01b9546cf2018-11-20 15:21:28 +0000600{
Jim Flynne242f2d2019-05-22 14:24:13 +0100601 ConcatDim3EndToEnd<armnn::DataType::Float32>(defaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +0000602}
603
Sadik Armagan1625efc2021-06-10 18:24:34 +0100604TEST_CASE("RefConcatEndToEndDim3Uint8Test")
narpra01b9546cf2018-11-20 15:21:28 +0000605{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000606 ConcatDim3EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
narpra01b9546cf2018-11-20 15:21:28 +0000607}
608
Matthew Sloyanc5fe6e72022-11-25 16:10:00 +0000609TEST_CASE("RefConvolution2dFloat32Test")
610{
611 Convolution2dEndToEnd<armnn::DataType::Float32>(defaultBackends, armnn::DataLayout::NHWC);
612}
613
614TEST_CASE("RefConvolution2dNchwFloat32Test")
615{
616 Convolution2dEndToEnd<armnn::DataType::Float32>(defaultBackends, armnn::DataLayout::NCHW);
617}
618
619TEST_CASE("RefConvolution2dFloat16Test")
620{
621 Convolution2dEndToEnd<armnn::DataType::Float16>(defaultBackends, armnn::DataLayout::NHWC);
622}
623
Matthew Sloyan5d7b0a32021-10-18 13:07:49 +0100624TEST_CASE("RefConvolution3dFloat32Test")
625{
626 Convolution3dEndToEnd<armnn::DataType::Float32, armnn::DataType::Float32>(defaultBackends,
627 armnn::DataLayout::NDHWC);
628}
629
630TEST_CASE("RefConvolution3dNcdhwFloat32Test")
631{
632 Convolution3dEndToEnd<armnn::DataType::Float32, armnn::DataType::Float32>(defaultBackends,
633 armnn::DataLayout::NCDHW);
634}
635
636TEST_CASE("RefConvolution3dFloat16Test")
637{
638 Convolution3dEndToEnd<armnn::DataType::Float16, armnn::DataType::Float16>(defaultBackends,
639 armnn::DataLayout::NDHWC);
640}
641
642TEST_CASE("RefConvolution3dUint8Test")
643{
644 Convolution3dEndToEnd<armnn::DataType::QAsymmU8, armnn::DataType::Signed32>(defaultBackends,
645 armnn::DataLayout::NDHWC);
646}
647
648TEST_CASE("RefConvolution3dInt8Test")
649{
650 Convolution3dEndToEnd<armnn::DataType::QAsymmS8, armnn::DataType::Signed32>(defaultBackends,
651 armnn::DataLayout::NDHWC);
652}
653
Sadik Armagan1625efc2021-06-10 18:24:34 +0100654TEST_CASE("RefEluEndToEndTestFloat32")
Jan Eilersbca73e12020-03-11 12:52:46 +0000655{
656 EluEndToEndTest<armnn::DataType::Float32>(defaultBackends);
657}
658
Sadik Armagan1625efc2021-06-10 18:24:34 +0100659TEST_CASE("RefEluEndToEndTestFloat16")
Jan Eilersbca73e12020-03-11 12:52:46 +0000660{
661 EluEndToEndTest<armnn::DataType::Float16>(defaultBackends);
662}
663
Sadik Armagan1625efc2021-06-10 18:24:34 +0100664TEST_CASE("RefEluEndToEndTestQAsymmS8")
Jan Eilersbca73e12020-03-11 12:52:46 +0000665{
666 EluEndToEndTest<armnn::DataType::QAsymmS8>(defaultBackends);
667}
668
Sadik Armagan1625efc2021-06-10 18:24:34 +0100669TEST_CASE("RefEluEndToEndTestQAsymmU8")
Jan Eilersbca73e12020-03-11 12:52:46 +0000670{
671 EluEndToEndTest<armnn::DataType::QAsymmU8>(defaultBackends);
672}
673
Sadik Armagan1625efc2021-06-10 18:24:34 +0100674TEST_CASE("RefEluEndToEndTestQSymmS16")
Jan Eilersbca73e12020-03-11 12:52:46 +0000675{
676 EluEndToEndTest<armnn::DataType::QSymmS16>(defaultBackends);
677}
678
Sadik Armagan1625efc2021-06-10 18:24:34 +0100679TEST_CASE("RefFillEndToEndTest")
Teresa Charlin44088502020-07-27 11:27:19 +0100680{
681 FillEndToEnd<armnn::DataType::Float32>(defaultBackends);
682}
683
Sadik Armagan1625efc2021-06-10 18:24:34 +0100684TEST_CASE("RefFillEndToEndTestFloat16")
Teresa Charlin4b10fef2020-07-29 09:36:41 +0100685{
686 FillEndToEnd<armnn::DataType::Float16>(defaultBackends);
687}
Teresa Charlin44088502020-07-27 11:27:19 +0100688
Sadik Armagan1625efc2021-06-10 18:24:34 +0100689TEST_CASE("RefFillEndToEndTestInt32")
Teresa Charlin44088502020-07-27 11:27:19 +0100690{
691 FillEndToEnd<armnn::DataType::Signed32>(defaultBackends);
692}
693
Matthew Sloyan81beae32021-07-13 19:46:11 +0100694TEST_CASE("RefFullyConnectedEndToEndTestFloat32")
Sadik Armaganf0a6dec2021-03-25 07:46:55 +0000695{
696 FullyConnectedWithDynamicWeightsEndToEnd<armnn::DataType::Float32>(defaultBackends);
697}
698
Matthew Sloyan81beae32021-07-13 19:46:11 +0100699TEST_CASE("RefFullyConnectedEndToEndTestNonConstantWeightsConstantBiasesFloat32")
700{
Cathal Corbettb8cc2b92021-10-08 14:43:11 +0100701 FullyConnectedWithDynamicOrConstantInputsEndToEnd<armnn::DataType::Float32>(defaultBackends, true, true);
Matthew Sloyan81beae32021-07-13 19:46:11 +0100702}
703
704TEST_CASE("RefFullyConnectedEndToEndTestConstantWeightsNonConstantBiasesFloat32")
705{
Cathal Corbettb8cc2b92021-10-08 14:43:11 +0100706 FullyConnectedWithDynamicOrConstantInputsEndToEnd<armnn::DataType::Float32>(defaultBackends, true, false);
Cathal Corbett521032f2021-10-07 11:46:40 +0100707}
708
709TEST_CASE("RefFullyConnectedEndToEndTestConstantWeightsTensorInfoNotSet")
710{
Cathal Corbettb8cc2b92021-10-08 14:43:11 +0100711 FullyConnectedErrorChecking<armnn::DataType::Float32>(defaultBackends, false, true, true, true, false);
712}
713
714TEST_CASE("RefFullyConnectedEndToEndTestWeightsNotConnectedExplicitCheck")
715{
716 FullyConnectedErrorChecking<armnn::DataType::Float32>(defaultBackends, true, true, false, true, true);
717}
718
719TEST_CASE("RefFullyConnectedEndToEndTestBiasNotConnectedExplicitCheck")
720{
721 FullyConnectedErrorChecking<armnn::DataType::Float32>(defaultBackends, true, true, true, false, true);
722}
723
724TEST_CASE("RefFullyConnectedEndToEndTestWeightsAndBiasNotConnected")
725{
726 FullyConnectedErrorChecking<armnn::DataType::Float32>(defaultBackends, false, true, false, false, true);
727}
728
729TEST_CASE("RefFullyConnectedEndToEndTestBiasDisabledConnectBias")
730{
731 FullyConnectedErrorChecking<armnn::DataType::Float32>(defaultBackends, true, false, false, true, true);
Matthew Sloyan81beae32021-07-13 19:46:11 +0100732}
733
Sadik Armagan1625efc2021-06-10 18:24:34 +0100734TEST_CASE("RefGatherFloatTest")
narpra01db2b1602019-01-23 15:23:11 +0000735{
736 GatherEndToEnd<armnn::DataType::Float32>(defaultBackends);
737}
738
Sadik Armagan1625efc2021-06-10 18:24:34 +0100739TEST_CASE("RefGatherUint8Test")
narpra01db2b1602019-01-23 15:23:11 +0000740{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000741 GatherEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
narpra01db2b1602019-01-23 15:23:11 +0000742}
743
Sadik Armagan1625efc2021-06-10 18:24:34 +0100744TEST_CASE("RefGatherInt16Test")
Ellen Norris-Thompsone0dbedf2019-06-24 09:23:38 +0100745{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000746 GatherEndToEnd<armnn::DataType::QSymmS16>(defaultBackends);
Ellen Norris-Thompsone0dbedf2019-06-24 09:23:38 +0100747}
748
Sadik Armagan1625efc2021-06-10 18:24:34 +0100749TEST_CASE("RefGatherMultiDimFloatTest")
narpra01db2b1602019-01-23 15:23:11 +0000750{
751 GatherMultiDimEndToEnd<armnn::DataType::Float32>(defaultBackends);
752}
753
Sadik Armagan1625efc2021-06-10 18:24:34 +0100754TEST_CASE("RefGatherMultiDimUint8Test")
narpra01db2b1602019-01-23 15:23:11 +0000755{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000756 GatherMultiDimEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
narpra01db2b1602019-01-23 15:23:11 +0000757}
758
Sadik Armagan1625efc2021-06-10 18:24:34 +0100759TEST_CASE("RefGatherMultiDimInt16Test")
Ellen Norris-Thompsone0dbedf2019-06-24 09:23:38 +0100760{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000761 GatherMultiDimEndToEnd<armnn::DataType::QSymmS16>(defaultBackends);
Ellen Norris-Thompsone0dbedf2019-06-24 09:23:38 +0100762}
763
Teresa Charlinb2d3ec52022-04-12 22:07:09 +0100764TEST_CASE("RefGatherNdFloatTest")
765{
766 GatherNdEndToEnd<armnn::DataType::Float32>(defaultBackends);
767}
768
769TEST_CASE("RefGatherNdUint8Test")
770{
771 GatherNdEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
772}
773
774TEST_CASE("RefGatherNdInt16Test")
775{
776 GatherNdEndToEnd<armnn::DataType::QSymmS16>(defaultBackends);
777}
778
779TEST_CASE("RefGatherNdMultiDimFloatTest")
780{
781 GatherNdMultiDimEndToEnd<armnn::DataType::Float32>(defaultBackends);
782}
783
784TEST_CASE("RefGatherNdMultiDimUint8Test")
785{
786 GatherNdMultiDimEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
787}
788
789TEST_CASE("RefGatherNdMultiDimInt16Test")
790{
791 GatherNdMultiDimEndToEnd<armnn::DataType::QSymmS16>(defaultBackends);
792}
793
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100794// DepthToSpace
Sadik Armagan1625efc2021-06-10 18:24:34 +0100795TEST_CASE("DephtToSpaceEndToEndNchwFloat32")
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100796{
797 DepthToSpaceEndToEnd<armnn::DataType::Float32>(defaultBackends, armnn::DataLayout::NCHW);
798}
799
Sadik Armagan1625efc2021-06-10 18:24:34 +0100800TEST_CASE("DephtToSpaceEndToEndNchwFloat16")
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100801{
802 DepthToSpaceEndToEnd<armnn::DataType::Float16>(defaultBackends, armnn::DataLayout::NCHW);
803}
804
Sadik Armagan1625efc2021-06-10 18:24:34 +0100805TEST_CASE("DephtToSpaceEndToEndNchwUint8")
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100806{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000807 DepthToSpaceEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, armnn::DataLayout::NCHW);
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100808}
809
Sadik Armagan1625efc2021-06-10 18:24:34 +0100810TEST_CASE("DephtToSpaceEndToEndNchwInt16")
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100811{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000812 DepthToSpaceEndToEnd<armnn::DataType::QSymmS16>(defaultBackends, armnn::DataLayout::NCHW);
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100813}
814
Sadik Armagan1625efc2021-06-10 18:24:34 +0100815TEST_CASE("DephtToSpaceEndToEndNhwcFloat32")
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100816{
817 DepthToSpaceEndToEnd<armnn::DataType::Float32>(defaultBackends, armnn::DataLayout::NHWC);
818}
819
Sadik Armagan1625efc2021-06-10 18:24:34 +0100820TEST_CASE("DephtToSpaceEndToEndNhwcFloat16")
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100821{
822 DepthToSpaceEndToEnd<armnn::DataType::Float16>(defaultBackends, armnn::DataLayout::NHWC);
823}
824
Sadik Armagan1625efc2021-06-10 18:24:34 +0100825TEST_CASE("DephtToSpaceEndToEndNhwcUint8")
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100826{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000827 DepthToSpaceEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, armnn::DataLayout::NHWC);
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100828}
829
Sadik Armagan1625efc2021-06-10 18:24:34 +0100830TEST_CASE("DephtToSpaceEndToEndNhwcInt16")
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100831{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000832 DepthToSpaceEndToEnd<armnn::DataType::QSymmS16>(defaultBackends, armnn::DataLayout::NHWC);
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +0100833}
834
835// Dequantize
Sadik Armagan1625efc2021-06-10 18:24:34 +0100836TEST_CASE("DequantizeEndToEndSimpleTest")
Narumol Prangnawarat8c7324d2019-05-31 16:42:11 +0100837{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000838 DequantizeEndToEndSimple<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawarat8c7324d2019-05-31 16:42:11 +0100839}
840
Sadik Armagan1625efc2021-06-10 18:24:34 +0100841TEST_CASE("DequantizeEndToEndOffsetTest")
Narumol Prangnawarat8c7324d2019-05-31 16:42:11 +0100842{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000843 DequantizeEndToEndOffset<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawarat8c7324d2019-05-31 16:42:11 +0100844}
845
Sadik Armagan1625efc2021-06-10 18:24:34 +0100846TEST_CASE("DequantizeEndToEndSimpleInt16Test")
Narumol Prangnawaratb6441e42019-06-04 11:22:00 +0100847{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000848 DequantizeEndToEndSimple<armnn::DataType::QSymmS16>(defaultBackends);
Narumol Prangnawaratb6441e42019-06-04 11:22:00 +0100849}
850
Sadik Armagan1625efc2021-06-10 18:24:34 +0100851TEST_CASE("DequantizeEndToEndOffsetInt16Test")
Narumol Prangnawaratb6441e42019-06-04 11:22:00 +0100852{
Derek Lambertif90c56d2020-01-10 17:14:08 +0000853 DequantizeEndToEndOffset<armnn::DataType::QSymmS16>(defaultBackends);
Narumol Prangnawaratb6441e42019-06-04 11:22:00 +0100854}
855
Sadik Armagan1625efc2021-06-10 18:24:34 +0100856TEST_CASE("RefDetectionPostProcessRegularNmsTest")
Narumol Prangnawarat6d302bf2019-02-04 11:46:26 +0000857{
858 std::vector<float> boxEncodings({
859 0.0f, 0.0f, 0.0f, 0.0f,
860 0.0f, 1.0f, 0.0f, 0.0f,
861 0.0f, -1.0f, 0.0f, 0.0f,
862 0.0f, 0.0f, 0.0f, 0.0f,
863 0.0f, 1.0f, 0.0f, 0.0f,
864 0.0f, 0.0f, 0.0f, 0.0f
865 });
866 std::vector<float> scores({
867 0.0f, 0.9f, 0.8f,
868 0.0f, 0.75f, 0.72f,
869 0.0f, 0.6f, 0.5f,
870 0.0f, 0.93f, 0.95f,
871 0.0f, 0.5f, 0.4f,
872 0.0f, 0.3f, 0.2f
873 });
874 std::vector<float> anchors({
875 0.5f, 0.5f, 1.0f, 1.0f,
876 0.5f, 0.5f, 1.0f, 1.0f,
877 0.5f, 0.5f, 1.0f, 1.0f,
878 0.5f, 10.5f, 1.0f, 1.0f,
879 0.5f, 10.5f, 1.0f, 1.0f,
880 0.5f, 100.5f, 1.0f, 1.0f
881 });
882 DetectionPostProcessRegularNmsEndToEnd<armnn::DataType::Float32>(defaultBackends, boxEncodings, scores, anchors);
883}
884
885inline void QuantizeData(uint8_t* quant, const float* dequant, const TensorInfo& info)
886{
887 for (size_t i = 0; i < info.GetNumElements(); i++)
888 {
889 quant[i] = armnn::Quantize<uint8_t>(dequant[i], info.GetQuantizationScale(), info.GetQuantizationOffset());
890 }
891}
892
Sadik Armagan1625efc2021-06-10 18:24:34 +0100893TEST_CASE("RefDetectionPostProcessRegularNmsUint8Test")
Narumol Prangnawarat6d302bf2019-02-04 11:46:26 +0000894{
895 armnn::TensorInfo boxEncodingsInfo({ 1, 6, 4 }, armnn::DataType::Float32);
896 armnn::TensorInfo scoresInfo({ 1, 6, 3 }, armnn::DataType::Float32);
897 armnn::TensorInfo anchorsInfo({ 6, 4 }, armnn::DataType::Float32);
898
899 boxEncodingsInfo.SetQuantizationScale(1.0f);
900 boxEncodingsInfo.SetQuantizationOffset(1);
901 scoresInfo.SetQuantizationScale(0.01f);
902 scoresInfo.SetQuantizationOffset(0);
903 anchorsInfo.SetQuantizationScale(0.5f);
904 anchorsInfo.SetQuantizationOffset(0);
905
906 std::vector<float> boxEncodings({
907 0.0f, 0.0f, 0.0f, 0.0f,
908 0.0f, 1.0f, 0.0f, 0.0f,
909 0.0f, -1.0f, 0.0f, 0.0f,
910 0.0f, 0.0f, 0.0f, 0.0f,
911 0.0f, 1.0f, 0.0f, 0.0f,
912 0.0f, 0.0f, 0.0f, 0.0f
913 });
914 std::vector<float> scores({
915 0.0f, 0.9f, 0.8f,
916 0.0f, 0.75f, 0.72f,
917 0.0f, 0.6f, 0.5f,
918 0.0f, 0.93f, 0.95f,
919 0.0f, 0.5f, 0.4f,
920 0.0f, 0.3f, 0.2f
921 });
922 std::vector<float> anchors({
923 0.5f, 0.5f, 1.0f, 1.0f,
924 0.5f, 0.5f, 1.0f, 1.0f,
925 0.5f, 0.5f, 1.0f, 1.0f,
926 0.5f, 10.5f, 1.0f, 1.0f,
927 0.5f, 10.5f, 1.0f, 1.0f,
928 0.5f, 100.5f, 1.0f, 1.0f
929 });
930
931 std::vector<uint8_t> qBoxEncodings(boxEncodings.size(), 0);
932 std::vector<uint8_t> qScores(scores.size(), 0);
933 std::vector<uint8_t> qAnchors(anchors.size(), 0);
934 QuantizeData(qBoxEncodings.data(), boxEncodings.data(), boxEncodingsInfo);
935 QuantizeData(qScores.data(), scores.data(), scoresInfo);
936 QuantizeData(qAnchors.data(), anchors.data(), anchorsInfo);
Derek Lambertif90c56d2020-01-10 17:14:08 +0000937 DetectionPostProcessRegularNmsEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, qBoxEncodings,
Narumol Prangnawarat6d302bf2019-02-04 11:46:26 +0000938 qScores, qAnchors,
939 1.0f, 1, 0.01f, 0, 0.5f, 0);
940}
941
Sadik Armagan1625efc2021-06-10 18:24:34 +0100942TEST_CASE("RefDetectionPostProcessFastNmsTest")
Narumol Prangnawarat6d302bf2019-02-04 11:46:26 +0000943{
944 std::vector<float> boxEncodings({
945 0.0f, 0.0f, 0.0f, 0.0f,
946 0.0f, 1.0f, 0.0f, 0.0f,
947 0.0f, -1.0f, 0.0f, 0.0f,
948 0.0f, 0.0f, 0.0f, 0.0f,
949 0.0f, 1.0f, 0.0f, 0.0f,
950 0.0f, 0.0f, 0.0f, 0.0f
951 });
952 std::vector<float> scores({
953 0.0f, 0.9f, 0.8f,
954 0.0f, 0.75f, 0.72f,
955 0.0f, 0.6f, 0.5f,
956 0.0f, 0.93f, 0.95f,
957 0.0f, 0.5f, 0.4f,
958 0.0f, 0.3f, 0.2f
959 });
960 std::vector<float> anchors({
961 0.5f, 0.5f, 1.0f, 1.0f,
962 0.5f, 0.5f, 1.0f, 1.0f,
963 0.5f, 0.5f, 1.0f, 1.0f,
964 0.5f, 10.5f, 1.0f, 1.0f,
965 0.5f, 10.5f, 1.0f, 1.0f,
966 0.5f, 100.5f, 1.0f, 1.0f
967 });
968 DetectionPostProcessFastNmsEndToEnd<armnn::DataType::Float32>(defaultBackends, boxEncodings, scores, anchors);
969}
970
Sadik Armagan1625efc2021-06-10 18:24:34 +0100971TEST_CASE("RefDetectionPostProcessFastNmsUint8Test")
Narumol Prangnawarat6d302bf2019-02-04 11:46:26 +0000972{
973 armnn::TensorInfo boxEncodingsInfo({ 1, 6, 4 }, armnn::DataType::Float32);
974 armnn::TensorInfo scoresInfo({ 1, 6, 3 }, armnn::DataType::Float32);
975 armnn::TensorInfo anchorsInfo({ 6, 4 }, armnn::DataType::Float32);
976
977 boxEncodingsInfo.SetQuantizationScale(1.0f);
978 boxEncodingsInfo.SetQuantizationOffset(1);
979 scoresInfo.SetQuantizationScale(0.01f);
980 scoresInfo.SetQuantizationOffset(0);
981 anchorsInfo.SetQuantizationScale(0.5f);
982 anchorsInfo.SetQuantizationOffset(0);
983
984 std::vector<float> boxEncodings({
985 0.0f, 0.0f, 0.0f, 0.0f,
986 0.0f, 1.0f, 0.0f, 0.0f,
987 0.0f, -1.0f, 0.0f, 0.0f,
988 0.0f, 0.0f, 0.0f, 0.0f,
989 0.0f, 1.0f, 0.0f, 0.0f,
990 0.0f, 0.0f, 0.0f, 0.0f
991 });
992 std::vector<float> scores({
993 0.0f, 0.9f, 0.8f,
994 0.0f, 0.75f, 0.72f,
995 0.0f, 0.6f, 0.5f,
996 0.0f, 0.93f, 0.95f,
997 0.0f, 0.5f, 0.4f,
998 0.0f, 0.3f, 0.2f
999 });
1000 std::vector<float> anchors({
1001 0.5f, 0.5f, 1.0f, 1.0f,
1002 0.5f, 0.5f, 1.0f, 1.0f,
1003 0.5f, 0.5f, 1.0f, 1.0f,
1004 0.5f, 10.5f, 1.0f, 1.0f,
1005 0.5f, 10.5f, 1.0f, 1.0f,
1006 0.5f, 100.5f, 1.0f, 1.0f
1007 });
1008
1009 std::vector<uint8_t> qBoxEncodings(boxEncodings.size(), 0);
1010 std::vector<uint8_t> qScores(scores.size(), 0);
1011 std::vector<uint8_t> qAnchors(anchors.size(), 0);
1012 QuantizeData(qBoxEncodings.data(), boxEncodings.data(), boxEncodingsInfo);
1013 QuantizeData(qScores.data(), scores.data(), scoresInfo);
1014 QuantizeData(qAnchors.data(), anchors.data(), anchorsInfo);
Derek Lambertif90c56d2020-01-10 17:14:08 +00001015 DetectionPostProcessFastNmsEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, qBoxEncodings,
Narumol Prangnawarat6d302bf2019-02-04 11:46:26 +00001016 qScores, qAnchors,
1017 1.0f, 1, 0.01f, 0, 0.5f, 0);
1018}
1019
Jan Eilersa83af7b2020-03-18 15:58:11 +00001020// HardSwish
Sadik Armagan1625efc2021-06-10 18:24:34 +01001021TEST_CASE("RefHardSwishEndToEndTestFloat32")
Jan Eilersa83af7b2020-03-18 15:58:11 +00001022{
1023 HardSwishEndToEndTest<armnn::DataType::Float32>(defaultBackends);
1024}
1025
Sadik Armagan1625efc2021-06-10 18:24:34 +01001026TEST_CASE("RefHardSwishEndToEndTestFloat16")
Jan Eilersa83af7b2020-03-18 15:58:11 +00001027{
1028 HardSwishEndToEndTest<armnn::DataType::Float16>(defaultBackends);
1029}
1030
Sadik Armagan1625efc2021-06-10 18:24:34 +01001031TEST_CASE("RefHardSwishEndToEndTestQAsymmS8")
Jan Eilersa83af7b2020-03-18 15:58:11 +00001032{
1033 HardSwishEndToEndTest<armnn::DataType::QAsymmS8>(defaultBackends);
1034}
1035
Sadik Armagan1625efc2021-06-10 18:24:34 +01001036TEST_CASE("RefHardSwishEndToEndTestQAsymmU8")
Jan Eilersa83af7b2020-03-18 15:58:11 +00001037{
1038 HardSwishEndToEndTest<armnn::DataType::QAsymmU8>(defaultBackends);
1039}
1040
Sadik Armagan1625efc2021-06-10 18:24:34 +01001041TEST_CASE("RefHardSwishEndToEndTestQSymmS16")
Jan Eilersa83af7b2020-03-18 15:58:11 +00001042{
1043 HardSwishEndToEndTest<armnn::DataType::QSymmS16>(defaultBackends);
1044}
1045
Sadik Armagan20bea002019-10-16 09:29:38 +01001046// LogSoftmax
Sadik Armagan1625efc2021-06-10 18:24:34 +01001047TEST_CASE("RefLogSoftmaxEndToEndTest")
Sadik Armagan20bea002019-10-16 09:29:38 +01001048{
1049 LogSoftmaxEndToEndTest(defaultBackends);
1050}
1051
Sadik Armagan1625efc2021-06-10 18:24:34 +01001052TEST_CASE("RefPreluEndToEndTestFloat32")
Nikhil Raj747f5862019-07-19 15:15:23 +01001053{
1054 PreluEndToEndNegativeTest<armnn::DataType::Float32>(defaultBackends);
1055}
1056
Sadik Armagan1625efc2021-06-10 18:24:34 +01001057TEST_CASE("RefPreluEndToEndTestUint8")
Nikhil Raj747f5862019-07-19 15:15:23 +01001058{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001059 PreluEndToEndPositiveTest<armnn::DataType::QAsymmU8>(defaultBackends);
Nikhil Raj747f5862019-07-19 15:15:23 +01001060}
1061
Sadik Armagan1625efc2021-06-10 18:24:34 +01001062TEST_CASE("RefPreluEndToEndTestQSymm16")
Nikhil Raj747f5862019-07-19 15:15:23 +01001063{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001064 PreluEndToEndPositiveTest<armnn::DataType::QSymmS16>(defaultBackends);
Nikhil Raj747f5862019-07-19 15:15:23 +01001065}
1066
Sadik Armagan1625efc2021-06-10 18:24:34 +01001067TEST_CASE("RefSpaceToDepthNhwcEndToEndTest1")
Keith Davis9515c7e2019-06-21 09:33:59 +01001068{
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +01001069 SpaceToDepthNhwcEndToEndTest1(defaultBackends);
Keith Davis9515c7e2019-06-21 09:33:59 +01001070}
1071
Sadik Armagan1625efc2021-06-10 18:24:34 +01001072TEST_CASE("RefSpaceToDepthNchwEndToEndTest1")
Keith Davis9515c7e2019-06-21 09:33:59 +01001073{
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +01001074 SpaceToDepthNchwEndToEndTest1(defaultBackends);
Keith Davis9515c7e2019-06-21 09:33:59 +01001075}
1076
Sadik Armagan1625efc2021-06-10 18:24:34 +01001077TEST_CASE("RefSpaceToDepthNhwcEndToEndTest2")
Keith Davis9515c7e2019-06-21 09:33:59 +01001078{
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +01001079 SpaceToDepthNhwcEndToEndTest2(defaultBackends);
Keith Davis9515c7e2019-06-21 09:33:59 +01001080}
1081
Sadik Armagan1625efc2021-06-10 18:24:34 +01001082TEST_CASE("RefSpaceToDepthNchwEndToEndTest2")
Keith Davis9515c7e2019-06-21 09:33:59 +01001083{
Aron Virginas-Tarf97f6da2019-10-01 18:35:44 +01001084 SpaceToDepthNchwEndToEndTest2(defaultBackends);
Keith Davis9515c7e2019-06-21 09:33:59 +01001085}
1086
Kevin May1bea6be2023-12-12 11:18:46 +00001087// Split
1088TEST_CASE("RefSplit1dEndtoEndTestSigned16")
1089{
1090 Splitter1dEndToEnd<DataType::QSymmS16>(defaultBackends);
1091}
1092
1093TEST_CASE("TosaRefSplit1dEndtoEndTestFloat16")
1094{
1095 Splitter1dEndToEndFloat16<DataType::Float16>(defaultBackends);
1096}
1097
Sadik Armagan1625efc2021-06-10 18:24:34 +01001098TEST_CASE("RefSplitter1dEndToEndTest")
Narumol Prangnawarat0be43382019-05-27 11:29:59 +01001099{
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001100 Splitter1dEndToEnd<armnn::DataType::Float32>(defaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +01001101}
1102
Sadik Armagan1625efc2021-06-10 18:24:34 +01001103TEST_CASE("RefSplitter1dEndToEndUint8Test")
Narumol Prangnawarat0be43382019-05-27 11:29:59 +01001104{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001105 Splitter1dEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +01001106}
1107
Sadik Armagan1625efc2021-06-10 18:24:34 +01001108TEST_CASE("RefSplitter2dDim0EndToEndTest")
Narumol Prangnawarat0be43382019-05-27 11:29:59 +01001109{
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001110 Splitter2dDim0EndToEnd<armnn::DataType::Float32>(defaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +01001111}
1112
Sadik Armagan1625efc2021-06-10 18:24:34 +01001113TEST_CASE("RefSplitter2dDim1EndToEndTest")
Narumol Prangnawarat0be43382019-05-27 11:29:59 +01001114{
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001115 Splitter2dDim1EndToEnd<armnn::DataType::Float32>(defaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +01001116}
1117
Sadik Armagan1625efc2021-06-10 18:24:34 +01001118TEST_CASE("RefSplitter2dDim0EndToEndUint8Test")
Narumol Prangnawarat0be43382019-05-27 11:29:59 +01001119{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001120 Splitter2dDim0EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +01001121}
1122
Sadik Armagan1625efc2021-06-10 18:24:34 +01001123TEST_CASE("RefSplitter2dDim1EndToEndUint8Test")
Narumol Prangnawarat0be43382019-05-27 11:29:59 +01001124{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001125 Splitter2dDim1EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +01001126}
1127
Kevin May1bea6be2023-12-12 11:18:46 +00001128TEST_CASE("RefSplit3dDim1EndtoEndTestSigned16")
1129{
1130 Splitter3dDim1EndToEnd<DataType::QSymmS16>(defaultBackends);
1131}
1132
1133TEST_CASE("RefSplit3dDim1EndtoEndTestFloat16")
1134{
1135 Splitter3dDim1EndToEndFloat16<DataType::Float16>(defaultBackends);
1136}
1137
Sadik Armagan1625efc2021-06-10 18:24:34 +01001138TEST_CASE("RefSplitter3dDim0EndToEndTest")
Narumol Prangnawarat0be43382019-05-27 11:29:59 +01001139{
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001140 Splitter3dDim0EndToEnd<armnn::DataType::Float32>(defaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +01001141}
1142
Sadik Armagan1625efc2021-06-10 18:24:34 +01001143TEST_CASE("RefSplitter3dDim1EndToEndTest")
Narumol Prangnawarat0be43382019-05-27 11:29:59 +01001144{
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001145 Splitter3dDim1EndToEnd<armnn::DataType::Float32>(defaultBackends);
1146}
1147
Sadik Armagan1625efc2021-06-10 18:24:34 +01001148TEST_CASE("RefSplitter3dDim2EndToEndTest")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001149{
1150 Splitter3dDim2EndToEnd<armnn::DataType::Float32>(defaultBackends);
1151}
1152
Sadik Armagan1625efc2021-06-10 18:24:34 +01001153TEST_CASE("RefSplitter3dDim0EndToEndUint8Test")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001154{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001155 Splitter3dDim0EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001156}
1157
Sadik Armagan1625efc2021-06-10 18:24:34 +01001158TEST_CASE("RefSplitter3dDim1EndToEndUint8Test")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001159{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001160 Splitter3dDim1EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001161}
1162
Sadik Armagan1625efc2021-06-10 18:24:34 +01001163TEST_CASE("RefSplitter3dDim2EndToEndUint8Test")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001164{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001165 Splitter3dDim2EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001166}
1167
Sadik Armagan1625efc2021-06-10 18:24:34 +01001168TEST_CASE("RefSplitter4dDim0EndToEndTest")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001169{
1170 Splitter4dDim0EndToEnd<armnn::DataType::Float32>(defaultBackends);
1171}
1172
Sadik Armagan1625efc2021-06-10 18:24:34 +01001173TEST_CASE("RefSplitter4dDim1EndToEndTest")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001174{
1175 Splitter4dDim1EndToEnd<armnn::DataType::Float32>(defaultBackends);
1176}
1177
Sadik Armagan1625efc2021-06-10 18:24:34 +01001178TEST_CASE("RefSplitter4dDim2EndToEndTest")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001179{
1180 Splitter4dDim2EndToEnd<armnn::DataType::Float32>(defaultBackends);
1181}
1182
Kevin May1bea6be2023-12-12 11:18:46 +00001183TEST_CASE("RefSplit4dDim2EndtoEndTestFloat16")
1184{
1185 Splitter4dDim2EndToEndFloat16<DataType::Float16>(defaultBackends);
1186}
1187
Sadik Armagan1625efc2021-06-10 18:24:34 +01001188TEST_CASE("RefSplitter4dDim3EndToEndTest")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001189{
1190 Splitter4dDim3EndToEnd<armnn::DataType::Float32>(defaultBackends);
1191}
1192
Sadik Armagan1625efc2021-06-10 18:24:34 +01001193TEST_CASE("RefSplitter4dDim0EndToEndUint8Test")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001194{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001195 Splitter4dDim0EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001196}
1197
Sadik Armagan1625efc2021-06-10 18:24:34 +01001198TEST_CASE("RefSplitter4dDim1EndToEndUint8Test")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001199{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001200 Splitter4dDim1EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001201}
1202
Sadik Armagan1625efc2021-06-10 18:24:34 +01001203TEST_CASE("RefSplitter4dDim2EndToEndUint8Test")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001204{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001205 Splitter4dDim2EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001206}
1207
Sadik Armagan1625efc2021-06-10 18:24:34 +01001208TEST_CASE("RefSplitter4dDim3EndToEndUint8Test")
Narumol Prangnawarat0f072ab2019-05-29 14:12:46 +01001209{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001210 Splitter4dDim3EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawarat0be43382019-05-27 11:29:59 +01001211}
1212
Cian McGriskin160edb32023-07-25 14:15:45 +01001213// Tile
1214TEST_CASE("RefTileEndToEndFloat32")
1215{
1216 TileEndToEnd<armnn::DataType::Float32>(defaultBackends);
1217}
1218
1219TEST_CASE("RefTileEndToEndFloat16")
1220{
1221 TileEndToEnd<armnn::DataType::Float16>(defaultBackends);
1222}
1223
1224TEST_CASE("RefTileEndToEndQAsymmS8")
1225{
1226 TileEndToEnd<armnn::DataType::QAsymmS8>(defaultBackends);
1227}
1228
1229TEST_CASE("RefTileEndToEndQAsymmU8")
1230{
1231 TileEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
1232}
1233
1234TEST_CASE("RefTileEndToEndQSymmS8")
1235{
1236 TileEndToEnd<armnn::DataType::QSymmS8>(defaultBackends);
1237}
1238
1239TEST_CASE("RefTileEndToEndQSymmS16")
1240{
1241 TileEndToEnd<armnn::DataType::QSymmS16>(defaultBackends);
1242}
1243
1244TEST_CASE("RefTileEndToEndSigned32")
1245{
1246 TileEndToEnd<armnn::DataType::Signed32>(defaultBackends);
1247}
1248
Aron Virginas-Tar98180ef2019-06-26 15:02:47 +01001249// TransposeConvolution2d
Sadik Armagan1625efc2021-06-10 18:24:34 +01001250TEST_CASE("RefTransposeConvolution2dEndToEndFloatNchwTest")
Aron Virginas-Tar98180ef2019-06-26 15:02:47 +01001251{
1252 TransposeConvolution2dEndToEnd<armnn::DataType::Float32, armnn::DataType::Float32>(
1253 defaultBackends, armnn::DataLayout::NCHW);
1254}
1255
Sadik Armagan1625efc2021-06-10 18:24:34 +01001256TEST_CASE("RefTransposeConvolution2dEndToEndUint8NchwTest")
Aron Virginas-Tar98180ef2019-06-26 15:02:47 +01001257{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001258 TransposeConvolution2dEndToEnd<armnn::DataType::QAsymmU8, armnn::DataType::Signed32>(
Aron Virginas-Tar98180ef2019-06-26 15:02:47 +01001259 defaultBackends, armnn::DataLayout::NCHW);
1260}
1261
Sadik Armagan1625efc2021-06-10 18:24:34 +01001262TEST_CASE("RefTransposeConvolution2dEndToEndInt16NchwTest")
Aron Virginas-Tar98180ef2019-06-26 15:02:47 +01001263{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001264 TransposeConvolution2dEndToEnd<armnn::DataType::QSymmS16, armnn::DataType::Signed32>(
Aron Virginas-Tar98180ef2019-06-26 15:02:47 +01001265 defaultBackends, armnn::DataLayout::NCHW);
1266}
1267
Sadik Armagan1625efc2021-06-10 18:24:34 +01001268TEST_CASE("RefTransposeConvolution2dEndToEndFloatNhwcTest")
Aron Virginas-Tar98180ef2019-06-26 15:02:47 +01001269{
1270 TransposeConvolution2dEndToEnd<armnn::DataType::Float32, armnn::DataType::Float32>(
1271 defaultBackends, armnn::DataLayout::NHWC);
1272}
1273
Sadik Armagan1625efc2021-06-10 18:24:34 +01001274TEST_CASE("RefTransposeConvolution2dEndToEndUint8NhwcTest")
Aron Virginas-Tar98180ef2019-06-26 15:02:47 +01001275{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001276 TransposeConvolution2dEndToEnd<armnn::DataType::QAsymmU8, armnn::DataType::Signed32>(
Aron Virginas-Tar98180ef2019-06-26 15:02:47 +01001277 defaultBackends, armnn::DataLayout::NHWC);
1278}
1279
Sadik Armagan1625efc2021-06-10 18:24:34 +01001280TEST_CASE("RefTransposeConvolution2dEndToEndInt16NhwcTest")
Aron Virginas-Tar98180ef2019-06-26 15:02:47 +01001281{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001282 TransposeConvolution2dEndToEnd<armnn::DataType::QSymmS16, armnn::DataType::Signed32>(
Aron Virginas-Tar98180ef2019-06-26 15:02:47 +01001283 defaultBackends, armnn::DataLayout::NHWC);
1284}
1285
Teresa Charlin6bc85252022-12-06 20:43:06 +00001286// Transpose
1287TEST_CASE("RefTransposeEndToEndTest")
1288{
1289 TransposeEndToEnd<armnn::DataType::Float32>(defaultBackends);
1290}
1291
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001292// Resize Bilinear
Sadik Armagan1625efc2021-06-10 18:24:34 +01001293TEST_CASE("RefResizeBilinearEndToEndFloatNchwTest")
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001294{
1295 ResizeBilinearEndToEnd<armnn::DataType::Float32>(defaultBackends, armnn::DataLayout::NCHW);
1296}
1297
Sadik Armagan1625efc2021-06-10 18:24:34 +01001298TEST_CASE("RefResizeBilinearEndToEndUint8NchwTest")
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001299{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001300 ResizeBilinearEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, armnn::DataLayout::NCHW);
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001301}
1302
Teresa Charlince655882023-11-21 15:44:13 +00001303TEST_CASE("RefResizeBilinearEndToEndInt8NchwTest")
1304{
1305 ResizeBilinearEndToEnd<armnn::DataType::QSymmS8>(defaultBackends, armnn::DataLayout::NCHW);
1306}
1307
Sadik Armagan1625efc2021-06-10 18:24:34 +01001308TEST_CASE("RefResizeBilinearEndToEndInt16NchwTest")
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001309{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001310 ResizeBilinearEndToEnd<armnn::DataType::QSymmS16>(defaultBackends, armnn::DataLayout::NCHW);
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001311}
1312
Sadik Armagan1625efc2021-06-10 18:24:34 +01001313TEST_CASE("RefResizeBilinearEndToEndFloatNhwcTest")
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001314{
1315 ResizeBilinearEndToEnd<armnn::DataType::Float32>(defaultBackends, armnn::DataLayout::NHWC);
1316}
1317
Sadik Armagan1625efc2021-06-10 18:24:34 +01001318TEST_CASE("RefResizeBilinearEndToEndUint8NhwcTest")
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001319{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001320 ResizeBilinearEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, armnn::DataLayout::NHWC);
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001321}
1322
Teresa Charlince655882023-11-21 15:44:13 +00001323TEST_CASE("RefResizeBilinearEndToEndInt8NhwcTest")
1324{
1325 ResizeBilinearEndToEnd<armnn::DataType::QSymmS8>(defaultBackends, armnn::DataLayout::NHWC);
1326}
1327
Sadik Armagan1625efc2021-06-10 18:24:34 +01001328TEST_CASE("RefResizeBilinearEndToEndInt16NhwcTest")
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001329{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001330 ResizeBilinearEndToEnd<armnn::DataType::QSymmS16>(defaultBackends, armnn::DataLayout::NHWC);
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001331}
1332
1333// Resize NearestNeighbor
Sadik Armagan1625efc2021-06-10 18:24:34 +01001334TEST_CASE("RefResizeNearestNeighborEndToEndFloatNchwTest")
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001335{
1336 ResizeNearestNeighborEndToEnd<armnn::DataType::Float32>(defaultBackends, armnn::DataLayout::NCHW);
1337}
1338
Sadik Armagan1625efc2021-06-10 18:24:34 +01001339TEST_CASE("RefResizeNearestNeighborEndToEndUint8NchwTest")
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001340{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001341 ResizeNearestNeighborEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, armnn::DataLayout::NCHW);
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001342}
1343
Teresa Charlince655882023-11-21 15:44:13 +00001344TEST_CASE("RefResizeNearestNeighborEndToEndInt8NchwTest")
1345{
1346 ResizeNearestNeighborEndToEnd<armnn::DataType::QAsymmS8>(defaultBackends, armnn::DataLayout::NCHW);
1347}
1348
Sadik Armagan1625efc2021-06-10 18:24:34 +01001349TEST_CASE("RefResizeNearestNeighborEndToEndInt16NchwTest")
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001350{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001351 ResizeNearestNeighborEndToEnd<armnn::DataType::QSymmS16>(defaultBackends, armnn::DataLayout::NCHW);
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001352}
1353
Sadik Armagan1625efc2021-06-10 18:24:34 +01001354TEST_CASE("RefResizeNearestNeighborEndToEndFloatNhwcTest")
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001355{
1356 ResizeNearestNeighborEndToEnd<armnn::DataType::Float32>(defaultBackends, armnn::DataLayout::NHWC);
1357}
1358
Sadik Armagan1625efc2021-06-10 18:24:34 +01001359TEST_CASE("RefResizeNearestNeighborEndToEndUint8NhwcTest")
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001360{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001361 ResizeNearestNeighborEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, armnn::DataLayout::NHWC);
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001362}
1363
Teresa Charlince655882023-11-21 15:44:13 +00001364TEST_CASE("RefResizeNearestNeighborEndToEndInt8NhwcTest")
1365{
1366 ResizeNearestNeighborEndToEnd<armnn::DataType::QAsymmS8>(defaultBackends, armnn::DataLayout::NHWC);
1367}
1368
Sadik Armagan1625efc2021-06-10 18:24:34 +01001369TEST_CASE("RefResizeNearestNeighborEndToEndInt16NhwcTest")
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001370{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001371 ResizeNearestNeighborEndToEnd<armnn::DataType::QSymmS16>(defaultBackends, armnn::DataLayout::NHWC);
Aron Virginas-Tarfe15eff2019-07-01 16:12:58 +01001372}
1373
Teresa Charlince655882023-11-21 15:44:13 +00001374TEST_CASE("RefResizeNearestNeighborEndToEndFloatAlignCornersNhwcTest")
1375{
1376 ResizeNearestNeighborEndToEnd<armnn::DataType::Float32>(defaultBackends, armnn::DataLayout::NHWC, true, false);
1377}
1378
1379TEST_CASE("RefResizeNearestNeighborEndToEndFloatHalfPixelNhwcTest")
1380{
1381 ResizeNearestNeighborEndToEnd<armnn::DataType::Float32>(defaultBackends, armnn::DataLayout::NHWC, false, true);
1382}
1383
1384TEST_CASE("RefResizeNearestNeighborEndToEndInt8AlignCornersNhwcTest")
1385{
1386 ResizeNearestNeighborEndToEnd<armnn::DataType::QAsymmS8>(defaultBackends, armnn::DataLayout::NHWC, true, false);
1387}
1388
1389TEST_CASE("TosaRefResizeNearestNeighborEndToEndInt8HalfPixelNhwcTest")
1390{
1391 ResizeNearestNeighborEndToEnd<armnn::DataType::QSymmS8>(defaultBackends, armnn::DataLayout::NHWC, false, true);
1392}
1393
1394
Declan-ARM1bf56cd2023-07-20 17:32:57 +01001395// ReverseV2
1396TEST_CASE("RefReverseV2EndToEndFloat16Test")
1397{
1398 ReverseV2EndToEnd<armnn::DataType::Float16>(defaultBackends);
1399}
1400
1401TEST_CASE("RefReverseV2EndToEndFloat32Test")
1402{
1403 ReverseV2EndToEnd<armnn::DataType::Float32>(defaultBackends);
1404}
1405
1406TEST_CASE("RefReverseV2EndToEndQAsymmS8Test")
1407{
1408 ReverseV2EndToEnd<armnn::DataType::QAsymmS8>(defaultBackends);
1409}
1410
1411TEST_CASE("RefReverseV2EndToEndQAsymmU8Test")
1412{
1413 ReverseV2EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
1414}
1415
1416TEST_CASE("RefReverseV2EndToEndQSymmS8Test")
1417{
1418 ReverseV2EndToEnd<armnn::DataType::QSymmS8>(defaultBackends);
1419}
1420
1421TEST_CASE("RefReverseV2EndToEndQSymmS16Test")
1422{
1423 ReverseV2EndToEnd<armnn::DataType::QSymmS16>(defaultBackends);
1424}
1425
1426TEST_CASE("RefReverseV2EndToEndSigned32Test")
1427{
1428 ReverseV2EndToEnd<armnn::DataType::Signed32>(defaultBackends);
1429}
1430
Sadik Armagan062e0e92019-10-14 10:31:43 +01001431// InstanceNormalization
Sadik Armagan1625efc2021-06-10 18:24:34 +01001432TEST_CASE("RefInstanceNormalizationNhwcEndToEndTest1")
Sadik Armagan062e0e92019-10-14 10:31:43 +01001433{
1434 InstanceNormalizationNhwcEndToEndTest1(defaultBackends);
1435}
1436
Sadik Armagan1625efc2021-06-10 18:24:34 +01001437TEST_CASE("RefInstanceNormalizationNchwEndToEndTest1")
Sadik Armagan062e0e92019-10-14 10:31:43 +01001438{
1439 InstanceNormalizationNchwEndToEndTest1(defaultBackends);
1440}
1441
Sadik Armagan1625efc2021-06-10 18:24:34 +01001442TEST_CASE("RefInstanceNormalizationNhwcEndToEndTest2")
Sadik Armagan062e0e92019-10-14 10:31:43 +01001443{
1444 InstanceNormalizationNhwcEndToEndTest2(defaultBackends);
1445}
1446
Sadik Armagan1625efc2021-06-10 18:24:34 +01001447TEST_CASE("RefInstanceNormalizationNchwEndToEndTest2")
Sadik Armagan062e0e92019-10-14 10:31:43 +01001448{
1449 InstanceNormalizationNchwEndToEndTest2(defaultBackends);
1450}
1451
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001452// ArgMinMax
Sadik Armagan1625efc2021-06-10 18:24:34 +01001453TEST_CASE("RefArgMaxSimpleTest")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001454{
1455 ArgMaxEndToEndSimple<armnn::DataType::Float32>(defaultBackends);
1456}
1457
Sadik Armagan1625efc2021-06-10 18:24:34 +01001458TEST_CASE("RefArgMaxSimpleUint8Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001459{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001460 ArgMaxEndToEndSimple<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001461}
1462
Sadik Armagan1625efc2021-06-10 18:24:34 +01001463TEST_CASE("RefArgMinSimpleTest")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001464{
1465 ArgMinEndToEndSimple<armnn::DataType::Float32>(defaultBackends);
1466}
1467
Sadik Armagan1625efc2021-06-10 18:24:34 +01001468TEST_CASE("RefArgMinSimpleUint8Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001469{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001470 ArgMinEndToEndSimple<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001471}
1472
Sadik Armagan1625efc2021-06-10 18:24:34 +01001473TEST_CASE("RefArgMaxAxis0Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001474{
1475 ArgMaxAxis0EndToEnd<armnn::DataType::Float32>(defaultBackends);
1476}
1477
Sadik Armagan1625efc2021-06-10 18:24:34 +01001478TEST_CASE("RefArgMaxAxis0Uint8Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001479{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001480 ArgMaxAxis0EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001481}
1482
Sadik Armagan1625efc2021-06-10 18:24:34 +01001483TEST_CASE("RefArgMinAxis0Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001484{
1485 ArgMinAxis0EndToEnd<armnn::DataType::Float32>(defaultBackends);
1486}
1487
Sadik Armagan1625efc2021-06-10 18:24:34 +01001488TEST_CASE("RefArgMinAxis0Uint8Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001489{
1490
Derek Lambertif90c56d2020-01-10 17:14:08 +00001491 ArgMinAxis0EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001492}
1493
Sadik Armagan1625efc2021-06-10 18:24:34 +01001494TEST_CASE("RefArgMaxAxis1Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001495{
1496 ArgMaxAxis1EndToEnd<armnn::DataType::Float32>(defaultBackends);
1497}
1498
Sadik Armagan1625efc2021-06-10 18:24:34 +01001499TEST_CASE("RefArgMaxAxis1Uint8Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001500{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001501 ArgMaxAxis1EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001502}
1503
Sadik Armagan1625efc2021-06-10 18:24:34 +01001504TEST_CASE("RefArgMinAxis1Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001505{
1506 ArgMinAxis1EndToEnd<armnn::DataType::Float32>(defaultBackends);
1507}
1508
Sadik Armagan1625efc2021-06-10 18:24:34 +01001509TEST_CASE("RefArgMinAxis1Uint8Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001510{
1511
Derek Lambertif90c56d2020-01-10 17:14:08 +00001512 ArgMinAxis1EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001513}
1514
Sadik Armagan1625efc2021-06-10 18:24:34 +01001515TEST_CASE("RefArgMaxAxis2Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001516{
1517 ArgMaxAxis2EndToEnd<armnn::DataType::Float32>(defaultBackends);
1518}
1519
Sadik Armagan1625efc2021-06-10 18:24:34 +01001520TEST_CASE("RefArgMaxAxis2Uint8Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001521{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001522 ArgMaxAxis2EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001523}
1524
Sadik Armagan1625efc2021-06-10 18:24:34 +01001525TEST_CASE("RefArgMinAxis2Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001526{
1527 ArgMinAxis2EndToEnd<armnn::DataType::Float32>(defaultBackends);
1528}
1529
Sadik Armagan1625efc2021-06-10 18:24:34 +01001530TEST_CASE("RefArgMinAxis2Uint8Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001531{
1532
Derek Lambertif90c56d2020-01-10 17:14:08 +00001533 ArgMinAxis2EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001534}
1535
Sadik Armagan1625efc2021-06-10 18:24:34 +01001536TEST_CASE("RefArgMaxAxis3Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001537{
1538 ArgMaxAxis3EndToEnd<armnn::DataType::Float32>(defaultBackends);
1539}
1540
Sadik Armagan1625efc2021-06-10 18:24:34 +01001541TEST_CASE("RefArgMaxAxis3Uint8Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001542{
Derek Lambertif90c56d2020-01-10 17:14:08 +00001543 ArgMaxAxis3EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001544}
1545
Sadik Armagan1625efc2021-06-10 18:24:34 +01001546TEST_CASE("RefArgMinAxis3Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001547{
1548 ArgMinAxis3EndToEnd<armnn::DataType::Float32>(defaultBackends);
1549}
1550
Sadik Armagan1625efc2021-06-10 18:24:34 +01001551TEST_CASE("RefArgMinAxis3Uint8Test")
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001552{
1553
Derek Lambertif90c56d2020-01-10 17:14:08 +00001554 ArgMinAxis3EndToEnd<armnn::DataType::QAsymmU8>(defaultBackends);
Narumol Prangnawaratd1f57732019-10-31 14:24:02 +00001555}
1556
Sadik Armagan1625efc2021-06-10 18:24:34 +01001557TEST_CASE("RefQLstmEndToEndTest")
James Conroy0800bf52020-05-14 12:46:44 +01001558{
1559 QLstmEndToEnd(defaultBackends);
1560}
1561
Sadik Armagan1625efc2021-06-10 18:24:34 +01001562TEST_CASE("RefRankEndToEndTest")
Teresa Charlin2e3f4d22020-07-29 14:29:20 +01001563{
1564 RankEndToEnd<armnn::DataType::Float32>(defaultBackends);
1565}
1566
Sadik Armagan1625efc2021-06-10 18:24:34 +01001567TEST_CASE("RefRankEndToEndTestFloat16")
Teresa Charlin2e3f4d22020-07-29 14:29:20 +01001568{
1569 RankEndToEnd<armnn::DataType::Float16>(defaultBackends);
1570}
1571
Sadik Armagan1625efc2021-06-10 18:24:34 +01001572TEST_CASE("RefRankEndToEndTestInt32")
Teresa Charlin2e3f4d22020-07-29 14:29:20 +01001573{
1574 RankEndToEnd<armnn::DataType::Signed32>(defaultBackends);
1575}
1576
Sadik Armagan1625efc2021-06-10 18:24:34 +01001577TEST_CASE("RefRankEndToEndTestQAsymmS8")
Teresa Charlin2e3f4d22020-07-29 14:29:20 +01001578{
1579 RankEndToEnd<armnn::DataType::QAsymmS8>(defaultBackends);
1580}
1581
Sadik Armagan1625efc2021-06-10 18:24:34 +01001582TEST_CASE("RefRankEndToEndTestQSymmS16")
Teresa Charlin2e3f4d22020-07-29 14:29:20 +01001583{
1584 RankEndToEnd<armnn::DataType::QSymmS16>(defaultBackends);
1585}
1586
Sadik Armagan1625efc2021-06-10 18:24:34 +01001587TEST_CASE("RefRankEndToEndTestQSymmS8")
Teresa Charlin2e3f4d22020-07-29 14:29:20 +01001588{
1589 RankEndToEnd<armnn::DataType::QSymmS8>(defaultBackends);
1590}
1591
Teresa Charlinc17a35f2023-01-12 14:13:09 +00001592// Reduce
1593TEST_CASE("RefReduceEndToEndTest")
1594{
1595 ReduceEndToEnd<armnn::DataType::Float32>(defaultBackends);
1596}
1597
1598TEST_CASE("RefReduceEndToEndTestFloat16")
1599{
1600 ReduceEndToEnd<armnn::DataType::Float16>(defaultBackends);
1601}
1602
1603// Reshape
1604TEST_CASE("RefReshapeEndToEndTest")
1605{
1606 ReshapeEndToEnd<armnn::DataType::Float32>(defaultBackends);
1607}
1608
1609TEST_CASE("RefReshapeEndToEndTestFloat16")
1610{
1611 ReshapeEndToEndFloat16<armnn::DataType::Float16>(defaultBackends);
1612}
1613
David Monahan646bc8a2022-01-31 14:29:14 +00001614TEST_CASE("RefForceImportWithAlignedBuffersEndToEndTest")
Narumol Prangnawarate2af6f42022-01-28 17:59:18 +00001615{
David Monahan646bc8a2022-01-31 14:29:14 +00001616 ForceImportWithAlignedBuffersEndToEndTest(defaultBackends);
1617}
Narumol Prangnawarate2af6f42022-01-28 17:59:18 +00001618
David Monahan646bc8a2022-01-31 14:29:14 +00001619TEST_CASE("RefForceImportWithMisalignedInputBuffersEndToEndTest")
1620{
1621 ForceImportWithMisalignedInputBuffersEndToEndTest(defaultBackends);
1622}
Narumol Prangnawarate2af6f42022-01-28 17:59:18 +00001623
David Monahan646bc8a2022-01-31 14:29:14 +00001624TEST_CASE("RefForceImportWithMisalignedOutputBuffersEndToEndTest")
1625{
1626 ForceImportWithMisalignedOutputBuffersEndToEndTest(defaultBackends);
1627}
Narumol Prangnawarate2af6f42022-01-28 17:59:18 +00001628
David Monahan646bc8a2022-01-31 14:29:14 +00001629TEST_CASE("RefForceImportWithMisalignedInputAndOutputBuffersEndToEndTest")
1630{
1631 ForceImportWithMisalignedInputAndOutputBuffersEndToEndTest(defaultBackends);
Narumol Prangnawarate2af6f42022-01-28 17:59:18 +00001632}
1633
David Monahan16829712022-02-03 17:04:59 +00001634TEST_CASE("RefForceImportRepeatedInferencesEndToEndTest")
1635{
1636 ForceImportRepeatedInferencesEndToEndTest(defaultBackends);
1637}
1638
1639TEST_CASE("RefForceImportRepeatedInferencesInvertedEndToEndTest")
1640{
1641 ForceImportRepeatedInferencesInvertedEndToEndTest(defaultBackends);
1642}
1643
Ferran Balaguerdcaa6102019-08-21 13:28:38 +01001644#if !defined(__ANDROID__)
1645// Only run these tests on non Android platforms
Sadik Armagan1625efc2021-06-10 18:24:34 +01001646TEST_CASE("RefImportNonAlignedPointerTest")
Ferran Balaguerdcaa6102019-08-21 13:28:38 +01001647{
David Monahan4f1e8e42019-09-04 09:22:10 +01001648 ImportNonAlignedInputPointerTest(defaultBackends);
1649}
1650
Sadik Armagan1625efc2021-06-10 18:24:34 +01001651TEST_CASE("RefExportNonAlignedPointerTest")
David Monahan4f1e8e42019-09-04 09:22:10 +01001652{
Ferran Balaguer83239f92019-09-19 11:49:25 +01001653 ExportNonAlignedOutputPointerTest(defaultBackends);
Ferran Balaguerdcaa6102019-08-21 13:28:38 +01001654}
1655
Sadik Armagan1625efc2021-06-10 18:24:34 +01001656TEST_CASE("RefImportAlignedPointerTest")
Ferran Balaguerdcaa6102019-08-21 13:28:38 +01001657{
1658 ImportAlignedPointerTest(defaultBackends);
1659}
1660
Sadik Armagan1625efc2021-06-10 18:24:34 +01001661TEST_CASE("RefImportOnlyWorkload")
Ferran Balaguer83239f92019-09-19 11:49:25 +01001662{
1663 ImportOnlyWorkload(defaultBackends);
1664}
1665
Sadik Armagan1625efc2021-06-10 18:24:34 +01001666TEST_CASE("RefExportOnlyWorkload")
Ferran Balaguer83239f92019-09-19 11:49:25 +01001667{
1668 ExportOnlyWorkload(defaultBackends);
1669}
1670
Sadik Armagan1625efc2021-06-10 18:24:34 +01001671TEST_CASE("RefImportAndExportWorkload")
Ferran Balaguer83239f92019-09-19 11:49:25 +01001672{
1673 ImportAndExportWorkload(defaultBackends);
1674}
1675
Sadik Armagan1625efc2021-06-10 18:24:34 +01001676TEST_CASE("RefExportOutputWithSeveralOutputSlotConnectionsTest")
Ferran Balaguer83239f92019-09-19 11:49:25 +01001677{
1678 ExportOutputWithSeveralOutputSlotConnectionsTest(defaultBackends);
1679}
1680
Ryan OShea980446b2023-06-08 16:23:28 +01001681// Slice
1682TEST_CASE("RefSliceEndtoEndTestFloat32")
1683{
1684 SliceEndToEnd<DataType::Float32>(defaultBackends);
1685}
1686
1687TEST_CASE("RefSliceEndtoEndTestInt32")
1688{
1689 SliceEndToEnd<DataType::Signed32>(defaultBackends);
1690}
1691
1692TEST_CASE("RefSliceEndtoEndTestFloat16")
1693{
1694 SliceEndToEndFloat16<DataType::Float16>(defaultBackends);
1695}
1696
Sadik Armagan1625efc2021-06-10 18:24:34 +01001697TEST_CASE("RefStridedSliceInvalidSliceEndToEndTest")
David Monahan0a99a142020-03-13 07:52:54 +00001698{
1699 StridedSliceInvalidSliceEndToEndTest(defaultBackends);
1700}
1701
Sadik Armagan1625efc2021-06-10 18:24:34 +01001702TEST_CASE("RefThreadSafeFP32StridedSlicedEndToEndTest")
Mike Kelly386ff1a2021-03-29 15:04:50 +01001703{
Kevin Mayb4b3ac92021-05-21 16:42:21 +01001704 armnn::experimental::StridedSlicedEndToEndTest<armnn::DataType::Float32>(defaultBackends, 1);
Mike Kelly386ff1a2021-03-29 15:04:50 +01001705}
Finn Williamsb8181f72021-04-07 10:23:21 +01001706
Sadik Armagan1625efc2021-06-10 18:24:34 +01001707TEST_CASE("RefAsyncFP32StridedSlicedMultiThreadedEndToEndTest")
Finn Williamsb8181f72021-04-07 10:23:21 +01001708{
1709 armnn::experimental::StridedSlicedMultiThreadedEndToEndTest<armnn::DataType::Float32>(defaultBackends);
1710}
Keith Davise813d672021-04-22 10:10:34 +01001711
Sadik Armagan1625efc2021-06-10 18:24:34 +01001712TEST_CASE("RefAsyncFP32StridedSlicedScheduledMultiThreadedEndToEndTest")
Keith Davise813d672021-04-22 10:10:34 +01001713{
Kevin Mayb4b3ac92021-05-21 16:42:21 +01001714 armnn::experimental::StridedSlicedEndToEndTest<armnn::DataType::Float32>(defaultBackends, 3);
Keith Davise813d672021-04-22 10:10:34 +01001715}
Mike Kelly3ec30772023-03-08 13:47:17 +00001716
1717TEST_CASE("RefAddEndToEndTestFloat32")
1718{
1719 ElementwiseBinarySimpleEndToEnd<armnn::DataType::Float32>(defaultBackends, BinaryOperation::Add);
1720}
1721TEST_CASE("RefAddEndToEndTestUint8")
1722{
1723 ElementwiseBinarySimpleEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, BinaryOperation::Add);
1724}
1725TEST_CASE("RefDivEndToEndTestFloat32")
1726{
1727 ElementwiseBinarySimpleEndToEnd<armnn::DataType::Float32>(defaultBackends, BinaryOperation::Div);
1728}
1729TEST_CASE("RefDivEndToEndTestUint8")
1730{
1731 ElementwiseBinarySimpleEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, BinaryOperation::Div);
1732}
1733TEST_CASE("RefMulEndToEndTestFloat32")
1734{
1735 ElementwiseBinarySimpleEndToEnd<armnn::DataType::Float32>(defaultBackends, BinaryOperation::Mul);
1736}
1737TEST_CASE("RefMulEndToEndTestUint8")
1738{
1739 ElementwiseBinarySimpleEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, BinaryOperation::Mul);
1740}
1741TEST_CASE("RefSubEndToEndTestFloat32")
1742{
1743 ElementwiseBinarySimpleEndToEnd<armnn::DataType::Float32>(defaultBackends, BinaryOperation::Sub);
1744}
1745TEST_CASE("RefSubEndToEndTestUint8")
1746{
1747 ElementwiseBinarySimpleEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, BinaryOperation::Sub);
1748}
1749TEST_CASE("RefMaximumEndToEndTestFloat32")
1750{
1751 ElementwiseBinarySimpleEndToEnd<armnn::DataType::Float32>(defaultBackends, BinaryOperation::Maximum);
1752}
1753TEST_CASE("RefMaximumEndToEndTestUint8")
1754{
1755 ElementwiseBinarySimpleEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, BinaryOperation::Maximum);
1756}
1757TEST_CASE("RefMinimumEndToEndTestFloat32")
1758{
1759 ElementwiseBinarySimpleEndToEnd<armnn::DataType::Float32>(defaultBackends, BinaryOperation::Minimum);
1760}
1761TEST_CASE("RefMinimumEndToEndTestUint8")
1762{
1763 ElementwiseBinarySimpleEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, BinaryOperation::Minimum);
1764}
John Mcloughlin0ec00872023-05-15 17:03:49 +01001765TEST_CASE("RefPowerEndToEndTestFloat32")
1766{
1767 ElementwiseBinarySimpleEndToEnd<armnn::DataType::Float32>(defaultBackends, BinaryOperation::Power);
1768}
1769TEST_CASE("RefPowerEndToEndTestUint8")
1770{
1771 ElementwiseBinarySimpleEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, BinaryOperation::Power);
1772}
1773TEST_CASE("RefSquaredDifferenceEndToEndTestFloat32")
1774{
1775 ElementwiseBinarySimpleEndToEnd<armnn::DataType::Float32>(defaultBackends, BinaryOperation::SqDiff);
1776}
1777TEST_CASE("RefSquaredDifferenceEndToEndTestUint8")
1778{
1779 ElementwiseBinarySimpleEndToEnd<armnn::DataType::QAsymmU8>(defaultBackends, BinaryOperation::SqDiff);
1780}
Mike Kelly4cc341c2023-07-07 15:43:06 +01001781
Ferran Balaguerdcaa6102019-08-21 13:28:38 +01001782#endif
1783
Mike Kelly4cc341c2023-07-07 15:43:06 +01001784// Backend Optimization Tests
1785TEST_CASE("RefReshapeRemovalSimpleCaseEndToEnd")
1786{
1787 ReshapeRemovalEndToEnd<armnn::DataType::Float32>(defaultBackends);
1788}
1789
1790TEST_CASE("RefReshapeRemovalNCHWFirstEndToEnd")
1791{
1792 ReshapeRemovalNCHWEndToEnd<armnn::DataType::Float32>(defaultBackends, true, true);
1793}
1794
1795TEST_CASE("RefReshapeRemovalNCHWSecondEndToEnd")
1796{
1797 ReshapeRemovalNCHWEndToEnd<armnn::DataType::Float32>(defaultBackends, true, false);
1798}
Idriss Chaouch98e383e2023-08-28 14:28:31 +01001799
1800// BroadcastTo
1801TEST_CASE("RefBroadcastToEndToEndFloat32")
1802{
1803 BroadcastToEndToEnd<armnn::DataType::Float32>(defaultBackends);
1804}
1805
Idriss Chaouch564c13d2023-09-01 17:58:38 +01001806TEST_CASE("RefBroadcastToEndToEndWithMultiplicationFloat32")
Idriss Chaouch98e383e2023-08-28 14:28:31 +01001807{
Idriss Chaouch564c13d2023-09-01 17:58:38 +01001808 BroadcastToEndToEndElementWiseBinary<armnn::DataType::Float32>(defaultBackends,
1809 BinaryOperation::Mul);
1810}
1811
1812TEST_CASE("RefBroadcastToEndToEndWithDivisionFloat32")
1813{
1814 BroadcastToEndToEndElementWiseBinary<armnn::DataType::Float32>(defaultBackends,
1815 BinaryOperation::Div);
1816}
1817
1818TEST_CASE("RefBroadcastToEndToEndWithAdditionFloat32")
1819{
1820 BroadcastToEndToEndElementWiseBinary<armnn::DataType::Float32>(defaultBackends,
1821 BinaryOperation::Add);
1822}
1823
1824TEST_CASE("RefBroadcastToEndToEndWithSubtractionFloat32")
1825{
1826 BroadcastToEndToEndElementWiseBinary<armnn::DataType::Float32>(defaultBackends,
1827 BinaryOperation::Sub);
Idriss Chaouch98e383e2023-08-28 14:28:31 +01001828}
Sadik Armagan1625efc2021-06-10 18:24:34 +01001829}