1*4bdc9457SAndroid Build Coastguard Worker // Copyright 2019 Google LLC
2*4bdc9457SAndroid Build Coastguard Worker //
3*4bdc9457SAndroid Build Coastguard Worker // This source code is licensed under the BSD-style license found in the
4*4bdc9457SAndroid Build Coastguard Worker // LICENSE file in the root directory of this source tree.
5*4bdc9457SAndroid Build Coastguard Worker
6*4bdc9457SAndroid Build Coastguard Worker #include <gtest/gtest.h>
7*4bdc9457SAndroid Build Coastguard Worker
8*4bdc9457SAndroid Build Coastguard Worker #include "unpooling-operator-tester.h"
9*4bdc9457SAndroid Build Coastguard Worker
10*4bdc9457SAndroid Build Coastguard Worker
TEST(UNPOOLING_NHWC_X32,unit_height_horizontal_pool)11*4bdc9457SAndroid Build Coastguard Worker TEST(UNPOOLING_NHWC_X32, unit_height_horizontal_pool) {
12*4bdc9457SAndroid Build Coastguard Worker ASSERT_EQ(xnn_status_success, xnn_initialize(nullptr /* allocator */));
13*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 100; channels += 15) {
14*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_size : std::vector<size_t>{{2, 3, 5, 7}}) {
15*4bdc9457SAndroid Build Coastguard Worker UnpoolingOperatorTester()
16*4bdc9457SAndroid Build Coastguard Worker .batch_size(1)
17*4bdc9457SAndroid Build Coastguard Worker .input_height(1)
18*4bdc9457SAndroid Build Coastguard Worker .input_width(7)
19*4bdc9457SAndroid Build Coastguard Worker .pooling_height(1)
20*4bdc9457SAndroid Build Coastguard Worker .pooling_width(pooling_size)
21*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
22*4bdc9457SAndroid Build Coastguard Worker .TestX32();
23*4bdc9457SAndroid Build Coastguard Worker }
24*4bdc9457SAndroid Build Coastguard Worker }
25*4bdc9457SAndroid Build Coastguard Worker }
26*4bdc9457SAndroid Build Coastguard Worker
TEST(UNPOOLING_NHWC_X32,unit_height_horizontal_pool_with_padding)27*4bdc9457SAndroid Build Coastguard Worker TEST(UNPOOLING_NHWC_X32, unit_height_horizontal_pool_with_padding) {
28*4bdc9457SAndroid Build Coastguard Worker ASSERT_EQ(xnn_status_success, xnn_initialize(nullptr /* allocator */));
29*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 100; channels += 15) {
30*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_size : std::vector<size_t>{{3, 5, 7}}) {
31*4bdc9457SAndroid Build Coastguard Worker for (size_t padding_left = 0; padding_left <= 1; padding_left++) {
32*4bdc9457SAndroid Build Coastguard Worker for (size_t padding_right = 0; padding_right <= 1; padding_right++) {
33*4bdc9457SAndroid Build Coastguard Worker UnpoolingOperatorTester()
34*4bdc9457SAndroid Build Coastguard Worker .batch_size(1)
35*4bdc9457SAndroid Build Coastguard Worker .input_height(1)
36*4bdc9457SAndroid Build Coastguard Worker .input_width(7)
37*4bdc9457SAndroid Build Coastguard Worker .padding_left(padding_left)
38*4bdc9457SAndroid Build Coastguard Worker .padding_right(padding_right)
39*4bdc9457SAndroid Build Coastguard Worker .pooling_height(1)
40*4bdc9457SAndroid Build Coastguard Worker .pooling_width(pooling_size)
41*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
42*4bdc9457SAndroid Build Coastguard Worker .TestX32();
43*4bdc9457SAndroid Build Coastguard Worker }
44*4bdc9457SAndroid Build Coastguard Worker }
45*4bdc9457SAndroid Build Coastguard Worker }
46*4bdc9457SAndroid Build Coastguard Worker }
47*4bdc9457SAndroid Build Coastguard Worker }
48*4bdc9457SAndroid Build Coastguard Worker
TEST(UNPOOLING_NHWC_X32,unit_height_vertical_pool)49*4bdc9457SAndroid Build Coastguard Worker TEST(UNPOOLING_NHWC_X32, unit_height_vertical_pool) {
50*4bdc9457SAndroid Build Coastguard Worker ASSERT_EQ(xnn_status_success, xnn_initialize(nullptr /* allocator */));
51*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 100; channels += 15) {
52*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_size : std::vector<size_t>{{2, 3, 5, 7}}) {
53*4bdc9457SAndroid Build Coastguard Worker UnpoolingOperatorTester()
54*4bdc9457SAndroid Build Coastguard Worker .batch_size(1)
55*4bdc9457SAndroid Build Coastguard Worker .input_height(7)
56*4bdc9457SAndroid Build Coastguard Worker .input_width(1)
57*4bdc9457SAndroid Build Coastguard Worker .pooling_height(pooling_size)
58*4bdc9457SAndroid Build Coastguard Worker .pooling_width(1)
59*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
60*4bdc9457SAndroid Build Coastguard Worker .TestX32();
61*4bdc9457SAndroid Build Coastguard Worker }
62*4bdc9457SAndroid Build Coastguard Worker }
63*4bdc9457SAndroid Build Coastguard Worker }
64*4bdc9457SAndroid Build Coastguard Worker
TEST(UNPOOLING_NHWC_X32,unit_height_vertical_pool_with_padding)65*4bdc9457SAndroid Build Coastguard Worker TEST(UNPOOLING_NHWC_X32, unit_height_vertical_pool_with_padding) {
66*4bdc9457SAndroid Build Coastguard Worker ASSERT_EQ(xnn_status_success, xnn_initialize(nullptr /* allocator */));
67*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 100; channels += 15) {
68*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_size : std::vector<size_t>{{3, 5, 7}}) {
69*4bdc9457SAndroid Build Coastguard Worker for (size_t padding_top = 0; padding_top <= 1; padding_top++) {
70*4bdc9457SAndroid Build Coastguard Worker for (size_t padding_bottom = 0; padding_bottom <= 1; padding_bottom++) {
71*4bdc9457SAndroid Build Coastguard Worker UnpoolingOperatorTester()
72*4bdc9457SAndroid Build Coastguard Worker .batch_size(1)
73*4bdc9457SAndroid Build Coastguard Worker .input_height(7)
74*4bdc9457SAndroid Build Coastguard Worker .input_width(1)
75*4bdc9457SAndroid Build Coastguard Worker .padding_top(padding_top)
76*4bdc9457SAndroid Build Coastguard Worker .padding_bottom(padding_bottom)
77*4bdc9457SAndroid Build Coastguard Worker .pooling_height(pooling_size)
78*4bdc9457SAndroid Build Coastguard Worker .pooling_width(1)
79*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
80*4bdc9457SAndroid Build Coastguard Worker .TestX32();
81*4bdc9457SAndroid Build Coastguard Worker }
82*4bdc9457SAndroid Build Coastguard Worker }
83*4bdc9457SAndroid Build Coastguard Worker }
84*4bdc9457SAndroid Build Coastguard Worker }
85*4bdc9457SAndroid Build Coastguard Worker }
86*4bdc9457SAndroid Build Coastguard Worker
TEST(UNPOOLING_NHWC_X32,unit_height_square_pool)87*4bdc9457SAndroid Build Coastguard Worker TEST(UNPOOLING_NHWC_X32, unit_height_square_pool) {
88*4bdc9457SAndroid Build Coastguard Worker ASSERT_EQ(xnn_status_success, xnn_initialize(nullptr /* allocator */));
89*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 100; channels += 15) {
90*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_size : std::vector<size_t>{{2, 3, 5}}) {
91*4bdc9457SAndroid Build Coastguard Worker UnpoolingOperatorTester()
92*4bdc9457SAndroid Build Coastguard Worker .batch_size(1)
93*4bdc9457SAndroid Build Coastguard Worker .input_height(2)
94*4bdc9457SAndroid Build Coastguard Worker .input_width(4)
95*4bdc9457SAndroid Build Coastguard Worker .pooling_height(pooling_size)
96*4bdc9457SAndroid Build Coastguard Worker .pooling_width(pooling_size)
97*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
98*4bdc9457SAndroid Build Coastguard Worker .TestX32();
99*4bdc9457SAndroid Build Coastguard Worker }
100*4bdc9457SAndroid Build Coastguard Worker }
101*4bdc9457SAndroid Build Coastguard Worker }
102*4bdc9457SAndroid Build Coastguard Worker
TEST(UNPOOLING_NHWC_X32,unit_height_3x3_pool_with_padding)103*4bdc9457SAndroid Build Coastguard Worker TEST(UNPOOLING_NHWC_X32, unit_height_3x3_pool_with_padding) {
104*4bdc9457SAndroid Build Coastguard Worker ASSERT_EQ(xnn_status_success, xnn_initialize(nullptr /* allocator */));
105*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 100; channels += 15) {
106*4bdc9457SAndroid Build Coastguard Worker for (size_t padding_left = 0; padding_left <= 1; padding_left++) {
107*4bdc9457SAndroid Build Coastguard Worker for (size_t padding_top = 0; padding_top <= 1; padding_top++) {
108*4bdc9457SAndroid Build Coastguard Worker for (size_t padding_right = 0; padding_right <= 1; padding_right++) {
109*4bdc9457SAndroid Build Coastguard Worker for (size_t padding_bottom = 0; padding_bottom <= 1; padding_bottom++) {
110*4bdc9457SAndroid Build Coastguard Worker UnpoolingOperatorTester()
111*4bdc9457SAndroid Build Coastguard Worker .batch_size(1)
112*4bdc9457SAndroid Build Coastguard Worker .input_height(2)
113*4bdc9457SAndroid Build Coastguard Worker .input_width(4)
114*4bdc9457SAndroid Build Coastguard Worker .padding_left(padding_left)
115*4bdc9457SAndroid Build Coastguard Worker .padding_top(padding_top)
116*4bdc9457SAndroid Build Coastguard Worker .padding_right(padding_right)
117*4bdc9457SAndroid Build Coastguard Worker .padding_bottom(padding_bottom)
118*4bdc9457SAndroid Build Coastguard Worker .pooling_height(3)
119*4bdc9457SAndroid Build Coastguard Worker .pooling_width(3)
120*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
121*4bdc9457SAndroid Build Coastguard Worker .iterations(3)
122*4bdc9457SAndroid Build Coastguard Worker .TestX32();
123*4bdc9457SAndroid Build Coastguard Worker }
124*4bdc9457SAndroid Build Coastguard Worker }
125*4bdc9457SAndroid Build Coastguard Worker }
126*4bdc9457SAndroid Build Coastguard Worker }
127*4bdc9457SAndroid Build Coastguard Worker }
128*4bdc9457SAndroid Build Coastguard Worker }
129*4bdc9457SAndroid Build Coastguard Worker
TEST(UNPOOLING_NHWC_X32,small_height_square_pool)130*4bdc9457SAndroid Build Coastguard Worker TEST(UNPOOLING_NHWC_X32, small_height_square_pool) {
131*4bdc9457SAndroid Build Coastguard Worker ASSERT_EQ(xnn_status_success, xnn_initialize(nullptr /* allocator */));
132*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 100; channels += 15) {
133*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_size : std::vector<size_t>{{2, 3, 5}}) {
134*4bdc9457SAndroid Build Coastguard Worker UnpoolingOperatorTester()
135*4bdc9457SAndroid Build Coastguard Worker .batch_size(1)
136*4bdc9457SAndroid Build Coastguard Worker .input_height(4)
137*4bdc9457SAndroid Build Coastguard Worker .input_width(7)
138*4bdc9457SAndroid Build Coastguard Worker .pooling_height(pooling_size)
139*4bdc9457SAndroid Build Coastguard Worker .pooling_width(pooling_size)
140*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
141*4bdc9457SAndroid Build Coastguard Worker .TestX32();
142*4bdc9457SAndroid Build Coastguard Worker }
143*4bdc9457SAndroid Build Coastguard Worker }
144*4bdc9457SAndroid Build Coastguard Worker }
145*4bdc9457SAndroid Build Coastguard Worker
TEST(UNPOOLING_NHWC_X32,small_height_3x3_pool_with_input_stride)146*4bdc9457SAndroid Build Coastguard Worker TEST(UNPOOLING_NHWC_X32, small_height_3x3_pool_with_input_stride) {
147*4bdc9457SAndroid Build Coastguard Worker ASSERT_EQ(xnn_status_success, xnn_initialize(nullptr /* allocator */));
148*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 100; channels += 15) {
149*4bdc9457SAndroid Build Coastguard Worker UnpoolingOperatorTester()
150*4bdc9457SAndroid Build Coastguard Worker .batch_size(1)
151*4bdc9457SAndroid Build Coastguard Worker .input_height(4)
152*4bdc9457SAndroid Build Coastguard Worker .input_width(7)
153*4bdc9457SAndroid Build Coastguard Worker .pooling_height(3)
154*4bdc9457SAndroid Build Coastguard Worker .pooling_width(3)
155*4bdc9457SAndroid Build Coastguard Worker .input_pixel_stride(channels * 2 + 1)
156*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
157*4bdc9457SAndroid Build Coastguard Worker .TestX32();
158*4bdc9457SAndroid Build Coastguard Worker }
159*4bdc9457SAndroid Build Coastguard Worker }
160*4bdc9457SAndroid Build Coastguard Worker
TEST(UNPOOLING_NHWC_X32,small_height_3x3_pool_with_output_stride)161*4bdc9457SAndroid Build Coastguard Worker TEST(UNPOOLING_NHWC_X32, small_height_3x3_pool_with_output_stride) {
162*4bdc9457SAndroid Build Coastguard Worker ASSERT_EQ(xnn_status_success, xnn_initialize(nullptr /* allocator */));
163*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 100; channels += 15) {
164*4bdc9457SAndroid Build Coastguard Worker UnpoolingOperatorTester()
165*4bdc9457SAndroid Build Coastguard Worker .batch_size(1)
166*4bdc9457SAndroid Build Coastguard Worker .input_height(4)
167*4bdc9457SAndroid Build Coastguard Worker .input_width(7)
168*4bdc9457SAndroid Build Coastguard Worker .pooling_height(3)
169*4bdc9457SAndroid Build Coastguard Worker .pooling_width(3)
170*4bdc9457SAndroid Build Coastguard Worker .output_pixel_stride(channels * 2 + 3)
171*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
172*4bdc9457SAndroid Build Coastguard Worker .TestX32();
173*4bdc9457SAndroid Build Coastguard Worker }
174*4bdc9457SAndroid Build Coastguard Worker }
175*4bdc9457SAndroid Build Coastguard Worker
TEST(UNPOOLING_NHWC_X32,small_height_3x3_pool_with_padding)176*4bdc9457SAndroid Build Coastguard Worker TEST(UNPOOLING_NHWC_X32, small_height_3x3_pool_with_padding) {
177*4bdc9457SAndroid Build Coastguard Worker ASSERT_EQ(xnn_status_success, xnn_initialize(nullptr /* allocator */));
178*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 50; channels += 15) {
179*4bdc9457SAndroid Build Coastguard Worker for (size_t padding_left = 0; padding_left <= 1; padding_left++) {
180*4bdc9457SAndroid Build Coastguard Worker for (size_t padding_top = 0; padding_top <= 1; padding_top++) {
181*4bdc9457SAndroid Build Coastguard Worker for (size_t padding_right = 0; padding_right <= 1; padding_right++) {
182*4bdc9457SAndroid Build Coastguard Worker for (size_t padding_bottom = 0; padding_bottom <= 1; padding_bottom++) {
183*4bdc9457SAndroid Build Coastguard Worker UnpoolingOperatorTester()
184*4bdc9457SAndroid Build Coastguard Worker .batch_size(1)
185*4bdc9457SAndroid Build Coastguard Worker .input_height(4)
186*4bdc9457SAndroid Build Coastguard Worker .input_width(7)
187*4bdc9457SAndroid Build Coastguard Worker .pooling_height(3)
188*4bdc9457SAndroid Build Coastguard Worker .pooling_width(3)
189*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
190*4bdc9457SAndroid Build Coastguard Worker .iterations(1)
191*4bdc9457SAndroid Build Coastguard Worker .TestX32();
192*4bdc9457SAndroid Build Coastguard Worker }
193*4bdc9457SAndroid Build Coastguard Worker }
194*4bdc9457SAndroid Build Coastguard Worker }
195*4bdc9457SAndroid Build Coastguard Worker }
196*4bdc9457SAndroid Build Coastguard Worker }
197*4bdc9457SAndroid Build Coastguard Worker }
198*4bdc9457SAndroid Build Coastguard Worker
TEST(UNPOOLING_NHWC_X32,small_height_and_batch_square_pool)199*4bdc9457SAndroid Build Coastguard Worker TEST(UNPOOLING_NHWC_X32, small_height_and_batch_square_pool) {
200*4bdc9457SAndroid Build Coastguard Worker ASSERT_EQ(xnn_status_success, xnn_initialize(nullptr /* allocator */));
201*4bdc9457SAndroid Build Coastguard Worker for (size_t channels = 1; channels <= 100; channels += 15) {
202*4bdc9457SAndroid Build Coastguard Worker for (size_t pooling_size : std::vector<size_t>{{2, 3}}) {
203*4bdc9457SAndroid Build Coastguard Worker UnpoolingOperatorTester()
204*4bdc9457SAndroid Build Coastguard Worker .batch_size(3)
205*4bdc9457SAndroid Build Coastguard Worker .input_height(4)
206*4bdc9457SAndroid Build Coastguard Worker .input_width(7)
207*4bdc9457SAndroid Build Coastguard Worker .pooling_height(pooling_size)
208*4bdc9457SAndroid Build Coastguard Worker .pooling_width(pooling_size)
209*4bdc9457SAndroid Build Coastguard Worker .channels(channels)
210*4bdc9457SAndroid Build Coastguard Worker .TestX32();
211*4bdc9457SAndroid Build Coastguard Worker }
212*4bdc9457SAndroid Build Coastguard Worker }
213*4bdc9457SAndroid Build Coastguard Worker }
214*4bdc9457SAndroid Build Coastguard Worker
TEST(UNPOOLING_NHWC_X32,setup_increasing_batch)215*4bdc9457SAndroid Build Coastguard Worker TEST(UNPOOLING_NHWC_X32, setup_increasing_batch) {
216*4bdc9457SAndroid Build Coastguard Worker ASSERT_EQ(xnn_status_success, xnn_initialize(nullptr /* allocator */));
217*4bdc9457SAndroid Build Coastguard Worker UnpoolingOperatorTester()
218*4bdc9457SAndroid Build Coastguard Worker .batch_size(3)
219*4bdc9457SAndroid Build Coastguard Worker .next_batch_size(5)
220*4bdc9457SAndroid Build Coastguard Worker .input_height(4)
221*4bdc9457SAndroid Build Coastguard Worker .input_width(4)
222*4bdc9457SAndroid Build Coastguard Worker .pooling_height(5)
223*4bdc9457SAndroid Build Coastguard Worker .pooling_width(3)
224*4bdc9457SAndroid Build Coastguard Worker .channels(24)
225*4bdc9457SAndroid Build Coastguard Worker .TestSetupX32();
226*4bdc9457SAndroid Build Coastguard Worker }
227*4bdc9457SAndroid Build Coastguard Worker
TEST(UNPOOLING_NHWC_X32,setup_decreasing_batch)228*4bdc9457SAndroid Build Coastguard Worker TEST(UNPOOLING_NHWC_X32, setup_decreasing_batch) {
229*4bdc9457SAndroid Build Coastguard Worker ASSERT_EQ(xnn_status_success, xnn_initialize(nullptr /* allocator */));
230*4bdc9457SAndroid Build Coastguard Worker UnpoolingOperatorTester()
231*4bdc9457SAndroid Build Coastguard Worker .batch_size(5)
232*4bdc9457SAndroid Build Coastguard Worker .next_batch_size(3)
233*4bdc9457SAndroid Build Coastguard Worker .input_height(4)
234*4bdc9457SAndroid Build Coastguard Worker .input_width(4)
235*4bdc9457SAndroid Build Coastguard Worker .pooling_height(5)
236*4bdc9457SAndroid Build Coastguard Worker .pooling_width(3)
237*4bdc9457SAndroid Build Coastguard Worker .channels(24)
238*4bdc9457SAndroid Build Coastguard Worker .TestSetupX32();
239*4bdc9457SAndroid Build Coastguard Worker }
240*4bdc9457SAndroid Build Coastguard Worker
TEST(UNPOOLING_NHWC_X32,setup_changing_height)241*4bdc9457SAndroid Build Coastguard Worker TEST(UNPOOLING_NHWC_X32, setup_changing_height) {
242*4bdc9457SAndroid Build Coastguard Worker ASSERT_EQ(xnn_status_success, xnn_initialize(nullptr /* allocator */));
243*4bdc9457SAndroid Build Coastguard Worker UnpoolingOperatorTester()
244*4bdc9457SAndroid Build Coastguard Worker .batch_size(3)
245*4bdc9457SAndroid Build Coastguard Worker .input_height(4)
246*4bdc9457SAndroid Build Coastguard Worker .input_width(4)
247*4bdc9457SAndroid Build Coastguard Worker .next_input_height(9)
248*4bdc9457SAndroid Build Coastguard Worker .pooling_height(5)
249*4bdc9457SAndroid Build Coastguard Worker .pooling_width(3)
250*4bdc9457SAndroid Build Coastguard Worker .channels(24)
251*4bdc9457SAndroid Build Coastguard Worker .TestSetupX32();
252*4bdc9457SAndroid Build Coastguard Worker UnpoolingOperatorTester()
253*4bdc9457SAndroid Build Coastguard Worker .batch_size(3)
254*4bdc9457SAndroid Build Coastguard Worker .input_height(4)
255*4bdc9457SAndroid Build Coastguard Worker .input_width(4)
256*4bdc9457SAndroid Build Coastguard Worker .next_input_height(7)
257*4bdc9457SAndroid Build Coastguard Worker .pooling_height(5)
258*4bdc9457SAndroid Build Coastguard Worker .pooling_width(3)
259*4bdc9457SAndroid Build Coastguard Worker .channels(24)
260*4bdc9457SAndroid Build Coastguard Worker .TestSetupX32();
261*4bdc9457SAndroid Build Coastguard Worker }
262*4bdc9457SAndroid Build Coastguard Worker
TEST(UNPOOLING_NHWC_X32,setup_changing_width)263*4bdc9457SAndroid Build Coastguard Worker TEST(UNPOOLING_NHWC_X32, setup_changing_width) {
264*4bdc9457SAndroid Build Coastguard Worker ASSERT_EQ(xnn_status_success, xnn_initialize(nullptr /* allocator */));
265*4bdc9457SAndroid Build Coastguard Worker UnpoolingOperatorTester()
266*4bdc9457SAndroid Build Coastguard Worker .batch_size(3)
267*4bdc9457SAndroid Build Coastguard Worker .input_height(4)
268*4bdc9457SAndroid Build Coastguard Worker .input_width(4)
269*4bdc9457SAndroid Build Coastguard Worker .next_input_width(9)
270*4bdc9457SAndroid Build Coastguard Worker .pooling_height(5)
271*4bdc9457SAndroid Build Coastguard Worker .pooling_width(3)
272*4bdc9457SAndroid Build Coastguard Worker .channels(24)
273*4bdc9457SAndroid Build Coastguard Worker .TestSetupX32();
274*4bdc9457SAndroid Build Coastguard Worker UnpoolingOperatorTester()
275*4bdc9457SAndroid Build Coastguard Worker .batch_size(3)
276*4bdc9457SAndroid Build Coastguard Worker .input_height(4)
277*4bdc9457SAndroid Build Coastguard Worker .input_width(4)
278*4bdc9457SAndroid Build Coastguard Worker .next_input_width(7)
279*4bdc9457SAndroid Build Coastguard Worker .pooling_height(5)
280*4bdc9457SAndroid Build Coastguard Worker .pooling_width(3)
281*4bdc9457SAndroid Build Coastguard Worker .channels(24)
282*4bdc9457SAndroid Build Coastguard Worker .TestSetupX32();
283*4bdc9457SAndroid Build Coastguard Worker }
284*4bdc9457SAndroid Build Coastguard Worker
TEST(UNPOOLING_NHWC_X32,setup_swap_height_and_width)285*4bdc9457SAndroid Build Coastguard Worker TEST(UNPOOLING_NHWC_X32, setup_swap_height_and_width) {
286*4bdc9457SAndroid Build Coastguard Worker ASSERT_EQ(xnn_status_success, xnn_initialize(nullptr /* allocator */));
287*4bdc9457SAndroid Build Coastguard Worker UnpoolingOperatorTester()
288*4bdc9457SAndroid Build Coastguard Worker .batch_size(3)
289*4bdc9457SAndroid Build Coastguard Worker .input_height(5)
290*4bdc9457SAndroid Build Coastguard Worker .input_width(4)
291*4bdc9457SAndroid Build Coastguard Worker .next_input_height(4)
292*4bdc9457SAndroid Build Coastguard Worker .next_input_width(5)
293*4bdc9457SAndroid Build Coastguard Worker .pooling_height(5)
294*4bdc9457SAndroid Build Coastguard Worker .pooling_width(3)
295*4bdc9457SAndroid Build Coastguard Worker .channels(24)
296*4bdc9457SAndroid Build Coastguard Worker .TestSetupX32();
297*4bdc9457SAndroid Build Coastguard Worker }
298