xref: /aosp_15_r20/external/armnn/src/armnnDeserializer/test/DeserializeFill.cpp (revision 89c4ff92f2867872bb9e2354d150bf0c8c502810)
1*89c4ff92SAndroid Build Coastguard Worker //
2*89c4ff92SAndroid Build Coastguard Worker // Copyright © 2020, 2023 Arm Ltd and Contributors. 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 <string>
10*89c4ff92SAndroid Build Coastguard Worker 
11*89c4ff92SAndroid Build Coastguard Worker TEST_SUITE("Deserializer_Fill")
12*89c4ff92SAndroid Build Coastguard Worker {
13*89c4ff92SAndroid Build Coastguard Worker struct FillFixture : public ParserFlatbuffersSerializeFixture
14*89c4ff92SAndroid Build Coastguard Worker {
FillFixtureFillFixture15*89c4ff92SAndroid Build Coastguard Worker     explicit FillFixture()
16*89c4ff92SAndroid Build Coastguard Worker     {
17*89c4ff92SAndroid Build Coastguard Worker         m_JsonString = R"(
18*89c4ff92SAndroid Build Coastguard Worker         {
19*89c4ff92SAndroid Build Coastguard Worker           layers: [
20*89c4ff92SAndroid Build Coastguard Worker             {
21*89c4ff92SAndroid Build Coastguard Worker               layer_type: "InputLayer",
22*89c4ff92SAndroid Build Coastguard Worker               layer: {
23*89c4ff92SAndroid Build Coastguard Worker                 base: {
24*89c4ff92SAndroid Build Coastguard Worker                   base: {
25*89c4ff92SAndroid Build Coastguard Worker                     layerName: "InputLayer",
26*89c4ff92SAndroid Build Coastguard Worker                     layerType: "Input",
27*89c4ff92SAndroid Build Coastguard Worker                     inputSlots: [
28*89c4ff92SAndroid Build Coastguard Worker 
29*89c4ff92SAndroid Build Coastguard Worker                     ],
30*89c4ff92SAndroid Build Coastguard Worker                     outputSlots: [
31*89c4ff92SAndroid Build Coastguard Worker                       {
32*89c4ff92SAndroid Build Coastguard Worker                         tensorInfo: {
33*89c4ff92SAndroid Build Coastguard Worker                           dimensions: [
34*89c4ff92SAndroid Build Coastguard Worker                             4
35*89c4ff92SAndroid Build Coastguard Worker                           ],
36*89c4ff92SAndroid Build Coastguard Worker                           dataType: "Signed32",
37*89c4ff92SAndroid Build Coastguard Worker                           quantizationScale: 1.0
38*89c4ff92SAndroid Build Coastguard Worker                         }
39*89c4ff92SAndroid Build Coastguard Worker                       }
40*89c4ff92SAndroid Build Coastguard Worker                     ]
41*89c4ff92SAndroid Build Coastguard Worker                   }
42*89c4ff92SAndroid Build Coastguard Worker                 }
43*89c4ff92SAndroid Build Coastguard Worker               }
44*89c4ff92SAndroid Build Coastguard Worker             },
45*89c4ff92SAndroid Build Coastguard Worker             {
46*89c4ff92SAndroid Build Coastguard Worker               layer_type: "FillLayer",
47*89c4ff92SAndroid Build Coastguard Worker               layer: {
48*89c4ff92SAndroid Build Coastguard Worker                 base: {
49*89c4ff92SAndroid Build Coastguard Worker                   index: 1,
50*89c4ff92SAndroid Build Coastguard Worker                   layerName: "FillLayer",
51*89c4ff92SAndroid Build Coastguard Worker                   layerType: "Fill",
52*89c4ff92SAndroid Build Coastguard Worker                   inputSlots: [
53*89c4ff92SAndroid Build Coastguard Worker                     {
54*89c4ff92SAndroid Build Coastguard Worker                       connection: {
55*89c4ff92SAndroid Build Coastguard Worker                         sourceLayerIndex: 0,
56*89c4ff92SAndroid Build Coastguard Worker                         outputSlotIndex: 0
57*89c4ff92SAndroid Build Coastguard Worker                       }
58*89c4ff92SAndroid Build Coastguard Worker                     }
59*89c4ff92SAndroid Build Coastguard Worker                   ],
60*89c4ff92SAndroid Build Coastguard Worker                   outputSlots: [
61*89c4ff92SAndroid Build Coastguard Worker                     {
62*89c4ff92SAndroid Build Coastguard Worker                       tensorInfo: {
63*89c4ff92SAndroid Build Coastguard Worker                         dimensions: [
64*89c4ff92SAndroid Build Coastguard Worker                           1,
65*89c4ff92SAndroid Build Coastguard Worker                           3,
66*89c4ff92SAndroid Build Coastguard Worker                           3,
67*89c4ff92SAndroid Build Coastguard Worker                           1
68*89c4ff92SAndroid Build Coastguard Worker                         ],
69*89c4ff92SAndroid Build Coastguard Worker                         dataType: "Float32",
70*89c4ff92SAndroid Build Coastguard Worker                         quantizationScale: 0.0
71*89c4ff92SAndroid Build Coastguard Worker                       }
72*89c4ff92SAndroid Build Coastguard Worker                     }
73*89c4ff92SAndroid Build Coastguard Worker                   ]
74*89c4ff92SAndroid Build Coastguard Worker                 },
75*89c4ff92SAndroid Build Coastguard Worker                 descriptor: {
76*89c4ff92SAndroid Build Coastguard Worker                   value: 1.0
77*89c4ff92SAndroid Build Coastguard Worker                 }
78*89c4ff92SAndroid Build Coastguard Worker               }
79*89c4ff92SAndroid Build Coastguard Worker             },
80*89c4ff92SAndroid Build Coastguard Worker             {
81*89c4ff92SAndroid Build Coastguard Worker               layer_type: "OutputLayer",
82*89c4ff92SAndroid Build Coastguard Worker               layer: {
83*89c4ff92SAndroid Build Coastguard Worker                 base: {
84*89c4ff92SAndroid Build Coastguard Worker                   base: {
85*89c4ff92SAndroid Build Coastguard Worker                     index: 2,
86*89c4ff92SAndroid Build Coastguard Worker                     layerName: "OutputLayer",
87*89c4ff92SAndroid Build Coastguard Worker                     layerType: "Output",
88*89c4ff92SAndroid Build Coastguard Worker                     inputSlots: [
89*89c4ff92SAndroid Build Coastguard Worker                       {
90*89c4ff92SAndroid Build Coastguard Worker                         connection: {
91*89c4ff92SAndroid Build Coastguard Worker                           sourceLayerIndex: 1,
92*89c4ff92SAndroid Build Coastguard Worker                           outputSlotIndex: 0
93*89c4ff92SAndroid Build Coastguard Worker                         }
94*89c4ff92SAndroid Build Coastguard Worker                       }
95*89c4ff92SAndroid Build Coastguard Worker                     ],
96*89c4ff92SAndroid Build Coastguard Worker                     outputSlots: [
97*89c4ff92SAndroid Build Coastguard Worker 
98*89c4ff92SAndroid Build Coastguard Worker                     ]
99*89c4ff92SAndroid Build Coastguard Worker                   }
100*89c4ff92SAndroid Build Coastguard Worker                 }
101*89c4ff92SAndroid Build Coastguard Worker               }
102*89c4ff92SAndroid Build Coastguard Worker             }
103*89c4ff92SAndroid Build Coastguard Worker           ],
104*89c4ff92SAndroid Build Coastguard Worker           inputIds: [
105*89c4ff92SAndroid Build Coastguard Worker             0
106*89c4ff92SAndroid Build Coastguard Worker           ],
107*89c4ff92SAndroid Build Coastguard Worker           outputIds: [
108*89c4ff92SAndroid Build Coastguard Worker             0
109*89c4ff92SAndroid Build Coastguard Worker           ],
110*89c4ff92SAndroid Build Coastguard Worker           featureVersions: {
111*89c4ff92SAndroid Build Coastguard Worker             bindingIdsScheme: 1
112*89c4ff92SAndroid Build Coastguard Worker           }
113*89c4ff92SAndroid Build Coastguard Worker         }
114*89c4ff92SAndroid Build Coastguard Worker     )";
115*89c4ff92SAndroid Build Coastguard Worker         Setup();
116*89c4ff92SAndroid Build Coastguard Worker     }
117*89c4ff92SAndroid Build Coastguard Worker };
118*89c4ff92SAndroid Build Coastguard Worker 
119*89c4ff92SAndroid Build Coastguard Worker 
120*89c4ff92SAndroid Build Coastguard Worker struct SimpleFillFixture : FillFixture
121*89c4ff92SAndroid Build Coastguard Worker {
SimpleFillFixtureSimpleFillFixture122*89c4ff92SAndroid Build Coastguard Worker     SimpleFillFixture() : FillFixture() {}
123*89c4ff92SAndroid Build Coastguard Worker };
124*89c4ff92SAndroid Build Coastguard Worker 
125*89c4ff92SAndroid Build Coastguard Worker TEST_CASE_FIXTURE(SimpleFillFixture, "Fill")
126*89c4ff92SAndroid Build Coastguard Worker {
127*89c4ff92SAndroid Build Coastguard Worker     RunTest<4, armnn::DataType::Signed32, armnn::DataType::Float32>(
128*89c4ff92SAndroid Build Coastguard Worker             0,
129*89c4ff92SAndroid Build Coastguard Worker             {{"InputLayer", { 1, 3, 3, 1 }}},
130*89c4ff92SAndroid Build Coastguard Worker             {{"OutputLayer",{ 1, 1, 1, 1, 1, 1, 1, 1, 1}}});
131*89c4ff92SAndroid Build Coastguard Worker }
132*89c4ff92SAndroid Build Coastguard Worker 
133*89c4ff92SAndroid Build Coastguard Worker }
134