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 "armnnOnnxParser/IOnnxParser.hpp" 7*89c4ff92SAndroid Build Coastguard Worker #include "ParserPrototxtFixture.hpp" 8*89c4ff92SAndroid Build Coastguard Worker #include "OnnxParserTestUtils.hpp" 9*89c4ff92SAndroid Build Coastguard Worker 10*89c4ff92SAndroid Build Coastguard Worker TEST_SUITE("OnnxParser_Gather") 11*89c4ff92SAndroid Build Coastguard Worker { 12*89c4ff92SAndroid Build Coastguard Worker 13*89c4ff92SAndroid Build Coastguard Worker struct GatherMainFixture : public armnnUtils::ParserPrototxtFixture<armnnOnnxParser::IOnnxParser> 14*89c4ff92SAndroid Build Coastguard Worker { GatherMainFixtureGatherMainFixture15*89c4ff92SAndroid Build Coastguard Worker GatherMainFixture(const std::vector<int>& indicesShape, 16*89c4ff92SAndroid Build Coastguard Worker const std::vector<int>& indices, 17*89c4ff92SAndroid Build Coastguard Worker const std::vector<int>& inputShape, 18*89c4ff92SAndroid Build Coastguard Worker const std::vector<int>& outputShape) 19*89c4ff92SAndroid Build Coastguard Worker { 20*89c4ff92SAndroid Build Coastguard Worker m_Prototext = R"( 21*89c4ff92SAndroid Build Coastguard Worker ir_version: 8 22*89c4ff92SAndroid Build Coastguard Worker producer_name: "onnx-example" 23*89c4ff92SAndroid Build Coastguard Worker graph { 24*89c4ff92SAndroid Build Coastguard Worker node { 25*89c4ff92SAndroid Build Coastguard Worker output: "indices" 26*89c4ff92SAndroid Build Coastguard Worker op_type: "Constant" 27*89c4ff92SAndroid Build Coastguard Worker attribute { 28*89c4ff92SAndroid Build Coastguard Worker name: "value" 29*89c4ff92SAndroid Build Coastguard Worker t { 30*89c4ff92SAndroid Build Coastguard Worker data_type: 7 31*89c4ff92SAndroid Build Coastguard Worker )" + ConstructIndicesString(indicesShape, indices) + R"( 32*89c4ff92SAndroid Build Coastguard Worker name: "value" 33*89c4ff92SAndroid Build Coastguard Worker } 34*89c4ff92SAndroid Build Coastguard Worker type: TENSOR 35*89c4ff92SAndroid Build Coastguard Worker } 36*89c4ff92SAndroid Build Coastguard Worker } 37*89c4ff92SAndroid Build Coastguard Worker node { 38*89c4ff92SAndroid Build Coastguard Worker input: "input" 39*89c4ff92SAndroid Build Coastguard Worker input: "indices" 40*89c4ff92SAndroid Build Coastguard Worker output: "output" 41*89c4ff92SAndroid Build Coastguard Worker op_type: "Gather" 42*89c4ff92SAndroid Build Coastguard Worker attribute { 43*89c4ff92SAndroid Build Coastguard Worker name: "axis" 44*89c4ff92SAndroid Build Coastguard Worker i: 0 45*89c4ff92SAndroid Build Coastguard Worker type: INT 46*89c4ff92SAndroid Build Coastguard Worker } 47*89c4ff92SAndroid Build Coastguard Worker } 48*89c4ff92SAndroid Build Coastguard Worker name: "gather-model" 49*89c4ff92SAndroid Build Coastguard Worker input { 50*89c4ff92SAndroid Build Coastguard Worker name: "input" 51*89c4ff92SAndroid Build Coastguard Worker type { 52*89c4ff92SAndroid Build Coastguard Worker tensor_type { 53*89c4ff92SAndroid Build Coastguard Worker elem_type: 1 54*89c4ff92SAndroid Build Coastguard Worker shape { 55*89c4ff92SAndroid Build Coastguard Worker )" + armnnUtils::ConstructTensorShapeString(inputShape) + R"( 56*89c4ff92SAndroid Build Coastguard Worker } 57*89c4ff92SAndroid Build Coastguard Worker } 58*89c4ff92SAndroid Build Coastguard Worker } 59*89c4ff92SAndroid Build Coastguard Worker } 60*89c4ff92SAndroid Build Coastguard Worker output { 61*89c4ff92SAndroid Build Coastguard Worker name: "output" 62*89c4ff92SAndroid Build Coastguard Worker type { 63*89c4ff92SAndroid Build Coastguard Worker tensor_type { 64*89c4ff92SAndroid Build Coastguard Worker elem_type: 1 65*89c4ff92SAndroid Build Coastguard Worker shape { 66*89c4ff92SAndroid Build Coastguard Worker )" + armnnUtils::ConstructTensorShapeString(outputShape) + R"( 67*89c4ff92SAndroid Build Coastguard Worker } 68*89c4ff92SAndroid Build Coastguard Worker } 69*89c4ff92SAndroid Build Coastguard Worker } 70*89c4ff92SAndroid Build Coastguard Worker } 71*89c4ff92SAndroid Build Coastguard Worker })"; 72*89c4ff92SAndroid Build Coastguard Worker } ConstructIndicesStringGatherMainFixture73*89c4ff92SAndroid Build Coastguard Worker std::string ConstructIndicesString(const std::vector<int>& indicesShape, const std::vector<int>& indices) 74*89c4ff92SAndroid Build Coastguard Worker { 75*89c4ff92SAndroid Build Coastguard Worker std::string shapeStr; 76*89c4ff92SAndroid Build Coastguard Worker for (int i : indicesShape) 77*89c4ff92SAndroid Build Coastguard Worker { 78*89c4ff92SAndroid Build Coastguard Worker shapeStr = fmt::format(" {} dims: {}", shapeStr, i); 79*89c4ff92SAndroid Build Coastguard Worker } 80*89c4ff92SAndroid Build Coastguard Worker for (int i : indices) 81*89c4ff92SAndroid Build Coastguard Worker { 82*89c4ff92SAndroid Build Coastguard Worker shapeStr = fmt::format(" {} int64_data: {}", shapeStr, i); 83*89c4ff92SAndroid Build Coastguard Worker } 84*89c4ff92SAndroid Build Coastguard Worker return shapeStr; 85*89c4ff92SAndroid Build Coastguard Worker } 86*89c4ff92SAndroid Build Coastguard Worker }; 87*89c4ff92SAndroid Build Coastguard Worker 88*89c4ff92SAndroid Build Coastguard Worker struct GatherScalarFixture : GatherMainFixture 89*89c4ff92SAndroid Build Coastguard Worker { GatherScalarFixtureGatherScalarFixture90*89c4ff92SAndroid Build Coastguard Worker GatherScalarFixture() : GatherMainFixture({ }, { 0 }, { 8 }, { }) 91*89c4ff92SAndroid Build Coastguard Worker { 92*89c4ff92SAndroid Build Coastguard Worker Setup(); 93*89c4ff92SAndroid Build Coastguard Worker } 94*89c4ff92SAndroid Build Coastguard Worker }; 95*89c4ff92SAndroid Build Coastguard Worker 96*89c4ff92SAndroid Build Coastguard Worker struct Gather1dFixture : GatherMainFixture 97*89c4ff92SAndroid Build Coastguard Worker { Gather1dFixtureGather1dFixture98*89c4ff92SAndroid Build Coastguard Worker Gather1dFixture() : GatherMainFixture({ 4 }, { 0, 2, 1, 5 }, { 8 }, { 4 }) 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 Gather2dFixture : GatherMainFixture 105*89c4ff92SAndroid Build Coastguard Worker { Gather2dFixtureGather2dFixture106*89c4ff92SAndroid Build Coastguard Worker Gather2dFixture() : GatherMainFixture({ 3 }, { 1, 3, 4 }, { 5, 2 }, { 3, 2 }) 107*89c4ff92SAndroid Build Coastguard Worker { 108*89c4ff92SAndroid Build Coastguard Worker Setup(); 109*89c4ff92SAndroid Build Coastguard Worker } 110*89c4ff92SAndroid Build Coastguard Worker }; 111*89c4ff92SAndroid Build Coastguard Worker 112*89c4ff92SAndroid Build Coastguard Worker struct Gather3dMultiIndicesFixture : GatherMainFixture 113*89c4ff92SAndroid Build Coastguard Worker { Gather3dMultiIndicesFixtureGather3dMultiIndicesFixture114*89c4ff92SAndroid Build Coastguard Worker Gather3dMultiIndicesFixture() : GatherMainFixture({ 2, 3 }, { 1, 2, 1, 2, 1, 0 }, { 3, 2, 3 }, { 2, 3, 2, 3 }) 115*89c4ff92SAndroid Build Coastguard Worker { 116*89c4ff92SAndroid Build Coastguard Worker Setup(); 117*89c4ff92SAndroid Build Coastguard Worker } 118*89c4ff92SAndroid Build Coastguard Worker }; 119*89c4ff92SAndroid Build Coastguard Worker 120*89c4ff92SAndroid Build Coastguard Worker struct Gather4dFixture : GatherMainFixture 121*89c4ff92SAndroid Build Coastguard Worker { Gather4dFixtureGather4dFixture122*89c4ff92SAndroid Build Coastguard Worker Gather4dFixture() : GatherMainFixture({ 3 }, { 0, 1, 3 }, { 5, 4, 3, 2 }, { 3, 4, 3, 2 }) 123*89c4ff92SAndroid Build Coastguard Worker { 124*89c4ff92SAndroid Build Coastguard Worker Setup(); 125*89c4ff92SAndroid Build Coastguard Worker } 126*89c4ff92SAndroid Build Coastguard Worker }; 127*89c4ff92SAndroid Build Coastguard Worker 128*89c4ff92SAndroid Build Coastguard Worker TEST_CASE_FIXTURE(GatherScalarFixture, "GatherScalarTest") 129*89c4ff92SAndroid Build Coastguard Worker { 130*89c4ff92SAndroid Build Coastguard Worker RunTest<1, float>({{"input", { 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f }}}, 131*89c4ff92SAndroid Build Coastguard Worker {{"output", { 1.0f }}}); 132*89c4ff92SAndroid Build Coastguard Worker } 133*89c4ff92SAndroid Build Coastguard Worker 134*89c4ff92SAndroid Build Coastguard Worker TEST_CASE_FIXTURE(Gather1dFixture, "Gather1dTest") 135*89c4ff92SAndroid Build Coastguard Worker { 136*89c4ff92SAndroid Build Coastguard Worker RunTest<1, float>({{"input", { 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f }}}, 137*89c4ff92SAndroid Build Coastguard Worker {{"output", { 1.0f, 3.0f, 2.0f, 6.0f }}}); 138*89c4ff92SAndroid Build Coastguard Worker } 139*89c4ff92SAndroid Build Coastguard Worker 140*89c4ff92SAndroid Build Coastguard Worker TEST_CASE_FIXTURE(Gather2dFixture, "Gather2dTest") 141*89c4ff92SAndroid Build Coastguard Worker { 142*89c4ff92SAndroid Build Coastguard Worker RunTest<2, float>({{"input", { 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f, 10.0f }}}, 143*89c4ff92SAndroid Build Coastguard Worker {{"output", { 3.0f, 4.0f, 7.0f, 8.0f, 9.0f, 10.0f }}}); 144*89c4ff92SAndroid Build Coastguard Worker } 145*89c4ff92SAndroid Build Coastguard Worker 146*89c4ff92SAndroid Build Coastguard Worker TEST_CASE_FIXTURE(Gather3dMultiIndicesFixture, "Gather3dMultiIndicesTest") 147*89c4ff92SAndroid Build Coastguard Worker { 148*89c4ff92SAndroid Build Coastguard Worker RunTest<3, float>({{"input", { 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 149*89c4ff92SAndroid Build Coastguard Worker 7.0f, 8.0f, 9.0f, 10.0f, 11.0f, 12.0f, 150*89c4ff92SAndroid Build Coastguard Worker 13.0f, 14.0f, 15.0f, 16.0f, 17.0f, 18.0f }}}, 151*89c4ff92SAndroid Build Coastguard Worker {{"output", { 7.0f, 8.0f, 9.0f, 152*89c4ff92SAndroid Build Coastguard Worker 10.0f, 11.0f, 12.0f, 153*89c4ff92SAndroid Build Coastguard Worker 13.0f, 14.0f, 15.0f, 154*89c4ff92SAndroid Build Coastguard Worker 16.0f, 17.0f, 18.0f, 155*89c4ff92SAndroid Build Coastguard Worker 7.0f, 8.0f, 9.0f, 156*89c4ff92SAndroid Build Coastguard Worker 10.0f, 11.0f, 12.0f, 157*89c4ff92SAndroid Build Coastguard Worker 13.0f, 14.0f, 15.0f, 158*89c4ff92SAndroid Build Coastguard Worker 16.0f, 17.0f, 18.0f, 159*89c4ff92SAndroid Build Coastguard Worker 7.0f, 8.0f, 9.0f, 160*89c4ff92SAndroid Build Coastguard Worker 10.0f, 11.0f, 12.0f, 161*89c4ff92SAndroid Build Coastguard Worker 1.0f, 2.0f, 3.0f, 162*89c4ff92SAndroid Build Coastguard Worker 4.0f, 5.0f, 6.0f }}}); 163*89c4ff92SAndroid Build Coastguard Worker } 164*89c4ff92SAndroid Build Coastguard Worker 165*89c4ff92SAndroid Build Coastguard Worker TEST_CASE_FIXTURE(Gather4dFixture, "Gather4dTest") 166*89c4ff92SAndroid Build Coastguard Worker { 167*89c4ff92SAndroid Build Coastguard Worker RunTest<4, float>({{"input", { 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 168*89c4ff92SAndroid Build Coastguard Worker 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, 169*89c4ff92SAndroid Build Coastguard Worker 11.0f, 12.0f, 13.0f, 14.0f, 15.0f, 170*89c4ff92SAndroid Build Coastguard Worker 16.0f, 17.0f, 18.0f, 19.0f, 20.0f, 171*89c4ff92SAndroid Build Coastguard Worker 21.0f, 22.0f, 23.0f, 24.0f, 25.0f, 172*89c4ff92SAndroid Build Coastguard Worker 26.0f, 27.0f, 28.0f, 29.0f, 30.0f, 173*89c4ff92SAndroid Build Coastguard Worker 31.0f, 32.0f, 33.0f, 34.0f, 35.0f, 174*89c4ff92SAndroid Build Coastguard Worker 36.0f, 37.0f, 38.0f, 39.0f, 40.0f, 175*89c4ff92SAndroid Build Coastguard Worker 41.0f, 42.0f, 43.0f, 44.0f, 45.0f, 176*89c4ff92SAndroid Build Coastguard Worker 46.0f, 47.0f, 48.0f, 49.0f, 50.0f, 177*89c4ff92SAndroid Build Coastguard Worker 51.0f, 52.0f, 53.0f, 54.0f, 55.0f, 178*89c4ff92SAndroid Build Coastguard Worker 56.0f, 57.0f, 58.0f, 59.0f, 60.0f, 179*89c4ff92SAndroid Build Coastguard Worker 61.0f, 62.0f, 63.0f, 64.0f, 65.0f, 180*89c4ff92SAndroid Build Coastguard Worker 66.0f, 67.0f, 68.0f, 69.0f, 70.0f, 181*89c4ff92SAndroid Build Coastguard Worker 71.0f, 72.0f, 73.0f, 74.0f, 75.0f, 182*89c4ff92SAndroid Build Coastguard Worker 76.0f, 77.0f, 78.0f, 79.0f, 80.0f, 183*89c4ff92SAndroid Build Coastguard Worker 81.0f, 82.0f, 83.0f, 84.0f, 85.0f, 184*89c4ff92SAndroid Build Coastguard Worker 86.0f, 87.0f, 88.0f, 89.0f, 90.0f, 185*89c4ff92SAndroid Build Coastguard Worker 91.0f, 92.0f, 93.0f, 94.0f, 95.0f, 186*89c4ff92SAndroid Build Coastguard Worker 96.0f, 97.0f, 98.0f, 99.0f, 100.0f, 187*89c4ff92SAndroid Build Coastguard Worker 101.0f, 102.0f, 103.0f, 104.0f, 105.0f, 188*89c4ff92SAndroid Build Coastguard Worker 106.0f, 107.0f, 108.0f, 109.0f, 110.0f, 189*89c4ff92SAndroid Build Coastguard Worker 111.0f, 112.0f, 113.0f, 114.0f, 115.0f, 190*89c4ff92SAndroid Build Coastguard Worker 116.0f, 117.0f, 118.0f, 119.0f, 120.0f }}}, 191*89c4ff92SAndroid Build Coastguard Worker {{"output", { 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 192*89c4ff92SAndroid Build Coastguard Worker 7.0f, 8.0f, 9.0f, 10.0f, 11.0f, 12.0f, 193*89c4ff92SAndroid Build Coastguard Worker 13.0f, 14.0f, 15.0f, 16.0f, 17.0f, 18.0f, 194*89c4ff92SAndroid Build Coastguard Worker 19.0f, 20.0f, 21.0f, 22.0f, 23.0f, 24.0f, 195*89c4ff92SAndroid Build Coastguard Worker 25.0f, 26.0f, 27.0f, 28.0f, 29.0f, 30.0f, 196*89c4ff92SAndroid Build Coastguard Worker 31.0f, 32.0f, 33.0f, 34.0f, 35.0f, 36.0f, 197*89c4ff92SAndroid Build Coastguard Worker 37.0f, 38.0f, 39.0f, 40.0f, 41.0f, 42.0f, 198*89c4ff92SAndroid Build Coastguard Worker 43.0f, 44.0f, 45.0f, 46.0f, 47.0f, 48.0f, 199*89c4ff92SAndroid Build Coastguard Worker 73.0f, 74.0f, 75.0f, 76.0f, 77.0f, 78.0f, 200*89c4ff92SAndroid Build Coastguard Worker 79.0f, 80.0f, 81.0f, 82.0f, 83.0f, 84.0f, 201*89c4ff92SAndroid Build Coastguard Worker 85.0f, 86.0f, 87.0f, 88.0f, 89.0f, 90.0f, 202*89c4ff92SAndroid Build Coastguard Worker 91.0f, 92.0f, 93.0f, 94.0f, 95.0f, 96.0f }}}); 203*89c4ff92SAndroid Build Coastguard Worker } 204*89c4ff92SAndroid Build Coastguard Worker 205*89c4ff92SAndroid Build Coastguard Worker struct GatherRawDataFixture : public armnnUtils::ParserPrototxtFixture<armnnOnnxParser::IOnnxParser> 206*89c4ff92SAndroid Build Coastguard Worker { GatherRawDataFixtureGatherRawDataFixture207*89c4ff92SAndroid Build Coastguard Worker GatherRawDataFixture() 208*89c4ff92SAndroid Build Coastguard Worker { 209*89c4ff92SAndroid Build Coastguard Worker m_Prototext = R"( 210*89c4ff92SAndroid Build Coastguard Worker ir_version: 8 211*89c4ff92SAndroid Build Coastguard Worker producer_name: "onnx-example" 212*89c4ff92SAndroid Build Coastguard Worker graph { 213*89c4ff92SAndroid Build Coastguard Worker node { 214*89c4ff92SAndroid Build Coastguard Worker output: "indices" 215*89c4ff92SAndroid Build Coastguard Worker op_type: "Constant" 216*89c4ff92SAndroid Build Coastguard Worker attribute { 217*89c4ff92SAndroid Build Coastguard Worker name: "value" 218*89c4ff92SAndroid Build Coastguard Worker t { 219*89c4ff92SAndroid Build Coastguard Worker dims: 3 220*89c4ff92SAndroid Build Coastguard Worker data_type: 7 221*89c4ff92SAndroid Build Coastguard Worker raw_data: 222*89c4ff92SAndroid Build Coastguard Worker "\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\003\000\000\000\000\000\000\000" 223*89c4ff92SAndroid Build Coastguard Worker name: "value" 224*89c4ff92SAndroid Build Coastguard Worker } 225*89c4ff92SAndroid Build Coastguard Worker type: TENSOR 226*89c4ff92SAndroid Build Coastguard Worker } 227*89c4ff92SAndroid Build Coastguard Worker } 228*89c4ff92SAndroid Build Coastguard Worker node { 229*89c4ff92SAndroid Build Coastguard Worker input: "input" 230*89c4ff92SAndroid Build Coastguard Worker input: "indices" 231*89c4ff92SAndroid Build Coastguard Worker output: "output" 232*89c4ff92SAndroid Build Coastguard Worker op_type: "Gather" 233*89c4ff92SAndroid Build Coastguard Worker attribute { 234*89c4ff92SAndroid Build Coastguard Worker name: "axis" 235*89c4ff92SAndroid Build Coastguard Worker i: 0 236*89c4ff92SAndroid Build Coastguard Worker type: INT 237*89c4ff92SAndroid Build Coastguard Worker } 238*89c4ff92SAndroid Build Coastguard Worker } 239*89c4ff92SAndroid Build Coastguard Worker name: "gather-model" 240*89c4ff92SAndroid Build Coastguard Worker input { 241*89c4ff92SAndroid Build Coastguard Worker name: "input" 242*89c4ff92SAndroid Build Coastguard Worker type { 243*89c4ff92SAndroid Build Coastguard Worker tensor_type { 244*89c4ff92SAndroid Build Coastguard Worker elem_type: 1 245*89c4ff92SAndroid Build Coastguard Worker shape { 246*89c4ff92SAndroid Build Coastguard Worker dim { 247*89c4ff92SAndroid Build Coastguard Worker dim_value: 5 248*89c4ff92SAndroid Build Coastguard Worker } 249*89c4ff92SAndroid Build Coastguard Worker dim { 250*89c4ff92SAndroid Build Coastguard Worker dim_value: 4 251*89c4ff92SAndroid Build Coastguard Worker } 252*89c4ff92SAndroid Build Coastguard Worker dim { 253*89c4ff92SAndroid Build Coastguard Worker dim_value: 3 254*89c4ff92SAndroid Build Coastguard Worker } 255*89c4ff92SAndroid Build Coastguard Worker dim { 256*89c4ff92SAndroid Build Coastguard Worker dim_value: 2 257*89c4ff92SAndroid Build Coastguard Worker } 258*89c4ff92SAndroid Build Coastguard Worker } 259*89c4ff92SAndroid Build Coastguard Worker } 260*89c4ff92SAndroid Build Coastguard Worker } 261*89c4ff92SAndroid Build Coastguard Worker } 262*89c4ff92SAndroid Build Coastguard Worker output { 263*89c4ff92SAndroid Build Coastguard Worker name: "output" 264*89c4ff92SAndroid Build Coastguard Worker type { 265*89c4ff92SAndroid Build Coastguard Worker tensor_type { 266*89c4ff92SAndroid Build Coastguard Worker elem_type: 1 267*89c4ff92SAndroid Build Coastguard Worker shape { 268*89c4ff92SAndroid Build Coastguard Worker dim { 269*89c4ff92SAndroid Build Coastguard Worker dim_value: 3 270*89c4ff92SAndroid Build Coastguard Worker } 271*89c4ff92SAndroid Build Coastguard Worker dim { 272*89c4ff92SAndroid Build Coastguard Worker dim_value: 4 273*89c4ff92SAndroid Build Coastguard Worker } 274*89c4ff92SAndroid Build Coastguard Worker dim { 275*89c4ff92SAndroid Build Coastguard Worker dim_value: 3 276*89c4ff92SAndroid Build Coastguard Worker } 277*89c4ff92SAndroid Build Coastguard Worker dim { 278*89c4ff92SAndroid Build Coastguard Worker dim_value: 2 279*89c4ff92SAndroid Build Coastguard Worker } 280*89c4ff92SAndroid Build Coastguard Worker } 281*89c4ff92SAndroid Build Coastguard Worker } 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 TEST_CASE_FIXTURE(GatherRawDataFixture, "GatherRawDataTest") 290*89c4ff92SAndroid Build Coastguard Worker { 291*89c4ff92SAndroid Build Coastguard Worker RunTest<4, float>({{"input", { 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 292*89c4ff92SAndroid Build Coastguard Worker 6.0f, 7.0f, 8.0f, 9.0f, 10.0f, 293*89c4ff92SAndroid Build Coastguard Worker 11.0f, 12.0f, 13.0f, 14.0f, 15.0f, 294*89c4ff92SAndroid Build Coastguard Worker 16.0f, 17.0f, 18.0f, 19.0f, 20.0f, 295*89c4ff92SAndroid Build Coastguard Worker 21.0f, 22.0f, 23.0f, 24.0f, 25.0f, 296*89c4ff92SAndroid Build Coastguard Worker 26.0f, 27.0f, 28.0f, 29.0f, 30.0f, 297*89c4ff92SAndroid Build Coastguard Worker 31.0f, 32.0f, 33.0f, 34.0f, 35.0f, 298*89c4ff92SAndroid Build Coastguard Worker 36.0f, 37.0f, 38.0f, 39.0f, 40.0f, 299*89c4ff92SAndroid Build Coastguard Worker 41.0f, 42.0f, 43.0f, 44.0f, 45.0f, 300*89c4ff92SAndroid Build Coastguard Worker 46.0f, 47.0f, 48.0f, 49.0f, 50.0f, 301*89c4ff92SAndroid Build Coastguard Worker 51.0f, 52.0f, 53.0f, 54.0f, 55.0f, 302*89c4ff92SAndroid Build Coastguard Worker 56.0f, 57.0f, 58.0f, 59.0f, 60.0f, 303*89c4ff92SAndroid Build Coastguard Worker 61.0f, 62.0f, 63.0f, 64.0f, 65.0f, 304*89c4ff92SAndroid Build Coastguard Worker 66.0f, 67.0f, 68.0f, 69.0f, 70.0f, 305*89c4ff92SAndroid Build Coastguard Worker 71.0f, 72.0f, 73.0f, 74.0f, 75.0f, 306*89c4ff92SAndroid Build Coastguard Worker 76.0f, 77.0f, 78.0f, 79.0f, 80.0f, 307*89c4ff92SAndroid Build Coastguard Worker 81.0f, 82.0f, 83.0f, 84.0f, 85.0f, 308*89c4ff92SAndroid Build Coastguard Worker 86.0f, 87.0f, 88.0f, 89.0f, 90.0f, 309*89c4ff92SAndroid Build Coastguard Worker 91.0f, 92.0f, 93.0f, 94.0f, 95.0f, 310*89c4ff92SAndroid Build Coastguard Worker 96.0f, 97.0f, 98.0f, 99.0f, 100.0f, 311*89c4ff92SAndroid Build Coastguard Worker 101.0f, 102.0f, 103.0f, 104.0f, 105.0f, 312*89c4ff92SAndroid Build Coastguard Worker 106.0f, 107.0f, 108.0f, 109.0f, 110.0f, 313*89c4ff92SAndroid Build Coastguard Worker 111.0f, 112.0f, 113.0f, 114.0f, 115.0f, 314*89c4ff92SAndroid Build Coastguard Worker 116.0f, 117.0f, 118.0f, 119.0f, 120.0f }}}, 315*89c4ff92SAndroid Build Coastguard Worker {{"output", { 1.0f, 2.0f, 3.0f, 4.0f, 5.0f, 6.0f, 316*89c4ff92SAndroid Build Coastguard Worker 7.0f, 8.0f, 9.0f, 10.0f, 11.0f, 12.0f, 317*89c4ff92SAndroid Build Coastguard Worker 13.0f, 14.0f, 15.0f, 16.0f, 17.0f, 18.0f, 318*89c4ff92SAndroid Build Coastguard Worker 19.0f, 20.0f, 21.0f, 22.0f, 23.0f, 24.0f, 319*89c4ff92SAndroid Build Coastguard Worker 25.0f, 26.0f, 27.0f, 28.0f, 29.0f, 30.0f, 320*89c4ff92SAndroid Build Coastguard Worker 31.0f, 32.0f, 33.0f, 34.0f, 35.0f, 36.0f, 321*89c4ff92SAndroid Build Coastguard Worker 37.0f, 38.0f, 39.0f, 40.0f, 41.0f, 42.0f, 322*89c4ff92SAndroid Build Coastguard Worker 43.0f, 44.0f, 45.0f, 46.0f, 47.0f, 48.0f, 323*89c4ff92SAndroid Build Coastguard Worker 73.0f, 74.0f, 75.0f, 76.0f, 77.0f, 78.0f, 324*89c4ff92SAndroid Build Coastguard Worker 79.0f, 80.0f, 81.0f, 82.0f, 83.0f, 84.0f, 325*89c4ff92SAndroid Build Coastguard Worker 85.0f, 86.0f, 87.0f, 88.0f, 89.0f, 90.0f, 326*89c4ff92SAndroid Build Coastguard Worker 91.0f, 92.0f, 93.0f, 94.0f, 95.0f, 96.0f }}}); 327*89c4ff92SAndroid Build Coastguard Worker } 328*89c4ff92SAndroid Build Coastguard Worker 329*89c4ff92SAndroid Build Coastguard Worker } 330