xref: /aosp_15_r20/external/armnn/src/armnnOnnxParser/test/Gather.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 "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