xref: /aosp_15_r20/external/armnn/src/armnnDeserializer/test/DeserializeConvolution2d.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 <string>
10*89c4ff92SAndroid Build Coastguard Worker 
11*89c4ff92SAndroid Build Coastguard Worker TEST_SUITE("Deserializer_Convolution2D")
12*89c4ff92SAndroid Build Coastguard Worker {
13*89c4ff92SAndroid Build Coastguard Worker struct Convolution2dFixture : public ParserFlatbuffersSerializeFixture
14*89c4ff92SAndroid Build Coastguard Worker {
Convolution2dFixtureConvolution2dFixture15*89c4ff92SAndroid Build Coastguard Worker     explicit Convolution2dFixture(const std::string & inputShape1,
16*89c4ff92SAndroid Build Coastguard Worker                                   const std::string & outputShape,
17*89c4ff92SAndroid Build Coastguard Worker                                   const std::string & weightsShape,
18*89c4ff92SAndroid Build Coastguard Worker                                   const std::string & dataType)
19*89c4ff92SAndroid Build Coastguard Worker     {
20*89c4ff92SAndroid Build Coastguard Worker         m_JsonString = R"(
21*89c4ff92SAndroid Build Coastguard Worker         {
22*89c4ff92SAndroid Build Coastguard Worker             inputIds: [0],
23*89c4ff92SAndroid Build Coastguard Worker             outputIds: [2],
24*89c4ff92SAndroid Build Coastguard Worker             layers: [{
25*89c4ff92SAndroid Build Coastguard Worker                 layer_type: "InputLayer",
26*89c4ff92SAndroid Build Coastguard Worker                 layer: {
27*89c4ff92SAndroid Build Coastguard Worker                     base: {
28*89c4ff92SAndroid Build Coastguard Worker                         layerBindingId: 0,
29*89c4ff92SAndroid Build Coastguard Worker                         base: {
30*89c4ff92SAndroid Build Coastguard Worker                             index: 0,
31*89c4ff92SAndroid Build Coastguard Worker                             layerName: "InputLayer",
32*89c4ff92SAndroid Build Coastguard Worker                             layerType: "Input",
33*89c4ff92SAndroid Build Coastguard Worker                             inputSlots: [{
34*89c4ff92SAndroid Build Coastguard Worker                                 index: 0,
35*89c4ff92SAndroid Build Coastguard Worker                                 connection: {sourceLayerIndex:0, outputSlotIndex:0 },
36*89c4ff92SAndroid Build Coastguard Worker                                 }],
37*89c4ff92SAndroid Build Coastguard Worker                             outputSlots: [{
38*89c4ff92SAndroid Build Coastguard Worker                                 index: 0,
39*89c4ff92SAndroid Build Coastguard Worker                                 tensorInfo: {
40*89c4ff92SAndroid Build Coastguard Worker                                     dimensions: )" + inputShape1 + R"(,
41*89c4ff92SAndroid Build Coastguard Worker                                     dataType: )" + dataType + R"(,
42*89c4ff92SAndroid Build Coastguard Worker                                     quantizationScale: 0.5,
43*89c4ff92SAndroid Build Coastguard Worker                                     quantizationOffset: 0
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: "Convolution2dLayer",
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: "Convolution2dLayer",
56*89c4ff92SAndroid Build Coastguard Worker                     layerType: "Convolution2d",
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                 descriptor: {
70*89c4ff92SAndroid Build Coastguard Worker                     padLeft: 1,
71*89c4ff92SAndroid Build Coastguard Worker                     padRight: 1,
72*89c4ff92SAndroid Build Coastguard Worker                     padTop: 1,
73*89c4ff92SAndroid Build Coastguard Worker                     padBottom: 1,
74*89c4ff92SAndroid Build Coastguard Worker                     strideX: 2,
75*89c4ff92SAndroid Build Coastguard Worker                     strideY: 2,
76*89c4ff92SAndroid Build Coastguard Worker                     biasEnabled: false,
77*89c4ff92SAndroid Build Coastguard Worker                     dataLayout: NHWC
78*89c4ff92SAndroid Build Coastguard Worker                     },
79*89c4ff92SAndroid Build Coastguard Worker                 weights: {
80*89c4ff92SAndroid Build Coastguard Worker                     info: {
81*89c4ff92SAndroid Build Coastguard Worker                              dimensions: )" + weightsShape + R"(,
82*89c4ff92SAndroid Build Coastguard Worker                              dataType: )" + dataType + R"(
83*89c4ff92SAndroid Build Coastguard Worker                          },
84*89c4ff92SAndroid Build Coastguard Worker                     data_type: IntData,
85*89c4ff92SAndroid Build Coastguard Worker                     data: {
86*89c4ff92SAndroid Build Coastguard Worker                         data: [
87*89c4ff92SAndroid Build Coastguard Worker                             1082130432, 1084227584, 1086324736,
88*89c4ff92SAndroid Build Coastguard Worker                             0 ,0 ,0 ,
89*89c4ff92SAndroid Build Coastguard Worker                             1077936128, 1073741824, 1065353216
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             layer_type: "OutputLayer",
97*89c4ff92SAndroid Build Coastguard Worker             layer: {
98*89c4ff92SAndroid Build Coastguard Worker                 base:{
99*89c4ff92SAndroid Build Coastguard Worker                     layerBindingId: 0,
100*89c4ff92SAndroid Build Coastguard Worker                     base: {
101*89c4ff92SAndroid Build Coastguard Worker                         index: 2,
102*89c4ff92SAndroid Build Coastguard Worker                         layerName: "OutputLayer",
103*89c4ff92SAndroid Build Coastguard Worker                         layerType: "Output",
104*89c4ff92SAndroid Build Coastguard Worker                         inputSlots: [{
105*89c4ff92SAndroid Build Coastguard Worker                             index: 0,
106*89c4ff92SAndroid Build Coastguard Worker                             connection: {sourceLayerIndex:1, outputSlotIndex:0 },
107*89c4ff92SAndroid Build Coastguard Worker                         }],
108*89c4ff92SAndroid Build Coastguard Worker                         outputSlots: [ {
109*89c4ff92SAndroid Build Coastguard Worker                             index: 0,
110*89c4ff92SAndroid Build Coastguard Worker                             tensorInfo: {
111*89c4ff92SAndroid Build Coastguard Worker                                 dimensions: )" + outputShape + R"(,
112*89c4ff92SAndroid Build Coastguard Worker                                 dataType: )" + dataType + R"(
113*89c4ff92SAndroid Build Coastguard Worker                             },
114*89c4ff92SAndroid Build Coastguard Worker                         }],
115*89c4ff92SAndroid Build Coastguard Worker                     }
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         Setup();
121*89c4ff92SAndroid Build Coastguard Worker     }
122*89c4ff92SAndroid Build Coastguard Worker };
123*89c4ff92SAndroid Build Coastguard Worker 
124*89c4ff92SAndroid Build Coastguard Worker struct Convolution2dFixtureConstantAsInput : public ParserFlatbuffersSerializeFixture
125*89c4ff92SAndroid Build Coastguard Worker {
Convolution2dFixtureConstantAsInputConvolution2dFixtureConstantAsInput126*89c4ff92SAndroid Build Coastguard Worker     explicit Convolution2dFixtureConstantAsInput(const std::string & inputShape1,
127*89c4ff92SAndroid Build Coastguard Worker                                   const std::string & outputShape,
128*89c4ff92SAndroid Build Coastguard Worker                                   const std::string & weightsShape,
129*89c4ff92SAndroid Build Coastguard Worker                                   const std::string & dataType)
130*89c4ff92SAndroid Build Coastguard Worker     {
131*89c4ff92SAndroid Build Coastguard Worker         m_JsonString = R"(
132*89c4ff92SAndroid Build Coastguard Worker         {
133*89c4ff92SAndroid Build Coastguard Worker             inputIds: [0],
134*89c4ff92SAndroid Build Coastguard Worker             outputIds: [3],
135*89c4ff92SAndroid Build Coastguard Worker             layers: [{
136*89c4ff92SAndroid Build Coastguard Worker                 layer_type: "InputLayer",
137*89c4ff92SAndroid Build Coastguard Worker                 layer: {
138*89c4ff92SAndroid Build Coastguard Worker                     base: {
139*89c4ff92SAndroid Build Coastguard Worker                         layerBindingId: 0,
140*89c4ff92SAndroid Build Coastguard Worker                         base: {
141*89c4ff92SAndroid Build Coastguard Worker                             index: 0,
142*89c4ff92SAndroid Build Coastguard Worker                             layerName: "InputLayer",
143*89c4ff92SAndroid Build Coastguard Worker                             layerType: "Input",
144*89c4ff92SAndroid Build Coastguard Worker                             inputSlots: [{
145*89c4ff92SAndroid Build Coastguard Worker                                 index: 0,
146*89c4ff92SAndroid Build Coastguard Worker                                 connection: {sourceLayerIndex:0, outputSlotIndex:0 },
147*89c4ff92SAndroid Build Coastguard Worker                                 }],
148*89c4ff92SAndroid Build Coastguard Worker                             outputSlots: [{
149*89c4ff92SAndroid Build Coastguard Worker                                 index: 0,
150*89c4ff92SAndroid Build Coastguard Worker                                 tensorInfo: {
151*89c4ff92SAndroid Build Coastguard Worker                                     dimensions: )" + inputShape1 + R"(,
152*89c4ff92SAndroid Build Coastguard Worker                                     dataType: )" + dataType + R"(,
153*89c4ff92SAndroid Build Coastguard Worker                                     quantizationScale: 0.5,
154*89c4ff92SAndroid Build Coastguard Worker                                     quantizationOffset: 0
155*89c4ff92SAndroid Build Coastguard Worker                                     },
156*89c4ff92SAndroid Build Coastguard Worker                                 }]
157*89c4ff92SAndroid Build Coastguard Worker                             },
158*89c4ff92SAndroid Build Coastguard Worker                         }
159*89c4ff92SAndroid Build Coastguard Worker                     },
160*89c4ff92SAndroid Build Coastguard Worker                 },
161*89c4ff92SAndroid Build Coastguard Worker             {
162*89c4ff92SAndroid Build Coastguard Worker             layer_type: "Convolution2dLayer",
163*89c4ff92SAndroid Build Coastguard Worker             layer : {
164*89c4ff92SAndroid Build Coastguard Worker                 base: {
165*89c4ff92SAndroid Build Coastguard Worker                     index:1,
166*89c4ff92SAndroid Build Coastguard Worker                     layerName: "Convolution2dLayer",
167*89c4ff92SAndroid Build Coastguard Worker                     layerType: "Convolution2d",
168*89c4ff92SAndroid Build Coastguard Worker                     inputSlots: [
169*89c4ff92SAndroid Build Coastguard Worker                      {
170*89c4ff92SAndroid Build Coastguard Worker                             index: 0,
171*89c4ff92SAndroid Build Coastguard Worker                             connection: {sourceLayerIndex:0, outputSlotIndex:0 },
172*89c4ff92SAndroid Build Coastguard Worker                      },
173*89c4ff92SAndroid Build Coastguard Worker                      {
174*89c4ff92SAndroid Build Coastguard Worker                       index: 1,
175*89c4ff92SAndroid Build Coastguard Worker                       connection: {
176*89c4ff92SAndroid Build Coastguard Worker                         sourceLayerIndex: 2,
177*89c4ff92SAndroid Build Coastguard Worker                         outputSlotIndex: 0
178*89c4ff92SAndroid Build Coastguard Worker                       }
179*89c4ff92SAndroid Build Coastguard Worker                      }
180*89c4ff92SAndroid Build Coastguard Worker                     ],
181*89c4ff92SAndroid Build Coastguard Worker                     outputSlots: [
182*89c4ff92SAndroid Build Coastguard Worker                     {
183*89c4ff92SAndroid Build Coastguard Worker                         index: 0,
184*89c4ff92SAndroid Build Coastguard Worker                         tensorInfo: {
185*89c4ff92SAndroid Build Coastguard Worker                             dimensions: )" + outputShape + R"(,
186*89c4ff92SAndroid Build Coastguard Worker                             dataType: )" + dataType + R"(
187*89c4ff92SAndroid Build Coastguard Worker                         },
188*89c4ff92SAndroid Build Coastguard Worker                     }
189*89c4ff92SAndroid Build Coastguard Worker                     ],
190*89c4ff92SAndroid Build Coastguard Worker                 },
191*89c4ff92SAndroid Build Coastguard Worker                 descriptor: {
192*89c4ff92SAndroid Build Coastguard Worker                     padLeft: 1,
193*89c4ff92SAndroid Build Coastguard Worker                     padRight: 1,
194*89c4ff92SAndroid Build Coastguard Worker                     padTop: 1,
195*89c4ff92SAndroid Build Coastguard Worker                     padBottom: 1,
196*89c4ff92SAndroid Build Coastguard Worker                     strideX: 2,
197*89c4ff92SAndroid Build Coastguard Worker                     strideY: 2,
198*89c4ff92SAndroid Build Coastguard Worker                     biasEnabled: false,
199*89c4ff92SAndroid Build Coastguard Worker                     dataLayout: NHWC
200*89c4ff92SAndroid Build Coastguard Worker                 }
201*89c4ff92SAndroid Build Coastguard Worker                 }
202*89c4ff92SAndroid Build Coastguard Worker             },
203*89c4ff92SAndroid Build Coastguard Worker             {
204*89c4ff92SAndroid Build Coastguard Worker             layer_type: "ConstantLayer",
205*89c4ff92SAndroid Build Coastguard Worker             layer: {
206*89c4ff92SAndroid Build Coastguard Worker                 base: {
207*89c4ff92SAndroid Build Coastguard Worker                     index: 2,
208*89c4ff92SAndroid Build Coastguard Worker                     layerName: "Weights",
209*89c4ff92SAndroid Build Coastguard Worker                     layerType: "Constant",
210*89c4ff92SAndroid Build Coastguard Worker                     inputSlots: [
211*89c4ff92SAndroid Build Coastguard Worker 
212*89c4ff92SAndroid Build Coastguard Worker                     ],
213*89c4ff92SAndroid Build Coastguard Worker                     outputSlots: [
214*89c4ff92SAndroid Build Coastguard Worker                     {
215*89c4ff92SAndroid Build Coastguard Worker                       index: 0,
216*89c4ff92SAndroid Build Coastguard Worker                       tensorInfo: {
217*89c4ff92SAndroid Build Coastguard Worker                         dimensions: )" + weightsShape + R"(,
218*89c4ff92SAndroid Build Coastguard Worker                         dataType: )" + dataType + R"(,
219*89c4ff92SAndroid Build Coastguard Worker                         quantizationScale: 0.1,
220*89c4ff92SAndroid Build Coastguard Worker                         dimensionSpecificity: [
221*89c4ff92SAndroid Build Coastguard Worker                           true,
222*89c4ff92SAndroid Build Coastguard Worker                           true,
223*89c4ff92SAndroid Build Coastguard Worker                           true,
224*89c4ff92SAndroid Build Coastguard Worker                           true
225*89c4ff92SAndroid Build Coastguard Worker                         ]
226*89c4ff92SAndroid Build Coastguard Worker                       }
227*89c4ff92SAndroid Build Coastguard Worker                     }
228*89c4ff92SAndroid Build Coastguard Worker                   ]
229*89c4ff92SAndroid Build Coastguard Worker             },
230*89c4ff92SAndroid Build Coastguard Worker             input: {
231*89c4ff92SAndroid Build Coastguard Worker                   info: {
232*89c4ff92SAndroid Build Coastguard Worker                     dimensions: )" + weightsShape + R"(,
233*89c4ff92SAndroid Build Coastguard Worker                     dataType: )" + dataType + R"(,
234*89c4ff92SAndroid Build Coastguard Worker                     quantizationScale: 0.1,
235*89c4ff92SAndroid Build Coastguard Worker                     dimensionSpecificity: [
236*89c4ff92SAndroid Build Coastguard Worker                       true,
237*89c4ff92SAndroid Build Coastguard Worker                       true,
238*89c4ff92SAndroid Build Coastguard Worker                       true,
239*89c4ff92SAndroid Build Coastguard Worker                       true
240*89c4ff92SAndroid Build Coastguard Worker                     ]
241*89c4ff92SAndroid Build Coastguard Worker                   },
242*89c4ff92SAndroid Build Coastguard Worker                   data_type: "IntData",
243*89c4ff92SAndroid Build Coastguard Worker                   data: {
244*89c4ff92SAndroid Build Coastguard Worker                     data: [
245*89c4ff92SAndroid Build Coastguard Worker                         1082130432, 1084227584, 1086324736,
246*89c4ff92SAndroid Build Coastguard Worker                         0 ,0 ,0 ,
247*89c4ff92SAndroid Build Coastguard Worker                         1077936128, 1073741824, 1065353216
248*89c4ff92SAndroid Build Coastguard Worker                     ]
249*89c4ff92SAndroid Build Coastguard Worker                   }
250*89c4ff92SAndroid Build Coastguard Worker                 }
251*89c4ff92SAndroid Build Coastguard Worker               }
252*89c4ff92SAndroid Build Coastguard Worker             },
253*89c4ff92SAndroid Build Coastguard Worker             {
254*89c4ff92SAndroid Build Coastguard Worker             layer_type: "OutputLayer",
255*89c4ff92SAndroid Build Coastguard Worker             layer: {
256*89c4ff92SAndroid Build Coastguard Worker                 base:{
257*89c4ff92SAndroid Build Coastguard Worker                     layerBindingId: 0,
258*89c4ff92SAndroid Build Coastguard Worker                     base: {
259*89c4ff92SAndroid Build Coastguard Worker                         index: 3,
260*89c4ff92SAndroid Build Coastguard Worker                         layerName: "OutputLayer",
261*89c4ff92SAndroid Build Coastguard Worker                         layerType: "Output",
262*89c4ff92SAndroid Build Coastguard Worker                         inputSlots: [{
263*89c4ff92SAndroid Build Coastguard Worker                             index: 0,
264*89c4ff92SAndroid Build Coastguard Worker                             "connection": {
265*89c4ff92SAndroid Build Coastguard Worker                               "sourceLayerIndex": 1,
266*89c4ff92SAndroid Build Coastguard Worker                               "outputSlotIndex": 0
267*89c4ff92SAndroid Build Coastguard Worker                             }
268*89c4ff92SAndroid Build Coastguard Worker                         }],
269*89c4ff92SAndroid Build Coastguard Worker                         outputSlots: [ {
270*89c4ff92SAndroid Build Coastguard Worker                             index: 0,
271*89c4ff92SAndroid Build Coastguard Worker                             tensorInfo: {
272*89c4ff92SAndroid Build Coastguard Worker                                 dimensions: )" + outputShape + R"(,
273*89c4ff92SAndroid Build Coastguard Worker                                 dataType: )" + dataType + R"(
274*89c4ff92SAndroid Build Coastguard Worker                             },
275*89c4ff92SAndroid Build Coastguard Worker                         }],
276*89c4ff92SAndroid Build Coastguard Worker                     }
277*89c4ff92SAndroid Build Coastguard Worker                 }},
278*89c4ff92SAndroid Build Coastguard Worker             }],
279*89c4ff92SAndroid Build Coastguard Worker             "featureVersions": {
280*89c4ff92SAndroid Build Coastguard Worker                 "constantTensorsAsInputs": 1,
281*89c4ff92SAndroid Build Coastguard Worker                 "weightsLayoutScheme": 1
282*89c4ff92SAndroid Build Coastguard Worker             }
283*89c4ff92SAndroid Build Coastguard Worker         }
284*89c4ff92SAndroid Build Coastguard Worker         )";
285*89c4ff92SAndroid Build Coastguard Worker         Setup();
286*89c4ff92SAndroid Build Coastguard Worker     }
287*89c4ff92SAndroid Build Coastguard Worker };
288*89c4ff92SAndroid Build Coastguard Worker 
289*89c4ff92SAndroid Build Coastguard Worker struct SimpleConvolution2dFixture : Convolution2dFixture
290*89c4ff92SAndroid Build Coastguard Worker {
SimpleConvolution2dFixtureSimpleConvolution2dFixture291*89c4ff92SAndroid Build Coastguard Worker     SimpleConvolution2dFixture() : Convolution2dFixture("[ 1, 5, 5, 1 ]",
292*89c4ff92SAndroid Build Coastguard Worker                                      "[ 1, 3, 3, 1 ]",
293*89c4ff92SAndroid Build Coastguard Worker                                      "[ 1, 3, 3, 1 ]",
294*89c4ff92SAndroid Build Coastguard Worker                                      "Float32") {}
295*89c4ff92SAndroid Build Coastguard Worker };
296*89c4ff92SAndroid Build Coastguard Worker 
297*89c4ff92SAndroid Build Coastguard Worker TEST_CASE_FIXTURE(SimpleConvolution2dFixture, "Convolution2dFloat32")
298*89c4ff92SAndroid Build Coastguard Worker {
299*89c4ff92SAndroid Build Coastguard Worker     RunTest<4, armnn::DataType::Float32>(
300*89c4ff92SAndroid Build Coastguard Worker             0,
301*89c4ff92SAndroid Build Coastguard Worker             {{"InputLayer", {1, 5, 2, 3, 5, 8, 7, 3, 6, 3, 3, 3, 9, 1, 9, 4, 1, 8, 1, 3, 6, 8, 1, 9, 2}}},
302*89c4ff92SAndroid Build Coastguard Worker             {{"OutputLayer", {23, 33, 24, 91, 99, 48, 26, 50, 19}}});
303*89c4ff92SAndroid Build Coastguard Worker }
304*89c4ff92SAndroid Build Coastguard Worker 
305*89c4ff92SAndroid Build Coastguard Worker 
306*89c4ff92SAndroid Build Coastguard Worker struct SimpleConvolution2dFixtureConstantAsInput : Convolution2dFixtureConstantAsInput
307*89c4ff92SAndroid Build Coastguard Worker {
SimpleConvolution2dFixtureConstantAsInputSimpleConvolution2dFixtureConstantAsInput308*89c4ff92SAndroid Build Coastguard Worker     SimpleConvolution2dFixtureConstantAsInput() : Convolution2dFixtureConstantAsInput("[ 1, 5, 5, 1 ]",
309*89c4ff92SAndroid Build Coastguard Worker                                      "[ 1, 3, 3, 1 ]",
310*89c4ff92SAndroid Build Coastguard Worker                                      "[ 1, 3, 3, 1 ]",
311*89c4ff92SAndroid Build Coastguard Worker                                      "Float32") {}
312*89c4ff92SAndroid Build Coastguard Worker };
313*89c4ff92SAndroid Build Coastguard Worker 
314*89c4ff92SAndroid Build Coastguard Worker TEST_CASE_FIXTURE(SimpleConvolution2dFixtureConstantAsInput, "Convolution2dFloat32ConstAsInput")
315*89c4ff92SAndroid Build Coastguard Worker {
316*89c4ff92SAndroid Build Coastguard Worker     RunTest<4, armnn::DataType::Float32>(
317*89c4ff92SAndroid Build Coastguard Worker             0,
318*89c4ff92SAndroid Build Coastguard Worker             {{"InputLayer", {1, 5, 2, 3, 5, 8, 7, 3, 6, 3, 3, 3, 9, 1, 9, 4, 1, 8, 1, 3, 6, 8, 1, 9, 2}}},
319*89c4ff92SAndroid Build Coastguard Worker             {{"OutputLayer", {23, 33, 24, 91, 99, 48, 26, 50, 19}}});
320*89c4ff92SAndroid Build Coastguard Worker }
321*89c4ff92SAndroid Build Coastguard Worker 
322*89c4ff92SAndroid Build Coastguard Worker }
323