xref: /aosp_15_r20/external/armnn/src/armnnTfLiteParser/test/Prelu.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 <doctest/doctest.h>
7*89c4ff92SAndroid Build Coastguard Worker #include "ParserFlatbuffersFixture.hpp"
8*89c4ff92SAndroid Build Coastguard Worker 
9*89c4ff92SAndroid Build Coastguard Worker 
10*89c4ff92SAndroid Build Coastguard Worker TEST_SUITE("TensorflowLiteParser_Prelu")
11*89c4ff92SAndroid Build Coastguard Worker {
12*89c4ff92SAndroid Build Coastguard Worker struct PreluFixture : public ParserFlatbuffersFixture
13*89c4ff92SAndroid Build Coastguard Worker {
PreluFixturePreluFixture14*89c4ff92SAndroid Build Coastguard Worker     explicit PreluFixture(const std::string& inputShape,
15*89c4ff92SAndroid Build Coastguard Worker                           const std::string& alphaShape,
16*89c4ff92SAndroid Build Coastguard Worker                           const std::string& outputShape,
17*89c4ff92SAndroid Build Coastguard Worker                           const std::string& inputIndex,
18*89c4ff92SAndroid Build Coastguard Worker                           const std::string& alphaData)
19*89c4ff92SAndroid Build Coastguard Worker     {
20*89c4ff92SAndroid Build Coastguard Worker         m_JsonString = R"(
21*89c4ff92SAndroid Build Coastguard Worker             {
22*89c4ff92SAndroid Build Coastguard Worker               "version": 3,
23*89c4ff92SAndroid Build Coastguard Worker               "operator_codes": [
24*89c4ff92SAndroid Build Coastguard Worker                 {
25*89c4ff92SAndroid Build Coastguard Worker                   "builtin_code": "PRELU",
26*89c4ff92SAndroid Build Coastguard Worker                   "version": 1
27*89c4ff92SAndroid Build Coastguard Worker                 }
28*89c4ff92SAndroid Build Coastguard Worker               ],
29*89c4ff92SAndroid Build Coastguard Worker               "subgraphs": [
30*89c4ff92SAndroid Build Coastguard Worker                 {
31*89c4ff92SAndroid Build Coastguard Worker                   "tensors": [
32*89c4ff92SAndroid Build Coastguard Worker                     {
33*89c4ff92SAndroid Build Coastguard Worker                       "shape": )" + inputShape + R"(,
34*89c4ff92SAndroid Build Coastguard Worker                       "type": "FLOAT32",
35*89c4ff92SAndroid Build Coastguard Worker                       "buffer": 1,
36*89c4ff92SAndroid Build Coastguard Worker                       "name": "input0",
37*89c4ff92SAndroid Build Coastguard Worker                       "quantization": {
38*89c4ff92SAndroid Build Coastguard Worker                         "details_type": "NONE",
39*89c4ff92SAndroid Build Coastguard Worker                         "quantized_dimension": 0
40*89c4ff92SAndroid Build Coastguard Worker                       },
41*89c4ff92SAndroid Build Coastguard Worker                       "is_variable": false
42*89c4ff92SAndroid Build Coastguard Worker                     },
43*89c4ff92SAndroid Build Coastguard Worker                     {
44*89c4ff92SAndroid Build Coastguard Worker                       "shape": )" + alphaShape + R"(,
45*89c4ff92SAndroid Build Coastguard Worker                       "type": "FLOAT32",
46*89c4ff92SAndroid Build Coastguard Worker                       "buffer": 2,
47*89c4ff92SAndroid Build Coastguard Worker                       "name": "input1",
48*89c4ff92SAndroid Build Coastguard Worker                       "quantization": {
49*89c4ff92SAndroid Build Coastguard Worker                         "details_type": "NONE",
50*89c4ff92SAndroid Build Coastguard Worker                         "quantized_dimension": 0
51*89c4ff92SAndroid Build Coastguard Worker                       },
52*89c4ff92SAndroid Build Coastguard Worker                       "is_variable": false
53*89c4ff92SAndroid Build Coastguard Worker                     },
54*89c4ff92SAndroid Build Coastguard Worker                     {
55*89c4ff92SAndroid Build Coastguard Worker                       "shape": )" + outputShape + R"(,
56*89c4ff92SAndroid Build Coastguard Worker                       "type": "FLOAT32",
57*89c4ff92SAndroid Build Coastguard Worker                       "buffer": 3,
58*89c4ff92SAndroid Build Coastguard Worker                       "name": "output",
59*89c4ff92SAndroid Build Coastguard Worker                       "quantization": {
60*89c4ff92SAndroid Build Coastguard Worker                         "details_type": "NONE",
61*89c4ff92SAndroid Build Coastguard Worker                         "quantized_dimension": 0
62*89c4ff92SAndroid Build Coastguard Worker                       },
63*89c4ff92SAndroid Build Coastguard Worker                       "is_variable": false
64*89c4ff92SAndroid Build Coastguard Worker                     }
65*89c4ff92SAndroid Build Coastguard Worker                   ],
66*89c4ff92SAndroid Build Coastguard Worker                   "inputs": )" + inputIndex + R"(,
67*89c4ff92SAndroid Build Coastguard Worker                   "outputs": [
68*89c4ff92SAndroid Build Coastguard Worker                     2
69*89c4ff92SAndroid Build Coastguard Worker                   ],
70*89c4ff92SAndroid Build Coastguard Worker                   "operators": [
71*89c4ff92SAndroid Build Coastguard Worker                     {
72*89c4ff92SAndroid Build Coastguard Worker                       "opcode_index": 0,
73*89c4ff92SAndroid Build Coastguard Worker                       "inputs": [
74*89c4ff92SAndroid Build Coastguard Worker                         0,
75*89c4ff92SAndroid Build Coastguard Worker                         1
76*89c4ff92SAndroid Build Coastguard Worker                       ],
77*89c4ff92SAndroid Build Coastguard Worker                       "outputs": [
78*89c4ff92SAndroid Build Coastguard Worker                         2
79*89c4ff92SAndroid Build Coastguard Worker                       ],
80*89c4ff92SAndroid Build Coastguard Worker                       "builtin_options_type": "NONE",
81*89c4ff92SAndroid Build Coastguard Worker                       "custom_options_format": "FLEXBUFFERS"
82*89c4ff92SAndroid Build Coastguard Worker                     }
83*89c4ff92SAndroid Build Coastguard Worker                   ],
84*89c4ff92SAndroid Build Coastguard Worker                   "name": "main"
85*89c4ff92SAndroid Build Coastguard Worker                 }
86*89c4ff92SAndroid Build Coastguard Worker               ],
87*89c4ff92SAndroid Build Coastguard Worker               "description": "MLIR Converted.",
88*89c4ff92SAndroid Build Coastguard Worker               "buffers": [
89*89c4ff92SAndroid Build Coastguard Worker                 {
90*89c4ff92SAndroid Build Coastguard Worker                 },
91*89c4ff92SAndroid Build Coastguard Worker                 {
92*89c4ff92SAndroid Build Coastguard Worker                 },
93*89c4ff92SAndroid Build Coastguard Worker                 { )" + alphaData + R"(
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         )";
100*89c4ff92SAndroid Build Coastguard Worker         Setup();
101*89c4ff92SAndroid Build Coastguard Worker     }
102*89c4ff92SAndroid Build Coastguard Worker };
103*89c4ff92SAndroid Build Coastguard Worker 
104*89c4ff92SAndroid Build Coastguard Worker struct PreluNetworkFixture : public ParserFlatbuffersFixture
105*89c4ff92SAndroid Build Coastguard Worker {
PreluNetworkFixturePreluNetworkFixture106*89c4ff92SAndroid Build Coastguard Worker     explicit PreluNetworkFixture()
107*89c4ff92SAndroid Build Coastguard Worker     {
108*89c4ff92SAndroid Build Coastguard Worker         m_JsonString = R"(
109*89c4ff92SAndroid Build Coastguard Worker             {
110*89c4ff92SAndroid Build Coastguard Worker               "version": 3,
111*89c4ff92SAndroid Build Coastguard Worker               "operator_codes": [
112*89c4ff92SAndroid Build Coastguard Worker                 {
113*89c4ff92SAndroid Build Coastguard Worker                   "builtin_code": "PRELU",
114*89c4ff92SAndroid Build Coastguard Worker                   "version": 1
115*89c4ff92SAndroid Build Coastguard Worker                 },
116*89c4ff92SAndroid Build Coastguard Worker                 {
117*89c4ff92SAndroid Build Coastguard Worker                   "builtin_code": "MUL",
118*89c4ff92SAndroid Build Coastguard Worker                   "version": 1
119*89c4ff92SAndroid Build Coastguard Worker                 },
120*89c4ff92SAndroid Build Coastguard Worker                 {
121*89c4ff92SAndroid Build Coastguard Worker                   "builtin_code": "ADD",
122*89c4ff92SAndroid Build Coastguard Worker                   "version": 1
123*89c4ff92SAndroid Build Coastguard Worker                 }
124*89c4ff92SAndroid Build Coastguard Worker               ],
125*89c4ff92SAndroid Build Coastguard Worker               "subgraphs": [
126*89c4ff92SAndroid Build Coastguard Worker                 {
127*89c4ff92SAndroid Build Coastguard Worker                   "tensors": [
128*89c4ff92SAndroid Build Coastguard Worker                     {
129*89c4ff92SAndroid Build Coastguard Worker                       "shape": [
130*89c4ff92SAndroid Build Coastguard Worker                         1,
131*89c4ff92SAndroid Build Coastguard Worker                         2,
132*89c4ff92SAndroid Build Coastguard Worker                         3
133*89c4ff92SAndroid Build Coastguard Worker                       ],
134*89c4ff92SAndroid Build Coastguard Worker                       "type": "FLOAT32",
135*89c4ff92SAndroid Build Coastguard Worker                       "buffer": 6,
136*89c4ff92SAndroid Build Coastguard Worker                       "name": "output",
137*89c4ff92SAndroid Build Coastguard Worker                       "quantization": {
138*89c4ff92SAndroid Build Coastguard Worker                         "details_type": "NONE",
139*89c4ff92SAndroid Build Coastguard Worker                         "quantized_dimension": 0
140*89c4ff92SAndroid Build Coastguard Worker                       },
141*89c4ff92SAndroid Build Coastguard Worker                     },
142*89c4ff92SAndroid Build Coastguard Worker                     {
143*89c4ff92SAndroid Build Coastguard Worker                       "shape": [
144*89c4ff92SAndroid Build Coastguard Worker                         1,
145*89c4ff92SAndroid Build Coastguard Worker                         2,
146*89c4ff92SAndroid Build Coastguard Worker                         3
147*89c4ff92SAndroid Build Coastguard Worker                       ],
148*89c4ff92SAndroid Build Coastguard Worker                       "type": "FLOAT32",
149*89c4ff92SAndroid Build Coastguard Worker                       "buffer": 5,
150*89c4ff92SAndroid Build Coastguard Worker                       "name": "mul",
151*89c4ff92SAndroid Build Coastguard Worker                       "quantization": {
152*89c4ff92SAndroid Build Coastguard Worker                         "details_type": "NONE",
153*89c4ff92SAndroid Build Coastguard Worker                         "quantized_dimension": 0
154*89c4ff92SAndroid Build Coastguard Worker                       }
155*89c4ff92SAndroid Build Coastguard Worker                     },
156*89c4ff92SAndroid Build Coastguard Worker                     {
157*89c4ff92SAndroid Build Coastguard Worker                       "shape": [
158*89c4ff92SAndroid Build Coastguard Worker                         1,
159*89c4ff92SAndroid Build Coastguard Worker                         2,
160*89c4ff92SAndroid Build Coastguard Worker                         3
161*89c4ff92SAndroid Build Coastguard Worker                       ],
162*89c4ff92SAndroid Build Coastguard Worker                       "type": "FLOAT32",
163*89c4ff92SAndroid Build Coastguard Worker                       "buffer": 1,
164*89c4ff92SAndroid Build Coastguard Worker                       "name": "input0",
165*89c4ff92SAndroid Build Coastguard Worker                       "quantization": {
166*89c4ff92SAndroid Build Coastguard Worker                         "details_type": "NONE",
167*89c4ff92SAndroid Build Coastguard Worker                         "quantized_dimension": 0
168*89c4ff92SAndroid Build Coastguard Worker                       }
169*89c4ff92SAndroid Build Coastguard Worker                     },
170*89c4ff92SAndroid Build Coastguard Worker                     {
171*89c4ff92SAndroid Build Coastguard Worker                       "shape": [
172*89c4ff92SAndroid Build Coastguard Worker                         2,
173*89c4ff92SAndroid Build Coastguard Worker                         3
174*89c4ff92SAndroid Build Coastguard Worker                       ],
175*89c4ff92SAndroid Build Coastguard Worker                       "type": "FLOAT32",
176*89c4ff92SAndroid Build Coastguard Worker                       "buffer": 2,
177*89c4ff92SAndroid Build Coastguard Worker                       "name": "alpha",
178*89c4ff92SAndroid Build Coastguard Worker                       "quantization": {
179*89c4ff92SAndroid Build Coastguard Worker                         "details_type": "NONE",
180*89c4ff92SAndroid Build Coastguard Worker                         "quantized_dimension": 0
181*89c4ff92SAndroid Build Coastguard Worker                       }
182*89c4ff92SAndroid Build Coastguard Worker                     },
183*89c4ff92SAndroid Build Coastguard Worker                     {
184*89c4ff92SAndroid Build Coastguard Worker                       "shape": [
185*89c4ff92SAndroid Build Coastguard Worker                         1
186*89c4ff92SAndroid Build Coastguard Worker                       ],
187*89c4ff92SAndroid Build Coastguard Worker                       "type": "FLOAT32",
188*89c4ff92SAndroid Build Coastguard Worker                       "buffer": 3,
189*89c4ff92SAndroid Build Coastguard Worker                       "name": "const0",
190*89c4ff92SAndroid Build Coastguard Worker                       "quantization": {
191*89c4ff92SAndroid Build Coastguard Worker                         "details_type": "NONE",
192*89c4ff92SAndroid Build Coastguard Worker                         "quantized_dimension": 0
193*89c4ff92SAndroid Build Coastguard Worker                       }
194*89c4ff92SAndroid Build Coastguard Worker                     },
195*89c4ff92SAndroid Build Coastguard Worker                     {
196*89c4ff92SAndroid Build Coastguard Worker                       "shape": [
197*89c4ff92SAndroid Build Coastguard Worker                         1,
198*89c4ff92SAndroid Build Coastguard Worker                         2,
199*89c4ff92SAndroid Build Coastguard Worker                         3
200*89c4ff92SAndroid Build Coastguard Worker                       ],
201*89c4ff92SAndroid Build Coastguard Worker                       "type": "FLOAT32",
202*89c4ff92SAndroid Build Coastguard Worker                       "buffer": 4,
203*89c4ff92SAndroid Build Coastguard Worker                       "name": "prelumul",
204*89c4ff92SAndroid Build Coastguard Worker                       "quantization": {
205*89c4ff92SAndroid Build Coastguard Worker                         "details_type": "NONE",
206*89c4ff92SAndroid Build Coastguard Worker                         "quantized_dimension": 0
207*89c4ff92SAndroid Build Coastguard Worker                       }
208*89c4ff92SAndroid Build Coastguard Worker                     }
209*89c4ff92SAndroid Build Coastguard Worker                   ],
210*89c4ff92SAndroid Build Coastguard Worker                   "inputs": [
211*89c4ff92SAndroid Build Coastguard Worker                     2
212*89c4ff92SAndroid Build Coastguard Worker                   ],
213*89c4ff92SAndroid Build Coastguard Worker                   "outputs": [
214*89c4ff92SAndroid Build Coastguard Worker                     0
215*89c4ff92SAndroid Build Coastguard Worker                   ],
216*89c4ff92SAndroid Build Coastguard Worker                   "operators": [
217*89c4ff92SAndroid Build Coastguard Worker                     {
218*89c4ff92SAndroid Build Coastguard Worker                       "opcode_index": 0,
219*89c4ff92SAndroid Build Coastguard Worker                       "inputs": [
220*89c4ff92SAndroid Build Coastguard Worker                         2,
221*89c4ff92SAndroid Build Coastguard Worker                         3
222*89c4ff92SAndroid Build Coastguard Worker                       ],
223*89c4ff92SAndroid Build Coastguard Worker                       "outputs": [
224*89c4ff92SAndroid Build Coastguard Worker                         5
225*89c4ff92SAndroid Build Coastguard Worker                       ],
226*89c4ff92SAndroid Build Coastguard Worker                       "builtin_options_type": "NONE",
227*89c4ff92SAndroid Build Coastguard Worker                       "custom_options_format": "FLEXBUFFERS"
228*89c4ff92SAndroid Build Coastguard Worker                     },
229*89c4ff92SAndroid Build Coastguard Worker                     {
230*89c4ff92SAndroid Build Coastguard Worker                       "opcode_index": 1,
231*89c4ff92SAndroid Build Coastguard Worker                       "inputs": [
232*89c4ff92SAndroid Build Coastguard Worker                         5,
233*89c4ff92SAndroid Build Coastguard Worker                         4
234*89c4ff92SAndroid Build Coastguard Worker                       ],
235*89c4ff92SAndroid Build Coastguard Worker                       "outputs": [
236*89c4ff92SAndroid Build Coastguard Worker                         1
237*89c4ff92SAndroid Build Coastguard Worker                       ],
238*89c4ff92SAndroid Build Coastguard Worker                       "builtin_options_type": "MulOptions",
239*89c4ff92SAndroid Build Coastguard Worker                       "builtin_options": {
240*89c4ff92SAndroid Build Coastguard Worker                         "fused_activation_function": "NONE"
241*89c4ff92SAndroid Build Coastguard Worker                       },
242*89c4ff92SAndroid Build Coastguard Worker                       "custom_options_format": "FLEXBUFFERS"
243*89c4ff92SAndroid Build Coastguard Worker                     },
244*89c4ff92SAndroid Build Coastguard Worker                     {
245*89c4ff92SAndroid Build Coastguard Worker                       "opcode_index": 2,
246*89c4ff92SAndroid Build Coastguard Worker                       "inputs": [
247*89c4ff92SAndroid Build Coastguard Worker                         5,
248*89c4ff92SAndroid Build Coastguard Worker                         1
249*89c4ff92SAndroid Build Coastguard Worker                       ],
250*89c4ff92SAndroid Build Coastguard Worker                       "outputs": [
251*89c4ff92SAndroid Build Coastguard Worker                         0
252*89c4ff92SAndroid Build Coastguard Worker                       ],
253*89c4ff92SAndroid Build Coastguard Worker                       "builtin_options_type": "AddOptions",
254*89c4ff92SAndroid Build Coastguard Worker                       "builtin_options": {
255*89c4ff92SAndroid Build Coastguard Worker                         "fused_activation_function": "NONE"
256*89c4ff92SAndroid Build Coastguard Worker                       },
257*89c4ff92SAndroid Build Coastguard Worker                       "custom_options_format": "FLEXBUFFERS"
258*89c4ff92SAndroid Build Coastguard Worker                     }
259*89c4ff92SAndroid Build Coastguard Worker                   ],
260*89c4ff92SAndroid Build Coastguard Worker                   "name": "main"
261*89c4ff92SAndroid Build Coastguard Worker                 }
262*89c4ff92SAndroid Build Coastguard Worker               ],
263*89c4ff92SAndroid Build Coastguard Worker               "buffers": [
264*89c4ff92SAndroid Build Coastguard Worker                 {
265*89c4ff92SAndroid Build Coastguard Worker                 },
266*89c4ff92SAndroid Build Coastguard Worker                 {
267*89c4ff92SAndroid Build Coastguard Worker                 },
268*89c4ff92SAndroid Build Coastguard Worker                 {
269*89c4ff92SAndroid Build Coastguard Worker                   "data": [
270*89c4ff92SAndroid Build Coastguard Worker                     0,
271*89c4ff92SAndroid Build Coastguard Worker                     0,
272*89c4ff92SAndroid Build Coastguard Worker                     128,
273*89c4ff92SAndroid Build Coastguard Worker                     62,
274*89c4ff92SAndroid Build Coastguard Worker                     0,
275*89c4ff92SAndroid Build Coastguard Worker                     0,
276*89c4ff92SAndroid Build Coastguard Worker                     128,
277*89c4ff92SAndroid Build Coastguard Worker                     62,
278*89c4ff92SAndroid Build Coastguard Worker                     0,
279*89c4ff92SAndroid Build Coastguard Worker                     0,
280*89c4ff92SAndroid Build Coastguard Worker                     128,
281*89c4ff92SAndroid Build Coastguard Worker                     62,
282*89c4ff92SAndroid Build Coastguard Worker                     0,
283*89c4ff92SAndroid Build Coastguard Worker                     0,
284*89c4ff92SAndroid Build Coastguard Worker                     128,
285*89c4ff92SAndroid Build Coastguard Worker                     62,
286*89c4ff92SAndroid Build Coastguard Worker                     0,
287*89c4ff92SAndroid Build Coastguard Worker                     0,
288*89c4ff92SAndroid Build Coastguard Worker                     128,
289*89c4ff92SAndroid Build Coastguard Worker                     62,
290*89c4ff92SAndroid Build Coastguard Worker                     0,
291*89c4ff92SAndroid Build Coastguard Worker                     0,
292*89c4ff92SAndroid Build Coastguard Worker                     128,
293*89c4ff92SAndroid Build Coastguard Worker                     62
294*89c4ff92SAndroid Build Coastguard Worker                   ]
295*89c4ff92SAndroid Build Coastguard Worker                 },
296*89c4ff92SAndroid Build Coastguard Worker                 {
297*89c4ff92SAndroid Build Coastguard Worker                   "data": [
298*89c4ff92SAndroid Build Coastguard Worker                     0,
299*89c4ff92SAndroid Build Coastguard Worker                     0,
300*89c4ff92SAndroid Build Coastguard Worker                     160,
301*89c4ff92SAndroid Build Coastguard Worker                     64
302*89c4ff92SAndroid Build Coastguard Worker                   ]
303*89c4ff92SAndroid Build Coastguard Worker                 },
304*89c4ff92SAndroid Build Coastguard Worker                 {
305*89c4ff92SAndroid Build Coastguard Worker                 },
306*89c4ff92SAndroid Build Coastguard Worker                 {
307*89c4ff92SAndroid Build Coastguard Worker                 },
308*89c4ff92SAndroid Build Coastguard Worker                 {
309*89c4ff92SAndroid Build Coastguard Worker                 },
310*89c4ff92SAndroid Build Coastguard Worker                 {
311*89c4ff92SAndroid Build Coastguard Worker                 }
312*89c4ff92SAndroid Build Coastguard Worker               ],
313*89c4ff92SAndroid Build Coastguard Worker             }
314*89c4ff92SAndroid Build Coastguard Worker         )";
315*89c4ff92SAndroid Build Coastguard Worker         Setup();
316*89c4ff92SAndroid Build Coastguard Worker     }
317*89c4ff92SAndroid Build Coastguard Worker };
318*89c4ff92SAndroid Build Coastguard Worker 
319*89c4ff92SAndroid Build Coastguard Worker struct SimplePreluFixture : PreluFixture
320*89c4ff92SAndroid Build Coastguard Worker {
SimplePreluFixtureSimplePreluFixture321*89c4ff92SAndroid Build Coastguard Worker     SimplePreluFixture() : PreluFixture("[ 2, 3 ]",
322*89c4ff92SAndroid Build Coastguard Worker                                         "[ 1 ]",
323*89c4ff92SAndroid Build Coastguard Worker                                         "[ 2, 3 ]",
324*89c4ff92SAndroid Build Coastguard Worker                                         "[ 0, 1 ]",
325*89c4ff92SAndroid Build Coastguard Worker                                         "") {}
326*89c4ff92SAndroid Build Coastguard Worker };
327*89c4ff92SAndroid Build Coastguard Worker 
328*89c4ff92SAndroid Build Coastguard Worker struct PreluConstAlphaFixture : PreluFixture
329*89c4ff92SAndroid Build Coastguard Worker {
PreluConstAlphaFixturePreluConstAlphaFixture330*89c4ff92SAndroid Build Coastguard Worker     PreluConstAlphaFixture() : PreluFixture(
331*89c4ff92SAndroid Build Coastguard Worker         "[ 1, 2, 3 ]",
332*89c4ff92SAndroid Build Coastguard Worker         "[ 1, 2, 3 ]",
333*89c4ff92SAndroid Build Coastguard Worker         "[ 1, 2, 3 ]",
334*89c4ff92SAndroid Build Coastguard Worker         "[ 0 ]",
335*89c4ff92SAndroid Build Coastguard Worker         "\"data\": [ 0, 0, 128, 62, 0, 0, 128, 62, 0, 0, 128, 62, 0, 0, 128, 62, 0, 0, 128, 62, 0, 0, 128, 62 ]"){}
336*89c4ff92SAndroid Build Coastguard Worker };
337*89c4ff92SAndroid Build Coastguard Worker 
338*89c4ff92SAndroid Build Coastguard Worker struct PreluBroadcastAlphaFixture : PreluFixture
339*89c4ff92SAndroid Build Coastguard Worker {
PreluBroadcastAlphaFixturePreluBroadcastAlphaFixture340*89c4ff92SAndroid Build Coastguard Worker     PreluBroadcastAlphaFixture() : PreluFixture(
341*89c4ff92SAndroid Build Coastguard Worker         "[ 1, 1, 2, 3 ]",
342*89c4ff92SAndroid Build Coastguard Worker         "[ 1, 3 ]",
343*89c4ff92SAndroid Build Coastguard Worker         "[ 1, 1, 2, 3 ]",
344*89c4ff92SAndroid Build Coastguard Worker         "[ 0 ]",
345*89c4ff92SAndroid Build Coastguard Worker         "\"data\": [ 0, 0, 128, 62, 0, 0, 128, 62, 0, 0, 128, 62 ]"){}
346*89c4ff92SAndroid Build Coastguard Worker };
347*89c4ff92SAndroid Build Coastguard Worker 
348*89c4ff92SAndroid Build Coastguard Worker struct PreluDynamicTensorFixture : PreluFixture
349*89c4ff92SAndroid Build Coastguard Worker {
PreluDynamicTensorFixturePreluDynamicTensorFixture350*89c4ff92SAndroid Build Coastguard Worker     PreluDynamicTensorFixture() : PreluFixture("[ 2, 3 ]",
351*89c4ff92SAndroid Build Coastguard Worker                                                "[ 1, 1 ]",
352*89c4ff92SAndroid Build Coastguard Worker                                                "[]",
353*89c4ff92SAndroid Build Coastguard Worker                                                "[ 0 ]",
354*89c4ff92SAndroid Build Coastguard Worker                                                "\"data\": [ 0, 0, 128, 62 ]") {}
355*89c4ff92SAndroid Build Coastguard Worker };
356*89c4ff92SAndroid Build Coastguard Worker 
357*89c4ff92SAndroid Build Coastguard Worker TEST_CASE_FIXTURE(SimplePreluFixture, "SimplePrelu")
358*89c4ff92SAndroid Build Coastguard Worker {
359*89c4ff92SAndroid Build Coastguard Worker   RunTest<2, armnn::DataType::Float32>(
360*89c4ff92SAndroid Build Coastguard Worker       0,
361*89c4ff92SAndroid Build Coastguard Worker       {{"input0", { -14.f, 2.f, 0.f, 1.f, -5.f, 14.f }},{"input1", { 0.25f }}},
362*89c4ff92SAndroid Build Coastguard Worker       {{"output", { -3.5f, 2.f, 0.f, 1.f, -1.25f, 14.f }}});
363*89c4ff92SAndroid Build Coastguard Worker }
364*89c4ff92SAndroid Build Coastguard Worker 
365*89c4ff92SAndroid Build Coastguard Worker TEST_CASE_FIXTURE(PreluConstAlphaFixture, "PreluConstAlpha")
366*89c4ff92SAndroid Build Coastguard Worker {
367*89c4ff92SAndroid Build Coastguard Worker   RunTest<3, armnn::DataType::Float32>(
368*89c4ff92SAndroid Build Coastguard Worker       0,
369*89c4ff92SAndroid Build Coastguard Worker       {{"input0", { -14.f, 2.f, 0.f, 1.f, -5.f, 14.f }}},
370*89c4ff92SAndroid Build Coastguard Worker       {{"output", { -3.5f, 2.f, 0.f, 1.f, -1.25f, 14.f }}});
371*89c4ff92SAndroid Build Coastguard Worker }
372*89c4ff92SAndroid Build Coastguard Worker 
373*89c4ff92SAndroid Build Coastguard Worker TEST_CASE_FIXTURE(PreluBroadcastAlphaFixture, "PreluBroadcastAlpha")
374*89c4ff92SAndroid Build Coastguard Worker {
375*89c4ff92SAndroid Build Coastguard Worker   RunTest<4, armnn::DataType::Float32>(
376*89c4ff92SAndroid Build Coastguard Worker       0,
377*89c4ff92SAndroid Build Coastguard Worker       {{"input0", { -14.f, 2.f, 0.f, 1.f, -5.f, 14.f }}},
378*89c4ff92SAndroid Build Coastguard Worker       {{"output", { -3.5f, 2.f, 0.f, 1.f, -1.25f, 14.f }}});
379*89c4ff92SAndroid Build Coastguard Worker }
380*89c4ff92SAndroid Build Coastguard Worker 
381*89c4ff92SAndroid Build Coastguard Worker TEST_CASE_FIXTURE(PreluDynamicTensorFixture, "PreluDynamicTensor")
382*89c4ff92SAndroid Build Coastguard Worker {
383*89c4ff92SAndroid Build Coastguard Worker   RunTest<2, armnn::DataType::Float32, armnn::DataType::Float32>(
384*89c4ff92SAndroid Build Coastguard Worker       0,
385*89c4ff92SAndroid Build Coastguard Worker       {{"input0", { -14.f, 2.f, 0.f, 1.f, -5.f, 14.f }}},
386*89c4ff92SAndroid Build Coastguard Worker       {{"output", { -3.5f, 2.f, 0.f, 1.f, -1.25f, 14.f }}},
387*89c4ff92SAndroid Build Coastguard Worker       true);
388*89c4ff92SAndroid Build Coastguard Worker }
389*89c4ff92SAndroid Build Coastguard Worker 
390*89c4ff92SAndroid Build Coastguard Worker TEST_CASE_FIXTURE(PreluNetworkFixture, "PreluNetwork")
391*89c4ff92SAndroid Build Coastguard Worker {
392*89c4ff92SAndroid Build Coastguard Worker   RunTest<3, armnn::DataType::Float32>(
393*89c4ff92SAndroid Build Coastguard Worker       0,
394*89c4ff92SAndroid Build Coastguard Worker       {{"input0", { -14.f, 2.f, 0.f, 1.f, -5.f, 14.f }}},
395*89c4ff92SAndroid Build Coastguard Worker       {{"output", { -21.f, 12.f, 0.f, 6.f, -7.5f, 84.f }}});
396*89c4ff92SAndroid Build Coastguard Worker }
397*89c4ff92SAndroid Build Coastguard Worker 
398*89c4ff92SAndroid Build Coastguard Worker }
399