xref: /aosp_15_r20/external/XNNPACK/test/resize-bilinear-nhwc.cc (revision 4bdc94577ba0e567308109d787f7fec7b531ce36)
1 // Copyright 2019 Google LLC
2 //
3 // This source code is licensed under the BSD-style license found in the
4 // LICENSE file in the root directory of this source tree.
5 
6 #include <gtest/gtest.h>
7 
8 #include "resize-bilinear-operator-tester.h"
9 
10 
TEST(RESIZE_BILINEAR_NHWC_F16,aligned_centers_upscale_y)11 TEST(RESIZE_BILINEAR_NHWC_F16, aligned_centers_upscale_y) {
12   for (size_t input_height = 1; input_height <= 3; input_height++) {
13     for (size_t output_height = input_height + 1; output_height < 15; output_height *= 3) {
14       ResizeBilinearOperatorTester()
15         .input_size(input_height, 1)
16         .output_size(output_height, 1)
17         .channels(17)
18         .iterations(3)
19         .TestNHWCxF16();
20     }
21   }
22 }
23 
TEST(RESIZE_BILINEAR_NHWC_F16,aligned_centers_upscale_x)24 TEST(RESIZE_BILINEAR_NHWC_F16, aligned_centers_upscale_x) {
25   for (size_t input_width = 1; input_width <= 3; input_width++) {
26     for (size_t output_width = input_width + 1; output_width < 15; output_width *= 3) {
27       ResizeBilinearOperatorTester()
28         .input_size(1, input_width)
29         .output_size(1, output_width)
30         .channels(17)
31         .iterations(3)
32         .TestNHWCxF16();
33     }
34   }
35 }
36 
TEST(RESIZE_BILINEAR_NHWC_F16,aligned_centers_upscale)37 TEST(RESIZE_BILINEAR_NHWC_F16, aligned_centers_upscale) {
38   for (size_t output_height = 3; output_height <= 5; output_height += 2) {
39     for (size_t output_width = 3; output_width <= 5; output_width += 2) {
40       ResizeBilinearOperatorTester()
41         .input_size(2, 2)
42         .output_size(output_height, output_width)
43         .channels(17)
44         .iterations(3)
45         .TestNHWCxF16();
46     }
47   }
48 }
49 
TEST(RESIZE_BILINEAR_NHWC_F16,aligned_centers_downscale_y)50 TEST(RESIZE_BILINEAR_NHWC_F16, aligned_centers_downscale_y) {
51   for (size_t output_height = 1; output_height <= 3; output_height++) {
52     for (size_t input_height = output_height + 1; input_height < 15; input_height *= 3) {
53       ResizeBilinearOperatorTester()
54         .input_size(input_height, 1)
55         .output_size(output_height, 1)
56         .channels(17)
57         .iterations(3)
58         .TestNHWCxF16();
59     }
60   }
61 }
62 
TEST(RESIZE_BILINEAR_NHWC_F16,aligned_centers_downscale_x)63 TEST(RESIZE_BILINEAR_NHWC_F16, aligned_centers_downscale_x) {
64   for (size_t output_width = 1; output_width <= 3; output_width++) {
65     for (size_t input_width = output_width + 1; input_width < 15; input_width *= 3) {
66       ResizeBilinearOperatorTester()
67         .input_size(1, input_width)
68         .output_size(1, output_width)
69         .channels(17)
70         .iterations(3)
71         .TestNHWCxF16();
72     }
73   }
74 }
75 
TEST(RESIZE_BILINEAR_NHWC_F16,aligned_centers_downscale)76 TEST(RESIZE_BILINEAR_NHWC_F16, aligned_centers_downscale) {
77   for (size_t input_height = 3; input_height <= 5; input_height += 2) {
78     for (size_t input_width = 3; input_width <= 5; input_width += 2) {
79       ResizeBilinearOperatorTester()
80         .input_size(input_height, input_width)
81         .output_size(2, 2)
82         .channels(17)
83         .iterations(3)
84         .TestNHWCxF16();
85     }
86   }
87 }
88 
TEST(RESIZE_BILINEAR_NHWC_F16,aligned_centers_identical_size)89 TEST(RESIZE_BILINEAR_NHWC_F16, aligned_centers_identical_size) {
90   for (size_t height = 1; height < 10; height *= 3) {
91     for (size_t width = 1; width < 10; width *= 3) {
92       ResizeBilinearOperatorTester()
93         .input_size(height, width)
94         .output_size(height, width)
95         .channels(17)
96         .iterations(3)
97         .TestNHWCxF16();
98     }
99   }
100 }
101 
TEST(RESIZE_BILINEAR_NHWC_F16,aligned_centers_varying_channels)102 TEST(RESIZE_BILINEAR_NHWC_F16, aligned_centers_varying_channels) {
103   for (size_t input_size = 2; input_size <= 6; input_size += 2) {
104     for (size_t output_size = 2; output_size <= 6; output_size += 2) {
105       for (size_t channels = 15; channels <= 19; channels++) {
106         ResizeBilinearOperatorTester()
107           .input_size(output_size, output_size)
108           .output_size(output_size, output_size)
109           .channels(channels)
110           .iterations(3)
111           .TestNHWCxF16();
112       }
113     }
114   }
115 }
116 
TEST(RESIZE_BILINEAR_NHWC_F16,aligned_centers_with_input_stride)117 TEST(RESIZE_BILINEAR_NHWC_F16, aligned_centers_with_input_stride) {
118   for (size_t input_size = 2; input_size <= 6; input_size += 2) {
119     for (size_t output_size = 2; output_size <= 6; output_size += 2) {
120       for (size_t channels = 15; channels <= 19; channels++) {
121         ResizeBilinearOperatorTester()
122           .input_size(output_size, output_size)
123           .output_size(output_size, output_size)
124           .channels(channels)
125           .input_pixel_stride(23)
126           .iterations(3)
127           .TestNHWCxF16();
128       }
129     }
130   }
131 }
132 
TEST(RESIZE_BILINEAR_NHWC_F16,aligned_centers_with_output_stride)133 TEST(RESIZE_BILINEAR_NHWC_F16, aligned_centers_with_output_stride) {
134   for (size_t input_size = 2; input_size <= 6; input_size += 2) {
135     for (size_t output_size = 2; output_size <= 6; output_size += 2) {
136       for (size_t channels = 15; channels <= 19; channels++) {
137         ResizeBilinearOperatorTester()
138           .input_size(output_size, output_size)
139           .output_size(output_size, output_size)
140           .channels(channels)
141           .output_pixel_stride(29)
142           .iterations(3)
143           .TestNHWCxF16();
144       }
145     }
146   }
147 }
148 
TEST(RESIZE_BILINEAR_NHWC_F16,aligned_centers_varying_batch_size)149 TEST(RESIZE_BILINEAR_NHWC_F16, aligned_centers_varying_batch_size) {
150   for (size_t input_size = 2; input_size <= 6; input_size += 2) {
151     for (size_t output_size = 2; output_size <= 6; output_size += 2) {
152       for (size_t batch_size = 2; batch_size <= 3; batch_size++) {
153         ResizeBilinearOperatorTester()
154           .batch_size(batch_size)
155           .input_size(output_size, output_size)
156           .output_size(output_size, output_size)
157           .iterations(3)
158           .TestNHWCxF16();
159       }
160     }
161   }
162 }
163 
TEST(RESIZE_BILINEAR_NHWC_F16,aligned_corners_upscale_y)164 TEST(RESIZE_BILINEAR_NHWC_F16, aligned_corners_upscale_y) {
165   for (size_t input_height = 1; input_height <= 3; input_height++) {
166     for (size_t output_height = input_height + 1; output_height < 15; output_height *= 3) {
167       ResizeBilinearOperatorTester()
168         .align_corners(true)
169         .input_size(input_height, 1)
170         .output_size(output_height, 1)
171         .channels(17)
172         .iterations(3)
173         .TestNHWCxF16();
174     }
175   }
176 }
177 
TEST(RESIZE_BILINEAR_NHWC_F16,aligned_corners_upscale_x)178 TEST(RESIZE_BILINEAR_NHWC_F16, aligned_corners_upscale_x) {
179   for (size_t input_width = 1; input_width <= 3; input_width++) {
180     for (size_t output_width = input_width + 1; output_width < 15; output_width *= 3) {
181       ResizeBilinearOperatorTester()
182         .align_corners(true)
183         .input_size(1, input_width)
184         .output_size(1, output_width)
185         .channels(17)
186         .iterations(3)
187         .TestNHWCxF16();
188     }
189   }
190 }
191 
TEST(RESIZE_BILINEAR_NHWC_F16,aligned_corners_upscale)192 TEST(RESIZE_BILINEAR_NHWC_F16, aligned_corners_upscale) {
193   for (size_t output_height = 3; output_height <= 5; output_height += 2) {
194     for (size_t output_width = 3; output_width <= 5; output_width += 2) {
195       ResizeBilinearOperatorTester()
196         .align_corners(true)
197         .input_size(2, 2)
198         .output_size(output_height, output_width)
199         .channels(17)
200         .iterations(3)
201         .TestNHWCxF16();
202     }
203   }
204 }
205 
TEST(RESIZE_BILINEAR_NHWC_F16,aligned_corners_downscale_y)206 TEST(RESIZE_BILINEAR_NHWC_F16, aligned_corners_downscale_y) {
207   for (size_t output_height = 2; output_height <= 3; output_height++) {
208     for (size_t input_height = output_height + 1; input_height < 15; input_height *= 3) {
209       ResizeBilinearOperatorTester()
210         .input_size(input_height, 1)
211         .output_size(output_height, 1)
212         .channels(17)
213         .iterations(3)
214         .TestNHWCxF16();
215     }
216   }
217 }
218 
TEST(RESIZE_BILINEAR_NHWC_F16,aligned_corners_downscale_x)219 TEST(RESIZE_BILINEAR_NHWC_F16, aligned_corners_downscale_x) {
220   for (size_t output_width = 2; output_width <= 3; output_width++) {
221     for (size_t input_width = output_width + 1; input_width < 15; input_width *= 3) {
222       ResizeBilinearOperatorTester()
223         .input_size(1, input_width)
224         .output_size(1, output_width)
225         .channels(17)
226         .iterations(3)
227         .TestNHWCxF16();
228     }
229   }
230 }
231 
TEST(RESIZE_BILINEAR_NHWC_F16,aligned_corners_downscale)232 TEST(RESIZE_BILINEAR_NHWC_F16, aligned_corners_downscale) {
233   for (size_t input_height = 3; input_height <= 5; input_height += 2) {
234     for (size_t input_width = 3; input_width <= 5; input_width += 2) {
235       ResizeBilinearOperatorTester()
236         .input_size(input_height, input_width)
237         .output_size(2, 2)
238         .channels(17)
239         .iterations(3)
240         .TestNHWCxF16();
241     }
242   }
243 }
244 
TEST(RESIZE_BILINEAR_NHWC_F16,aligned_corners_identical_size)245 TEST(RESIZE_BILINEAR_NHWC_F16, aligned_corners_identical_size) {
246   for (size_t height = 1; height < 10; height *= 3) {
247     for (size_t width = 1; width < 10; width *= 3) {
248       ResizeBilinearOperatorTester()
249         .align_corners(true)
250         .input_size(height, width)
251         .output_size(height, width)
252         .channels(17)
253         .iterations(3)
254         .TestNHWCxF16();
255     }
256   }
257 }
258 
TEST(RESIZE_BILINEAR_NHWC_F16,aligned_corners_varying_channels)259 TEST(RESIZE_BILINEAR_NHWC_F16, aligned_corners_varying_channels) {
260   for (size_t input_size = 2; input_size <= 6; input_size += 2) {
261     for (size_t output_size = 2; output_size <= 6; output_size += 2) {
262       for (size_t channels = 15; channels <= 19; channels++) {
263         ResizeBilinearOperatorTester()
264           .align_corners(true)
265           .input_size(output_size, output_size)
266           .output_size(output_size, output_size)
267           .channels(channels)
268           .iterations(3)
269           .TestNHWCxF16();
270       }
271     }
272   }
273 }
274 
TEST(RESIZE_BILINEAR_NHWC_F16,aligned_corners_with_input_stride)275 TEST(RESIZE_BILINEAR_NHWC_F16, aligned_corners_with_input_stride) {
276   for (size_t input_size = 2; input_size <= 6; input_size += 2) {
277     for (size_t output_size = 2; output_size <= 6; output_size += 2) {
278       for (size_t channels = 15; channels <= 19; channels++) {
279         ResizeBilinearOperatorTester()
280           .align_corners(true)
281           .input_size(output_size, output_size)
282           .output_size(output_size, output_size)
283           .channels(channels)
284           .input_pixel_stride(23)
285           .iterations(3)
286           .TestNHWCxF16();
287       }
288     }
289   }
290 }
291 
TEST(RESIZE_BILINEAR_NHWC_F16,aligned_corners_with_output_stride)292 TEST(RESIZE_BILINEAR_NHWC_F16, aligned_corners_with_output_stride) {
293   for (size_t input_size = 2; input_size <= 6; input_size += 2) {
294     for (size_t output_size = 2; output_size <= 6; output_size += 2) {
295       for (size_t channels = 15; channels <= 19; channels++) {
296         ResizeBilinearOperatorTester()
297           .align_corners(true)
298           .input_size(output_size, output_size)
299           .output_size(output_size, output_size)
300           .channels(channels)
301           .output_pixel_stride(29)
302           .iterations(3)
303           .TestNHWCxF16();
304       }
305     }
306   }
307 }
308 
TEST(RESIZE_BILINEAR_NHWC_F16,aligned_corners_varying_batch_size)309 TEST(RESIZE_BILINEAR_NHWC_F16, aligned_corners_varying_batch_size) {
310   for (size_t input_size = 2; input_size <= 6; input_size += 2) {
311     for (size_t output_size = 2; output_size <= 6; output_size += 2) {
312       for (size_t batch_size = 2; batch_size <= 3; batch_size++) {
313         ResizeBilinearOperatorTester()
314           .align_corners(true)
315           .batch_size(batch_size)
316           .input_size(output_size, output_size)
317           .output_size(output_size, output_size)
318           .iterations(3)
319           .TestNHWCxF16();
320       }
321     }
322   }
323 }
324 
TEST(RESIZE_BILINEAR_NHWC_F16,tf_mode_aligned_centers_upscale_y)325 TEST(RESIZE_BILINEAR_NHWC_F16, tf_mode_aligned_centers_upscale_y) {
326   for (size_t input_height = 1; input_height <= 3; input_height++) {
327     for (size_t output_height = input_height + 1; output_height < 15; output_height *= 3) {
328       ResizeBilinearOperatorTester()
329         .tf_legacy_mode(true)
330         .input_size(input_height, 1)
331         .output_size(output_height, 1)
332         .channels(17)
333         .iterations(3)
334         .TestNHWCxF16();
335     }
336   }
337 }
338 
TEST(RESIZE_BILINEAR_NHWC_F16,tf_mode_aligned_centers_upscale_x)339 TEST(RESIZE_BILINEAR_NHWC_F16, tf_mode_aligned_centers_upscale_x) {
340   for (size_t input_width = 1; input_width <= 3; input_width++) {
341     for (size_t output_width = input_width + 1; output_width < 15; output_width *= 3) {
342       ResizeBilinearOperatorTester()
343         .tf_legacy_mode(true)
344         .input_size(1, input_width)
345         .output_size(1, output_width)
346         .channels(17)
347         .iterations(3)
348         .TestNHWCxF16();
349     }
350   }
351 }
352 
TEST(RESIZE_BILINEAR_NHWC_F16,tf_mode_aligned_centers_upscale)353 TEST(RESIZE_BILINEAR_NHWC_F16, tf_mode_aligned_centers_upscale) {
354   for (size_t output_height = 3; output_height <= 5; output_height += 2) {
355     for (size_t output_width = 3; output_width <= 5; output_width += 2) {
356       ResizeBilinearOperatorTester()
357         .tf_legacy_mode(true)
358         .input_size(2, 2)
359         .output_size(output_height, output_width)
360         .channels(17)
361         .iterations(3)
362         .TestNHWCxF16();
363     }
364   }
365 }
366 
TEST(RESIZE_BILINEAR_NHWC_F16,tf_mode_aligned_centers_downscale_y)367 TEST(RESIZE_BILINEAR_NHWC_F16, tf_mode_aligned_centers_downscale_y) {
368   for (size_t output_height = 1; output_height <= 3; output_height++) {
369     for (size_t input_height = output_height + 1; input_height < 15; input_height *= 3) {
370       ResizeBilinearOperatorTester()
371         .tf_legacy_mode(true)
372         .input_size(input_height, 1)
373         .output_size(output_height, 1)
374         .channels(17)
375         .iterations(3)
376         .TestNHWCxF16();
377     }
378   }
379 }
380 
TEST(RESIZE_BILINEAR_NHWC_F16,tf_mode_aligned_centers_downscale_x)381 TEST(RESIZE_BILINEAR_NHWC_F16, tf_mode_aligned_centers_downscale_x) {
382   for (size_t output_width = 1; output_width <= 3; output_width++) {
383     for (size_t input_width = output_width + 1; input_width < 15; input_width *= 3) {
384       ResizeBilinearOperatorTester()
385         .tf_legacy_mode(true)
386         .input_size(1, input_width)
387         .output_size(1, output_width)
388         .channels(17)
389         .iterations(3)
390         .TestNHWCxF16();
391     }
392   }
393 }
394 
TEST(RESIZE_BILINEAR_NHWC_F16,tf_mode_aligned_centers_downscale)395 TEST(RESIZE_BILINEAR_NHWC_F16, tf_mode_aligned_centers_downscale) {
396   for (size_t input_height = 3; input_height <= 5; input_height += 2) {
397     for (size_t input_width = 3; input_width <= 5; input_width += 2) {
398       ResizeBilinearOperatorTester()
399         .tf_legacy_mode(true)
400         .input_size(input_height, input_width)
401         .output_size(2, 2)
402         .channels(17)
403         .iterations(3)
404         .TestNHWCxF16();
405     }
406   }
407 }
408 
TEST(RESIZE_BILINEAR_NHWC_F16,tf_mode_aligned_centers_identical_size)409 TEST(RESIZE_BILINEAR_NHWC_F16, tf_mode_aligned_centers_identical_size) {
410   for (size_t height = 1; height < 10; height *= 3) {
411     for (size_t width = 1; width < 10; width *= 3) {
412       ResizeBilinearOperatorTester()
413         .tf_legacy_mode(true)
414         .input_size(height, width)
415         .output_size(height, width)
416         .channels(17)
417         .iterations(3)
418         .TestNHWCxF16();
419     }
420   }
421 }
422 
TEST(RESIZE_BILINEAR_NHWC_F16,tf_mode_aligned_centers_varying_channels)423 TEST(RESIZE_BILINEAR_NHWC_F16, tf_mode_aligned_centers_varying_channels) {
424   for (size_t input_size = 2; input_size <= 6; input_size += 2) {
425     for (size_t output_size = 2; output_size <= 6; output_size += 2) {
426       for (size_t channels = 15; channels <= 19; channels++) {
427         ResizeBilinearOperatorTester()
428           .tf_legacy_mode(true)
429           .input_size(output_size, output_size)
430           .output_size(output_size, output_size)
431           .channels(channels)
432           .iterations(3)
433           .TestNHWCxF16();
434       }
435     }
436   }
437 }
438 
TEST(RESIZE_BILINEAR_NHWC_F16,tf_mode_aligned_centers_with_input_stride)439 TEST(RESIZE_BILINEAR_NHWC_F16, tf_mode_aligned_centers_with_input_stride) {
440   for (size_t input_size = 2; input_size <= 6; input_size += 2) {
441     for (size_t output_size = 2; output_size <= 6; output_size += 2) {
442       for (size_t channels = 15; channels <= 19; channels++) {
443         ResizeBilinearOperatorTester()
444           .tf_legacy_mode(true)
445           .input_size(output_size, output_size)
446           .output_size(output_size, output_size)
447           .channels(channels)
448           .input_pixel_stride(23)
449           .iterations(3)
450           .TestNHWCxF16();
451       }
452     }
453   }
454 }
455 
TEST(RESIZE_BILINEAR_NHWC_F16,tf_mode_aligned_centers_with_output_stride)456 TEST(RESIZE_BILINEAR_NHWC_F16, tf_mode_aligned_centers_with_output_stride) {
457   for (size_t input_size = 2; input_size <= 6; input_size += 2) {
458     for (size_t output_size = 2; output_size <= 6; output_size += 2) {
459       for (size_t channels = 15; channels <= 19; channels++) {
460         ResizeBilinearOperatorTester()
461           .tf_legacy_mode(true)
462           .input_size(output_size, output_size)
463           .output_size(output_size, output_size)
464           .channels(channels)
465           .output_pixel_stride(29)
466           .iterations(3)
467           .TestNHWCxF16();
468       }
469     }
470   }
471 }
472 
TEST(RESIZE_BILINEAR_NHWC_F16,tf_mode_aligned_centers_varying_batch_size)473 TEST(RESIZE_BILINEAR_NHWC_F16, tf_mode_aligned_centers_varying_batch_size) {
474   for (size_t input_size = 2; input_size <= 6; input_size += 2) {
475     for (size_t output_size = 2; output_size <= 6; output_size += 2) {
476       for (size_t batch_size = 2; batch_size <= 3; batch_size++) {
477         ResizeBilinearOperatorTester()
478           .tf_legacy_mode(true)
479           .batch_size(batch_size)
480           .input_size(output_size, output_size)
481           .output_size(output_size, output_size)
482           .iterations(3)
483           .TestNHWCxF16();
484       }
485     }
486   }
487 }
488 
489 
TEST(RESIZE_BILINEAR_NHWC_F32,aligned_centers_upscale_y)490 TEST(RESIZE_BILINEAR_NHWC_F32, aligned_centers_upscale_y) {
491   for (size_t input_height = 1; input_height <= 3; input_height++) {
492     for (size_t output_height = input_height + 1; output_height < 15; output_height *= 3) {
493       ResizeBilinearOperatorTester()
494         .input_size(input_height, 1)
495         .output_size(output_height, 1)
496         .channels(17)
497         .iterations(3)
498         .TestNHWCxF32();
499     }
500   }
501 }
502 
TEST(RESIZE_BILINEAR_NHWC_F32,aligned_centers_upscale_x)503 TEST(RESIZE_BILINEAR_NHWC_F32, aligned_centers_upscale_x) {
504   for (size_t input_width = 1; input_width <= 3; input_width++) {
505     for (size_t output_width = input_width + 1; output_width < 15; output_width *= 3) {
506       ResizeBilinearOperatorTester()
507         .input_size(1, input_width)
508         .output_size(1, output_width)
509         .channels(17)
510         .iterations(3)
511         .TestNHWCxF32();
512     }
513   }
514 }
515 
TEST(RESIZE_BILINEAR_NHWC_F32,aligned_centers_upscale)516 TEST(RESIZE_BILINEAR_NHWC_F32, aligned_centers_upscale) {
517   for (size_t output_height = 3; output_height <= 5; output_height += 2) {
518     for (size_t output_width = 3; output_width <= 5; output_width += 2) {
519       ResizeBilinearOperatorTester()
520         .input_size(2, 2)
521         .output_size(output_height, output_width)
522         .channels(17)
523         .iterations(3)
524         .TestNHWCxF32();
525     }
526   }
527 }
528 
TEST(RESIZE_BILINEAR_NHWC_F32,aligned_centers_downscale_y)529 TEST(RESIZE_BILINEAR_NHWC_F32, aligned_centers_downscale_y) {
530   for (size_t output_height = 1; output_height <= 3; output_height++) {
531     for (size_t input_height = output_height + 1; input_height < 15; input_height *= 3) {
532       ResizeBilinearOperatorTester()
533         .input_size(input_height, 1)
534         .output_size(output_height, 1)
535         .channels(17)
536         .iterations(3)
537         .TestNHWCxF32();
538     }
539   }
540 }
541 
TEST(RESIZE_BILINEAR_NHWC_F32,aligned_centers_downscale_x)542 TEST(RESIZE_BILINEAR_NHWC_F32, aligned_centers_downscale_x) {
543   for (size_t output_width = 1; output_width <= 3; output_width++) {
544     for (size_t input_width = output_width + 1; input_width < 15; input_width *= 3) {
545       ResizeBilinearOperatorTester()
546         .input_size(1, input_width)
547         .output_size(1, output_width)
548         .channels(17)
549         .iterations(3)
550         .TestNHWCxF32();
551     }
552   }
553 }
554 
TEST(RESIZE_BILINEAR_NHWC_F32,aligned_centers_downscale)555 TEST(RESIZE_BILINEAR_NHWC_F32, aligned_centers_downscale) {
556   for (size_t input_height = 3; input_height <= 5; input_height += 2) {
557     for (size_t input_width = 3; input_width <= 5; input_width += 2) {
558       ResizeBilinearOperatorTester()
559         .input_size(input_height, input_width)
560         .output_size(2, 2)
561         .channels(17)
562         .iterations(3)
563         .TestNHWCxF32();
564     }
565   }
566 }
567 
TEST(RESIZE_BILINEAR_NHWC_F32,aligned_centers_identical_size)568 TEST(RESIZE_BILINEAR_NHWC_F32, aligned_centers_identical_size) {
569   for (size_t height = 1; height < 10; height *= 3) {
570     for (size_t width = 1; width < 10; width *= 3) {
571       ResizeBilinearOperatorTester()
572         .input_size(height, width)
573         .output_size(height, width)
574         .channels(17)
575         .iterations(3)
576         .TestNHWCxF32();
577     }
578   }
579 }
580 
TEST(RESIZE_BILINEAR_NHWC_F32,aligned_centers_varying_channels)581 TEST(RESIZE_BILINEAR_NHWC_F32, aligned_centers_varying_channels) {
582   for (size_t input_size = 2; input_size <= 6; input_size += 2) {
583     for (size_t output_size = 2; output_size <= 6; output_size += 2) {
584       for (size_t channels = 15; channels <= 19; channels++) {
585         ResizeBilinearOperatorTester()
586           .input_size(output_size, output_size)
587           .output_size(output_size, output_size)
588           .channels(channels)
589           .iterations(3)
590           .TestNHWCxF32();
591       }
592     }
593   }
594 }
595 
TEST(RESIZE_BILINEAR_NHWC_F32,aligned_centers_with_input_stride)596 TEST(RESIZE_BILINEAR_NHWC_F32, aligned_centers_with_input_stride) {
597   for (size_t input_size = 2; input_size <= 6; input_size += 2) {
598     for (size_t output_size = 2; output_size <= 6; output_size += 2) {
599       for (size_t channels = 15; channels <= 19; channels++) {
600         ResizeBilinearOperatorTester()
601           .input_size(output_size, output_size)
602           .output_size(output_size, output_size)
603           .channels(channels)
604           .input_pixel_stride(23)
605           .iterations(3)
606           .TestNHWCxF32();
607       }
608     }
609   }
610 }
611 
TEST(RESIZE_BILINEAR_NHWC_F32,aligned_centers_with_output_stride)612 TEST(RESIZE_BILINEAR_NHWC_F32, aligned_centers_with_output_stride) {
613   for (size_t input_size = 2; input_size <= 6; input_size += 2) {
614     for (size_t output_size = 2; output_size <= 6; output_size += 2) {
615       for (size_t channels = 15; channels <= 19; channels++) {
616         ResizeBilinearOperatorTester()
617           .input_size(output_size, output_size)
618           .output_size(output_size, output_size)
619           .channels(channels)
620           .output_pixel_stride(29)
621           .iterations(3)
622           .TestNHWCxF32();
623       }
624     }
625   }
626 }
627 
TEST(RESIZE_BILINEAR_NHWC_F32,aligned_centers_varying_batch_size)628 TEST(RESIZE_BILINEAR_NHWC_F32, aligned_centers_varying_batch_size) {
629   for (size_t input_size = 2; input_size <= 6; input_size += 2) {
630     for (size_t output_size = 2; output_size <= 6; output_size += 2) {
631       for (size_t batch_size = 2; batch_size <= 3; batch_size++) {
632         ResizeBilinearOperatorTester()
633           .batch_size(batch_size)
634           .input_size(output_size, output_size)
635           .output_size(output_size, output_size)
636           .iterations(3)
637           .TestNHWCxF32();
638       }
639     }
640   }
641 }
642 
TEST(RESIZE_BILINEAR_NHWC_F32,aligned_corners_upscale_y)643 TEST(RESIZE_BILINEAR_NHWC_F32, aligned_corners_upscale_y) {
644   for (size_t input_height = 1; input_height <= 3; input_height++) {
645     for (size_t output_height = input_height + 1; output_height < 15; output_height *= 3) {
646       ResizeBilinearOperatorTester()
647         .align_corners(true)
648         .input_size(input_height, 1)
649         .output_size(output_height, 1)
650         .channels(17)
651         .iterations(3)
652         .TestNHWCxF32();
653     }
654   }
655 }
656 
TEST(RESIZE_BILINEAR_NHWC_F32,aligned_corners_upscale_x)657 TEST(RESIZE_BILINEAR_NHWC_F32, aligned_corners_upscale_x) {
658   for (size_t input_width = 1; input_width <= 3; input_width++) {
659     for (size_t output_width = input_width + 1; output_width < 15; output_width *= 3) {
660       ResizeBilinearOperatorTester()
661         .align_corners(true)
662         .input_size(1, input_width)
663         .output_size(1, output_width)
664         .channels(17)
665         .iterations(3)
666         .TestNHWCxF32();
667     }
668   }
669 }
670 
TEST(RESIZE_BILINEAR_NHWC_F32,aligned_corners_upscale)671 TEST(RESIZE_BILINEAR_NHWC_F32, aligned_corners_upscale) {
672   for (size_t output_height = 3; output_height <= 5; output_height += 2) {
673     for (size_t output_width = 3; output_width <= 5; output_width += 2) {
674       ResizeBilinearOperatorTester()
675         .align_corners(true)
676         .input_size(2, 2)
677         .output_size(output_height, output_width)
678         .channels(17)
679         .iterations(3)
680         .TestNHWCxF32();
681     }
682   }
683 }
684 
TEST(RESIZE_BILINEAR_NHWC_F32,aligned_corners_downscale_y)685 TEST(RESIZE_BILINEAR_NHWC_F32, aligned_corners_downscale_y) {
686   for (size_t output_height = 2; output_height <= 3; output_height++) {
687     for (size_t input_height = output_height + 1; input_height < 15; input_height *= 3) {
688       ResizeBilinearOperatorTester()
689         .input_size(input_height, 1)
690         .output_size(output_height, 1)
691         .channels(17)
692         .iterations(3)
693         .TestNHWCxF32();
694     }
695   }
696 }
697 
TEST(RESIZE_BILINEAR_NHWC_F32,aligned_corners_downscale_x)698 TEST(RESIZE_BILINEAR_NHWC_F32, aligned_corners_downscale_x) {
699   for (size_t output_width = 2; output_width <= 3; output_width++) {
700     for (size_t input_width = output_width + 1; input_width < 15; input_width *= 3) {
701       ResizeBilinearOperatorTester()
702         .input_size(1, input_width)
703         .output_size(1, output_width)
704         .channels(17)
705         .iterations(3)
706         .TestNHWCxF32();
707     }
708   }
709 }
710 
TEST(RESIZE_BILINEAR_NHWC_F32,aligned_corners_downscale)711 TEST(RESIZE_BILINEAR_NHWC_F32, aligned_corners_downscale) {
712   for (size_t input_height = 3; input_height <= 5; input_height += 2) {
713     for (size_t input_width = 3; input_width <= 5; input_width += 2) {
714       ResizeBilinearOperatorTester()
715         .input_size(input_height, input_width)
716         .output_size(2, 2)
717         .channels(17)
718         .iterations(3)
719         .TestNHWCxF32();
720     }
721   }
722 }
723 
TEST(RESIZE_BILINEAR_NHWC_F32,aligned_corners_identical_size)724 TEST(RESIZE_BILINEAR_NHWC_F32, aligned_corners_identical_size) {
725   for (size_t height = 1; height < 10; height *= 3) {
726     for (size_t width = 1; width < 10; width *= 3) {
727       ResizeBilinearOperatorTester()
728         .align_corners(true)
729         .input_size(height, width)
730         .output_size(height, width)
731         .channels(17)
732         .iterations(3)
733         .TestNHWCxF32();
734     }
735   }
736 }
737 
TEST(RESIZE_BILINEAR_NHWC_F32,aligned_corners_varying_channels)738 TEST(RESIZE_BILINEAR_NHWC_F32, aligned_corners_varying_channels) {
739   for (size_t input_size = 2; input_size <= 6; input_size += 2) {
740     for (size_t output_size = 2; output_size <= 6; output_size += 2) {
741       for (size_t channels = 15; channels <= 19; channels++) {
742         ResizeBilinearOperatorTester()
743           .align_corners(true)
744           .input_size(output_size, output_size)
745           .output_size(output_size, output_size)
746           .channels(channels)
747           .iterations(3)
748           .TestNHWCxF32();
749       }
750     }
751   }
752 }
753 
TEST(RESIZE_BILINEAR_NHWC_F32,aligned_corners_with_input_stride)754 TEST(RESIZE_BILINEAR_NHWC_F32, aligned_corners_with_input_stride) {
755   for (size_t input_size = 2; input_size <= 6; input_size += 2) {
756     for (size_t output_size = 2; output_size <= 6; output_size += 2) {
757       for (size_t channels = 15; channels <= 19; channels++) {
758         ResizeBilinearOperatorTester()
759           .align_corners(true)
760           .input_size(output_size, output_size)
761           .output_size(output_size, output_size)
762           .channels(channels)
763           .input_pixel_stride(23)
764           .iterations(3)
765           .TestNHWCxF32();
766       }
767     }
768   }
769 }
770 
TEST(RESIZE_BILINEAR_NHWC_F32,aligned_corners_with_output_stride)771 TEST(RESIZE_BILINEAR_NHWC_F32, aligned_corners_with_output_stride) {
772   for (size_t input_size = 2; input_size <= 6; input_size += 2) {
773     for (size_t output_size = 2; output_size <= 6; output_size += 2) {
774       for (size_t channels = 15; channels <= 19; channels++) {
775         ResizeBilinearOperatorTester()
776           .align_corners(true)
777           .input_size(output_size, output_size)
778           .output_size(output_size, output_size)
779           .channels(channels)
780           .output_pixel_stride(29)
781           .iterations(3)
782           .TestNHWCxF32();
783       }
784     }
785   }
786 }
787 
TEST(RESIZE_BILINEAR_NHWC_F32,aligned_corners_varying_batch_size)788 TEST(RESIZE_BILINEAR_NHWC_F32, aligned_corners_varying_batch_size) {
789   for (size_t input_size = 2; input_size <= 6; input_size += 2) {
790     for (size_t output_size = 2; output_size <= 6; output_size += 2) {
791       for (size_t batch_size = 2; batch_size <= 3; batch_size++) {
792         ResizeBilinearOperatorTester()
793           .align_corners(true)
794           .batch_size(batch_size)
795           .input_size(output_size, output_size)
796           .output_size(output_size, output_size)
797           .iterations(3)
798           .TestNHWCxF32();
799       }
800     }
801   }
802 }
803 
TEST(RESIZE_BILINEAR_NHWC_F32,tf_mode_aligned_centers_upscale_y)804 TEST(RESIZE_BILINEAR_NHWC_F32, tf_mode_aligned_centers_upscale_y) {
805   for (size_t input_height = 1; input_height <= 3; input_height++) {
806     for (size_t output_height = input_height + 1; output_height < 15; output_height *= 3) {
807       ResizeBilinearOperatorTester()
808         .tf_legacy_mode(true)
809         .input_size(input_height, 1)
810         .output_size(output_height, 1)
811         .channels(17)
812         .iterations(3)
813         .TestNHWCxF32();
814     }
815   }
816 }
817 
TEST(RESIZE_BILINEAR_NHWC_F32,tf_mode_aligned_centers_upscale_x)818 TEST(RESIZE_BILINEAR_NHWC_F32, tf_mode_aligned_centers_upscale_x) {
819   for (size_t input_width = 1; input_width <= 3; input_width++) {
820     for (size_t output_width = input_width + 1; output_width < 15; output_width *= 3) {
821       ResizeBilinearOperatorTester()
822         .tf_legacy_mode(true)
823         .input_size(1, input_width)
824         .output_size(1, output_width)
825         .channels(17)
826         .iterations(3)
827         .TestNHWCxF32();
828     }
829   }
830 }
831 
TEST(RESIZE_BILINEAR_NHWC_F32,tf_mode_aligned_centers_upscale)832 TEST(RESIZE_BILINEAR_NHWC_F32, tf_mode_aligned_centers_upscale) {
833   for (size_t output_height = 3; output_height <= 5; output_height += 2) {
834     for (size_t output_width = 3; output_width <= 5; output_width += 2) {
835       ResizeBilinearOperatorTester()
836         .tf_legacy_mode(true)
837         .input_size(2, 2)
838         .output_size(output_height, output_width)
839         .channels(17)
840         .iterations(3)
841         .TestNHWCxF32();
842     }
843   }
844 }
845 
TEST(RESIZE_BILINEAR_NHWC_F32,tf_mode_aligned_centers_downscale_y)846 TEST(RESIZE_BILINEAR_NHWC_F32, tf_mode_aligned_centers_downscale_y) {
847   for (size_t output_height = 1; output_height <= 3; output_height++) {
848     for (size_t input_height = output_height + 1; input_height < 15; input_height *= 3) {
849       ResizeBilinearOperatorTester()
850         .tf_legacy_mode(true)
851         .input_size(input_height, 1)
852         .output_size(output_height, 1)
853         .channels(17)
854         .iterations(3)
855         .TestNHWCxF32();
856     }
857   }
858 }
859 
TEST(RESIZE_BILINEAR_NHWC_F32,tf_mode_aligned_centers_downscale_x)860 TEST(RESIZE_BILINEAR_NHWC_F32, tf_mode_aligned_centers_downscale_x) {
861   for (size_t output_width = 1; output_width <= 3; output_width++) {
862     for (size_t input_width = output_width + 1; input_width < 15; input_width *= 3) {
863       ResizeBilinearOperatorTester()
864         .tf_legacy_mode(true)
865         .input_size(1, input_width)
866         .output_size(1, output_width)
867         .channels(17)
868         .iterations(3)
869         .TestNHWCxF32();
870     }
871   }
872 }
873 
TEST(RESIZE_BILINEAR_NHWC_F32,tf_mode_aligned_centers_downscale)874 TEST(RESIZE_BILINEAR_NHWC_F32, tf_mode_aligned_centers_downscale) {
875   for (size_t input_height = 3; input_height <= 5; input_height += 2) {
876     for (size_t input_width = 3; input_width <= 5; input_width += 2) {
877       ResizeBilinearOperatorTester()
878         .tf_legacy_mode(true)
879         .input_size(input_height, input_width)
880         .output_size(2, 2)
881         .channels(17)
882         .iterations(3)
883         .TestNHWCxF32();
884     }
885   }
886 }
887 
TEST(RESIZE_BILINEAR_NHWC_F32,tf_mode_aligned_centers_identical_size)888 TEST(RESIZE_BILINEAR_NHWC_F32, tf_mode_aligned_centers_identical_size) {
889   for (size_t height = 1; height < 10; height *= 3) {
890     for (size_t width = 1; width < 10; width *= 3) {
891       ResizeBilinearOperatorTester()
892         .tf_legacy_mode(true)
893         .input_size(height, width)
894         .output_size(height, width)
895         .channels(17)
896         .iterations(3)
897         .TestNHWCxF32();
898     }
899   }
900 }
901 
TEST(RESIZE_BILINEAR_NHWC_F32,tf_mode_aligned_centers_varying_channels)902 TEST(RESIZE_BILINEAR_NHWC_F32, tf_mode_aligned_centers_varying_channels) {
903   for (size_t input_size = 2; input_size <= 6; input_size += 2) {
904     for (size_t output_size = 2; output_size <= 6; output_size += 2) {
905       for (size_t channels = 15; channels <= 19; channels++) {
906         ResizeBilinearOperatorTester()
907           .tf_legacy_mode(true)
908           .input_size(output_size, output_size)
909           .output_size(output_size, output_size)
910           .channels(channels)
911           .iterations(3)
912           .TestNHWCxF32();
913       }
914     }
915   }
916 }
917 
TEST(RESIZE_BILINEAR_NHWC_F32,tf_mode_aligned_centers_with_input_stride)918 TEST(RESIZE_BILINEAR_NHWC_F32, tf_mode_aligned_centers_with_input_stride) {
919   for (size_t input_size = 2; input_size <= 6; input_size += 2) {
920     for (size_t output_size = 2; output_size <= 6; output_size += 2) {
921       for (size_t channels = 15; channels <= 19; channels++) {
922         ResizeBilinearOperatorTester()
923           .tf_legacy_mode(true)
924           .input_size(output_size, output_size)
925           .output_size(output_size, output_size)
926           .channels(channels)
927           .input_pixel_stride(23)
928           .iterations(3)
929           .TestNHWCxF32();
930       }
931     }
932   }
933 }
934 
TEST(RESIZE_BILINEAR_NHWC_F32,tf_mode_aligned_centers_with_output_stride)935 TEST(RESIZE_BILINEAR_NHWC_F32, tf_mode_aligned_centers_with_output_stride) {
936   for (size_t input_size = 2; input_size <= 6; input_size += 2) {
937     for (size_t output_size = 2; output_size <= 6; output_size += 2) {
938       for (size_t channels = 15; channels <= 19; channels++) {
939         ResizeBilinearOperatorTester()
940           .tf_legacy_mode(true)
941           .input_size(output_size, output_size)
942           .output_size(output_size, output_size)
943           .channels(channels)
944           .output_pixel_stride(29)
945           .iterations(3)
946           .TestNHWCxF32();
947       }
948     }
949   }
950 }
951 
TEST(RESIZE_BILINEAR_NHWC_F32,tf_mode_aligned_centers_varying_batch_size)952 TEST(RESIZE_BILINEAR_NHWC_F32, tf_mode_aligned_centers_varying_batch_size) {
953   for (size_t input_size = 2; input_size <= 6; input_size += 2) {
954     for (size_t output_size = 2; output_size <= 6; output_size += 2) {
955       for (size_t batch_size = 2; batch_size <= 3; batch_size++) {
956         ResizeBilinearOperatorTester()
957           .tf_legacy_mode(true)
958           .batch_size(batch_size)
959           .input_size(output_size, output_size)
960           .output_size(output_size, output_size)
961           .iterations(3)
962           .TestNHWCxF32();
963       }
964     }
965   }
966 }
967 
968 
TEST(RESIZE_BILINEAR_NHWC_S8,aligned_centers_upscale_y)969 TEST(RESIZE_BILINEAR_NHWC_S8, aligned_centers_upscale_y) {
970   for (size_t input_height = 1; input_height <= 3; input_height++) {
971     for (size_t output_height = input_height + 1; output_height < 15; output_height *= 3) {
972       ResizeBilinearOperatorTester()
973         .input_size(input_height, 1)
974         .output_size(output_height, 1)
975         .channels(17)
976         .iterations(3)
977         .TestNHWCxS8();
978     }
979   }
980 }
981 
TEST(RESIZE_BILINEAR_NHWC_S8,aligned_centers_upscale_x)982 TEST(RESIZE_BILINEAR_NHWC_S8, aligned_centers_upscale_x) {
983   for (size_t input_width = 1; input_width <= 3; input_width++) {
984     for (size_t output_width = input_width + 1; output_width < 15; output_width *= 3) {
985       ResizeBilinearOperatorTester()
986         .input_size(1, input_width)
987         .output_size(1, output_width)
988         .channels(17)
989         .iterations(3)
990         .TestNHWCxS8();
991     }
992   }
993 }
994 
TEST(RESIZE_BILINEAR_NHWC_S8,aligned_centers_upscale)995 TEST(RESIZE_BILINEAR_NHWC_S8, aligned_centers_upscale) {
996   for (size_t output_height = 3; output_height <= 5; output_height += 2) {
997     for (size_t output_width = 3; output_width <= 5; output_width += 2) {
998       ResizeBilinearOperatorTester()
999         .input_size(2, 2)
1000         .output_size(output_height, output_width)
1001         .channels(17)
1002         .iterations(3)
1003         .TestNHWCxS8();
1004     }
1005   }
1006 }
1007 
TEST(RESIZE_BILINEAR_NHWC_S8,aligned_centers_downscale_y)1008 TEST(RESIZE_BILINEAR_NHWC_S8, aligned_centers_downscale_y) {
1009   for (size_t output_height = 1; output_height <= 3; output_height++) {
1010     for (size_t input_height = output_height + 1; input_height < 15; input_height *= 3) {
1011       ResizeBilinearOperatorTester()
1012         .input_size(input_height, 1)
1013         .output_size(output_height, 1)
1014         .channels(17)
1015         .iterations(3)
1016         .TestNHWCxS8();
1017     }
1018   }
1019 }
1020 
TEST(RESIZE_BILINEAR_NHWC_S8,aligned_centers_downscale_x)1021 TEST(RESIZE_BILINEAR_NHWC_S8, aligned_centers_downscale_x) {
1022   for (size_t output_width = 1; output_width <= 3; output_width++) {
1023     for (size_t input_width = output_width + 1; input_width < 15; input_width *= 3) {
1024       ResizeBilinearOperatorTester()
1025         .input_size(1, input_width)
1026         .output_size(1, output_width)
1027         .channels(17)
1028         .iterations(3)
1029         .TestNHWCxS8();
1030     }
1031   }
1032 }
1033 
TEST(RESIZE_BILINEAR_NHWC_S8,aligned_centers_downscale)1034 TEST(RESIZE_BILINEAR_NHWC_S8, aligned_centers_downscale) {
1035   for (size_t input_height = 3; input_height <= 5; input_height += 2) {
1036     for (size_t input_width = 3; input_width <= 5; input_width += 2) {
1037       ResizeBilinearOperatorTester()
1038         .input_size(input_height, input_width)
1039         .output_size(2, 2)
1040         .channels(17)
1041         .iterations(3)
1042         .TestNHWCxS8();
1043     }
1044   }
1045 }
1046 
TEST(RESIZE_BILINEAR_NHWC_S8,aligned_centers_identical_size)1047 TEST(RESIZE_BILINEAR_NHWC_S8, aligned_centers_identical_size) {
1048   for (size_t height = 1; height < 10; height *= 3) {
1049     for (size_t width = 1; width < 10; width *= 3) {
1050       ResizeBilinearOperatorTester()
1051         .input_size(height, width)
1052         .output_size(height, width)
1053         .channels(17)
1054         .iterations(3)
1055         .TestNHWCxS8();
1056     }
1057   }
1058 }
1059 
TEST(RESIZE_BILINEAR_NHWC_S8,aligned_centers_varying_channels)1060 TEST(RESIZE_BILINEAR_NHWC_S8, aligned_centers_varying_channels) {
1061   for (size_t input_size = 2; input_size <= 6; input_size += 2) {
1062     for (size_t output_size = 2; output_size <= 6; output_size += 2) {
1063       for (size_t channels = 15; channels <= 19; channels++) {
1064         ResizeBilinearOperatorTester()
1065           .input_size(output_size, output_size)
1066           .output_size(output_size, output_size)
1067           .channels(channels)
1068           .iterations(3)
1069           .TestNHWCxS8();
1070       }
1071     }
1072   }
1073 }
1074 
TEST(RESIZE_BILINEAR_NHWC_S8,aligned_centers_with_input_stride)1075 TEST(RESIZE_BILINEAR_NHWC_S8, aligned_centers_with_input_stride) {
1076   for (size_t input_size = 2; input_size <= 6; input_size += 2) {
1077     for (size_t output_size = 2; output_size <= 6; output_size += 2) {
1078       for (size_t channels = 15; channels <= 19; channels++) {
1079         ResizeBilinearOperatorTester()
1080           .input_size(output_size, output_size)
1081           .output_size(output_size, output_size)
1082           .channels(channels)
1083           .input_pixel_stride(23)
1084           .iterations(3)
1085           .TestNHWCxS8();
1086       }
1087     }
1088   }
1089 }
1090 
TEST(RESIZE_BILINEAR_NHWC_S8,aligned_centers_with_output_stride)1091 TEST(RESIZE_BILINEAR_NHWC_S8, aligned_centers_with_output_stride) {
1092   for (size_t input_size = 2; input_size <= 6; input_size += 2) {
1093     for (size_t output_size = 2; output_size <= 6; output_size += 2) {
1094       for (size_t channels = 15; channels <= 19; channels++) {
1095         ResizeBilinearOperatorTester()
1096           .input_size(output_size, output_size)
1097           .output_size(output_size, output_size)
1098           .channels(channels)
1099           .output_pixel_stride(29)
1100           .iterations(3)
1101           .TestNHWCxS8();
1102       }
1103     }
1104   }
1105 }
1106 
TEST(RESIZE_BILINEAR_NHWC_S8,aligned_centers_varying_batch_size)1107 TEST(RESIZE_BILINEAR_NHWC_S8, aligned_centers_varying_batch_size) {
1108   for (size_t input_size = 2; input_size <= 6; input_size += 2) {
1109     for (size_t output_size = 2; output_size <= 6; output_size += 2) {
1110       for (size_t batch_size = 2; batch_size <= 3; batch_size++) {
1111         ResizeBilinearOperatorTester()
1112           .batch_size(batch_size)
1113           .input_size(output_size, output_size)
1114           .output_size(output_size, output_size)
1115           .iterations(3)
1116           .TestNHWCxS8();
1117       }
1118     }
1119   }
1120 }
1121 
TEST(RESIZE_BILINEAR_NHWC_S8,aligned_corners_upscale_y)1122 TEST(RESIZE_BILINEAR_NHWC_S8, aligned_corners_upscale_y) {
1123   for (size_t input_height = 1; input_height <= 3; input_height++) {
1124     for (size_t output_height = input_height + 1; output_height < 15; output_height *= 3) {
1125       ResizeBilinearOperatorTester()
1126         .align_corners(true)
1127         .input_size(input_height, 1)
1128         .output_size(output_height, 1)
1129         .channels(17)
1130         .iterations(3)
1131         .TestNHWCxS8();
1132     }
1133   }
1134 }
1135 
TEST(RESIZE_BILINEAR_NHWC_S8,aligned_corners_upscale_x)1136 TEST(RESIZE_BILINEAR_NHWC_S8, aligned_corners_upscale_x) {
1137   for (size_t input_width = 1; input_width <= 3; input_width++) {
1138     for (size_t output_width = input_width + 1; output_width < 15; output_width *= 3) {
1139       ResizeBilinearOperatorTester()
1140         .align_corners(true)
1141         .input_size(1, input_width)
1142         .output_size(1, output_width)
1143         .channels(17)
1144         .iterations(3)
1145         .TestNHWCxS8();
1146     }
1147   }
1148 }
1149 
TEST(RESIZE_BILINEAR_NHWC_S8,aligned_corners_upscale)1150 TEST(RESIZE_BILINEAR_NHWC_S8, aligned_corners_upscale) {
1151   for (size_t output_height = 3; output_height <= 5; output_height += 2) {
1152     for (size_t output_width = 3; output_width <= 5; output_width += 2) {
1153       ResizeBilinearOperatorTester()
1154         .align_corners(true)
1155         .input_size(2, 2)
1156         .output_size(output_height, output_width)
1157         .channels(17)
1158         .iterations(3)
1159         .TestNHWCxS8();
1160     }
1161   }
1162 }
1163 
TEST(RESIZE_BILINEAR_NHWC_S8,aligned_corners_downscale_y)1164 TEST(RESIZE_BILINEAR_NHWC_S8, aligned_corners_downscale_y) {
1165   for (size_t output_height = 2; output_height <= 3; output_height++) {
1166     for (size_t input_height = output_height + 1; input_height < 15; input_height *= 3) {
1167       ResizeBilinearOperatorTester()
1168         .input_size(input_height, 1)
1169         .output_size(output_height, 1)
1170         .channels(17)
1171         .iterations(3)
1172         .TestNHWCxS8();
1173     }
1174   }
1175 }
1176 
TEST(RESIZE_BILINEAR_NHWC_S8,aligned_corners_downscale_x)1177 TEST(RESIZE_BILINEAR_NHWC_S8, aligned_corners_downscale_x) {
1178   for (size_t output_width = 2; output_width <= 3; output_width++) {
1179     for (size_t input_width = output_width + 1; input_width < 15; input_width *= 3) {
1180       ResizeBilinearOperatorTester()
1181         .input_size(1, input_width)
1182         .output_size(1, output_width)
1183         .channels(17)
1184         .iterations(3)
1185         .TestNHWCxS8();
1186     }
1187   }
1188 }
1189 
TEST(RESIZE_BILINEAR_NHWC_S8,aligned_corners_downscale)1190 TEST(RESIZE_BILINEAR_NHWC_S8, aligned_corners_downscale) {
1191   for (size_t input_height = 3; input_height <= 5; input_height += 2) {
1192     for (size_t input_width = 3; input_width <= 5; input_width += 2) {
1193       ResizeBilinearOperatorTester()
1194         .input_size(input_height, input_width)
1195         .output_size(2, 2)
1196         .channels(17)
1197         .iterations(3)
1198         .TestNHWCxS8();
1199     }
1200   }
1201 }
1202 
TEST(RESIZE_BILINEAR_NHWC_S8,aligned_corners_identical_size)1203 TEST(RESIZE_BILINEAR_NHWC_S8, aligned_corners_identical_size) {
1204   for (size_t height = 1; height < 10; height *= 3) {
1205     for (size_t width = 1; width < 10; width *= 3) {
1206       ResizeBilinearOperatorTester()
1207         .align_corners(true)
1208         .input_size(height, width)
1209         .output_size(height, width)
1210         .channels(17)
1211         .iterations(3)
1212         .TestNHWCxS8();
1213     }
1214   }
1215 }
1216 
TEST(RESIZE_BILINEAR_NHWC_S8,aligned_corners_varying_channels)1217 TEST(RESIZE_BILINEAR_NHWC_S8, aligned_corners_varying_channels) {
1218   for (size_t input_size = 2; input_size <= 6; input_size += 2) {
1219     for (size_t output_size = 2; output_size <= 6; output_size += 2) {
1220       for (size_t channels = 15; channels <= 19; channels++) {
1221         ResizeBilinearOperatorTester()
1222           .align_corners(true)
1223           .input_size(output_size, output_size)
1224           .output_size(output_size, output_size)
1225           .channels(channels)
1226           .iterations(3)
1227           .TestNHWCxS8();
1228       }
1229     }
1230   }
1231 }
1232 
TEST(RESIZE_BILINEAR_NHWC_S8,aligned_corners_with_input_stride)1233 TEST(RESIZE_BILINEAR_NHWC_S8, aligned_corners_with_input_stride) {
1234   for (size_t input_size = 2; input_size <= 6; input_size += 2) {
1235     for (size_t output_size = 2; output_size <= 6; output_size += 2) {
1236       for (size_t channels = 15; channels <= 19; channels++) {
1237         ResizeBilinearOperatorTester()
1238           .align_corners(true)
1239           .input_size(output_size, output_size)
1240           .output_size(output_size, output_size)
1241           .channels(channels)
1242           .input_pixel_stride(23)
1243           .iterations(3)
1244           .TestNHWCxS8();
1245       }
1246     }
1247   }
1248 }
1249 
TEST(RESIZE_BILINEAR_NHWC_S8,aligned_corners_with_output_stride)1250 TEST(RESIZE_BILINEAR_NHWC_S8, aligned_corners_with_output_stride) {
1251   for (size_t input_size = 2; input_size <= 6; input_size += 2) {
1252     for (size_t output_size = 2; output_size <= 6; output_size += 2) {
1253       for (size_t channels = 15; channels <= 19; channels++) {
1254         ResizeBilinearOperatorTester()
1255           .align_corners(true)
1256           .input_size(output_size, output_size)
1257           .output_size(output_size, output_size)
1258           .channels(channels)
1259           .output_pixel_stride(29)
1260           .iterations(3)
1261           .TestNHWCxS8();
1262       }
1263     }
1264   }
1265 }
1266 
TEST(RESIZE_BILINEAR_NHWC_S8,aligned_corners_varying_batch_size)1267 TEST(RESIZE_BILINEAR_NHWC_S8, aligned_corners_varying_batch_size) {
1268   for (size_t input_size = 2; input_size <= 6; input_size += 2) {
1269     for (size_t output_size = 2; output_size <= 6; output_size += 2) {
1270       for (size_t batch_size = 2; batch_size <= 3; batch_size++) {
1271         ResizeBilinearOperatorTester()
1272           .align_corners(true)
1273           .batch_size(batch_size)
1274           .input_size(output_size, output_size)
1275           .output_size(output_size, output_size)
1276           .iterations(3)
1277           .TestNHWCxS8();
1278       }
1279     }
1280   }
1281 }
1282 
TEST(RESIZE_BILINEAR_NHWC_S8,tf_mode_aligned_centers_upscale_y)1283 TEST(RESIZE_BILINEAR_NHWC_S8, tf_mode_aligned_centers_upscale_y) {
1284   for (size_t input_height = 1; input_height <= 3; input_height++) {
1285     for (size_t output_height = input_height + 1; output_height < 15; output_height *= 3) {
1286       ResizeBilinearOperatorTester()
1287         .tf_legacy_mode(true)
1288         .input_size(input_height, 1)
1289         .output_size(output_height, 1)
1290         .channels(17)
1291         .iterations(3)
1292         .TestNHWCxS8();
1293     }
1294   }
1295 }
1296 
TEST(RESIZE_BILINEAR_NHWC_S8,tf_mode_aligned_centers_upscale_x)1297 TEST(RESIZE_BILINEAR_NHWC_S8, tf_mode_aligned_centers_upscale_x) {
1298   for (size_t input_width = 1; input_width <= 3; input_width++) {
1299     for (size_t output_width = input_width + 1; output_width < 15; output_width *= 3) {
1300       ResizeBilinearOperatorTester()
1301         .tf_legacy_mode(true)
1302         .input_size(1, input_width)
1303         .output_size(1, output_width)
1304         .channels(17)
1305         .iterations(3)
1306         .TestNHWCxS8();
1307     }
1308   }
1309 }
1310 
TEST(RESIZE_BILINEAR_NHWC_S8,tf_mode_aligned_centers_upscale)1311 TEST(RESIZE_BILINEAR_NHWC_S8, tf_mode_aligned_centers_upscale) {
1312   for (size_t output_height = 3; output_height <= 5; output_height += 2) {
1313     for (size_t output_width = 3; output_width <= 5; output_width += 2) {
1314       ResizeBilinearOperatorTester()
1315         .tf_legacy_mode(true)
1316         .input_size(2, 2)
1317         .output_size(output_height, output_width)
1318         .channels(17)
1319         .iterations(3)
1320         .TestNHWCxS8();
1321     }
1322   }
1323 }
1324 
TEST(RESIZE_BILINEAR_NHWC_S8,tf_mode_aligned_centers_downscale_y)1325 TEST(RESIZE_BILINEAR_NHWC_S8, tf_mode_aligned_centers_downscale_y) {
1326   for (size_t output_height = 1; output_height <= 3; output_height++) {
1327     for (size_t input_height = output_height + 1; input_height < 15; input_height *= 3) {
1328       ResizeBilinearOperatorTester()
1329         .tf_legacy_mode(true)
1330         .input_size(input_height, 1)
1331         .output_size(output_height, 1)
1332         .channels(17)
1333         .iterations(3)
1334         .TestNHWCxS8();
1335     }
1336   }
1337 }
1338 
TEST(RESIZE_BILINEAR_NHWC_S8,tf_mode_aligned_centers_downscale_x)1339 TEST(RESIZE_BILINEAR_NHWC_S8, tf_mode_aligned_centers_downscale_x) {
1340   for (size_t output_width = 1; output_width <= 3; output_width++) {
1341     for (size_t input_width = output_width + 1; input_width < 15; input_width *= 3) {
1342       ResizeBilinearOperatorTester()
1343         .tf_legacy_mode(true)
1344         .input_size(1, input_width)
1345         .output_size(1, output_width)
1346         .channels(17)
1347         .iterations(3)
1348         .TestNHWCxS8();
1349     }
1350   }
1351 }
1352 
TEST(RESIZE_BILINEAR_NHWC_S8,tf_mode_aligned_centers_downscale)1353 TEST(RESIZE_BILINEAR_NHWC_S8, tf_mode_aligned_centers_downscale) {
1354   for (size_t input_height = 3; input_height <= 5; input_height += 2) {
1355     for (size_t input_width = 3; input_width <= 5; input_width += 2) {
1356       ResizeBilinearOperatorTester()
1357         .tf_legacy_mode(true)
1358         .input_size(input_height, input_width)
1359         .output_size(2, 2)
1360         .channels(17)
1361         .iterations(3)
1362         .TestNHWCxS8();
1363     }
1364   }
1365 }
1366 
TEST(RESIZE_BILINEAR_NHWC_S8,tf_mode_aligned_centers_identical_size)1367 TEST(RESIZE_BILINEAR_NHWC_S8, tf_mode_aligned_centers_identical_size) {
1368   for (size_t height = 1; height < 10; height *= 3) {
1369     for (size_t width = 1; width < 10; width *= 3) {
1370       ResizeBilinearOperatorTester()
1371         .tf_legacy_mode(true)
1372         .input_size(height, width)
1373         .output_size(height, width)
1374         .channels(17)
1375         .iterations(3)
1376         .TestNHWCxS8();
1377     }
1378   }
1379 }
1380 
TEST(RESIZE_BILINEAR_NHWC_S8,tf_mode_aligned_centers_varying_channels)1381 TEST(RESIZE_BILINEAR_NHWC_S8, tf_mode_aligned_centers_varying_channels) {
1382   for (size_t input_size = 2; input_size <= 6; input_size += 2) {
1383     for (size_t output_size = 2; output_size <= 6; output_size += 2) {
1384       for (size_t channels = 15; channels <= 19; channels++) {
1385         ResizeBilinearOperatorTester()
1386           .tf_legacy_mode(true)
1387           .input_size(output_size, output_size)
1388           .output_size(output_size, output_size)
1389           .channels(channels)
1390           .iterations(3)
1391           .TestNHWCxS8();
1392       }
1393     }
1394   }
1395 }
1396 
TEST(RESIZE_BILINEAR_NHWC_S8,tf_mode_aligned_centers_with_input_stride)1397 TEST(RESIZE_BILINEAR_NHWC_S8, tf_mode_aligned_centers_with_input_stride) {
1398   for (size_t input_size = 2; input_size <= 6; input_size += 2) {
1399     for (size_t output_size = 2; output_size <= 6; output_size += 2) {
1400       for (size_t channels = 15; channels <= 19; channels++) {
1401         ResizeBilinearOperatorTester()
1402           .tf_legacy_mode(true)
1403           .input_size(output_size, output_size)
1404           .output_size(output_size, output_size)
1405           .channels(channels)
1406           .input_pixel_stride(23)
1407           .iterations(3)
1408           .TestNHWCxS8();
1409       }
1410     }
1411   }
1412 }
1413 
TEST(RESIZE_BILINEAR_NHWC_S8,tf_mode_aligned_centers_with_output_stride)1414 TEST(RESIZE_BILINEAR_NHWC_S8, tf_mode_aligned_centers_with_output_stride) {
1415   for (size_t input_size = 2; input_size <= 6; input_size += 2) {
1416     for (size_t output_size = 2; output_size <= 6; output_size += 2) {
1417       for (size_t channels = 15; channels <= 19; channels++) {
1418         ResizeBilinearOperatorTester()
1419           .tf_legacy_mode(true)
1420           .input_size(output_size, output_size)
1421           .output_size(output_size, output_size)
1422           .channels(channels)
1423           .output_pixel_stride(29)
1424           .iterations(3)
1425           .TestNHWCxS8();
1426       }
1427     }
1428   }
1429 }
1430 
TEST(RESIZE_BILINEAR_NHWC_S8,tf_mode_aligned_centers_varying_batch_size)1431 TEST(RESIZE_BILINEAR_NHWC_S8, tf_mode_aligned_centers_varying_batch_size) {
1432   for (size_t input_size = 2; input_size <= 6; input_size += 2) {
1433     for (size_t output_size = 2; output_size <= 6; output_size += 2) {
1434       for (size_t batch_size = 2; batch_size <= 3; batch_size++) {
1435         ResizeBilinearOperatorTester()
1436           .tf_legacy_mode(true)
1437           .batch_size(batch_size)
1438           .input_size(output_size, output_size)
1439           .output_size(output_size, output_size)
1440           .iterations(3)
1441           .TestNHWCxS8();
1442       }
1443     }
1444   }
1445 }
1446 
1447 
TEST(RESIZE_BILINEAR_NHWC_U8,aligned_centers_upscale_y)1448 TEST(RESIZE_BILINEAR_NHWC_U8, aligned_centers_upscale_y) {
1449   for (size_t input_height = 1; input_height <= 3; input_height++) {
1450     for (size_t output_height = input_height + 1; output_height < 15; output_height *= 3) {
1451       ResizeBilinearOperatorTester()
1452         .input_size(input_height, 1)
1453         .output_size(output_height, 1)
1454         .channels(17)
1455         .iterations(3)
1456         .TestNHWCxU8();
1457     }
1458   }
1459 }
1460 
TEST(RESIZE_BILINEAR_NHWC_U8,aligned_centers_upscale_x)1461 TEST(RESIZE_BILINEAR_NHWC_U8, aligned_centers_upscale_x) {
1462   for (size_t input_width = 1; input_width <= 3; input_width++) {
1463     for (size_t output_width = input_width + 1; output_width < 15; output_width *= 3) {
1464       ResizeBilinearOperatorTester()
1465         .input_size(1, input_width)
1466         .output_size(1, output_width)
1467         .channels(17)
1468         .iterations(3)
1469         .TestNHWCxU8();
1470     }
1471   }
1472 }
1473 
TEST(RESIZE_BILINEAR_NHWC_U8,aligned_centers_upscale)1474 TEST(RESIZE_BILINEAR_NHWC_U8, aligned_centers_upscale) {
1475   for (size_t output_height = 3; output_height <= 5; output_height += 2) {
1476     for (size_t output_width = 3; output_width <= 5; output_width += 2) {
1477       ResizeBilinearOperatorTester()
1478         .input_size(2, 2)
1479         .output_size(output_height, output_width)
1480         .channels(17)
1481         .iterations(3)
1482         .TestNHWCxU8();
1483     }
1484   }
1485 }
1486 
TEST(RESIZE_BILINEAR_NHWC_U8,aligned_centers_downscale_y)1487 TEST(RESIZE_BILINEAR_NHWC_U8, aligned_centers_downscale_y) {
1488   for (size_t output_height = 1; output_height <= 3; output_height++) {
1489     for (size_t input_height = output_height + 1; input_height < 15; input_height *= 3) {
1490       ResizeBilinearOperatorTester()
1491         .input_size(input_height, 1)
1492         .output_size(output_height, 1)
1493         .channels(17)
1494         .iterations(3)
1495         .TestNHWCxU8();
1496     }
1497   }
1498 }
1499 
TEST(RESIZE_BILINEAR_NHWC_U8,aligned_centers_downscale_x)1500 TEST(RESIZE_BILINEAR_NHWC_U8, aligned_centers_downscale_x) {
1501   for (size_t output_width = 1; output_width <= 3; output_width++) {
1502     for (size_t input_width = output_width + 1; input_width < 15; input_width *= 3) {
1503       ResizeBilinearOperatorTester()
1504         .input_size(1, input_width)
1505         .output_size(1, output_width)
1506         .channels(17)
1507         .iterations(3)
1508         .TestNHWCxU8();
1509     }
1510   }
1511 }
1512 
TEST(RESIZE_BILINEAR_NHWC_U8,aligned_centers_downscale)1513 TEST(RESIZE_BILINEAR_NHWC_U8, aligned_centers_downscale) {
1514   for (size_t input_height = 3; input_height <= 5; input_height += 2) {
1515     for (size_t input_width = 3; input_width <= 5; input_width += 2) {
1516       ResizeBilinearOperatorTester()
1517         .input_size(input_height, input_width)
1518         .output_size(2, 2)
1519         .channels(17)
1520         .iterations(3)
1521         .TestNHWCxU8();
1522     }
1523   }
1524 }
1525 
TEST(RESIZE_BILINEAR_NHWC_U8,aligned_centers_identical_size)1526 TEST(RESIZE_BILINEAR_NHWC_U8, aligned_centers_identical_size) {
1527   for (size_t height = 1; height < 10; height *= 3) {
1528     for (size_t width = 1; width < 10; width *= 3) {
1529       ResizeBilinearOperatorTester()
1530         .input_size(height, width)
1531         .output_size(height, width)
1532         .channels(17)
1533         .iterations(3)
1534         .TestNHWCxU8();
1535     }
1536   }
1537 }
1538 
TEST(RESIZE_BILINEAR_NHWC_U8,aligned_centers_varying_channels)1539 TEST(RESIZE_BILINEAR_NHWC_U8, aligned_centers_varying_channels) {
1540   for (size_t input_size = 2; input_size <= 6; input_size += 2) {
1541     for (size_t output_size = 2; output_size <= 6; output_size += 2) {
1542       for (size_t channels = 15; channels <= 19; channels++) {
1543         ResizeBilinearOperatorTester()
1544           .input_size(output_size, output_size)
1545           .output_size(output_size, output_size)
1546           .channels(channels)
1547           .iterations(3)
1548           .TestNHWCxU8();
1549       }
1550     }
1551   }
1552 }
1553 
TEST(RESIZE_BILINEAR_NHWC_U8,aligned_centers_with_input_stride)1554 TEST(RESIZE_BILINEAR_NHWC_U8, aligned_centers_with_input_stride) {
1555   for (size_t input_size = 2; input_size <= 6; input_size += 2) {
1556     for (size_t output_size = 2; output_size <= 6; output_size += 2) {
1557       for (size_t channels = 15; channels <= 19; channels++) {
1558         ResizeBilinearOperatorTester()
1559           .input_size(output_size, output_size)
1560           .output_size(output_size, output_size)
1561           .channels(channels)
1562           .input_pixel_stride(23)
1563           .iterations(3)
1564           .TestNHWCxU8();
1565       }
1566     }
1567   }
1568 }
1569 
TEST(RESIZE_BILINEAR_NHWC_U8,aligned_centers_with_output_stride)1570 TEST(RESIZE_BILINEAR_NHWC_U8, aligned_centers_with_output_stride) {
1571   for (size_t input_size = 2; input_size <= 6; input_size += 2) {
1572     for (size_t output_size = 2; output_size <= 6; output_size += 2) {
1573       for (size_t channels = 15; channels <= 19; channels++) {
1574         ResizeBilinearOperatorTester()
1575           .input_size(output_size, output_size)
1576           .output_size(output_size, output_size)
1577           .channels(channels)
1578           .output_pixel_stride(29)
1579           .iterations(3)
1580           .TestNHWCxU8();
1581       }
1582     }
1583   }
1584 }
1585 
TEST(RESIZE_BILINEAR_NHWC_U8,aligned_centers_varying_batch_size)1586 TEST(RESIZE_BILINEAR_NHWC_U8, aligned_centers_varying_batch_size) {
1587   for (size_t input_size = 2; input_size <= 6; input_size += 2) {
1588     for (size_t output_size = 2; output_size <= 6; output_size += 2) {
1589       for (size_t batch_size = 2; batch_size <= 3; batch_size++) {
1590         ResizeBilinearOperatorTester()
1591           .batch_size(batch_size)
1592           .input_size(output_size, output_size)
1593           .output_size(output_size, output_size)
1594           .iterations(3)
1595           .TestNHWCxU8();
1596       }
1597     }
1598   }
1599 }
1600 
TEST(RESIZE_BILINEAR_NHWC_U8,aligned_corners_upscale_y)1601 TEST(RESIZE_BILINEAR_NHWC_U8, aligned_corners_upscale_y) {
1602   for (size_t input_height = 1; input_height <= 3; input_height++) {
1603     for (size_t output_height = input_height + 1; output_height < 15; output_height *= 3) {
1604       ResizeBilinearOperatorTester()
1605         .align_corners(true)
1606         .input_size(input_height, 1)
1607         .output_size(output_height, 1)
1608         .channels(17)
1609         .iterations(3)
1610         .TestNHWCxU8();
1611     }
1612   }
1613 }
1614 
TEST(RESIZE_BILINEAR_NHWC_U8,aligned_corners_upscale_x)1615 TEST(RESIZE_BILINEAR_NHWC_U8, aligned_corners_upscale_x) {
1616   for (size_t input_width = 1; input_width <= 3; input_width++) {
1617     for (size_t output_width = input_width + 1; output_width < 15; output_width *= 3) {
1618       ResizeBilinearOperatorTester()
1619         .align_corners(true)
1620         .input_size(1, input_width)
1621         .output_size(1, output_width)
1622         .channels(17)
1623         .iterations(3)
1624         .TestNHWCxU8();
1625     }
1626   }
1627 }
1628 
TEST(RESIZE_BILINEAR_NHWC_U8,aligned_corners_upscale)1629 TEST(RESIZE_BILINEAR_NHWC_U8, aligned_corners_upscale) {
1630   for (size_t output_height = 3; output_height <= 5; output_height += 2) {
1631     for (size_t output_width = 3; output_width <= 5; output_width += 2) {
1632       ResizeBilinearOperatorTester()
1633         .align_corners(true)
1634         .input_size(2, 2)
1635         .output_size(output_height, output_width)
1636         .channels(17)
1637         .iterations(3)
1638         .TestNHWCxU8();
1639     }
1640   }
1641 }
1642 
TEST(RESIZE_BILINEAR_NHWC_U8,aligned_corners_downscale_y)1643 TEST(RESIZE_BILINEAR_NHWC_U8, aligned_corners_downscale_y) {
1644   for (size_t output_height = 2; output_height <= 3; output_height++) {
1645     for (size_t input_height = output_height + 1; input_height < 15; input_height *= 3) {
1646       ResizeBilinearOperatorTester()
1647         .input_size(input_height, 1)
1648         .output_size(output_height, 1)
1649         .channels(17)
1650         .iterations(3)
1651         .TestNHWCxU8();
1652     }
1653   }
1654 }
1655 
TEST(RESIZE_BILINEAR_NHWC_U8,aligned_corners_downscale_x)1656 TEST(RESIZE_BILINEAR_NHWC_U8, aligned_corners_downscale_x) {
1657   for (size_t output_width = 2; output_width <= 3; output_width++) {
1658     for (size_t input_width = output_width + 1; input_width < 15; input_width *= 3) {
1659       ResizeBilinearOperatorTester()
1660         .input_size(1, input_width)
1661         .output_size(1, output_width)
1662         .channels(17)
1663         .iterations(3)
1664         .TestNHWCxU8();
1665     }
1666   }
1667 }
1668 
TEST(RESIZE_BILINEAR_NHWC_U8,aligned_corners_downscale)1669 TEST(RESIZE_BILINEAR_NHWC_U8, aligned_corners_downscale) {
1670   for (size_t input_height = 3; input_height <= 5; input_height += 2) {
1671     for (size_t input_width = 3; input_width <= 5; input_width += 2) {
1672       ResizeBilinearOperatorTester()
1673         .input_size(input_height, input_width)
1674         .output_size(2, 2)
1675         .channels(17)
1676         .iterations(3)
1677         .TestNHWCxU8();
1678     }
1679   }
1680 }
1681 
TEST(RESIZE_BILINEAR_NHWC_U8,aligned_corners_identical_size)1682 TEST(RESIZE_BILINEAR_NHWC_U8, aligned_corners_identical_size) {
1683   for (size_t height = 1; height < 10; height *= 3) {
1684     for (size_t width = 1; width < 10; width *= 3) {
1685       ResizeBilinearOperatorTester()
1686         .align_corners(true)
1687         .input_size(height, width)
1688         .output_size(height, width)
1689         .channels(17)
1690         .iterations(3)
1691         .TestNHWCxU8();
1692     }
1693   }
1694 }
1695 
TEST(RESIZE_BILINEAR_NHWC_U8,aligned_corners_varying_channels)1696 TEST(RESIZE_BILINEAR_NHWC_U8, aligned_corners_varying_channels) {
1697   for (size_t input_size = 2; input_size <= 6; input_size += 2) {
1698     for (size_t output_size = 2; output_size <= 6; output_size += 2) {
1699       for (size_t channels = 15; channels <= 19; channels++) {
1700         ResizeBilinearOperatorTester()
1701           .align_corners(true)
1702           .input_size(output_size, output_size)
1703           .output_size(output_size, output_size)
1704           .channels(channels)
1705           .iterations(3)
1706           .TestNHWCxU8();
1707       }
1708     }
1709   }
1710 }
1711 
TEST(RESIZE_BILINEAR_NHWC_U8,aligned_corners_with_input_stride)1712 TEST(RESIZE_BILINEAR_NHWC_U8, aligned_corners_with_input_stride) {
1713   for (size_t input_size = 2; input_size <= 6; input_size += 2) {
1714     for (size_t output_size = 2; output_size <= 6; output_size += 2) {
1715       for (size_t channels = 15; channels <= 19; channels++) {
1716         ResizeBilinearOperatorTester()
1717           .align_corners(true)
1718           .input_size(output_size, output_size)
1719           .output_size(output_size, output_size)
1720           .channels(channels)
1721           .input_pixel_stride(23)
1722           .iterations(3)
1723           .TestNHWCxU8();
1724       }
1725     }
1726   }
1727 }
1728 
TEST(RESIZE_BILINEAR_NHWC_U8,aligned_corners_with_output_stride)1729 TEST(RESIZE_BILINEAR_NHWC_U8, aligned_corners_with_output_stride) {
1730   for (size_t input_size = 2; input_size <= 6; input_size += 2) {
1731     for (size_t output_size = 2; output_size <= 6; output_size += 2) {
1732       for (size_t channels = 15; channels <= 19; channels++) {
1733         ResizeBilinearOperatorTester()
1734           .align_corners(true)
1735           .input_size(output_size, output_size)
1736           .output_size(output_size, output_size)
1737           .channels(channels)
1738           .output_pixel_stride(29)
1739           .iterations(3)
1740           .TestNHWCxU8();
1741       }
1742     }
1743   }
1744 }
1745 
TEST(RESIZE_BILINEAR_NHWC_U8,aligned_corners_varying_batch_size)1746 TEST(RESIZE_BILINEAR_NHWC_U8, aligned_corners_varying_batch_size) {
1747   for (size_t input_size = 2; input_size <= 6; input_size += 2) {
1748     for (size_t output_size = 2; output_size <= 6; output_size += 2) {
1749       for (size_t batch_size = 2; batch_size <= 3; batch_size++) {
1750         ResizeBilinearOperatorTester()
1751           .align_corners(true)
1752           .batch_size(batch_size)
1753           .input_size(output_size, output_size)
1754           .output_size(output_size, output_size)
1755           .iterations(3)
1756           .TestNHWCxU8();
1757       }
1758     }
1759   }
1760 }
1761 
TEST(RESIZE_BILINEAR_NHWC_U8,tf_mode_aligned_centers_upscale_y)1762 TEST(RESIZE_BILINEAR_NHWC_U8, tf_mode_aligned_centers_upscale_y) {
1763   for (size_t input_height = 1; input_height <= 3; input_height++) {
1764     for (size_t output_height = input_height + 1; output_height < 15; output_height *= 3) {
1765       ResizeBilinearOperatorTester()
1766         .tf_legacy_mode(true)
1767         .input_size(input_height, 1)
1768         .output_size(output_height, 1)
1769         .channels(17)
1770         .iterations(3)
1771         .TestNHWCxU8();
1772     }
1773   }
1774 }
1775 
TEST(RESIZE_BILINEAR_NHWC_U8,tf_mode_aligned_centers_upscale_x)1776 TEST(RESIZE_BILINEAR_NHWC_U8, tf_mode_aligned_centers_upscale_x) {
1777   for (size_t input_width = 1; input_width <= 3; input_width++) {
1778     for (size_t output_width = input_width + 1; output_width < 15; output_width *= 3) {
1779       ResizeBilinearOperatorTester()
1780         .tf_legacy_mode(true)
1781         .input_size(1, input_width)
1782         .output_size(1, output_width)
1783         .channels(17)
1784         .iterations(3)
1785         .TestNHWCxU8();
1786     }
1787   }
1788 }
1789 
TEST(RESIZE_BILINEAR_NHWC_U8,tf_mode_aligned_centers_upscale)1790 TEST(RESIZE_BILINEAR_NHWC_U8, tf_mode_aligned_centers_upscale) {
1791   for (size_t output_height = 3; output_height <= 5; output_height += 2) {
1792     for (size_t output_width = 3; output_width <= 5; output_width += 2) {
1793       ResizeBilinearOperatorTester()
1794         .tf_legacy_mode(true)
1795         .input_size(2, 2)
1796         .output_size(output_height, output_width)
1797         .channels(17)
1798         .iterations(3)
1799         .TestNHWCxU8();
1800     }
1801   }
1802 }
1803 
TEST(RESIZE_BILINEAR_NHWC_U8,tf_mode_aligned_centers_downscale_y)1804 TEST(RESIZE_BILINEAR_NHWC_U8, tf_mode_aligned_centers_downscale_y) {
1805   for (size_t output_height = 1; output_height <= 3; output_height++) {
1806     for (size_t input_height = output_height + 1; input_height < 15; input_height *= 3) {
1807       ResizeBilinearOperatorTester()
1808         .tf_legacy_mode(true)
1809         .input_size(input_height, 1)
1810         .output_size(output_height, 1)
1811         .channels(17)
1812         .iterations(3)
1813         .TestNHWCxU8();
1814     }
1815   }
1816 }
1817 
TEST(RESIZE_BILINEAR_NHWC_U8,tf_mode_aligned_centers_downscale_x)1818 TEST(RESIZE_BILINEAR_NHWC_U8, tf_mode_aligned_centers_downscale_x) {
1819   for (size_t output_width = 1; output_width <= 3; output_width++) {
1820     for (size_t input_width = output_width + 1; input_width < 15; input_width *= 3) {
1821       ResizeBilinearOperatorTester()
1822         .tf_legacy_mode(true)
1823         .input_size(1, input_width)
1824         .output_size(1, output_width)
1825         .channels(17)
1826         .iterations(3)
1827         .TestNHWCxU8();
1828     }
1829   }
1830 }
1831 
TEST(RESIZE_BILINEAR_NHWC_U8,tf_mode_aligned_centers_downscale)1832 TEST(RESIZE_BILINEAR_NHWC_U8, tf_mode_aligned_centers_downscale) {
1833   for (size_t input_height = 3; input_height <= 5; input_height += 2) {
1834     for (size_t input_width = 3; input_width <= 5; input_width += 2) {
1835       ResizeBilinearOperatorTester()
1836         .tf_legacy_mode(true)
1837         .input_size(input_height, input_width)
1838         .output_size(2, 2)
1839         .channels(17)
1840         .iterations(3)
1841         .TestNHWCxU8();
1842     }
1843   }
1844 }
1845 
TEST(RESIZE_BILINEAR_NHWC_U8,tf_mode_aligned_centers_identical_size)1846 TEST(RESIZE_BILINEAR_NHWC_U8, tf_mode_aligned_centers_identical_size) {
1847   for (size_t height = 1; height < 10; height *= 3) {
1848     for (size_t width = 1; width < 10; width *= 3) {
1849       ResizeBilinearOperatorTester()
1850         .tf_legacy_mode(true)
1851         .input_size(height, width)
1852         .output_size(height, width)
1853         .channels(17)
1854         .iterations(3)
1855         .TestNHWCxU8();
1856     }
1857   }
1858 }
1859 
TEST(RESIZE_BILINEAR_NHWC_U8,tf_mode_aligned_centers_varying_channels)1860 TEST(RESIZE_BILINEAR_NHWC_U8, tf_mode_aligned_centers_varying_channels) {
1861   for (size_t input_size = 2; input_size <= 6; input_size += 2) {
1862     for (size_t output_size = 2; output_size <= 6; output_size += 2) {
1863       for (size_t channels = 15; channels <= 19; channels++) {
1864         ResizeBilinearOperatorTester()
1865           .tf_legacy_mode(true)
1866           .input_size(output_size, output_size)
1867           .output_size(output_size, output_size)
1868           .channels(channels)
1869           .iterations(3)
1870           .TestNHWCxU8();
1871       }
1872     }
1873   }
1874 }
1875 
TEST(RESIZE_BILINEAR_NHWC_U8,tf_mode_aligned_centers_with_input_stride)1876 TEST(RESIZE_BILINEAR_NHWC_U8, tf_mode_aligned_centers_with_input_stride) {
1877   for (size_t input_size = 2; input_size <= 6; input_size += 2) {
1878     for (size_t output_size = 2; output_size <= 6; output_size += 2) {
1879       for (size_t channels = 15; channels <= 19; channels++) {
1880         ResizeBilinearOperatorTester()
1881           .tf_legacy_mode(true)
1882           .input_size(output_size, output_size)
1883           .output_size(output_size, output_size)
1884           .channels(channels)
1885           .input_pixel_stride(23)
1886           .iterations(3)
1887           .TestNHWCxU8();
1888       }
1889     }
1890   }
1891 }
1892 
TEST(RESIZE_BILINEAR_NHWC_U8,tf_mode_aligned_centers_with_output_stride)1893 TEST(RESIZE_BILINEAR_NHWC_U8, tf_mode_aligned_centers_with_output_stride) {
1894   for (size_t input_size = 2; input_size <= 6; input_size += 2) {
1895     for (size_t output_size = 2; output_size <= 6; output_size += 2) {
1896       for (size_t channels = 15; channels <= 19; channels++) {
1897         ResizeBilinearOperatorTester()
1898           .tf_legacy_mode(true)
1899           .input_size(output_size, output_size)
1900           .output_size(output_size, output_size)
1901           .channels(channels)
1902           .output_pixel_stride(29)
1903           .iterations(3)
1904           .TestNHWCxU8();
1905       }
1906     }
1907   }
1908 }
1909 
TEST(RESIZE_BILINEAR_NHWC_U8,tf_mode_aligned_centers_varying_batch_size)1910 TEST(RESIZE_BILINEAR_NHWC_U8, tf_mode_aligned_centers_varying_batch_size) {
1911   for (size_t input_size = 2; input_size <= 6; input_size += 2) {
1912     for (size_t output_size = 2; output_size <= 6; output_size += 2) {
1913       for (size_t batch_size = 2; batch_size <= 3; batch_size++) {
1914         ResizeBilinearOperatorTester()
1915           .tf_legacy_mode(true)
1916           .batch_size(batch_size)
1917           .input_size(output_size, output_size)
1918           .output_size(output_size, output_size)
1919           .iterations(3)
1920           .TestNHWCxU8();
1921       }
1922     }
1923   }
1924 }
1925