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 "constant-pad-operator-tester.h" 9 10 constexpr size_t kDim1 = 2; 11 constexpr size_t kDim2 = 3; 12 constexpr size_t kDim3 = 2; 13 constexpr size_t kDim4 = 3; 14 constexpr size_t kDim5 = 2; 15 constexpr size_t kDim6 = 3; 16 constexpr size_t kDim1PrePad = kDim1 / 2; 17 constexpr size_t kDim1PostPad = kDim1 / 2 + 1; 18 constexpr size_t kDim2PrePad = kDim2 / 2; 19 constexpr size_t kDim2PostPad = kDim2 / 2 + 1; 20 constexpr size_t kDim3PrePad = kDim3 / 2; 21 constexpr size_t kDim3PostPad = kDim3 / 2 + 1; 22 constexpr size_t kDim4PrePad = kDim4 / 2; 23 constexpr size_t kDim4PostPad = kDim4 / 2 + 1; 24 constexpr size_t kDim5PrePad = kDim5 / 2; 25 constexpr size_t kDim5PostPad = kDim5 / 2 + 1; 26 constexpr size_t kDim6PrePad = kDim6 / 2; 27 constexpr size_t kDim6PostPad = kDim6 / 2 + 1; 28 29 30 TEST(CONSTANT_PAD_ND_X8, 0d) { 31 ConstantPadOperatorTester() 32 .TestX8(); 33 } 34 35 TEST(CONSTANT_PAD_ND_X8, 1d) { 36 for (size_t dim1_pre_pad = 0; dim1_pre_pad <= kDim1PrePad; dim1_pre_pad += kDim1PrePad) { 37 for (size_t dim1_post_pad = 0; dim1_post_pad <= kDim1PostPad; dim1_post_pad += kDim1PostPad) { 38 ConstantPadOperatorTester() 39 .input_shape({kDim1}) 40 .pre_paddings({dim1_pre_pad}) 41 .post_paddings({dim1_post_pad}) 42 .TestX8(); 43 } 44 } 45 } 46 47 TEST(CONSTANT_PAD_ND_X8, 2d) { 48 for (size_t dim1_pre_pad = 0; dim1_pre_pad <= kDim1PrePad; dim1_pre_pad += kDim1PrePad) { 49 for (size_t dim1_post_pad = 0; dim1_post_pad <= kDim1PostPad; dim1_post_pad += kDim1PostPad) { 50 for (size_t dim2_pre_pad = 0; dim2_pre_pad <= kDim2PrePad; dim2_pre_pad += kDim2PrePad) { 51 for (size_t dim2_post_pad = 0; dim2_post_pad <= kDim2PostPad; dim2_post_pad += kDim2PostPad) { 52 ConstantPadOperatorTester() 53 .input_shape({kDim1, kDim2}) 54 .pre_paddings({dim1_pre_pad, dim2_pre_pad}) 55 .post_paddings({dim1_post_pad, dim2_post_pad}) 56 .TestX8(); 57 } 58 } 59 } 60 } 61 } 62 63 TEST(CONSTANT_PAD_ND_X8, 3d) { 64 for (size_t dim1_pre_pad = 0; dim1_pre_pad <= kDim1PrePad; dim1_pre_pad += kDim1PrePad) { 65 for (size_t dim1_post_pad = 0; dim1_post_pad <= kDim1PostPad; dim1_post_pad += kDim1PostPad) { 66 for (size_t dim2_pre_pad = 0; dim2_pre_pad <= kDim2PrePad; dim2_pre_pad += kDim2PrePad) { 67 for (size_t dim2_post_pad = 0; dim2_post_pad <= kDim2PostPad; dim2_post_pad += kDim2PostPad) { 68 for (size_t dim3_pre_pad = 0; dim3_pre_pad <= kDim3PrePad; dim3_pre_pad += kDim3PrePad) { 69 for (size_t dim3_post_pad = 0; dim3_post_pad <= kDim3PostPad; dim3_post_pad += kDim3PostPad) { 70 ConstantPadOperatorTester() 71 .input_shape({kDim1, kDim2, kDim3}) 72 .pre_paddings({dim1_pre_pad, dim2_pre_pad, dim3_pre_pad}) 73 .post_paddings({dim1_post_pad, dim2_post_pad, dim3_post_pad}) 74 .TestX8(); 75 } 76 } 77 } 78 } 79 } 80 } 81 } 82 83 TEST(CONSTANT_PAD_ND_X8, 4d) { 84 for (size_t dim1_pre_pad = 0; dim1_pre_pad <= kDim1PrePad; dim1_pre_pad += kDim1PrePad) { 85 for (size_t dim1_post_pad = 0; dim1_post_pad <= kDim1PostPad; dim1_post_pad += kDim1PostPad) { 86 for (size_t dim2_pre_pad = 0; dim2_pre_pad <= kDim2PrePad; dim2_pre_pad += kDim2PrePad) { 87 for (size_t dim2_post_pad = 0; dim2_post_pad <= kDim2PostPad; dim2_post_pad += kDim2PostPad) { 88 for (size_t dim3_pre_pad = 0; dim3_pre_pad <= kDim3PrePad; dim3_pre_pad += kDim3PrePad) { 89 for (size_t dim3_post_pad = 0; dim3_post_pad <= kDim3PostPad; dim3_post_pad += kDim3PostPad) { 90 for (size_t dim4_pre_pad = 0; dim4_pre_pad <= kDim4PrePad; dim4_pre_pad += kDim4PrePad) { 91 for (size_t dim4_post_pad = 0; dim4_post_pad <= kDim4PostPad; dim4_post_pad += kDim4PostPad) { 92 ConstantPadOperatorTester() 93 .input_shape({kDim1, kDim2, kDim3, kDim4}) 94 .pre_paddings({dim1_pre_pad, dim2_pre_pad, dim3_pre_pad, dim4_pre_pad}) 95 .post_paddings({dim1_post_pad, dim2_post_pad, dim3_post_pad, dim4_post_pad}) 96 .TestX8(); 97 } 98 } 99 } 100 } 101 } 102 } 103 } 104 } 105 } 106 107 TEST(CONSTANT_PAD_ND_X8, 5d) { 108 for (size_t dim1_pre_pad = 0; dim1_pre_pad <= kDim1PrePad; dim1_pre_pad += kDim1PrePad) { 109 for (size_t dim1_post_pad = 0; dim1_post_pad <= kDim1PostPad; dim1_post_pad += kDim1PostPad) { 110 for (size_t dim2_pre_pad = 0; dim2_pre_pad <= kDim2PrePad; dim2_pre_pad += kDim2PrePad) { 111 for (size_t dim2_post_pad = 0; dim2_post_pad <= kDim2PostPad; dim2_post_pad += kDim2PostPad) { 112 for (size_t dim3_pre_pad = 0; dim3_pre_pad <= kDim3PrePad; dim3_pre_pad += kDim3PrePad) { 113 for (size_t dim3_post_pad = 0; dim3_post_pad <= kDim3PostPad; dim3_post_pad += kDim3PostPad) { 114 for (size_t dim4_pre_pad = 0; dim4_pre_pad <= kDim4PrePad; dim4_pre_pad += kDim4PrePad) { 115 for (size_t dim4_post_pad = 0; dim4_post_pad <= kDim4PostPad; dim4_post_pad += kDim4PostPad) { 116 for (size_t dim5_pre_pad = 0; dim5_pre_pad <= kDim5PrePad; dim5_pre_pad += kDim5PrePad) { 117 for (size_t dim5_post_pad = 0; dim5_post_pad <= kDim5PostPad; dim5_post_pad += kDim5PostPad) { 118 ConstantPadOperatorTester() 119 .input_shape({kDim1, kDim2, kDim3, kDim4, kDim5}) 120 .pre_paddings({dim1_pre_pad, dim2_pre_pad, dim3_pre_pad, dim4_pre_pad, dim5_pre_pad}) 121 .post_paddings({dim1_post_pad, dim2_post_pad, dim3_post_pad, dim4_post_pad, dim5_post_pad}) 122 .TestX8(); 123 } 124 } 125 } 126 } 127 } 128 } 129 } 130 } 131 } 132 } 133 } 134 135 TEST(CONSTANT_PAD_ND_X8, 6d) { 136 for (size_t dim1_pre_pad = 0; dim1_pre_pad <= kDim1PrePad; dim1_pre_pad += kDim1PrePad) { 137 for (size_t dim1_post_pad = 0; dim1_post_pad <= kDim1PostPad; dim1_post_pad += kDim1PostPad) { 138 for (size_t dim2_pre_pad = 0; dim2_pre_pad <= kDim2PrePad; dim2_pre_pad += kDim2PrePad) { 139 for (size_t dim2_post_pad = 0; dim2_post_pad <= kDim2PostPad; dim2_post_pad += kDim2PostPad) { 140 for (size_t dim3_pre_pad = 0; dim3_pre_pad <= kDim3PrePad; dim3_pre_pad += kDim3PrePad) { 141 for (size_t dim3_post_pad = 0; dim3_post_pad <= kDim3PostPad; dim3_post_pad += kDim3PostPad) { 142 for (size_t dim4_pre_pad = 0; dim4_pre_pad <= kDim4PrePad; dim4_pre_pad += kDim4PrePad) { 143 for (size_t dim4_post_pad = 0; dim4_post_pad <= kDim4PostPad; dim4_post_pad += kDim4PostPad) { 144 for (size_t dim5_pre_pad = 0; dim5_pre_pad <= kDim5PrePad; dim5_pre_pad += kDim5PrePad) { 145 for (size_t dim5_post_pad = 0; dim5_post_pad <= kDim5PostPad; dim5_post_pad += kDim5PostPad) { 146 for (size_t dim6_pre_pad = 0; dim6_pre_pad <= kDim6PrePad; dim6_pre_pad += kDim6PrePad) { 147 for (size_t dim6_post_pad = 0; dim6_post_pad <= kDim6PostPad; dim6_post_pad += kDim6PostPad) { 148 ConstantPadOperatorTester() 149 .input_shape({kDim1, kDim2, kDim3, kDim4, kDim5, kDim6}) 150 .pre_paddings({dim1_pre_pad, dim2_pre_pad, dim3_pre_pad, dim4_pre_pad, dim5_pre_pad, dim6_pre_pad}) 151 .post_paddings({dim1_post_pad, dim2_post_pad, dim3_post_pad, dim4_post_pad, dim5_post_pad, dim6_post_pad}) 152 .TestX8(); 153 } 154 } 155 } 156 } 157 } 158 } 159 } 160 } 161 } 162 } 163 } 164 } 165 } 166 167 168 TEST(CONSTANT_PAD_ND_X16, 0d) { 169 ConstantPadOperatorTester() 170 .TestX16(); 171 } 172 173 TEST(CONSTANT_PAD_ND_X16, 1d) { 174 for (size_t dim1_pre_pad = 0; dim1_pre_pad <= kDim1PrePad; dim1_pre_pad += kDim1PrePad) { 175 for (size_t dim1_post_pad = 0; dim1_post_pad <= kDim1PostPad; dim1_post_pad += kDim1PostPad) { 176 ConstantPadOperatorTester() 177 .input_shape({kDim1}) 178 .pre_paddings({dim1_pre_pad}) 179 .post_paddings({dim1_post_pad}) 180 .TestX16(); 181 } 182 } 183 } 184 185 TEST(CONSTANT_PAD_ND_X16, 2d) { 186 for (size_t dim1_pre_pad = 0; dim1_pre_pad <= kDim1PrePad; dim1_pre_pad += kDim1PrePad) { 187 for (size_t dim1_post_pad = 0; dim1_post_pad <= kDim1PostPad; dim1_post_pad += kDim1PostPad) { 188 for (size_t dim2_pre_pad = 0; dim2_pre_pad <= kDim2PrePad; dim2_pre_pad += kDim2PrePad) { 189 for (size_t dim2_post_pad = 0; dim2_post_pad <= kDim2PostPad; dim2_post_pad += kDim2PostPad) { 190 ConstantPadOperatorTester() 191 .input_shape({kDim1, kDim2}) 192 .pre_paddings({dim1_pre_pad, dim2_pre_pad}) 193 .post_paddings({dim1_post_pad, dim2_post_pad}) 194 .TestX16(); 195 } 196 } 197 } 198 } 199 } 200 201 TEST(CONSTANT_PAD_ND_X16, 3d) { 202 for (size_t dim1_pre_pad = 0; dim1_pre_pad <= kDim1PrePad; dim1_pre_pad += kDim1PrePad) { 203 for (size_t dim1_post_pad = 0; dim1_post_pad <= kDim1PostPad; dim1_post_pad += kDim1PostPad) { 204 for (size_t dim2_pre_pad = 0; dim2_pre_pad <= kDim2PrePad; dim2_pre_pad += kDim2PrePad) { 205 for (size_t dim2_post_pad = 0; dim2_post_pad <= kDim2PostPad; dim2_post_pad += kDim2PostPad) { 206 for (size_t dim3_pre_pad = 0; dim3_pre_pad <= kDim3PrePad; dim3_pre_pad += kDim3PrePad) { 207 for (size_t dim3_post_pad = 0; dim3_post_pad <= kDim3PostPad; dim3_post_pad += kDim3PostPad) { 208 ConstantPadOperatorTester() 209 .input_shape({kDim1, kDim2, kDim3}) 210 .pre_paddings({dim1_pre_pad, dim2_pre_pad, dim3_pre_pad}) 211 .post_paddings({dim1_post_pad, dim2_post_pad, dim3_post_pad}) 212 .TestX16(); 213 } 214 } 215 } 216 } 217 } 218 } 219 } 220 221 TEST(CONSTANT_PAD_ND_X16, 4d) { 222 for (size_t dim1_pre_pad = 0; dim1_pre_pad <= kDim1PrePad; dim1_pre_pad += kDim1PrePad) { 223 for (size_t dim1_post_pad = 0; dim1_post_pad <= kDim1PostPad; dim1_post_pad += kDim1PostPad) { 224 for (size_t dim2_pre_pad = 0; dim2_pre_pad <= kDim2PrePad; dim2_pre_pad += kDim2PrePad) { 225 for (size_t dim2_post_pad = 0; dim2_post_pad <= kDim2PostPad; dim2_post_pad += kDim2PostPad) { 226 for (size_t dim3_pre_pad = 0; dim3_pre_pad <= kDim3PrePad; dim3_pre_pad += kDim3PrePad) { 227 for (size_t dim3_post_pad = 0; dim3_post_pad <= kDim3PostPad; dim3_post_pad += kDim3PostPad) { 228 for (size_t dim4_pre_pad = 0; dim4_pre_pad <= kDim4PrePad; dim4_pre_pad += kDim4PrePad) { 229 for (size_t dim4_post_pad = 0; dim4_post_pad <= kDim4PostPad; dim4_post_pad += kDim4PostPad) { 230 ConstantPadOperatorTester() 231 .input_shape({kDim1, kDim2, kDim3, kDim4}) 232 .pre_paddings({dim1_pre_pad, dim2_pre_pad, dim3_pre_pad, dim4_pre_pad}) 233 .post_paddings({dim1_post_pad, dim2_post_pad, dim3_post_pad, dim4_post_pad}) 234 .TestX16(); 235 } 236 } 237 } 238 } 239 } 240 } 241 } 242 } 243 } 244 245 TEST(CONSTANT_PAD_ND_X16, 5d) { 246 for (size_t dim1_pre_pad = 0; dim1_pre_pad <= kDim1PrePad; dim1_pre_pad += kDim1PrePad) { 247 for (size_t dim1_post_pad = 0; dim1_post_pad <= kDim1PostPad; dim1_post_pad += kDim1PostPad) { 248 for (size_t dim2_pre_pad = 0; dim2_pre_pad <= kDim2PrePad; dim2_pre_pad += kDim2PrePad) { 249 for (size_t dim2_post_pad = 0; dim2_post_pad <= kDim2PostPad; dim2_post_pad += kDim2PostPad) { 250 for (size_t dim3_pre_pad = 0; dim3_pre_pad <= kDim3PrePad; dim3_pre_pad += kDim3PrePad) { 251 for (size_t dim3_post_pad = 0; dim3_post_pad <= kDim3PostPad; dim3_post_pad += kDim3PostPad) { 252 for (size_t dim4_pre_pad = 0; dim4_pre_pad <= kDim4PrePad; dim4_pre_pad += kDim4PrePad) { 253 for (size_t dim4_post_pad = 0; dim4_post_pad <= kDim4PostPad; dim4_post_pad += kDim4PostPad) { 254 for (size_t dim5_pre_pad = 0; dim5_pre_pad <= kDim5PrePad; dim5_pre_pad += kDim5PrePad) { 255 for (size_t dim5_post_pad = 0; dim5_post_pad <= kDim5PostPad; dim5_post_pad += kDim5PostPad) { 256 ConstantPadOperatorTester() 257 .input_shape({kDim1, kDim2, kDim3, kDim4, kDim5}) 258 .pre_paddings({dim1_pre_pad, dim2_pre_pad, dim3_pre_pad, dim4_pre_pad, dim5_pre_pad}) 259 .post_paddings({dim1_post_pad, dim2_post_pad, dim3_post_pad, dim4_post_pad, dim5_post_pad}) 260 .TestX16(); 261 } 262 } 263 } 264 } 265 } 266 } 267 } 268 } 269 } 270 } 271 } 272 273 TEST(CONSTANT_PAD_ND_X16, 6d) { 274 for (size_t dim1_pre_pad = 0; dim1_pre_pad <= kDim1PrePad; dim1_pre_pad += kDim1PrePad) { 275 for (size_t dim1_post_pad = 0; dim1_post_pad <= kDim1PostPad; dim1_post_pad += kDim1PostPad) { 276 for (size_t dim2_pre_pad = 0; dim2_pre_pad <= kDim2PrePad; dim2_pre_pad += kDim2PrePad) { 277 for (size_t dim2_post_pad = 0; dim2_post_pad <= kDim2PostPad; dim2_post_pad += kDim2PostPad) { 278 for (size_t dim3_pre_pad = 0; dim3_pre_pad <= kDim3PrePad; dim3_pre_pad += kDim3PrePad) { 279 for (size_t dim3_post_pad = 0; dim3_post_pad <= kDim3PostPad; dim3_post_pad += kDim3PostPad) { 280 for (size_t dim4_pre_pad = 0; dim4_pre_pad <= kDim4PrePad; dim4_pre_pad += kDim4PrePad) { 281 for (size_t dim4_post_pad = 0; dim4_post_pad <= kDim4PostPad; dim4_post_pad += kDim4PostPad) { 282 for (size_t dim5_pre_pad = 0; dim5_pre_pad <= kDim5PrePad; dim5_pre_pad += kDim5PrePad) { 283 for (size_t dim5_post_pad = 0; dim5_post_pad <= kDim5PostPad; dim5_post_pad += kDim5PostPad) { 284 for (size_t dim6_pre_pad = 0; dim6_pre_pad <= kDim6PrePad; dim6_pre_pad += kDim6PrePad) { 285 for (size_t dim6_post_pad = 0; dim6_post_pad <= kDim6PostPad; dim6_post_pad += kDim6PostPad) { 286 ConstantPadOperatorTester() 287 .input_shape({kDim1, kDim2, kDim3, kDim4, kDim5, kDim6}) 288 .pre_paddings({dim1_pre_pad, dim2_pre_pad, dim3_pre_pad, dim4_pre_pad, dim5_pre_pad, dim6_pre_pad}) 289 .post_paddings({dim1_post_pad, dim2_post_pad, dim3_post_pad, dim4_post_pad, dim5_post_pad, dim6_post_pad}) 290 .TestX16(); 291 } 292 } 293 } 294 } 295 } 296 } 297 } 298 } 299 } 300 } 301 } 302 } 303 } 304 305 306 TEST(CONSTANT_PAD_ND_X32, 0d) { 307 ConstantPadOperatorTester() 308 .TestX32(); 309 } 310 311 TEST(CONSTANT_PAD_ND_X32, 1d) { 312 for (size_t dim1_pre_pad = 0; dim1_pre_pad <= kDim1PrePad; dim1_pre_pad += kDim1PrePad) { 313 for (size_t dim1_post_pad = 0; dim1_post_pad <= kDim1PostPad; dim1_post_pad += kDim1PostPad) { 314 ConstantPadOperatorTester() 315 .input_shape({kDim1}) 316 .pre_paddings({dim1_pre_pad}) 317 .post_paddings({dim1_post_pad}) 318 .TestX32(); 319 } 320 } 321 } 322 323 TEST(CONSTANT_PAD_ND_X32, 2d) { 324 for (size_t dim1_pre_pad = 0; dim1_pre_pad <= kDim1PrePad; dim1_pre_pad += kDim1PrePad) { 325 for (size_t dim1_post_pad = 0; dim1_post_pad <= kDim1PostPad; dim1_post_pad += kDim1PostPad) { 326 for (size_t dim2_pre_pad = 0; dim2_pre_pad <= kDim2PrePad; dim2_pre_pad += kDim2PrePad) { 327 for (size_t dim2_post_pad = 0; dim2_post_pad <= kDim2PostPad; dim2_post_pad += kDim2PostPad) { 328 ConstantPadOperatorTester() 329 .input_shape({kDim1, kDim2}) 330 .pre_paddings({dim1_pre_pad, dim2_pre_pad}) 331 .post_paddings({dim1_post_pad, dim2_post_pad}) 332 .TestX32(); 333 } 334 } 335 } 336 } 337 } 338 339 TEST(CONSTANT_PAD_ND_X32, 3d) { 340 for (size_t dim1_pre_pad = 0; dim1_pre_pad <= kDim1PrePad; dim1_pre_pad += kDim1PrePad) { 341 for (size_t dim1_post_pad = 0; dim1_post_pad <= kDim1PostPad; dim1_post_pad += kDim1PostPad) { 342 for (size_t dim2_pre_pad = 0; dim2_pre_pad <= kDim2PrePad; dim2_pre_pad += kDim2PrePad) { 343 for (size_t dim2_post_pad = 0; dim2_post_pad <= kDim2PostPad; dim2_post_pad += kDim2PostPad) { 344 for (size_t dim3_pre_pad = 0; dim3_pre_pad <= kDim3PrePad; dim3_pre_pad += kDim3PrePad) { 345 for (size_t dim3_post_pad = 0; dim3_post_pad <= kDim3PostPad; dim3_post_pad += kDim3PostPad) { 346 ConstantPadOperatorTester() 347 .input_shape({kDim1, kDim2, kDim3}) 348 .pre_paddings({dim1_pre_pad, dim2_pre_pad, dim3_pre_pad}) 349 .post_paddings({dim1_post_pad, dim2_post_pad, dim3_post_pad}) 350 .TestX32(); 351 } 352 } 353 } 354 } 355 } 356 } 357 } 358 359 TEST(CONSTANT_PAD_ND_X32, 4d) { 360 for (size_t dim1_pre_pad = 0; dim1_pre_pad <= kDim1PrePad; dim1_pre_pad += kDim1PrePad) { 361 for (size_t dim1_post_pad = 0; dim1_post_pad <= kDim1PostPad; dim1_post_pad += kDim1PostPad) { 362 for (size_t dim2_pre_pad = 0; dim2_pre_pad <= kDim2PrePad; dim2_pre_pad += kDim2PrePad) { 363 for (size_t dim2_post_pad = 0; dim2_post_pad <= kDim2PostPad; dim2_post_pad += kDim2PostPad) { 364 for (size_t dim3_pre_pad = 0; dim3_pre_pad <= kDim3PrePad; dim3_pre_pad += kDim3PrePad) { 365 for (size_t dim3_post_pad = 0; dim3_post_pad <= kDim3PostPad; dim3_post_pad += kDim3PostPad) { 366 for (size_t dim4_pre_pad = 0; dim4_pre_pad <= kDim4PrePad; dim4_pre_pad += kDim4PrePad) { 367 for (size_t dim4_post_pad = 0; dim4_post_pad <= kDim4PostPad; dim4_post_pad += kDim4PostPad) { 368 ConstantPadOperatorTester() 369 .input_shape({kDim1, kDim2, kDim3, kDim4}) 370 .pre_paddings({dim1_pre_pad, dim2_pre_pad, dim3_pre_pad, dim4_pre_pad}) 371 .post_paddings({dim1_post_pad, dim2_post_pad, dim3_post_pad, dim4_post_pad}) 372 .TestX32(); 373 } 374 } 375 } 376 } 377 } 378 } 379 } 380 } 381 } 382 383 TEST(CONSTANT_PAD_ND_X32, 5d) { 384 for (size_t dim1_pre_pad = 0; dim1_pre_pad <= kDim1PrePad; dim1_pre_pad += kDim1PrePad) { 385 for (size_t dim1_post_pad = 0; dim1_post_pad <= kDim1PostPad; dim1_post_pad += kDim1PostPad) { 386 for (size_t dim2_pre_pad = 0; dim2_pre_pad <= kDim2PrePad; dim2_pre_pad += kDim2PrePad) { 387 for (size_t dim2_post_pad = 0; dim2_post_pad <= kDim2PostPad; dim2_post_pad += kDim2PostPad) { 388 for (size_t dim3_pre_pad = 0; dim3_pre_pad <= kDim3PrePad; dim3_pre_pad += kDim3PrePad) { 389 for (size_t dim3_post_pad = 0; dim3_post_pad <= kDim3PostPad; dim3_post_pad += kDim3PostPad) { 390 for (size_t dim4_pre_pad = 0; dim4_pre_pad <= kDim4PrePad; dim4_pre_pad += kDim4PrePad) { 391 for (size_t dim4_post_pad = 0; dim4_post_pad <= kDim4PostPad; dim4_post_pad += kDim4PostPad) { 392 for (size_t dim5_pre_pad = 0; dim5_pre_pad <= kDim5PrePad; dim5_pre_pad += kDim5PrePad) { 393 for (size_t dim5_post_pad = 0; dim5_post_pad <= kDim5PostPad; dim5_post_pad += kDim5PostPad) { 394 ConstantPadOperatorTester() 395 .input_shape({kDim1, kDim2, kDim3, kDim4, kDim5}) 396 .pre_paddings({dim1_pre_pad, dim2_pre_pad, dim3_pre_pad, dim4_pre_pad, dim5_pre_pad}) 397 .post_paddings({dim1_post_pad, dim2_post_pad, dim3_post_pad, dim4_post_pad, dim5_post_pad}) 398 .TestX32(); 399 } 400 } 401 } 402 } 403 } 404 } 405 } 406 } 407 } 408 } 409 } 410 411 TEST(CONSTANT_PAD_ND_X32, 6d) { 412 for (size_t dim1_pre_pad = 0; dim1_pre_pad <= kDim1PrePad; dim1_pre_pad += kDim1PrePad) { 413 for (size_t dim1_post_pad = 0; dim1_post_pad <= kDim1PostPad; dim1_post_pad += kDim1PostPad) { 414 for (size_t dim2_pre_pad = 0; dim2_pre_pad <= kDim2PrePad; dim2_pre_pad += kDim2PrePad) { 415 for (size_t dim2_post_pad = 0; dim2_post_pad <= kDim2PostPad; dim2_post_pad += kDim2PostPad) { 416 for (size_t dim3_pre_pad = 0; dim3_pre_pad <= kDim3PrePad; dim3_pre_pad += kDim3PrePad) { 417 for (size_t dim3_post_pad = 0; dim3_post_pad <= kDim3PostPad; dim3_post_pad += kDim3PostPad) { 418 for (size_t dim4_pre_pad = 0; dim4_pre_pad <= kDim4PrePad; dim4_pre_pad += kDim4PrePad) { 419 for (size_t dim4_post_pad = 0; dim4_post_pad <= kDim4PostPad; dim4_post_pad += kDim4PostPad) { 420 for (size_t dim5_pre_pad = 0; dim5_pre_pad <= kDim5PrePad; dim5_pre_pad += kDim5PrePad) { 421 for (size_t dim5_post_pad = 0; dim5_post_pad <= kDim5PostPad; dim5_post_pad += kDim5PostPad) { 422 for (size_t dim6_pre_pad = 0; dim6_pre_pad <= kDim6PrePad; dim6_pre_pad += kDim6PrePad) { 423 for (size_t dim6_post_pad = 0; dim6_post_pad <= kDim6PostPad; dim6_post_pad += kDim6PostPad) { 424 ConstantPadOperatorTester() 425 .input_shape({kDim1, kDim2, kDim3, kDim4, kDim5, kDim6}) 426 .pre_paddings({dim1_pre_pad, dim2_pre_pad, dim3_pre_pad, dim4_pre_pad, dim5_pre_pad, dim6_pre_pad}) 427 .post_paddings({dim1_post_pad, dim2_post_pad, dim3_post_pad, dim4_post_pad, dim5_post_pad, dim6_post_pad}) 428 .TestX32(); 429 } 430 } 431 } 432 } 433 } 434 } 435 } 436 } 437 } 438 } 439 } 440 } 441 } 442