xref: /aosp_15_r20/external/armnn/src/armnnTfLiteParser/test/ReshapeDynamic.cpp (revision 89c4ff92f2867872bb9e2354d150bf0c8c502810)
1*89c4ff92SAndroid Build Coastguard Worker //
2*89c4ff92SAndroid Build Coastguard Worker // Copyright © 2021 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 "ParserFlatbuffersFixture.hpp"
7*89c4ff92SAndroid Build Coastguard Worker 
8*89c4ff92SAndroid Build Coastguard Worker 
9*89c4ff92SAndroid Build Coastguard Worker TEST_SUITE("TensorflowLiteParser_Reshape_Dynamic")
10*89c4ff92SAndroid Build Coastguard Worker {
11*89c4ff92SAndroid Build Coastguard Worker struct ReshapeDynamicFixture1 : public ParserFlatbuffersFixture
12*89c4ff92SAndroid Build Coastguard Worker {
ReshapeDynamicFixture1ReshapeDynamicFixture113*89c4ff92SAndroid Build Coastguard Worker     explicit ReshapeDynamicFixture1()
14*89c4ff92SAndroid Build Coastguard Worker     {
15*89c4ff92SAndroid Build Coastguard Worker         m_JsonString = R"(
16*89c4ff92SAndroid Build Coastguard Worker {
17*89c4ff92SAndroid Build Coastguard Worker   "version": 3,
18*89c4ff92SAndroid Build Coastguard Worker   "operator_codes": [
19*89c4ff92SAndroid Build Coastguard Worker     {
20*89c4ff92SAndroid Build Coastguard Worker       "deprecated_builtin_code": 77,
21*89c4ff92SAndroid Build Coastguard Worker       "version": 1,
22*89c4ff92SAndroid Build Coastguard Worker       "builtin_code": "ADD"
23*89c4ff92SAndroid Build Coastguard Worker     },
24*89c4ff92SAndroid Build Coastguard Worker     {
25*89c4ff92SAndroid Build Coastguard Worker       "deprecated_builtin_code": 22,
26*89c4ff92SAndroid Build Coastguard Worker       "version": 1,
27*89c4ff92SAndroid Build Coastguard Worker       "builtin_code": "ADD"
28*89c4ff92SAndroid Build Coastguard Worker     }
29*89c4ff92SAndroid Build Coastguard Worker   ],
30*89c4ff92SAndroid Build Coastguard Worker   "subgraphs": [
31*89c4ff92SAndroid Build Coastguard Worker     {
32*89c4ff92SAndroid Build Coastguard Worker       "tensors": [
33*89c4ff92SAndroid Build Coastguard Worker         {
34*89c4ff92SAndroid Build Coastguard Worker           "shape": [
35*89c4ff92SAndroid Build Coastguard Worker             2,
36*89c4ff92SAndroid Build Coastguard Worker             5
37*89c4ff92SAndroid Build Coastguard Worker           ],
38*89c4ff92SAndroid Build Coastguard Worker           "type": "FLOAT32",
39*89c4ff92SAndroid Build Coastguard Worker           "buffer": 1,
40*89c4ff92SAndroid Build Coastguard Worker           "name": "input_33",
41*89c4ff92SAndroid Build Coastguard Worker           "quantization": {
42*89c4ff92SAndroid Build Coastguard Worker             "details_type": "NONE",
43*89c4ff92SAndroid Build Coastguard Worker             "quantized_dimension": 0
44*89c4ff92SAndroid Build Coastguard Worker           },
45*89c4ff92SAndroid Build Coastguard Worker           "is_variable": false,
46*89c4ff92SAndroid Build Coastguard Worker           "shape_signature": [
47*89c4ff92SAndroid Build Coastguard Worker             -1,
48*89c4ff92SAndroid Build Coastguard Worker             10
49*89c4ff92SAndroid Build Coastguard Worker           ]
50*89c4ff92SAndroid Build Coastguard Worker         },
51*89c4ff92SAndroid Build Coastguard Worker         {
52*89c4ff92SAndroid Build Coastguard Worker           "shape": [
53*89c4ff92SAndroid Build Coastguard Worker             2
54*89c4ff92SAndroid Build Coastguard Worker           ],
55*89c4ff92SAndroid Build Coastguard Worker           "type": "INT32",
56*89c4ff92SAndroid Build Coastguard Worker           "buffer": 2,
57*89c4ff92SAndroid Build Coastguard Worker           "name": "functional_15/tf_op_layer_Shape_9/Shape_9",
58*89c4ff92SAndroid Build Coastguard Worker           "quantization": {
59*89c4ff92SAndroid Build Coastguard Worker             "details_type": "NONE",
60*89c4ff92SAndroid Build Coastguard Worker             "quantized_dimension": 0
61*89c4ff92SAndroid Build Coastguard Worker           },
62*89c4ff92SAndroid Build Coastguard Worker           "is_variable": false
63*89c4ff92SAndroid Build Coastguard Worker         },
64*89c4ff92SAndroid Build Coastguard Worker         {
65*89c4ff92SAndroid Build Coastguard Worker           "shape": [
66*89c4ff92SAndroid Build Coastguard Worker             2,
67*89c4ff92SAndroid Build Coastguard Worker             5
68*89c4ff92SAndroid Build Coastguard Worker           ],
69*89c4ff92SAndroid Build Coastguard Worker           "type": "FLOAT32",
70*89c4ff92SAndroid Build Coastguard Worker           "buffer": 3,
71*89c4ff92SAndroid Build Coastguard Worker           "name": "Identity",
72*89c4ff92SAndroid Build Coastguard Worker           "quantization": {
73*89c4ff92SAndroid Build Coastguard Worker             "details_type": "NONE",
74*89c4ff92SAndroid Build Coastguard Worker             "quantized_dimension": 0
75*89c4ff92SAndroid Build Coastguard Worker           },
76*89c4ff92SAndroid Build Coastguard Worker           "is_variable": false,
77*89c4ff92SAndroid Build Coastguard Worker           "shape_signature": [
78*89c4ff92SAndroid Build Coastguard Worker             -1,
79*89c4ff92SAndroid Build Coastguard Worker             5
80*89c4ff92SAndroid Build Coastguard Worker           ]
81*89c4ff92SAndroid Build Coastguard Worker         }
82*89c4ff92SAndroid Build Coastguard Worker       ],
83*89c4ff92SAndroid Build Coastguard Worker       "inputs": [
84*89c4ff92SAndroid Build Coastguard Worker         0
85*89c4ff92SAndroid Build Coastguard Worker       ],
86*89c4ff92SAndroid Build Coastguard Worker       "outputs": [
87*89c4ff92SAndroid Build Coastguard Worker         2
88*89c4ff92SAndroid Build Coastguard Worker       ],
89*89c4ff92SAndroid Build Coastguard Worker       "operators": [
90*89c4ff92SAndroid Build Coastguard Worker         {
91*89c4ff92SAndroid Build Coastguard Worker           "opcode_index": 0,
92*89c4ff92SAndroid Build Coastguard Worker           "inputs": [
93*89c4ff92SAndroid Build Coastguard Worker             0
94*89c4ff92SAndroid Build Coastguard Worker           ],
95*89c4ff92SAndroid Build Coastguard Worker           "outputs": [
96*89c4ff92SAndroid Build Coastguard Worker             1
97*89c4ff92SAndroid Build Coastguard Worker           ],
98*89c4ff92SAndroid Build Coastguard Worker           "builtin_options_type": "ShapeOptions",
99*89c4ff92SAndroid Build Coastguard Worker           "builtin_options": {
100*89c4ff92SAndroid Build Coastguard Worker             "out_type": "INT32"
101*89c4ff92SAndroid Build Coastguard Worker           },
102*89c4ff92SAndroid Build Coastguard Worker           "custom_options_format": "FLEXBUFFERS"
103*89c4ff92SAndroid Build Coastguard Worker         },
104*89c4ff92SAndroid Build Coastguard Worker         {
105*89c4ff92SAndroid Build Coastguard Worker           "opcode_index": 1,
106*89c4ff92SAndroid Build Coastguard Worker           "inputs": [
107*89c4ff92SAndroid Build Coastguard Worker             0,
108*89c4ff92SAndroid Build Coastguard Worker             1
109*89c4ff92SAndroid Build Coastguard Worker           ],
110*89c4ff92SAndroid Build Coastguard Worker           "outputs": [
111*89c4ff92SAndroid Build Coastguard Worker             2
112*89c4ff92SAndroid Build Coastguard Worker           ],
113*89c4ff92SAndroid Build Coastguard Worker           "builtin_options_type": "NONE",
114*89c4ff92SAndroid Build Coastguard Worker           "custom_options_format": "FLEXBUFFERS"
115*89c4ff92SAndroid Build Coastguard Worker         }
116*89c4ff92SAndroid Build Coastguard Worker       ],
117*89c4ff92SAndroid Build Coastguard Worker       "name": "main"
118*89c4ff92SAndroid Build Coastguard Worker     }
119*89c4ff92SAndroid Build Coastguard Worker   ],
120*89c4ff92SAndroid Build Coastguard Worker   "description": "MLIR Converted.",
121*89c4ff92SAndroid Build Coastguard Worker   "buffers": [
122*89c4ff92SAndroid Build Coastguard Worker     {
123*89c4ff92SAndroid Build Coastguard Worker     },
124*89c4ff92SAndroid Build Coastguard Worker     {
125*89c4ff92SAndroid Build Coastguard Worker     },
126*89c4ff92SAndroid Build Coastguard Worker     {
127*89c4ff92SAndroid Build Coastguard Worker     },
128*89c4ff92SAndroid Build Coastguard Worker     {
129*89c4ff92SAndroid Build Coastguard Worker     },
130*89c4ff92SAndroid Build Coastguard Worker     {
131*89c4ff92SAndroid Build Coastguard Worker       "data": [
132*89c4ff92SAndroid Build Coastguard Worker         49,
133*89c4ff92SAndroid Build Coastguard Worker         46,
134*89c4ff92SAndroid Build Coastguard Worker         49,
135*89c4ff92SAndroid Build Coastguard Worker         48,
136*89c4ff92SAndroid Build Coastguard Worker         46,
137*89c4ff92SAndroid Build Coastguard Worker         48,
138*89c4ff92SAndroid Build Coastguard Worker         0,
139*89c4ff92SAndroid Build Coastguard Worker         0,
140*89c4ff92SAndroid Build Coastguard Worker         0,
141*89c4ff92SAndroid Build Coastguard Worker         0,
142*89c4ff92SAndroid Build Coastguard Worker         0,
143*89c4ff92SAndroid Build Coastguard Worker         0,
144*89c4ff92SAndroid Build Coastguard Worker         0,
145*89c4ff92SAndroid Build Coastguard Worker         0,
146*89c4ff92SAndroid Build Coastguard Worker         0,
147*89c4ff92SAndroid Build Coastguard Worker         0
148*89c4ff92SAndroid Build Coastguard Worker       ]
149*89c4ff92SAndroid Build Coastguard Worker     }
150*89c4ff92SAndroid Build Coastguard Worker   ],
151*89c4ff92SAndroid Build Coastguard Worker   "metadata": [
152*89c4ff92SAndroid Build Coastguard Worker     {
153*89c4ff92SAndroid Build Coastguard Worker       "name": "min_runtime_version",
154*89c4ff92SAndroid Build Coastguard Worker       "buffer": 4
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 
163*89c4ff92SAndroid Build Coastguard Worker // ParseReshape test case: reshapeShapes[0] == 2
164*89c4ff92SAndroid Build Coastguard Worker TEST_CASE_FIXTURE(ReshapeDynamicFixture1, "ParseReshapeDynamic1")
165*89c4ff92SAndroid Build Coastguard Worker {
166*89c4ff92SAndroid Build Coastguard Worker     SetupSingleInputSingleOutput("input_33", "Identity");
167*89c4ff92SAndroid Build Coastguard Worker     RunTest<2, armnn::DataType::Float32>(0,
168*89c4ff92SAndroid Build Coastguard Worker                                          { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 },
169*89c4ff92SAndroid Build Coastguard Worker                                          { 1, 2, 3, 4, 5,
170*89c4ff92SAndroid Build Coastguard Worker                                            6, 7, 8, 9, 10 });
171*89c4ff92SAndroid Build Coastguard Worker 
172*89c4ff92SAndroid Build Coastguard Worker     CHECK((m_Parser->GetNetworkOutputBindingInfo(0, "Identity").second.GetShape()
173*89c4ff92SAndroid Build Coastguard Worker         == armnn::TensorShape({2,5})));
174*89c4ff92SAndroid Build Coastguard Worker }
175*89c4ff92SAndroid Build Coastguard Worker 
176*89c4ff92SAndroid Build Coastguard Worker struct ReshapeDynamicFixture2 : public ParserFlatbuffersFixture
177*89c4ff92SAndroid Build Coastguard Worker {
ReshapeDynamicFixture2ReshapeDynamicFixture2178*89c4ff92SAndroid Build Coastguard Worker     explicit ReshapeDynamicFixture2()
179*89c4ff92SAndroid Build Coastguard Worker     {
180*89c4ff92SAndroid Build Coastguard Worker         m_JsonString = R"(
181*89c4ff92SAndroid Build Coastguard Worker {
182*89c4ff92SAndroid Build Coastguard Worker   "version": 3,
183*89c4ff92SAndroid Build Coastguard Worker   "operator_codes": [
184*89c4ff92SAndroid Build Coastguard Worker     {
185*89c4ff92SAndroid Build Coastguard Worker       "deprecated_builtin_code": 77,
186*89c4ff92SAndroid Build Coastguard Worker       "version": 1,
187*89c4ff92SAndroid Build Coastguard Worker       "builtin_code": "ADD"
188*89c4ff92SAndroid Build Coastguard Worker     },
189*89c4ff92SAndroid Build Coastguard Worker     {
190*89c4ff92SAndroid Build Coastguard Worker       "deprecated_builtin_code": 22,
191*89c4ff92SAndroid Build Coastguard Worker       "version": 1,
192*89c4ff92SAndroid Build Coastguard Worker       "builtin_code": "ADD"
193*89c4ff92SAndroid Build Coastguard Worker     }
194*89c4ff92SAndroid Build Coastguard Worker   ],
195*89c4ff92SAndroid Build Coastguard Worker   "subgraphs": [
196*89c4ff92SAndroid Build Coastguard Worker     {
197*89c4ff92SAndroid Build Coastguard Worker       "tensors": [
198*89c4ff92SAndroid Build Coastguard Worker         {
199*89c4ff92SAndroid Build Coastguard Worker           "shape": [
200*89c4ff92SAndroid Build Coastguard Worker             -1,
201*89c4ff92SAndroid Build Coastguard Worker             10
202*89c4ff92SAndroid Build Coastguard Worker           ],
203*89c4ff92SAndroid Build Coastguard Worker           "type": "FLOAT32",
204*89c4ff92SAndroid Build Coastguard Worker           "buffer": 1,
205*89c4ff92SAndroid Build Coastguard Worker           "name": "input_33",
206*89c4ff92SAndroid Build Coastguard Worker           "quantization": {
207*89c4ff92SAndroid Build Coastguard Worker             "details_type": "NONE",
208*89c4ff92SAndroid Build Coastguard Worker             "quantized_dimension": 0
209*89c4ff92SAndroid Build Coastguard Worker           },
210*89c4ff92SAndroid Build Coastguard Worker           "is_variable": false,
211*89c4ff92SAndroid Build Coastguard Worker           "shape_signature": [
212*89c4ff92SAndroid Build Coastguard Worker             2,
213*89c4ff92SAndroid Build Coastguard Worker             5
214*89c4ff92SAndroid Build Coastguard Worker           ]
215*89c4ff92SAndroid Build Coastguard Worker         },
216*89c4ff92SAndroid Build Coastguard Worker         {
217*89c4ff92SAndroid Build Coastguard Worker           "shape": [
218*89c4ff92SAndroid Build Coastguard Worker             1
219*89c4ff92SAndroid Build Coastguard Worker           ],
220*89c4ff92SAndroid Build Coastguard Worker           "type": "INT32",
221*89c4ff92SAndroid Build Coastguard Worker           "buffer": 2,
222*89c4ff92SAndroid Build Coastguard Worker           "name": "functional_15/tf_op_layer_Shape_9/Shape_9",
223*89c4ff92SAndroid Build Coastguard Worker           "quantization": {
224*89c4ff92SAndroid Build Coastguard Worker             "details_type": "NONE",
225*89c4ff92SAndroid Build Coastguard Worker             "quantized_dimension": 0
226*89c4ff92SAndroid Build Coastguard Worker           },
227*89c4ff92SAndroid Build Coastguard Worker           "is_variable": false
228*89c4ff92SAndroid Build Coastguard Worker         },
229*89c4ff92SAndroid Build Coastguard Worker         {
230*89c4ff92SAndroid Build Coastguard Worker           "shape": [
231*89c4ff92SAndroid Build Coastguard Worker             10
232*89c4ff92SAndroid Build Coastguard Worker           ],
233*89c4ff92SAndroid Build Coastguard Worker           "type": "FLOAT32",
234*89c4ff92SAndroid Build Coastguard Worker           "buffer": 3,
235*89c4ff92SAndroid Build Coastguard Worker           "name": "Identity",
236*89c4ff92SAndroid Build Coastguard Worker           "quantization": {
237*89c4ff92SAndroid Build Coastguard Worker             "details_type": "NONE",
238*89c4ff92SAndroid Build Coastguard Worker             "quantized_dimension": 0
239*89c4ff92SAndroid Build Coastguard Worker           },
240*89c4ff92SAndroid Build Coastguard Worker           "is_variable": false,
241*89c4ff92SAndroid Build Coastguard Worker           "shape_signature": [
242*89c4ff92SAndroid Build Coastguard Worker             -1,
243*89c4ff92SAndroid Build Coastguard Worker             10
244*89c4ff92SAndroid Build Coastguard Worker           ]
245*89c4ff92SAndroid Build Coastguard Worker         }
246*89c4ff92SAndroid Build Coastguard Worker       ],
247*89c4ff92SAndroid Build Coastguard Worker       "inputs": [
248*89c4ff92SAndroid Build Coastguard Worker         0
249*89c4ff92SAndroid Build Coastguard Worker       ],
250*89c4ff92SAndroid Build Coastguard Worker       "outputs": [
251*89c4ff92SAndroid Build Coastguard Worker         2
252*89c4ff92SAndroid Build Coastguard Worker       ],
253*89c4ff92SAndroid Build Coastguard Worker       "operators": [
254*89c4ff92SAndroid Build Coastguard Worker         {
255*89c4ff92SAndroid Build Coastguard Worker           "opcode_index": 0,
256*89c4ff92SAndroid Build Coastguard Worker           "inputs": [
257*89c4ff92SAndroid Build Coastguard Worker             0
258*89c4ff92SAndroid Build Coastguard Worker           ],
259*89c4ff92SAndroid Build Coastguard Worker           "outputs": [
260*89c4ff92SAndroid Build Coastguard Worker             1
261*89c4ff92SAndroid Build Coastguard Worker           ],
262*89c4ff92SAndroid Build Coastguard Worker           "builtin_options_type": "ShapeOptions",
263*89c4ff92SAndroid Build Coastguard Worker           "builtin_options": {
264*89c4ff92SAndroid Build Coastguard Worker             "out_type": "INT32"
265*89c4ff92SAndroid Build Coastguard Worker           },
266*89c4ff92SAndroid Build Coastguard Worker           "custom_options_format": "FLEXBUFFERS"
267*89c4ff92SAndroid Build Coastguard Worker         },
268*89c4ff92SAndroid Build Coastguard Worker         {
269*89c4ff92SAndroid Build Coastguard Worker           "opcode_index": 1,
270*89c4ff92SAndroid Build Coastguard Worker           "inputs": [
271*89c4ff92SAndroid Build Coastguard Worker             0,
272*89c4ff92SAndroid Build Coastguard Worker             1
273*89c4ff92SAndroid Build Coastguard Worker           ],
274*89c4ff92SAndroid Build Coastguard Worker           "outputs": [
275*89c4ff92SAndroid Build Coastguard Worker             2
276*89c4ff92SAndroid Build Coastguard Worker           ],
277*89c4ff92SAndroid Build Coastguard Worker           "builtin_options_type": "NONE",
278*89c4ff92SAndroid Build Coastguard Worker           "custom_options_format": "FLEXBUFFERS"
279*89c4ff92SAndroid Build Coastguard Worker         }
280*89c4ff92SAndroid Build Coastguard Worker       ],
281*89c4ff92SAndroid Build Coastguard Worker       "name": "main"
282*89c4ff92SAndroid Build Coastguard Worker     }
283*89c4ff92SAndroid Build Coastguard Worker   ],
284*89c4ff92SAndroid Build Coastguard Worker   "description": "MLIR Converted.",
285*89c4ff92SAndroid Build Coastguard Worker   "buffers": [
286*89c4ff92SAndroid Build Coastguard Worker     {
287*89c4ff92SAndroid Build Coastguard Worker     },
288*89c4ff92SAndroid Build Coastguard Worker     {
289*89c4ff92SAndroid Build Coastguard Worker     },
290*89c4ff92SAndroid Build Coastguard Worker     {
291*89c4ff92SAndroid Build Coastguard Worker     },
292*89c4ff92SAndroid Build Coastguard Worker     {
293*89c4ff92SAndroid Build Coastguard Worker     },
294*89c4ff92SAndroid Build Coastguard Worker     {
295*89c4ff92SAndroid Build Coastguard Worker       "data": [
296*89c4ff92SAndroid Build Coastguard Worker         49,
297*89c4ff92SAndroid Build Coastguard Worker         46,
298*89c4ff92SAndroid Build Coastguard Worker         49,
299*89c4ff92SAndroid Build Coastguard Worker         48,
300*89c4ff92SAndroid Build Coastguard Worker         46,
301*89c4ff92SAndroid Build Coastguard Worker         48,
302*89c4ff92SAndroid Build Coastguard Worker         0,
303*89c4ff92SAndroid Build Coastguard Worker         0,
304*89c4ff92SAndroid Build Coastguard Worker         0,
305*89c4ff92SAndroid Build Coastguard Worker         0,
306*89c4ff92SAndroid Build Coastguard Worker         0,
307*89c4ff92SAndroid Build Coastguard Worker         0,
308*89c4ff92SAndroid Build Coastguard Worker         0,
309*89c4ff92SAndroid Build Coastguard Worker         0,
310*89c4ff92SAndroid Build Coastguard Worker         0,
311*89c4ff92SAndroid Build Coastguard Worker         0
312*89c4ff92SAndroid Build Coastguard Worker       ]
313*89c4ff92SAndroid Build Coastguard Worker     }
314*89c4ff92SAndroid Build Coastguard Worker   ],
315*89c4ff92SAndroid Build Coastguard Worker   "metadata": [
316*89c4ff92SAndroid Build Coastguard Worker     {
317*89c4ff92SAndroid Build Coastguard Worker       "name": "min_runtime_version",
318*89c4ff92SAndroid Build Coastguard Worker       "buffer": 4
319*89c4ff92SAndroid Build Coastguard Worker     }
320*89c4ff92SAndroid Build Coastguard Worker   ]
321*89c4ff92SAndroid Build Coastguard Worker }
322*89c4ff92SAndroid Build Coastguard Worker )";
323*89c4ff92SAndroid Build Coastguard Worker 
324*89c4ff92SAndroid Build Coastguard Worker     }
325*89c4ff92SAndroid Build Coastguard Worker };
326*89c4ff92SAndroid Build Coastguard Worker 
327*89c4ff92SAndroid Build Coastguard Worker // ParseReshape test case: reshapeShapes[0] == 1
328*89c4ff92SAndroid Build Coastguard Worker TEST_CASE_FIXTURE(ReshapeDynamicFixture2, "ParseReshapeDynamic2")
329*89c4ff92SAndroid Build Coastguard Worker {
330*89c4ff92SAndroid Build Coastguard Worker     SetupSingleInputSingleOutput("input_33", "Identity");
331*89c4ff92SAndroid Build Coastguard Worker     RunTest<1, armnn::DataType::Float32>(0,
332*89c4ff92SAndroid Build Coastguard Worker                                          { 1, 2, 3, 4, 5,
333*89c4ff92SAndroid Build Coastguard Worker                                            6, 7, 8, 9, 10 },
334*89c4ff92SAndroid Build Coastguard Worker                                          { 1, 2, 3, 4, 5, 6, 7, 8 ,9, 10 });
335*89c4ff92SAndroid Build Coastguard Worker     CHECK((m_Parser->GetNetworkOutputBindingInfo(0, "Identity").second.GetShape()
336*89c4ff92SAndroid Build Coastguard Worker         == armnn::TensorShape({10})));
337*89c4ff92SAndroid Build Coastguard Worker }
338*89c4ff92SAndroid Build Coastguard Worker 
339*89c4ff92SAndroid Build Coastguard Worker struct ReshapeDynamicFixture3 : public ParserFlatbuffersFixture
340*89c4ff92SAndroid Build Coastguard Worker {
ReshapeDynamicFixture3ReshapeDynamicFixture3341*89c4ff92SAndroid Build Coastguard Worker     explicit ReshapeDynamicFixture3()
342*89c4ff92SAndroid Build Coastguard Worker     {
343*89c4ff92SAndroid Build Coastguard Worker         m_JsonString = R"(
344*89c4ff92SAndroid Build Coastguard Worker {
345*89c4ff92SAndroid Build Coastguard Worker   "version": 3,
346*89c4ff92SAndroid Build Coastguard Worker   "operator_codes": [
347*89c4ff92SAndroid Build Coastguard Worker     {
348*89c4ff92SAndroid Build Coastguard Worker       "deprecated_builtin_code": 77,
349*89c4ff92SAndroid Build Coastguard Worker       "version": 1,
350*89c4ff92SAndroid Build Coastguard Worker       "builtin_code": "ADD"
351*89c4ff92SAndroid Build Coastguard Worker     },
352*89c4ff92SAndroid Build Coastguard Worker     {
353*89c4ff92SAndroid Build Coastguard Worker       "deprecated_builtin_code": 22,
354*89c4ff92SAndroid Build Coastguard Worker       "version": 1,
355*89c4ff92SAndroid Build Coastguard Worker       "builtin_code": "ADD"
356*89c4ff92SAndroid Build Coastguard Worker     }
357*89c4ff92SAndroid Build Coastguard Worker   ],
358*89c4ff92SAndroid Build Coastguard Worker   "subgraphs": [
359*89c4ff92SAndroid Build Coastguard Worker     {
360*89c4ff92SAndroid Build Coastguard Worker       "tensors": [
361*89c4ff92SAndroid Build Coastguard Worker         {
362*89c4ff92SAndroid Build Coastguard Worker           "shape": [
363*89c4ff92SAndroid Build Coastguard Worker             1,
364*89c4ff92SAndroid Build Coastguard Worker             9
365*89c4ff92SAndroid Build Coastguard Worker           ],
366*89c4ff92SAndroid Build Coastguard Worker           "type": "FLOAT32",
367*89c4ff92SAndroid Build Coastguard Worker           "buffer": 1,
368*89c4ff92SAndroid Build Coastguard Worker           "name": "input_33",
369*89c4ff92SAndroid Build Coastguard Worker           "quantization": {
370*89c4ff92SAndroid Build Coastguard Worker             "details_type": "NONE",
371*89c4ff92SAndroid Build Coastguard Worker             "quantized_dimension": 0
372*89c4ff92SAndroid Build Coastguard Worker           },
373*89c4ff92SAndroid Build Coastguard Worker           "is_variable": false,
374*89c4ff92SAndroid Build Coastguard Worker           "shape_signature": [
375*89c4ff92SAndroid Build Coastguard Worker             -1,
376*89c4ff92SAndroid Build Coastguard Worker             9
377*89c4ff92SAndroid Build Coastguard Worker           ]
378*89c4ff92SAndroid Build Coastguard Worker         },
379*89c4ff92SAndroid Build Coastguard Worker         {
380*89c4ff92SAndroid Build Coastguard Worker           "shape": [
381*89c4ff92SAndroid Build Coastguard Worker             3
382*89c4ff92SAndroid Build Coastguard Worker           ],
383*89c4ff92SAndroid Build Coastguard Worker           "type": "INT32",
384*89c4ff92SAndroid Build Coastguard Worker           "buffer": 2,
385*89c4ff92SAndroid Build Coastguard Worker           "name": "functional_15/tf_op_layer_Shape_9/Shape_9",
386*89c4ff92SAndroid Build Coastguard Worker           "quantization": {
387*89c4ff92SAndroid Build Coastguard Worker             "details_type": "NONE",
388*89c4ff92SAndroid Build Coastguard Worker             "quantized_dimension": 0
389*89c4ff92SAndroid Build Coastguard Worker           },
390*89c4ff92SAndroid Build Coastguard Worker           "is_variable": false
391*89c4ff92SAndroid Build Coastguard Worker         },
392*89c4ff92SAndroid Build Coastguard Worker         {
393*89c4ff92SAndroid Build Coastguard Worker           "shape": [
394*89c4ff92SAndroid Build Coastguard Worker             1,
395*89c4ff92SAndroid Build Coastguard Worker             9
396*89c4ff92SAndroid Build Coastguard Worker           ],
397*89c4ff92SAndroid Build Coastguard Worker           "type": "FLOAT32",
398*89c4ff92SAndroid Build Coastguard Worker           "buffer": 3,
399*89c4ff92SAndroid Build Coastguard Worker           "name": "Identity",
400*89c4ff92SAndroid Build Coastguard Worker           "quantization": {
401*89c4ff92SAndroid Build Coastguard Worker             "details_type": "NONE",
402*89c4ff92SAndroid Build Coastguard Worker             "quantized_dimension": 0
403*89c4ff92SAndroid Build Coastguard Worker           },
404*89c4ff92SAndroid Build Coastguard Worker           "is_variable": false,
405*89c4ff92SAndroid Build Coastguard Worker           "shape_signature": [
406*89c4ff92SAndroid Build Coastguard Worker             -1,
407*89c4ff92SAndroid Build Coastguard Worker             9
408*89c4ff92SAndroid Build Coastguard Worker           ]
409*89c4ff92SAndroid Build Coastguard Worker         }
410*89c4ff92SAndroid Build Coastguard Worker       ],
411*89c4ff92SAndroid Build Coastguard Worker       "inputs": [
412*89c4ff92SAndroid Build Coastguard Worker         0
413*89c4ff92SAndroid Build Coastguard Worker       ],
414*89c4ff92SAndroid Build Coastguard Worker       "outputs": [
415*89c4ff92SAndroid Build Coastguard Worker         2
416*89c4ff92SAndroid Build Coastguard Worker       ],
417*89c4ff92SAndroid Build Coastguard Worker       "operators": [
418*89c4ff92SAndroid Build Coastguard Worker         {
419*89c4ff92SAndroid Build Coastguard Worker           "opcode_index": 0,
420*89c4ff92SAndroid Build Coastguard Worker           "inputs": [
421*89c4ff92SAndroid Build Coastguard Worker             0
422*89c4ff92SAndroid Build Coastguard Worker           ],
423*89c4ff92SAndroid Build Coastguard Worker           "outputs": [
424*89c4ff92SAndroid Build Coastguard Worker             1
425*89c4ff92SAndroid Build Coastguard Worker           ],
426*89c4ff92SAndroid Build Coastguard Worker           "builtin_options_type": "ShapeOptions",
427*89c4ff92SAndroid Build Coastguard Worker           "builtin_options": {
428*89c4ff92SAndroid Build Coastguard Worker             "out_type": "INT32"
429*89c4ff92SAndroid Build Coastguard Worker           },
430*89c4ff92SAndroid Build Coastguard Worker           "custom_options_format": "FLEXBUFFERS"
431*89c4ff92SAndroid Build Coastguard Worker         },
432*89c4ff92SAndroid Build Coastguard Worker         {
433*89c4ff92SAndroid Build Coastguard Worker           "opcode_index": 1,
434*89c4ff92SAndroid Build Coastguard Worker           "inputs": [
435*89c4ff92SAndroid Build Coastguard Worker             0,
436*89c4ff92SAndroid Build Coastguard Worker             1
437*89c4ff92SAndroid Build Coastguard Worker           ],
438*89c4ff92SAndroid Build Coastguard Worker           "outputs": [
439*89c4ff92SAndroid Build Coastguard Worker             2
440*89c4ff92SAndroid Build Coastguard Worker           ],
441*89c4ff92SAndroid Build Coastguard Worker           "builtin_options_type": "NONE",
442*89c4ff92SAndroid Build Coastguard Worker           "custom_options_format": "FLEXBUFFERS"
443*89c4ff92SAndroid Build Coastguard Worker         }
444*89c4ff92SAndroid Build Coastguard Worker       ],
445*89c4ff92SAndroid Build Coastguard Worker       "name": "main"
446*89c4ff92SAndroid Build Coastguard Worker     }
447*89c4ff92SAndroid Build Coastguard Worker   ],
448*89c4ff92SAndroid Build Coastguard Worker   "description": "MLIR Converted.",
449*89c4ff92SAndroid Build Coastguard Worker   "buffers": [
450*89c4ff92SAndroid Build Coastguard Worker     {
451*89c4ff92SAndroid Build Coastguard Worker     },
452*89c4ff92SAndroid Build Coastguard Worker     {
453*89c4ff92SAndroid Build Coastguard Worker     },
454*89c4ff92SAndroid Build Coastguard Worker     {
455*89c4ff92SAndroid Build Coastguard Worker     },
456*89c4ff92SAndroid Build Coastguard Worker     {
457*89c4ff92SAndroid Build Coastguard Worker     },
458*89c4ff92SAndroid Build Coastguard Worker     {
459*89c4ff92SAndroid Build Coastguard Worker       "data": [
460*89c4ff92SAndroid Build Coastguard Worker         49,
461*89c4ff92SAndroid Build Coastguard Worker         46,
462*89c4ff92SAndroid Build Coastguard Worker         49,
463*89c4ff92SAndroid Build Coastguard Worker         48,
464*89c4ff92SAndroid Build Coastguard Worker         46,
465*89c4ff92SAndroid Build Coastguard Worker         48,
466*89c4ff92SAndroid Build Coastguard Worker         0,
467*89c4ff92SAndroid Build Coastguard Worker         0,
468*89c4ff92SAndroid Build Coastguard Worker         0,
469*89c4ff92SAndroid Build Coastguard Worker         0,
470*89c4ff92SAndroid Build Coastguard Worker         0,
471*89c4ff92SAndroid Build Coastguard Worker         0,
472*89c4ff92SAndroid Build Coastguard Worker         0,
473*89c4ff92SAndroid Build Coastguard Worker         0,
474*89c4ff92SAndroid Build Coastguard Worker         0,
475*89c4ff92SAndroid Build Coastguard Worker         0
476*89c4ff92SAndroid Build Coastguard Worker       ]
477*89c4ff92SAndroid Build Coastguard Worker     }
478*89c4ff92SAndroid Build Coastguard Worker   ],
479*89c4ff92SAndroid Build Coastguard Worker   "metadata": [
480*89c4ff92SAndroid Build Coastguard Worker     {
481*89c4ff92SAndroid Build Coastguard Worker       "name": "min_runtime_version",
482*89c4ff92SAndroid Build Coastguard Worker       "buffer": 4
483*89c4ff92SAndroid Build Coastguard Worker     }
484*89c4ff92SAndroid Build Coastguard Worker   ]
485*89c4ff92SAndroid Build Coastguard Worker }
486*89c4ff92SAndroid Build Coastguard Worker )";
487*89c4ff92SAndroid Build Coastguard Worker 
488*89c4ff92SAndroid Build Coastguard Worker     }
489*89c4ff92SAndroid Build Coastguard Worker };
490*89c4ff92SAndroid Build Coastguard Worker 
491*89c4ff92SAndroid Build Coastguard Worker // ParseReshape test case: reshapeShapes[0] > 2
492*89c4ff92SAndroid Build Coastguard Worker TEST_CASE_FIXTURE(ReshapeDynamicFixture3, "ParseReshapeDynamic3")
493*89c4ff92SAndroid Build Coastguard Worker {
494*89c4ff92SAndroid Build Coastguard Worker     CHECK_THROWS_AS(SetupSingleInputSingleOutput("input_33", "Identity"), armnn::ParseException);
495*89c4ff92SAndroid Build Coastguard Worker }
496*89c4ff92SAndroid Build Coastguard Worker 
497*89c4ff92SAndroid Build Coastguard Worker }
498