xref: /aosp_15_r20/external/armnn/src/armnnDeserializer/test/DeserializeAbs.cpp (revision 89c4ff92f2867872bb9e2354d150bf0c8c502810)
1*89c4ff92SAndroid Build Coastguard Worker //
2*89c4ff92SAndroid Build Coastguard Worker // Copyright © 2017 Arm Ltd. All rights reserved.
3*89c4ff92SAndroid Build Coastguard Worker // SPDX-License-Identifier: MIT
4*89c4ff92SAndroid Build Coastguard Worker //
5*89c4ff92SAndroid Build Coastguard Worker 
6*89c4ff92SAndroid Build Coastguard Worker #include "ParserFlatbuffersSerializeFixture.hpp"
7*89c4ff92SAndroid Build Coastguard Worker #include <armnnDeserializer/IDeserializer.hpp>
8*89c4ff92SAndroid Build Coastguard Worker 
9*89c4ff92SAndroid Build Coastguard Worker #include <doctest/doctest.h>
10*89c4ff92SAndroid Build Coastguard Worker 
11*89c4ff92SAndroid Build Coastguard Worker #include <string>
12*89c4ff92SAndroid Build Coastguard Worker 
13*89c4ff92SAndroid Build Coastguard Worker TEST_SUITE("Deserializer_Abs")
14*89c4ff92SAndroid Build Coastguard Worker {
15*89c4ff92SAndroid Build Coastguard Worker     struct AbsFixture : public ParserFlatbuffersSerializeFixture
16*89c4ff92SAndroid Build Coastguard Worker     {
AbsFixtureAbsFixture17*89c4ff92SAndroid Build Coastguard Worker         explicit AbsFixture(const std::string &inputShape,
18*89c4ff92SAndroid Build Coastguard Worker                              const std::string &outputShape,
19*89c4ff92SAndroid Build Coastguard Worker                              const std::string &dataType)
20*89c4ff92SAndroid Build Coastguard Worker         {
21*89c4ff92SAndroid Build Coastguard Worker             m_JsonString = R"(
22*89c4ff92SAndroid Build Coastguard Worker             {
23*89c4ff92SAndroid Build Coastguard Worker                 inputIds: [0],
24*89c4ff92SAndroid Build Coastguard Worker                 outputIds: [2],
25*89c4ff92SAndroid Build Coastguard Worker                 layers: [
26*89c4ff92SAndroid Build Coastguard Worker                     {
27*89c4ff92SAndroid Build Coastguard Worker                         layer_type: "InputLayer",
28*89c4ff92SAndroid Build Coastguard Worker                         layer: {
29*89c4ff92SAndroid Build Coastguard Worker                             base: {
30*89c4ff92SAndroid Build Coastguard Worker                                 layerBindingId: 0,
31*89c4ff92SAndroid Build Coastguard Worker                                 base: {
32*89c4ff92SAndroid Build Coastguard Worker                                     index: 0,
33*89c4ff92SAndroid Build Coastguard Worker                                     layerName: "InputLayer",
34*89c4ff92SAndroid Build Coastguard Worker                                     layerType: "Input",
35*89c4ff92SAndroid Build Coastguard Worker                                     inputSlots: [{
36*89c4ff92SAndroid Build Coastguard Worker                                         index: 0,
37*89c4ff92SAndroid Build Coastguard Worker                                         connection: {sourceLayerIndex:0, outputSlotIndex:0 },
38*89c4ff92SAndroid Build Coastguard Worker                                     }],
39*89c4ff92SAndroid Build Coastguard Worker                                     outputSlots: [{
40*89c4ff92SAndroid Build Coastguard Worker                                         index: 0,
41*89c4ff92SAndroid Build Coastguard Worker                                         tensorInfo: {
42*89c4ff92SAndroid Build Coastguard Worker                                             dimensions: )" + inputShape + R"(,
43*89c4ff92SAndroid Build Coastguard Worker                                             dataType: )" + dataType + R"(
44*89c4ff92SAndroid Build Coastguard Worker                                         }
45*89c4ff92SAndroid Build Coastguard Worker                                     }]
46*89c4ff92SAndroid Build Coastguard Worker                                 }
47*89c4ff92SAndroid Build Coastguard Worker                             }
48*89c4ff92SAndroid Build Coastguard Worker                         }
49*89c4ff92SAndroid Build Coastguard Worker                     },
50*89c4ff92SAndroid Build Coastguard Worker                     {
51*89c4ff92SAndroid Build Coastguard Worker                         layer_type: "AbsLayer",
52*89c4ff92SAndroid Build Coastguard Worker                         layer: {
53*89c4ff92SAndroid Build Coastguard Worker                             base: {
54*89c4ff92SAndroid Build Coastguard Worker                                 index: 1,
55*89c4ff92SAndroid Build Coastguard Worker                                 layerName: "AbsLayer",
56*89c4ff92SAndroid Build Coastguard Worker                                 layerType: "Abs",
57*89c4ff92SAndroid Build Coastguard Worker                                 inputSlots: [{
58*89c4ff92SAndroid Build Coastguard Worker                                     index: 0,
59*89c4ff92SAndroid Build Coastguard Worker                                     connection: {sourceLayerIndex:0, outputSlotIndex:0 },
60*89c4ff92SAndroid Build Coastguard Worker                                 }],
61*89c4ff92SAndroid Build Coastguard Worker                                 outputSlots: [{
62*89c4ff92SAndroid Build Coastguard Worker                                     index: 0,
63*89c4ff92SAndroid Build Coastguard Worker                                     tensorInfo: {
64*89c4ff92SAndroid Build Coastguard Worker                                         dimensions: )" + outputShape + R"(,
65*89c4ff92SAndroid Build Coastguard Worker                                         dataType: )" + dataType + R"(
66*89c4ff92SAndroid Build Coastguard Worker                                     }
67*89c4ff92SAndroid Build Coastguard Worker                                 }]
68*89c4ff92SAndroid Build Coastguard Worker                             }
69*89c4ff92SAndroid Build Coastguard Worker 
70*89c4ff92SAndroid Build Coastguard Worker                         }
71*89c4ff92SAndroid Build Coastguard Worker                     },
72*89c4ff92SAndroid Build Coastguard Worker                     {
73*89c4ff92SAndroid Build Coastguard Worker                         layer_type: "OutputLayer",
74*89c4ff92SAndroid Build Coastguard Worker                         layer: {
75*89c4ff92SAndroid Build Coastguard Worker                             base:{
76*89c4ff92SAndroid Build Coastguard Worker                                 layerBindingId: 2,
77*89c4ff92SAndroid Build Coastguard Worker                                 base: {
78*89c4ff92SAndroid Build Coastguard Worker                                     index: 2,
79*89c4ff92SAndroid Build Coastguard Worker                                     layerName: "OutputLayer",
80*89c4ff92SAndroid Build Coastguard Worker                                     layerType: "Output",
81*89c4ff92SAndroid Build Coastguard Worker                                     inputSlots: [{
82*89c4ff92SAndroid Build Coastguard Worker                                         index: 0,
83*89c4ff92SAndroid Build Coastguard Worker                                         connection: {sourceLayerIndex:1, outputSlotIndex:0 },
84*89c4ff92SAndroid Build Coastguard Worker                                     }],
85*89c4ff92SAndroid Build Coastguard Worker                                     outputSlots: [{
86*89c4ff92SAndroid Build Coastguard Worker                                         index: 0,
87*89c4ff92SAndroid Build Coastguard Worker                                         tensorInfo: {
88*89c4ff92SAndroid Build Coastguard Worker                                             dimensions: )" + outputShape + R"(,
89*89c4ff92SAndroid Build Coastguard Worker                                             dataType: )" + dataType + R"(
90*89c4ff92SAndroid Build Coastguard Worker                                         },
91*89c4ff92SAndroid Build Coastguard Worker                                     }],
92*89c4ff92SAndroid Build Coastguard Worker                                 }
93*89c4ff92SAndroid Build Coastguard Worker                             }
94*89c4ff92SAndroid Build Coastguard Worker                         },
95*89c4ff92SAndroid Build Coastguard Worker                     }
96*89c4ff92SAndroid Build Coastguard Worker                 ]
97*89c4ff92SAndroid Build Coastguard Worker             }
98*89c4ff92SAndroid Build Coastguard Worker         )";
99*89c4ff92SAndroid Build Coastguard Worker             Setup();
100*89c4ff92SAndroid Build Coastguard Worker         }
101*89c4ff92SAndroid Build Coastguard Worker     };
102*89c4ff92SAndroid Build Coastguard Worker 
103*89c4ff92SAndroid Build Coastguard Worker     struct SimpleAbsFixture : AbsFixture
104*89c4ff92SAndroid Build Coastguard Worker     {
SimpleAbsFixtureSimpleAbsFixture105*89c4ff92SAndroid Build Coastguard Worker         SimpleAbsFixture()
106*89c4ff92SAndroid Build Coastguard Worker                 : AbsFixture("[ 1, 2, 2, 2 ]",     // inputShape
107*89c4ff92SAndroid Build Coastguard Worker                               "[ 1, 2, 2, 2 ]",     // outputShape
108*89c4ff92SAndroid Build Coastguard Worker                               "Float32")            // dataType
109*89c4ff92SAndroid Build Coastguard Worker         {}
110*89c4ff92SAndroid Build Coastguard Worker     };
111*89c4ff92SAndroid Build Coastguard Worker 
112*89c4ff92SAndroid Build Coastguard Worker     TEST_CASE_FIXTURE(SimpleAbsFixture, "SimpleAbsTest")
113*89c4ff92SAndroid Build Coastguard Worker     {
114*89c4ff92SAndroid Build Coastguard Worker         RunTest<4, armnn::DataType::Float32>(
115*89c4ff92SAndroid Build Coastguard Worker                 0,
116*89c4ff92SAndroid Build Coastguard Worker                 {{"InputLayer",  { -100.0f, -50.5f, -25.9999f, -0.5f , 0.0f, 1.5555f, 25.5f, 100.0f }}},
117*89c4ff92SAndroid Build Coastguard Worker                 {{"OutputLayer", { 100.0f, 50.5f, 25.9999f, 0.5f , 0.0f, 1.5555f, 25.5f, 100.0f }}});
118*89c4ff92SAndroid Build Coastguard Worker     }
119*89c4ff92SAndroid Build Coastguard Worker 
120*89c4ff92SAndroid Build Coastguard Worker }