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