IVGCVSW-2467 Remove GetDataType<T> function
[platform/upstream/armnn.git] / src / backends / neon / test / NeonEndToEndTests.cpp
1 //
2 // Copyright © 2017 Arm Ltd. All rights reserved.
3 // SPDX-License-Identifier: MIT
4 //
5
6 #include <backendsCommon/test/EndToEndTestImpl.hpp>
7 #include <backendsCommon/test/MergerTestImpl.hpp>
8
9 #include <boost/test/unit_test.hpp>
10
11 BOOST_AUTO_TEST_SUITE(NeonEndToEnd)
12
13 std::vector<armnn::BackendId> defaultBackends = {armnn::Compute::CpuAcc};
14
15 BOOST_AUTO_TEST_CASE(ConstantUsage_Neon_Float32)
16 {
17     BOOST_TEST(ConstantUsageFloat32Test(defaultBackends));
18 }
19
20 BOOST_AUTO_TEST_CASE(FallbackToCpuRef)
21 {
22     using namespace armnn;
23
24     // Create runtime in which test will run and allow fallback to CpuRef.
25     IRuntime::CreationOptions options;
26     IRuntimePtr runtime(IRuntime::Create(options));
27
28     // Builds up the structure of the network.
29     INetworkPtr net(INetwork::Create());
30
31     IConnectableLayer* input = net->AddInputLayer(0);
32
33     // This layer configuration isn't supported by CpuAcc but we allow fallback to CpuRef so it shoud pass.
34     NormalizationDescriptor descriptor;
35     IConnectableLayer* pooling = net->AddNormalizationLayer(descriptor);
36
37     IConnectableLayer* output = net->AddOutputLayer(0);
38
39     input->GetOutputSlot(0).Connect(pooling->GetInputSlot(0));
40     pooling->GetOutputSlot(0).Connect(output->GetInputSlot(0));
41
42     input->GetOutputSlot(0).SetTensorInfo(TensorInfo({ 1, 1, 4, 4 }, DataType::Float32));
43     pooling->GetOutputSlot(0).SetTensorInfo(TensorInfo({ 1, 1, 4, 4 }, DataType::Float32));
44
45     // optimize the network
46     std::vector<BackendId> backends = {Compute::CpuAcc, Compute::CpuRef};
47     IOptimizedNetworkPtr optNet = Optimize(*net, backends, runtime->GetDeviceSpec());
48
49     // Load it into the runtime. It should pass.
50     NetworkId netId;
51     BOOST_TEST(runtime->LoadNetwork(netId, std::move(optNet)) == Status::Success);
52 }
53
54 BOOST_AUTO_TEST_CASE(NeonMergerEndToEndDim0Test)
55 {
56     MergerDim0EndToEnd<armnn::DataType::Float32>(defaultBackends);
57 }
58
59 BOOST_AUTO_TEST_CASE(NeonMergerEndToEndDim0Uint8Test)
60 {
61     MergerDim0EndToEnd<armnn::DataType::QuantisedAsymm8>(defaultBackends);
62 }
63
64 BOOST_AUTO_TEST_CASE(NeonMergerEndToEndDim1Test)
65 {
66     MergerDim1EndToEnd<armnn::DataType::Float32>(defaultBackends);
67 }
68
69 BOOST_AUTO_TEST_CASE(NeonMergerEndToEndDim1Uint8Test)
70 {
71     MergerDim1EndToEnd<armnn::DataType::QuantisedAsymm8>(defaultBackends);
72 }
73
74 BOOST_AUTO_TEST_CASE(NeonMergerEndToEndDim3Test)
75 {
76     MergerDim3EndToEnd<armnn::DataType::Float32>(defaultBackends);
77 }
78
79 BOOST_AUTO_TEST_CASE(NeonMergerEndToEndDim3Uint8Test)
80 {
81     MergerDim3EndToEnd<armnn::DataType::QuantisedAsymm8>(defaultBackends);
82 }
83
84 BOOST_AUTO_TEST_SUITE_END()