xref: /aosp_15_r20/external/XNNPACK/test/resize-bilinear-nchw.cc (revision 4bdc94577ba0e567308109d787f7fec7b531ce36)
1*4bdc9457SAndroid Build Coastguard Worker // Copyright 2020 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 "resize-bilinear-operator-tester.h"
9*4bdc9457SAndroid Build Coastguard Worker 
10*4bdc9457SAndroid Build Coastguard Worker 
TEST(RESIZE_BILINEAR_NCHW_F32,aligned_centers_upscale_y)11*4bdc9457SAndroid Build Coastguard Worker TEST(RESIZE_BILINEAR_NCHW_F32, aligned_centers_upscale_y) {
12*4bdc9457SAndroid Build Coastguard Worker   for (size_t input_height = 2; input_height <= 3; input_height++) {
13*4bdc9457SAndroid Build Coastguard Worker     for (size_t output_height = input_height + 1; output_height < 15; output_height *= 3) {
14*4bdc9457SAndroid Build Coastguard Worker       ResizeBilinearOperatorTester()
15*4bdc9457SAndroid Build Coastguard Worker         .input_size(input_height, 2)
16*4bdc9457SAndroid Build Coastguard Worker         .output_size(output_height, 2)
17*4bdc9457SAndroid Build Coastguard Worker         .channels(17)
18*4bdc9457SAndroid Build Coastguard Worker         .iterations(3)
19*4bdc9457SAndroid Build Coastguard Worker         .TestNCHWxF32();
20*4bdc9457SAndroid Build Coastguard Worker     }
21*4bdc9457SAndroid Build Coastguard Worker   }
22*4bdc9457SAndroid Build Coastguard Worker }
23*4bdc9457SAndroid Build Coastguard Worker 
TEST(RESIZE_BILINEAR_NCHW_F32,aligned_centers_upscale_x)24*4bdc9457SAndroid Build Coastguard Worker TEST(RESIZE_BILINEAR_NCHW_F32, aligned_centers_upscale_x) {
25*4bdc9457SAndroid Build Coastguard Worker   for (size_t input_width = 2; input_width <= 3; input_width++) {
26*4bdc9457SAndroid Build Coastguard Worker     for (size_t output_width = input_width + 1; output_width < 15; output_width *= 3) {
27*4bdc9457SAndroid Build Coastguard Worker       ResizeBilinearOperatorTester()
28*4bdc9457SAndroid Build Coastguard Worker         .input_size(2, input_width)
29*4bdc9457SAndroid Build Coastguard Worker         .output_size(2, output_width)
30*4bdc9457SAndroid Build Coastguard Worker         .channels(17)
31*4bdc9457SAndroid Build Coastguard Worker         .iterations(3)
32*4bdc9457SAndroid Build Coastguard Worker         .TestNCHWxF32();
33*4bdc9457SAndroid Build Coastguard Worker     }
34*4bdc9457SAndroid Build Coastguard Worker   }
35*4bdc9457SAndroid Build Coastguard Worker }
36*4bdc9457SAndroid Build Coastguard Worker 
TEST(RESIZE_BILINEAR_NCHW_F32,aligned_centers_upscale)37*4bdc9457SAndroid Build Coastguard Worker TEST(RESIZE_BILINEAR_NCHW_F32, aligned_centers_upscale) {
38*4bdc9457SAndroid Build Coastguard Worker   for (size_t output_height = 3; output_height <= 5; output_height += 2) {
39*4bdc9457SAndroid Build Coastguard Worker     for (size_t output_width = 3; output_width <= 5; output_width += 2) {
40*4bdc9457SAndroid Build Coastguard Worker       ResizeBilinearOperatorTester()
41*4bdc9457SAndroid Build Coastguard Worker         .input_size(2, 2)
42*4bdc9457SAndroid Build Coastguard Worker         .output_size(output_height, output_width)
43*4bdc9457SAndroid Build Coastguard Worker         .channels(17)
44*4bdc9457SAndroid Build Coastguard Worker         .iterations(3)
45*4bdc9457SAndroid Build Coastguard Worker         .TestNCHWxF32();
46*4bdc9457SAndroid Build Coastguard Worker     }
47*4bdc9457SAndroid Build Coastguard Worker   }
48*4bdc9457SAndroid Build Coastguard Worker }
49*4bdc9457SAndroid Build Coastguard Worker 
TEST(RESIZE_BILINEAR_NCHW_F32,aligned_centers_downscale_y)50*4bdc9457SAndroid Build Coastguard Worker TEST(RESIZE_BILINEAR_NCHW_F32, aligned_centers_downscale_y) {
51*4bdc9457SAndroid Build Coastguard Worker   for (size_t output_height = 1; output_height <= 3; output_height++) {
52*4bdc9457SAndroid Build Coastguard Worker     for (size_t input_height = output_height + 1; input_height < 15; input_height *= 3) {
53*4bdc9457SAndroid Build Coastguard Worker       ResizeBilinearOperatorTester()
54*4bdc9457SAndroid Build Coastguard Worker         .input_size(input_height, 2)
55*4bdc9457SAndroid Build Coastguard Worker         .output_size(output_height, 2)
56*4bdc9457SAndroid Build Coastguard Worker         .channels(17)
57*4bdc9457SAndroid Build Coastguard Worker         .iterations(3)
58*4bdc9457SAndroid Build Coastguard Worker         .TestNCHWxF32();
59*4bdc9457SAndroid Build Coastguard Worker     }
60*4bdc9457SAndroid Build Coastguard Worker   }
61*4bdc9457SAndroid Build Coastguard Worker }
62*4bdc9457SAndroid Build Coastguard Worker 
TEST(RESIZE_BILINEAR_NCHW_F32,aligned_centers_downscale_x)63*4bdc9457SAndroid Build Coastguard Worker TEST(RESIZE_BILINEAR_NCHW_F32, aligned_centers_downscale_x) {
64*4bdc9457SAndroid Build Coastguard Worker   for (size_t output_width = 2; output_width <= 3; output_width++) {
65*4bdc9457SAndroid Build Coastguard Worker     for (size_t input_width = output_width + 1; input_width < 15; input_width *= 3) {
66*4bdc9457SAndroid Build Coastguard Worker       ResizeBilinearOperatorTester()
67*4bdc9457SAndroid Build Coastguard Worker         .input_size(2, input_width)
68*4bdc9457SAndroid Build Coastguard Worker         .output_size(2, output_width)
69*4bdc9457SAndroid Build Coastguard Worker         .channels(17)
70*4bdc9457SAndroid Build Coastguard Worker         .iterations(3)
71*4bdc9457SAndroid Build Coastguard Worker         .TestNCHWxF32();
72*4bdc9457SAndroid Build Coastguard Worker     }
73*4bdc9457SAndroid Build Coastguard Worker   }
74*4bdc9457SAndroid Build Coastguard Worker }
75*4bdc9457SAndroid Build Coastguard Worker 
TEST(RESIZE_BILINEAR_NCHW_F32,aligned_centers_downscale)76*4bdc9457SAndroid Build Coastguard Worker TEST(RESIZE_BILINEAR_NCHW_F32, aligned_centers_downscale) {
77*4bdc9457SAndroid Build Coastguard Worker   for (size_t input_height = 3; input_height <= 5; input_height += 2) {
78*4bdc9457SAndroid Build Coastguard Worker     for (size_t input_width = 3; input_width <= 5; input_width += 2) {
79*4bdc9457SAndroid Build Coastguard Worker       ResizeBilinearOperatorTester()
80*4bdc9457SAndroid Build Coastguard Worker         .input_size(input_height, input_width)
81*4bdc9457SAndroid Build Coastguard Worker         .output_size(2, 2)
82*4bdc9457SAndroid Build Coastguard Worker         .channels(17)
83*4bdc9457SAndroid Build Coastguard Worker         .iterations(3)
84*4bdc9457SAndroid Build Coastguard Worker         .TestNCHWxF32();
85*4bdc9457SAndroid Build Coastguard Worker     }
86*4bdc9457SAndroid Build Coastguard Worker   }
87*4bdc9457SAndroid Build Coastguard Worker }
88*4bdc9457SAndroid Build Coastguard Worker 
TEST(RESIZE_BILINEAR_NCHW_F32,aligned_centers_identical_size)89*4bdc9457SAndroid Build Coastguard Worker TEST(RESIZE_BILINEAR_NCHW_F32, aligned_centers_identical_size) {
90*4bdc9457SAndroid Build Coastguard Worker   for (size_t height = 2; height < 10; height *= 3) {
91*4bdc9457SAndroid Build Coastguard Worker     for (size_t width = 2; width < 10; width *= 3) {
92*4bdc9457SAndroid Build Coastguard Worker       ResizeBilinearOperatorTester()
93*4bdc9457SAndroid Build Coastguard Worker         .input_size(height, width)
94*4bdc9457SAndroid Build Coastguard Worker         .output_size(height, width)
95*4bdc9457SAndroid Build Coastguard Worker         .channels(17)
96*4bdc9457SAndroid Build Coastguard Worker         .iterations(3)
97*4bdc9457SAndroid Build Coastguard Worker         .TestNCHWxF32();
98*4bdc9457SAndroid Build Coastguard Worker     }
99*4bdc9457SAndroid Build Coastguard Worker   }
100*4bdc9457SAndroid Build Coastguard Worker }
101*4bdc9457SAndroid Build Coastguard Worker 
TEST(RESIZE_BILINEAR_NCHW_F32,aligned_centers_varying_channels)102*4bdc9457SAndroid Build Coastguard Worker TEST(RESIZE_BILINEAR_NCHW_F32, aligned_centers_varying_channels) {
103*4bdc9457SAndroid Build Coastguard Worker   for (size_t input_size = 2; input_size <= 6; input_size += 2) {
104*4bdc9457SAndroid Build Coastguard Worker     for (size_t output_size = 2; output_size <= 6; output_size += 2) {
105*4bdc9457SAndroid Build Coastguard Worker       for (size_t channels = 15; channels <= 19; channels++) {
106*4bdc9457SAndroid Build Coastguard Worker         ResizeBilinearOperatorTester()
107*4bdc9457SAndroid Build Coastguard Worker           .input_size(input_size, input_size)
108*4bdc9457SAndroid Build Coastguard Worker           .output_size(output_size, output_size)
109*4bdc9457SAndroid Build Coastguard Worker           .channels(channels)
110*4bdc9457SAndroid Build Coastguard Worker           .iterations(3)
111*4bdc9457SAndroid Build Coastguard Worker           .TestNCHWxF32();
112*4bdc9457SAndroid Build Coastguard Worker       }
113*4bdc9457SAndroid Build Coastguard Worker     }
114*4bdc9457SAndroid Build Coastguard Worker   }
115*4bdc9457SAndroid Build Coastguard Worker }
116*4bdc9457SAndroid Build Coastguard Worker 
TEST(RESIZE_BILINEAR_NCHW_F32,aligned_centers_with_input_stride)117*4bdc9457SAndroid Build Coastguard Worker TEST(RESIZE_BILINEAR_NCHW_F32, aligned_centers_with_input_stride) {
118*4bdc9457SAndroid Build Coastguard Worker   for (size_t input_size = 2; input_size <= 6; input_size += 2) {
119*4bdc9457SAndroid Build Coastguard Worker     for (size_t output_size = 2; output_size <= 6; output_size += 2) {
120*4bdc9457SAndroid Build Coastguard Worker       for (size_t channels = 15; channels <= 19; channels++) {
121*4bdc9457SAndroid Build Coastguard Worker         ResizeBilinearOperatorTester()
122*4bdc9457SAndroid Build Coastguard Worker           .input_size(input_size, input_size)
123*4bdc9457SAndroid Build Coastguard Worker           .output_size(output_size, output_size)
124*4bdc9457SAndroid Build Coastguard Worker           .channels(channels)
125*4bdc9457SAndroid Build Coastguard Worker           .input_pixel_stride(23)
126*4bdc9457SAndroid Build Coastguard Worker           .iterations(3)
127*4bdc9457SAndroid Build Coastguard Worker           .TestNCHWxF32();
128*4bdc9457SAndroid Build Coastguard Worker       }
129*4bdc9457SAndroid Build Coastguard Worker     }
130*4bdc9457SAndroid Build Coastguard Worker   }
131*4bdc9457SAndroid Build Coastguard Worker }
132*4bdc9457SAndroid Build Coastguard Worker 
TEST(RESIZE_BILINEAR_NCHW_F32,aligned_centers_with_output_stride)133*4bdc9457SAndroid Build Coastguard Worker TEST(RESIZE_BILINEAR_NCHW_F32, aligned_centers_with_output_stride) {
134*4bdc9457SAndroid Build Coastguard Worker   for (size_t input_size = 2; input_size <= 6; input_size += 2) {
135*4bdc9457SAndroid Build Coastguard Worker     for (size_t output_size = 2; output_size <= 6; output_size += 2) {
136*4bdc9457SAndroid Build Coastguard Worker       for (size_t channels = 15; channels <= 19; channels++) {
137*4bdc9457SAndroid Build Coastguard Worker         ResizeBilinearOperatorTester()
138*4bdc9457SAndroid Build Coastguard Worker           .input_size(input_size, input_size)
139*4bdc9457SAndroid Build Coastguard Worker           .output_size(output_size, output_size)
140*4bdc9457SAndroid Build Coastguard Worker           .channels(channels)
141*4bdc9457SAndroid Build Coastguard Worker           .output_pixel_stride(29)
142*4bdc9457SAndroid Build Coastguard Worker           .iterations(3)
143*4bdc9457SAndroid Build Coastguard Worker           .TestNCHWxF32();
144*4bdc9457SAndroid Build Coastguard Worker       }
145*4bdc9457SAndroid Build Coastguard Worker     }
146*4bdc9457SAndroid Build Coastguard Worker   }
147*4bdc9457SAndroid Build Coastguard Worker }
148*4bdc9457SAndroid Build Coastguard Worker 
TEST(RESIZE_BILINEAR_NCHW_F32,aligned_centers_varying_batch_size)149*4bdc9457SAndroid Build Coastguard Worker TEST(RESIZE_BILINEAR_NCHW_F32, aligned_centers_varying_batch_size) {
150*4bdc9457SAndroid Build Coastguard Worker   for (size_t input_size = 2; input_size <= 6; input_size += 2) {
151*4bdc9457SAndroid Build Coastguard Worker     for (size_t output_size = 2; output_size <= 6; output_size += 2) {
152*4bdc9457SAndroid Build Coastguard Worker       for (size_t batch_size = 2; batch_size <= 3; batch_size++) {
153*4bdc9457SAndroid Build Coastguard Worker         ResizeBilinearOperatorTester()
154*4bdc9457SAndroid Build Coastguard Worker           .batch_size(batch_size)
155*4bdc9457SAndroid Build Coastguard Worker           .input_size(input_size, input_size)
156*4bdc9457SAndroid Build Coastguard Worker           .output_size(output_size, output_size)
157*4bdc9457SAndroid Build Coastguard Worker           .iterations(3)
158*4bdc9457SAndroid Build Coastguard Worker           .TestNCHWxF32();
159*4bdc9457SAndroid Build Coastguard Worker       }
160*4bdc9457SAndroid Build Coastguard Worker     }
161*4bdc9457SAndroid Build Coastguard Worker   }
162*4bdc9457SAndroid Build Coastguard Worker }
163*4bdc9457SAndroid Build Coastguard Worker 
TEST(RESIZE_BILINEAR_NCHW_F32,aligned_corners_upscale_y)164*4bdc9457SAndroid Build Coastguard Worker TEST(RESIZE_BILINEAR_NCHW_F32, aligned_corners_upscale_y) {
165*4bdc9457SAndroid Build Coastguard Worker   for (size_t input_height = 2; input_height <= 3; input_height++) {
166*4bdc9457SAndroid Build Coastguard Worker     for (size_t output_height = input_height + 1; output_height < 15; output_height *= 3) {
167*4bdc9457SAndroid Build Coastguard Worker       ResizeBilinearOperatorTester()
168*4bdc9457SAndroid Build Coastguard Worker         .align_corners(true)
169*4bdc9457SAndroid Build Coastguard Worker         .input_size(input_height, 2)
170*4bdc9457SAndroid Build Coastguard Worker         .output_size(output_height, 2)
171*4bdc9457SAndroid Build Coastguard Worker         .channels(17)
172*4bdc9457SAndroid Build Coastguard Worker         .iterations(3)
173*4bdc9457SAndroid Build Coastguard Worker         .TestNCHWxF32();
174*4bdc9457SAndroid Build Coastguard Worker     }
175*4bdc9457SAndroid Build Coastguard Worker   }
176*4bdc9457SAndroid Build Coastguard Worker }
177*4bdc9457SAndroid Build Coastguard Worker 
TEST(RESIZE_BILINEAR_NCHW_F32,aligned_corners_upscale_x)178*4bdc9457SAndroid Build Coastguard Worker TEST(RESIZE_BILINEAR_NCHW_F32, aligned_corners_upscale_x) {
179*4bdc9457SAndroid Build Coastguard Worker   for (size_t input_width = 2; input_width <= 3; input_width++) {
180*4bdc9457SAndroid Build Coastguard Worker     for (size_t output_width = input_width + 1; output_width < 15; output_width *= 3) {
181*4bdc9457SAndroid Build Coastguard Worker       ResizeBilinearOperatorTester()
182*4bdc9457SAndroid Build Coastguard Worker         .align_corners(true)
183*4bdc9457SAndroid Build Coastguard Worker         .input_size(2, input_width)
184*4bdc9457SAndroid Build Coastguard Worker         .output_size(2, output_width)
185*4bdc9457SAndroid Build Coastguard Worker         .channels(17)
186*4bdc9457SAndroid Build Coastguard Worker         .iterations(3)
187*4bdc9457SAndroid Build Coastguard Worker         .TestNCHWxF32();
188*4bdc9457SAndroid Build Coastguard Worker     }
189*4bdc9457SAndroid Build Coastguard Worker   }
190*4bdc9457SAndroid Build Coastguard Worker }
191*4bdc9457SAndroid Build Coastguard Worker 
TEST(RESIZE_BILINEAR_NCHW_F32,aligned_corners_upscale)192*4bdc9457SAndroid Build Coastguard Worker TEST(RESIZE_BILINEAR_NCHW_F32, aligned_corners_upscale) {
193*4bdc9457SAndroid Build Coastguard Worker   for (size_t output_height = 3; output_height <= 5; output_height += 2) {
194*4bdc9457SAndroid Build Coastguard Worker     for (size_t output_width = 3; output_width <= 5; output_width += 2) {
195*4bdc9457SAndroid Build Coastguard Worker       ResizeBilinearOperatorTester()
196*4bdc9457SAndroid Build Coastguard Worker         .align_corners(true)
197*4bdc9457SAndroid Build Coastguard Worker         .input_size(2, 2)
198*4bdc9457SAndroid Build Coastguard Worker         .output_size(output_height, output_width)
199*4bdc9457SAndroid Build Coastguard Worker         .channels(17)
200*4bdc9457SAndroid Build Coastguard Worker         .iterations(3)
201*4bdc9457SAndroid Build Coastguard Worker         .TestNCHWxF32();
202*4bdc9457SAndroid Build Coastguard Worker     }
203*4bdc9457SAndroid Build Coastguard Worker   }
204*4bdc9457SAndroid Build Coastguard Worker }
205*4bdc9457SAndroid Build Coastguard Worker 
TEST(RESIZE_BILINEAR_NCHW_F32,aligned_corners_downscale_y)206*4bdc9457SAndroid Build Coastguard Worker TEST(RESIZE_BILINEAR_NCHW_F32, aligned_corners_downscale_y) {
207*4bdc9457SAndroid Build Coastguard Worker   for (size_t output_height = 2; output_height <= 3; output_height++) {
208*4bdc9457SAndroid Build Coastguard Worker     for (size_t input_height = output_height + 1; input_height < 15; input_height *= 3) {
209*4bdc9457SAndroid Build Coastguard Worker       ResizeBilinearOperatorTester()
210*4bdc9457SAndroid Build Coastguard Worker         .input_size(input_height, 2)
211*4bdc9457SAndroid Build Coastguard Worker         .output_size(output_height, 2)
212*4bdc9457SAndroid Build Coastguard Worker         .channels(17)
213*4bdc9457SAndroid Build Coastguard Worker         .iterations(3)
214*4bdc9457SAndroid Build Coastguard Worker         .TestNCHWxF32();
215*4bdc9457SAndroid Build Coastguard Worker     }
216*4bdc9457SAndroid Build Coastguard Worker   }
217*4bdc9457SAndroid Build Coastguard Worker }
218*4bdc9457SAndroid Build Coastguard Worker 
TEST(RESIZE_BILINEAR_NCHW_F32,aligned_corners_downscale_x)219*4bdc9457SAndroid Build Coastguard Worker TEST(RESIZE_BILINEAR_NCHW_F32, aligned_corners_downscale_x) {
220*4bdc9457SAndroid Build Coastguard Worker   for (size_t output_width = 2; output_width <= 3; output_width++) {
221*4bdc9457SAndroid Build Coastguard Worker     for (size_t input_width = output_width + 1; input_width < 15; input_width *= 3) {
222*4bdc9457SAndroid Build Coastguard Worker       ResizeBilinearOperatorTester()
223*4bdc9457SAndroid Build Coastguard Worker         .input_size(2, input_width)
224*4bdc9457SAndroid Build Coastguard Worker         .output_size(2, output_width)
225*4bdc9457SAndroid Build Coastguard Worker         .channels(17)
226*4bdc9457SAndroid Build Coastguard Worker         .iterations(3)
227*4bdc9457SAndroid Build Coastguard Worker         .TestNCHWxF32();
228*4bdc9457SAndroid Build Coastguard Worker     }
229*4bdc9457SAndroid Build Coastguard Worker   }
230*4bdc9457SAndroid Build Coastguard Worker }
231*4bdc9457SAndroid Build Coastguard Worker 
TEST(RESIZE_BILINEAR_NCHW_F32,aligned_corners_downscale)232*4bdc9457SAndroid Build Coastguard Worker TEST(RESIZE_BILINEAR_NCHW_F32, aligned_corners_downscale) {
233*4bdc9457SAndroid Build Coastguard Worker   for (size_t input_height = 3; input_height <= 5; input_height += 2) {
234*4bdc9457SAndroid Build Coastguard Worker     for (size_t input_width = 3; input_width <= 5; input_width += 2) {
235*4bdc9457SAndroid Build Coastguard Worker       ResizeBilinearOperatorTester()
236*4bdc9457SAndroid Build Coastguard Worker         .input_size(input_height, input_width)
237*4bdc9457SAndroid Build Coastguard Worker         .output_size(2, 2)
238*4bdc9457SAndroid Build Coastguard Worker         .channels(17)
239*4bdc9457SAndroid Build Coastguard Worker         .iterations(3)
240*4bdc9457SAndroid Build Coastguard Worker         .TestNCHWxF32();
241*4bdc9457SAndroid Build Coastguard Worker     }
242*4bdc9457SAndroid Build Coastguard Worker   }
243*4bdc9457SAndroid Build Coastguard Worker }
244*4bdc9457SAndroid Build Coastguard Worker 
TEST(RESIZE_BILINEAR_NCHW_F32,aligned_corners_identical_size)245*4bdc9457SAndroid Build Coastguard Worker TEST(RESIZE_BILINEAR_NCHW_F32, aligned_corners_identical_size) {
246*4bdc9457SAndroid Build Coastguard Worker   for (size_t height = 2; height < 10; height *= 3) {
247*4bdc9457SAndroid Build Coastguard Worker     for (size_t width = 2; width < 10; width *= 3) {
248*4bdc9457SAndroid Build Coastguard Worker       ResizeBilinearOperatorTester()
249*4bdc9457SAndroid Build Coastguard Worker         .align_corners(true)
250*4bdc9457SAndroid Build Coastguard Worker         .input_size(height, width)
251*4bdc9457SAndroid Build Coastguard Worker         .output_size(height, width)
252*4bdc9457SAndroid Build Coastguard Worker         .channels(17)
253*4bdc9457SAndroid Build Coastguard Worker         .iterations(3)
254*4bdc9457SAndroid Build Coastguard Worker         .TestNCHWxF32();
255*4bdc9457SAndroid Build Coastguard Worker     }
256*4bdc9457SAndroid Build Coastguard Worker   }
257*4bdc9457SAndroid Build Coastguard Worker }
258*4bdc9457SAndroid Build Coastguard Worker 
TEST(RESIZE_BILINEAR_NCHW_F32,aligned_corners_varying_channels)259*4bdc9457SAndroid Build Coastguard Worker TEST(RESIZE_BILINEAR_NCHW_F32, aligned_corners_varying_channels) {
260*4bdc9457SAndroid Build Coastguard Worker   for (size_t input_size = 2; input_size <= 6; input_size += 2) {
261*4bdc9457SAndroid Build Coastguard Worker     for (size_t output_size = 2; output_size <= 6; output_size += 2) {
262*4bdc9457SAndroid Build Coastguard Worker       for (size_t channels = 15; channels <= 19; channels++) {
263*4bdc9457SAndroid Build Coastguard Worker         ResizeBilinearOperatorTester()
264*4bdc9457SAndroid Build Coastguard Worker           .align_corners(true)
265*4bdc9457SAndroid Build Coastguard Worker           .input_size(output_size, output_size)
266*4bdc9457SAndroid Build Coastguard Worker           .output_size(output_size, output_size)
267*4bdc9457SAndroid Build Coastguard Worker           .channels(channels)
268*4bdc9457SAndroid Build Coastguard Worker           .iterations(3)
269*4bdc9457SAndroid Build Coastguard Worker           .TestNCHWxF32();
270*4bdc9457SAndroid Build Coastguard Worker       }
271*4bdc9457SAndroid Build Coastguard Worker     }
272*4bdc9457SAndroid Build Coastguard Worker   }
273*4bdc9457SAndroid Build Coastguard Worker }
274*4bdc9457SAndroid Build Coastguard Worker 
TEST(RESIZE_BILINEAR_NCHW_F32,aligned_corners_with_input_stride)275*4bdc9457SAndroid Build Coastguard Worker TEST(RESIZE_BILINEAR_NCHW_F32, aligned_corners_with_input_stride) {
276*4bdc9457SAndroid Build Coastguard Worker   for (size_t input_size = 2; input_size <= 6; input_size += 2) {
277*4bdc9457SAndroid Build Coastguard Worker     for (size_t output_size = 2; output_size <= 6; output_size += 2) {
278*4bdc9457SAndroid Build Coastguard Worker       for (size_t channels = 15; channels <= 19; channels++) {
279*4bdc9457SAndroid Build Coastguard Worker         ResizeBilinearOperatorTester()
280*4bdc9457SAndroid Build Coastguard Worker           .align_corners(true)
281*4bdc9457SAndroid Build Coastguard Worker           .input_size(output_size, output_size)
282*4bdc9457SAndroid Build Coastguard Worker           .output_size(output_size, output_size)
283*4bdc9457SAndroid Build Coastguard Worker           .channels(channels)
284*4bdc9457SAndroid Build Coastguard Worker           .input_pixel_stride(23)
285*4bdc9457SAndroid Build Coastguard Worker           .iterations(3)
286*4bdc9457SAndroid Build Coastguard Worker           .TestNCHWxF32();
287*4bdc9457SAndroid Build Coastguard Worker       }
288*4bdc9457SAndroid Build Coastguard Worker     }
289*4bdc9457SAndroid Build Coastguard Worker   }
290*4bdc9457SAndroid Build Coastguard Worker }
291*4bdc9457SAndroid Build Coastguard Worker 
TEST(RESIZE_BILINEAR_NCHW_F32,aligned_corners_with_output_stride)292*4bdc9457SAndroid Build Coastguard Worker TEST(RESIZE_BILINEAR_NCHW_F32, aligned_corners_with_output_stride) {
293*4bdc9457SAndroid Build Coastguard Worker   for (size_t input_size = 2; input_size <= 6; input_size += 2) {
294*4bdc9457SAndroid Build Coastguard Worker     for (size_t output_size = 2; output_size <= 6; output_size += 2) {
295*4bdc9457SAndroid Build Coastguard Worker       for (size_t channels = 15; channels <= 19; channels++) {
296*4bdc9457SAndroid Build Coastguard Worker         ResizeBilinearOperatorTester()
297*4bdc9457SAndroid Build Coastguard Worker           .align_corners(true)
298*4bdc9457SAndroid Build Coastguard Worker           .input_size(output_size, output_size)
299*4bdc9457SAndroid Build Coastguard Worker           .output_size(output_size, output_size)
300*4bdc9457SAndroid Build Coastguard Worker           .channels(channels)
301*4bdc9457SAndroid Build Coastguard Worker           .output_pixel_stride(29)
302*4bdc9457SAndroid Build Coastguard Worker           .iterations(3)
303*4bdc9457SAndroid Build Coastguard Worker           .TestNCHWxF32();
304*4bdc9457SAndroid Build Coastguard Worker       }
305*4bdc9457SAndroid Build Coastguard Worker     }
306*4bdc9457SAndroid Build Coastguard Worker   }
307*4bdc9457SAndroid Build Coastguard Worker }
308*4bdc9457SAndroid Build Coastguard Worker 
TEST(RESIZE_BILINEAR_NCHW_F32,aligned_corners_varying_batch_size)309*4bdc9457SAndroid Build Coastguard Worker TEST(RESIZE_BILINEAR_NCHW_F32, aligned_corners_varying_batch_size) {
310*4bdc9457SAndroid Build Coastguard Worker   for (size_t input_size = 2; input_size <= 6; input_size += 2) {
311*4bdc9457SAndroid Build Coastguard Worker     for (size_t output_size = 2; output_size <= 6; output_size += 2) {
312*4bdc9457SAndroid Build Coastguard Worker       for (size_t batch_size = 2; batch_size <= 3; batch_size++) {
313*4bdc9457SAndroid Build Coastguard Worker         ResizeBilinearOperatorTester()
314*4bdc9457SAndroid Build Coastguard Worker           .align_corners(true)
315*4bdc9457SAndroid Build Coastguard Worker           .batch_size(batch_size)
316*4bdc9457SAndroid Build Coastguard Worker           .input_size(output_size, output_size)
317*4bdc9457SAndroid Build Coastguard Worker           .output_size(output_size, output_size)
318*4bdc9457SAndroid Build Coastguard Worker           .iterations(3)
319*4bdc9457SAndroid Build Coastguard Worker           .TestNCHWxF32();
320*4bdc9457SAndroid Build Coastguard Worker       }
321*4bdc9457SAndroid Build Coastguard Worker     }
322*4bdc9457SAndroid Build Coastguard Worker   }
323*4bdc9457SAndroid Build Coastguard Worker }
324*4bdc9457SAndroid Build Coastguard Worker 
TEST(RESIZE_BILINEAR_NCHW_F32,tf_mode_aligned_centers_upscale_y)325*4bdc9457SAndroid Build Coastguard Worker TEST(RESIZE_BILINEAR_NCHW_F32, tf_mode_aligned_centers_upscale_y) {
326*4bdc9457SAndroid Build Coastguard Worker   for (size_t input_height = 2; input_height <= 3; input_height++) {
327*4bdc9457SAndroid Build Coastguard Worker     for (size_t output_height = input_height + 1; output_height < 15; output_height *= 3) {
328*4bdc9457SAndroid Build Coastguard Worker       ResizeBilinearOperatorTester()
329*4bdc9457SAndroid Build Coastguard Worker         .tf_legacy_mode(true)
330*4bdc9457SAndroid Build Coastguard Worker         .input_size(input_height, 2)
331*4bdc9457SAndroid Build Coastguard Worker         .output_size(output_height, 2)
332*4bdc9457SAndroid Build Coastguard Worker         .channels(17)
333*4bdc9457SAndroid Build Coastguard Worker         .iterations(3)
334*4bdc9457SAndroid Build Coastguard Worker         .TestNCHWxF32();
335*4bdc9457SAndroid Build Coastguard Worker     }
336*4bdc9457SAndroid Build Coastguard Worker   }
337*4bdc9457SAndroid Build Coastguard Worker }
338*4bdc9457SAndroid Build Coastguard Worker 
TEST(RESIZE_BILINEAR_NCHW_F32,tf_mode_aligned_centers_upscale_x)339*4bdc9457SAndroid Build Coastguard Worker TEST(RESIZE_BILINEAR_NCHW_F32, tf_mode_aligned_centers_upscale_x) {
340*4bdc9457SAndroid Build Coastguard Worker   for (size_t input_width = 2; input_width <= 3; input_width++) {
341*4bdc9457SAndroid Build Coastguard Worker     for (size_t output_width = input_width + 1; output_width < 15; output_width *= 3) {
342*4bdc9457SAndroid Build Coastguard Worker       ResizeBilinearOperatorTester()
343*4bdc9457SAndroid Build Coastguard Worker         .tf_legacy_mode(true)
344*4bdc9457SAndroid Build Coastguard Worker         .input_size(2, input_width)
345*4bdc9457SAndroid Build Coastguard Worker         .output_size(2, output_width)
346*4bdc9457SAndroid Build Coastguard Worker         .channels(17)
347*4bdc9457SAndroid Build Coastguard Worker         .iterations(3)
348*4bdc9457SAndroid Build Coastguard Worker         .TestNCHWxF32();
349*4bdc9457SAndroid Build Coastguard Worker     }
350*4bdc9457SAndroid Build Coastguard Worker   }
351*4bdc9457SAndroid Build Coastguard Worker }
352*4bdc9457SAndroid Build Coastguard Worker 
TEST(RESIZE_BILINEAR_NCHW_F32,tf_mode_aligned_centers_upscale)353*4bdc9457SAndroid Build Coastguard Worker TEST(RESIZE_BILINEAR_NCHW_F32, tf_mode_aligned_centers_upscale) {
354*4bdc9457SAndroid Build Coastguard Worker   for (size_t output_height = 3; output_height <= 5; output_height += 2) {
355*4bdc9457SAndroid Build Coastguard Worker     for (size_t output_width = 3; output_width <= 5; output_width += 2) {
356*4bdc9457SAndroid Build Coastguard Worker       ResizeBilinearOperatorTester()
357*4bdc9457SAndroid Build Coastguard Worker         .tf_legacy_mode(true)
358*4bdc9457SAndroid Build Coastguard Worker         .input_size(2, 2)
359*4bdc9457SAndroid Build Coastguard Worker         .output_size(output_height, output_width)
360*4bdc9457SAndroid Build Coastguard Worker         .channels(17)
361*4bdc9457SAndroid Build Coastguard Worker         .iterations(3)
362*4bdc9457SAndroid Build Coastguard Worker         .TestNCHWxF32();
363*4bdc9457SAndroid Build Coastguard Worker     }
364*4bdc9457SAndroid Build Coastguard Worker   }
365*4bdc9457SAndroid Build Coastguard Worker }
366*4bdc9457SAndroid Build Coastguard Worker 
TEST(RESIZE_BILINEAR_NCHW_F32,tf_mode_aligned_centers_downscale_y)367*4bdc9457SAndroid Build Coastguard Worker TEST(RESIZE_BILINEAR_NCHW_F32, tf_mode_aligned_centers_downscale_y) {
368*4bdc9457SAndroid Build Coastguard Worker   for (size_t output_height = 1; output_height <= 3; output_height++) {
369*4bdc9457SAndroid Build Coastguard Worker     for (size_t input_height = output_height + 1; input_height < 15; input_height *= 3) {
370*4bdc9457SAndroid Build Coastguard Worker       ResizeBilinearOperatorTester()
371*4bdc9457SAndroid Build Coastguard Worker         .tf_legacy_mode(true)
372*4bdc9457SAndroid Build Coastguard Worker         .input_size(input_height, 2)
373*4bdc9457SAndroid Build Coastguard Worker         .output_size(output_height, 2)
374*4bdc9457SAndroid Build Coastguard Worker         .channels(17)
375*4bdc9457SAndroid Build Coastguard Worker         .iterations(3)
376*4bdc9457SAndroid Build Coastguard Worker         .TestNCHWxF32();
377*4bdc9457SAndroid Build Coastguard Worker     }
378*4bdc9457SAndroid Build Coastguard Worker   }
379*4bdc9457SAndroid Build Coastguard Worker }
380*4bdc9457SAndroid Build Coastguard Worker 
TEST(RESIZE_BILINEAR_NCHW_F32,tf_mode_aligned_centers_downscale_x)381*4bdc9457SAndroid Build Coastguard Worker TEST(RESIZE_BILINEAR_NCHW_F32, tf_mode_aligned_centers_downscale_x) {
382*4bdc9457SAndroid Build Coastguard Worker   for (size_t output_width = 1; output_width <= 3; output_width++) {
383*4bdc9457SAndroid Build Coastguard Worker     for (size_t input_width = output_width + 1; input_width < 15; input_width *= 3) {
384*4bdc9457SAndroid Build Coastguard Worker       ResizeBilinearOperatorTester()
385*4bdc9457SAndroid Build Coastguard Worker         .tf_legacy_mode(true)
386*4bdc9457SAndroid Build Coastguard Worker         .input_size(2, input_width)
387*4bdc9457SAndroid Build Coastguard Worker         .output_size(2, output_width)
388*4bdc9457SAndroid Build Coastguard Worker         .channels(17)
389*4bdc9457SAndroid Build Coastguard Worker         .iterations(3)
390*4bdc9457SAndroid Build Coastguard Worker         .TestNCHWxF32();
391*4bdc9457SAndroid Build Coastguard Worker     }
392*4bdc9457SAndroid Build Coastguard Worker   }
393*4bdc9457SAndroid Build Coastguard Worker }
394*4bdc9457SAndroid Build Coastguard Worker 
TEST(RESIZE_BILINEAR_NCHW_F32,tf_mode_aligned_centers_downscale)395*4bdc9457SAndroid Build Coastguard Worker TEST(RESIZE_BILINEAR_NCHW_F32, tf_mode_aligned_centers_downscale) {
396*4bdc9457SAndroid Build Coastguard Worker   for (size_t input_height = 3; input_height <= 5; input_height += 2) {
397*4bdc9457SAndroid Build Coastguard Worker     for (size_t input_width = 3; input_width <= 5; input_width += 2) {
398*4bdc9457SAndroid Build Coastguard Worker       ResizeBilinearOperatorTester()
399*4bdc9457SAndroid Build Coastguard Worker         .tf_legacy_mode(true)
400*4bdc9457SAndroid Build Coastguard Worker         .input_size(input_height, input_width)
401*4bdc9457SAndroid Build Coastguard Worker         .output_size(2, 2)
402*4bdc9457SAndroid Build Coastguard Worker         .channels(17)
403*4bdc9457SAndroid Build Coastguard Worker         .iterations(3)
404*4bdc9457SAndroid Build Coastguard Worker         .TestNCHWxF32();
405*4bdc9457SAndroid Build Coastguard Worker     }
406*4bdc9457SAndroid Build Coastguard Worker   }
407*4bdc9457SAndroid Build Coastguard Worker }
408*4bdc9457SAndroid Build Coastguard Worker 
TEST(RESIZE_BILINEAR_NCHW_F32,tf_mode_aligned_centers_identical_size)409*4bdc9457SAndroid Build Coastguard Worker TEST(RESIZE_BILINEAR_NCHW_F32, tf_mode_aligned_centers_identical_size) {
410*4bdc9457SAndroid Build Coastguard Worker   for (size_t height = 2; height < 10; height *= 3) {
411*4bdc9457SAndroid Build Coastguard Worker     for (size_t width = 2; width < 10; width *= 3) {
412*4bdc9457SAndroid Build Coastguard Worker       ResizeBilinearOperatorTester()
413*4bdc9457SAndroid Build Coastguard Worker         .tf_legacy_mode(true)
414*4bdc9457SAndroid Build Coastguard Worker         .input_size(height, width)
415*4bdc9457SAndroid Build Coastguard Worker         .output_size(height, width)
416*4bdc9457SAndroid Build Coastguard Worker         .channels(17)
417*4bdc9457SAndroid Build Coastguard Worker         .iterations(3)
418*4bdc9457SAndroid Build Coastguard Worker         .TestNCHWxF32();
419*4bdc9457SAndroid Build Coastguard Worker     }
420*4bdc9457SAndroid Build Coastguard Worker   }
421*4bdc9457SAndroid Build Coastguard Worker }
422*4bdc9457SAndroid Build Coastguard Worker 
TEST(RESIZE_BILINEAR_NCHW_F32,tf_mode_aligned_centers_varying_channels)423*4bdc9457SAndroid Build Coastguard Worker TEST(RESIZE_BILINEAR_NCHW_F32, tf_mode_aligned_centers_varying_channels) {
424*4bdc9457SAndroid Build Coastguard Worker   for (size_t input_size = 2; input_size <= 6; input_size += 2) {
425*4bdc9457SAndroid Build Coastguard Worker     for (size_t output_size = 2; output_size <= 6; output_size += 2) {
426*4bdc9457SAndroid Build Coastguard Worker       for (size_t channels = 15; channels <= 19; channels++) {
427*4bdc9457SAndroid Build Coastguard Worker         ResizeBilinearOperatorTester()
428*4bdc9457SAndroid Build Coastguard Worker           .tf_legacy_mode(true)
429*4bdc9457SAndroid Build Coastguard Worker           .input_size(output_size, output_size)
430*4bdc9457SAndroid Build Coastguard Worker           .output_size(output_size, output_size)
431*4bdc9457SAndroid Build Coastguard Worker           .channels(channels)
432*4bdc9457SAndroid Build Coastguard Worker           .iterations(3)
433*4bdc9457SAndroid Build Coastguard Worker           .TestNCHWxF32();
434*4bdc9457SAndroid Build Coastguard Worker       }
435*4bdc9457SAndroid Build Coastguard Worker     }
436*4bdc9457SAndroid Build Coastguard Worker   }
437*4bdc9457SAndroid Build Coastguard Worker }
438*4bdc9457SAndroid Build Coastguard Worker 
TEST(RESIZE_BILINEAR_NCHW_F32,tf_mode_aligned_centers_with_input_stride)439*4bdc9457SAndroid Build Coastguard Worker TEST(RESIZE_BILINEAR_NCHW_F32, tf_mode_aligned_centers_with_input_stride) {
440*4bdc9457SAndroid Build Coastguard Worker   for (size_t input_size = 2; input_size <= 6; input_size += 2) {
441*4bdc9457SAndroid Build Coastguard Worker     for (size_t output_size = 2; output_size <= 6; output_size += 2) {
442*4bdc9457SAndroid Build Coastguard Worker       for (size_t channels = 15; channels <= 19; channels++) {
443*4bdc9457SAndroid Build Coastguard Worker         ResizeBilinearOperatorTester()
444*4bdc9457SAndroid Build Coastguard Worker           .tf_legacy_mode(true)
445*4bdc9457SAndroid Build Coastguard Worker           .input_size(output_size, output_size)
446*4bdc9457SAndroid Build Coastguard Worker           .output_size(output_size, output_size)
447*4bdc9457SAndroid Build Coastguard Worker           .channels(channels)
448*4bdc9457SAndroid Build Coastguard Worker           .input_pixel_stride(23)
449*4bdc9457SAndroid Build Coastguard Worker           .iterations(3)
450*4bdc9457SAndroid Build Coastguard Worker           .TestNCHWxF32();
451*4bdc9457SAndroid Build Coastguard Worker       }
452*4bdc9457SAndroid Build Coastguard Worker     }
453*4bdc9457SAndroid Build Coastguard Worker   }
454*4bdc9457SAndroid Build Coastguard Worker }
455*4bdc9457SAndroid Build Coastguard Worker 
TEST(RESIZE_BILINEAR_NCHW_F32,tf_mode_aligned_centers_with_output_stride)456*4bdc9457SAndroid Build Coastguard Worker TEST(RESIZE_BILINEAR_NCHW_F32, tf_mode_aligned_centers_with_output_stride) {
457*4bdc9457SAndroid Build Coastguard Worker   for (size_t input_size = 2; input_size <= 6; input_size += 2) {
458*4bdc9457SAndroid Build Coastguard Worker     for (size_t output_size = 2; output_size <= 6; output_size += 2) {
459*4bdc9457SAndroid Build Coastguard Worker       for (size_t channels = 15; channels <= 19; channels++) {
460*4bdc9457SAndroid Build Coastguard Worker         ResizeBilinearOperatorTester()
461*4bdc9457SAndroid Build Coastguard Worker           .tf_legacy_mode(true)
462*4bdc9457SAndroid Build Coastguard Worker           .input_size(output_size, output_size)
463*4bdc9457SAndroid Build Coastguard Worker           .output_size(output_size, output_size)
464*4bdc9457SAndroid Build Coastguard Worker           .channels(channels)
465*4bdc9457SAndroid Build Coastguard Worker           .output_pixel_stride(29)
466*4bdc9457SAndroid Build Coastguard Worker           .iterations(3)
467*4bdc9457SAndroid Build Coastguard Worker           .TestNCHWxF32();
468*4bdc9457SAndroid Build Coastguard Worker       }
469*4bdc9457SAndroid Build Coastguard Worker     }
470*4bdc9457SAndroid Build Coastguard Worker   }
471*4bdc9457SAndroid Build Coastguard Worker }
472*4bdc9457SAndroid Build Coastguard Worker 
TEST(RESIZE_BILINEAR_NCHW_F32,tf_mode_aligned_centers_varying_batch_size)473*4bdc9457SAndroid Build Coastguard Worker TEST(RESIZE_BILINEAR_NCHW_F32, tf_mode_aligned_centers_varying_batch_size) {
474*4bdc9457SAndroid Build Coastguard Worker   for (size_t input_size = 2; input_size <= 6; input_size += 2) {
475*4bdc9457SAndroid Build Coastguard Worker     for (size_t output_size = 2; output_size <= 6; output_size += 2) {
476*4bdc9457SAndroid Build Coastguard Worker       for (size_t batch_size = 2; batch_size <= 3; batch_size++) {
477*4bdc9457SAndroid Build Coastguard Worker         ResizeBilinearOperatorTester()
478*4bdc9457SAndroid Build Coastguard Worker           .tf_legacy_mode(true)
479*4bdc9457SAndroid Build Coastguard Worker           .batch_size(batch_size)
480*4bdc9457SAndroid Build Coastguard Worker           .input_size(output_size, output_size)
481*4bdc9457SAndroid Build Coastguard Worker           .output_size(output_size, output_size)
482*4bdc9457SAndroid Build Coastguard Worker           .iterations(3)
483*4bdc9457SAndroid Build Coastguard Worker           .TestNCHWxF32();
484*4bdc9457SAndroid Build Coastguard Worker       }
485*4bdc9457SAndroid Build Coastguard Worker     }
486*4bdc9457SAndroid Build Coastguard Worker   }
487*4bdc9457SAndroid Build Coastguard Worker }
488