xref: /aosp_15_r20/external/XNNPACK/test/depth-to-space-nchw2nhwc.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 "depth-to-space-operator-tester.h"
7*4bdc9457SAndroid Build Coastguard Worker 
8*4bdc9457SAndroid Build Coastguard Worker #include <gtest/gtest.h>
9*4bdc9457SAndroid Build Coastguard Worker 
10*4bdc9457SAndroid Build Coastguard Worker 
TEST(DEPTH_TO_SPACE_NCHW2NHWC_X32,one_pixel)11*4bdc9457SAndroid Build Coastguard Worker TEST(DEPTH_TO_SPACE_NCHW2NHWC_X32, one_pixel) {
12*4bdc9457SAndroid Build Coastguard Worker   DepthToSpaceOperatorTester()
13*4bdc9457SAndroid Build Coastguard Worker     .input_size(1, 1)
14*4bdc9457SAndroid Build Coastguard Worker     .block_size(3)
15*4bdc9457SAndroid Build Coastguard Worker     .output_channels(17)
16*4bdc9457SAndroid Build Coastguard Worker     .TestNCHW2NHWCxX32();
17*4bdc9457SAndroid Build Coastguard Worker }
18*4bdc9457SAndroid Build Coastguard Worker 
TEST(DEPTH_TO_SPACE_NCHW2NHWC_X32,one_column)19*4bdc9457SAndroid Build Coastguard Worker TEST(DEPTH_TO_SPACE_NCHW2NHWC_X32, one_column) {
20*4bdc9457SAndroid Build Coastguard Worker   for (size_t input_height = 1; input_height <= 7; input_height++) {
21*4bdc9457SAndroid Build Coastguard Worker     DepthToSpaceOperatorTester()
22*4bdc9457SAndroid Build Coastguard Worker       .input_size(input_height, 1)
23*4bdc9457SAndroid Build Coastguard Worker       .block_size(3)
24*4bdc9457SAndroid Build Coastguard Worker       .output_channels(17)
25*4bdc9457SAndroid Build Coastguard Worker       .TestNCHW2NHWCxX32();
26*4bdc9457SAndroid Build Coastguard Worker   }
27*4bdc9457SAndroid Build Coastguard Worker }
28*4bdc9457SAndroid Build Coastguard Worker 
TEST(DEPTH_TO_SPACE_NCHW2NHWC_X32,one_row)29*4bdc9457SAndroid Build Coastguard Worker TEST(DEPTH_TO_SPACE_NCHW2NHWC_X32, one_row) {
30*4bdc9457SAndroid Build Coastguard Worker   for (size_t input_width = 1; input_width <= 7; input_width++) {
31*4bdc9457SAndroid Build Coastguard Worker     DepthToSpaceOperatorTester()
32*4bdc9457SAndroid Build Coastguard Worker       .input_size(1, input_width)
33*4bdc9457SAndroid Build Coastguard Worker       .block_size(3)
34*4bdc9457SAndroid Build Coastguard Worker       .output_channels(17)
35*4bdc9457SAndroid Build Coastguard Worker       .TestNCHW2NHWCxX32();
36*4bdc9457SAndroid Build Coastguard Worker   }
37*4bdc9457SAndroid Build Coastguard Worker }
38*4bdc9457SAndroid Build Coastguard Worker 
TEST(DEPTH_TO_SPACE_NCHW2NHWC_X32,varying_input_size)39*4bdc9457SAndroid Build Coastguard Worker TEST(DEPTH_TO_SPACE_NCHW2NHWC_X32, varying_input_size) {
40*4bdc9457SAndroid Build Coastguard Worker   for (size_t input_height = 1; input_height <= 5; input_height++) {
41*4bdc9457SAndroid Build Coastguard Worker     for (size_t input_width = 1; input_width <= 5; input_width++) {
42*4bdc9457SAndroid Build Coastguard Worker       DepthToSpaceOperatorTester()
43*4bdc9457SAndroid Build Coastguard Worker         .input_size(input_height, input_width)
44*4bdc9457SAndroid Build Coastguard Worker         .block_size(3)
45*4bdc9457SAndroid Build Coastguard Worker         .output_channels(17)
46*4bdc9457SAndroid Build Coastguard Worker         .TestNCHW2NHWCxX32();
47*4bdc9457SAndroid Build Coastguard Worker     }
48*4bdc9457SAndroid Build Coastguard Worker   }
49*4bdc9457SAndroid Build Coastguard Worker }
50*4bdc9457SAndroid Build Coastguard Worker 
TEST(DEPTH_TO_SPACE_NCHW2NHWC_X32,varying_block_size)51*4bdc9457SAndroid Build Coastguard Worker TEST(DEPTH_TO_SPACE_NCHW2NHWC_X32, varying_block_size) {
52*4bdc9457SAndroid Build Coastguard Worker   for (uint32_t block_size = 2; block_size <= 5; block_size++) {
53*4bdc9457SAndroid Build Coastguard Worker     DepthToSpaceOperatorTester()
54*4bdc9457SAndroid Build Coastguard Worker       .input_size(7, 5)
55*4bdc9457SAndroid Build Coastguard Worker       .block_size(block_size)
56*4bdc9457SAndroid Build Coastguard Worker       .output_channels(17)
57*4bdc9457SAndroid Build Coastguard Worker       .TestNCHW2NHWCxX32();
58*4bdc9457SAndroid Build Coastguard Worker   }
59*4bdc9457SAndroid Build Coastguard Worker }
60*4bdc9457SAndroid Build Coastguard Worker 
TEST(DEPTH_TO_SPACE_NCHW2NHWC_X32,varying_output_channels)61*4bdc9457SAndroid Build Coastguard Worker TEST(DEPTH_TO_SPACE_NCHW2NHWC_X32, varying_output_channels) {
62*4bdc9457SAndroid Build Coastguard Worker   for (size_t output_channels = 1; output_channels <= 15; output_channels++) {
63*4bdc9457SAndroid Build Coastguard Worker     DepthToSpaceOperatorTester()
64*4bdc9457SAndroid Build Coastguard Worker       .input_size(7, 5)
65*4bdc9457SAndroid Build Coastguard Worker       .block_size(3)
66*4bdc9457SAndroid Build Coastguard Worker       .output_channels(output_channels)
67*4bdc9457SAndroid Build Coastguard Worker       .TestNCHW2NHWCxX32();
68*4bdc9457SAndroid Build Coastguard Worker   }
69*4bdc9457SAndroid Build Coastguard Worker }
70*4bdc9457SAndroid Build Coastguard Worker 
TEST(DEPTH_TO_SPACE_NCHW2NHWC_X32,varying_batch_size)71*4bdc9457SAndroid Build Coastguard Worker TEST(DEPTH_TO_SPACE_NCHW2NHWC_X32, varying_batch_size) {
72*4bdc9457SAndroid Build Coastguard Worker   for (size_t batch_size = 2; batch_size <= 3; batch_size++) {
73*4bdc9457SAndroid Build Coastguard Worker     DepthToSpaceOperatorTester()
74*4bdc9457SAndroid Build Coastguard Worker       .batch_size(batch_size)
75*4bdc9457SAndroid Build Coastguard Worker       .input_size(7, 5)
76*4bdc9457SAndroid Build Coastguard Worker       .block_size(3)
77*4bdc9457SAndroid Build Coastguard Worker       .output_channels(17)
78*4bdc9457SAndroid Build Coastguard Worker       .TestNCHW2NHWCxX32();
79*4bdc9457SAndroid Build Coastguard Worker   }
80*4bdc9457SAndroid Build Coastguard Worker }
81*4bdc9457SAndroid Build Coastguard Worker 
TEST(DEPTH_TO_SPACE_NCHW2NHWC_X32,input_channels_stride)82*4bdc9457SAndroid Build Coastguard Worker TEST(DEPTH_TO_SPACE_NCHW2NHWC_X32, input_channels_stride) {
83*4bdc9457SAndroid Build Coastguard Worker   DepthToSpaceOperatorTester()
84*4bdc9457SAndroid Build Coastguard Worker     .batch_size(2)
85*4bdc9457SAndroid Build Coastguard Worker     .input_size(7, 5)
86*4bdc9457SAndroid Build Coastguard Worker     .block_size(3)
87*4bdc9457SAndroid Build Coastguard Worker     .input_channels_stride(157)
88*4bdc9457SAndroid Build Coastguard Worker     .output_channels(17)
89*4bdc9457SAndroid Build Coastguard Worker     .TestNCHW2NHWCxX32();
90*4bdc9457SAndroid Build Coastguard Worker }
91*4bdc9457SAndroid Build Coastguard Worker 
TEST(DEPTH_TO_SPACE_NCHW2NHWC_X32,output_channels_stride)92*4bdc9457SAndroid Build Coastguard Worker TEST(DEPTH_TO_SPACE_NCHW2NHWC_X32, output_channels_stride) {
93*4bdc9457SAndroid Build Coastguard Worker   DepthToSpaceOperatorTester()
94*4bdc9457SAndroid Build Coastguard Worker     .batch_size(2)
95*4bdc9457SAndroid Build Coastguard Worker     .input_size(7, 5)
96*4bdc9457SAndroid Build Coastguard Worker     .block_size(3)
97*4bdc9457SAndroid Build Coastguard Worker     .output_channels_stride(19)
98*4bdc9457SAndroid Build Coastguard Worker     .output_channels(17)
99*4bdc9457SAndroid Build Coastguard Worker     .TestNCHW2NHWCxX32();
100*4bdc9457SAndroid Build Coastguard Worker }
101