blob: 24465d3f2bf3fb8b208e82621f65b75eccd29773 [file] [log] [blame]
// Copyright 2019 Google LLC
//
// This source code is licensed under the BSD-style license found in the
// LICENSE file in the root directory of this source tree.
#include <gtest/gtest.h>
#include <xnnpack/params.h>
#include "channel-pad-operator-tester.h"
TEST(CHANNEL_PAD_NC_X32, unit_batch_copy) {
for (size_t input_channels = 1; input_channels < 100; input_channels += 15) {
ChannelPadOperatorTester()
.batch_size(1)
.input_channels(input_channels)
.iterations(3)
.TestX32();
}
}
TEST(CHANNEL_PAD_NC_X32, unit_batch_pad_before) {
for (size_t input_channels = 1; input_channels < 100; input_channels += 15) {
for (size_t pad_channels = 1; pad_channels < 50; pad_channels += 7) {
ChannelPadOperatorTester()
.batch_size(1)
.input_channels(input_channels)
.pad_before(pad_channels)
.iterations(3)
.TestX32();
}
}
}
TEST(CHANNEL_PAD_NC_X32, unit_batch_pad_after) {
for (size_t input_channels = 1; input_channels < 100; input_channels += 15) {
for (size_t pad_channels = 1; pad_channels < 50; pad_channels += 7) {
ChannelPadOperatorTester()
.batch_size(1)
.input_channels(input_channels)
.pad_after(pad_channels)
.iterations(3)
.TestX32();
}
}
}
TEST(CHANNEL_PAD_NC_X32, unit_batch_pad_both) {
for (size_t input_channels = 1; input_channels < 100; input_channels += 15) {
for (size_t pad_channels = 1; pad_channels < 50; pad_channels += 7) {
ChannelPadOperatorTester()
.batch_size(1)
.input_channels(input_channels)
.pad_before(pad_channels)
.pad_after(pad_channels + 1)
.iterations(3)
.TestX32();
}
}
}
TEST(CHANNEL_PAD_NC_X32, small_batch) {
for (size_t input_channels = 1; input_channels < 100; input_channels += 15) {
for (size_t pad_channels = 1; pad_channels < 50; pad_channels += 7) {
ChannelPadOperatorTester()
.batch_size(xnn_params.x32.pad.mr)
.input_channels(input_channels)
.pad_before(pad_channels)
.pad_after(pad_channels + 1)
.iterations(3)
.TestX32();
}
}
}
TEST(CHANNEL_PAD_NC_X32, small_batch_with_x_stride) {
for (size_t input_channels = 1; input_channels < 100; input_channels += 15) {
for (size_t pad_channels = 1; pad_channels < 50; pad_channels += 7) {
ChannelPadOperatorTester()
.batch_size(xnn_params.x32.pad.mr)
.input_channels(input_channels)
.pad_before(pad_channels)
.pad_after(pad_channels + 1)
.input_stride(123)
.iterations(3)
.TestX32();
}
}
}
TEST(CHANNEL_PAD_NC_X32, small_batch_with_y_stride) {
for (size_t input_channels = 1; input_channels < 100; input_channels += 15) {
for (size_t pad_channels = 1; pad_channels < 50; pad_channels += 7) {
ChannelPadOperatorTester()
.batch_size(xnn_params.x32.pad.mr)
.input_channels(input_channels)
.pad_before(pad_channels)
.pad_after(pad_channels + 1)
.output_stride(509)
.iterations(3)
.TestX32();
}
}
}
TEST(CHANNEL_PAD_NC_X32, small_batch_with_x_stride_and_y_stride) {
for (size_t input_channels = 1; input_channels < 100; input_channels += 15) {
for (size_t pad_channels = 1; pad_channels < 50; pad_channels += 7) {
ChannelPadOperatorTester()
.batch_size(xnn_params.x32.pad.mr)
.input_channels(input_channels)
.pad_before(pad_channels)
.pad_after(pad_channels + 1)
.input_stride(123)
.output_stride(509)
.iterations(3)
.TestX32();
}
}
}
TEST(CHANNEL_PAD_NC_X32, large_batch) {
for (size_t input_channels = 1; input_channels < 100; input_channels += 15) {
for (size_t pad_channels = 1; pad_channels < 50; pad_channels += 7) {
ChannelPadOperatorTester()
.batch_size(3 * xnn_params.x32.pad.mr + 1)
.input_channels(input_channels)
.pad_before(pad_channels)
.pad_after(pad_channels + 1)
.iterations(1)
.TestX32();
}
}
}
TEST(CHANNEL_PAD_NC_X32, large_batch_with_x_stride) {
for (size_t input_channels = 1; input_channels < 100; input_channels += 15) {
for (size_t pad_channels = 1; pad_channels < 50; pad_channels += 7) {
ChannelPadOperatorTester()
.batch_size(3 * xnn_params.x32.pad.mr + 1)
.input_channels(input_channels)
.pad_before(pad_channels)
.pad_after(pad_channels + 1)
.input_stride(123)
.iterations(1)
.TestX32();
}
}
}
TEST(CHANNEL_PAD_NC_X32, large_batch_with_y_stride) {
for (size_t input_channels = 1; input_channels < 100; input_channels += 15) {
for (size_t pad_channels = 1; pad_channels < 50; pad_channels += 7) {
ChannelPadOperatorTester()
.batch_size(3 * xnn_params.x32.pad.mr + 1)
.input_channels(input_channels)
.pad_before(pad_channels)
.pad_after(pad_channels + 1)
.output_stride(509)
.iterations(1)
.TestX32();
}
}
}