blob: c36f4961f4fddaec37681677faf7a51c87d7ebe6 [file] [log] [blame]
XNNPACK Teamb455b122019-09-27 18:10:33 -07001// Copyright (c) Facebook, Inc. and its affiliates.
2// All rights reserved.
3//
4// Copyright 2019 Google LLC
5//
6// This source code is licensed under the BSD-style license found in the
7// LICENSE file in the root directory of this source tree.
8
9#include <gtest/gtest.h>
10
11#include "leaky-relu-operator-tester.h"
12
13
Marat Dukhan08b7a972020-07-14 18:17:29 -070014TEST(LEAKY_RELU_NC_QU8, unit_batch) {
XNNPACK Teamb455b122019-09-27 18:10:33 -070015 for (size_t channels = 1; channels < 100; channels++) {
16 LeakyReLUOperatorTester()
17 .batch_size(1)
18 .channels(channels)
19 .iterations(3)
Marat Dukhan08b7a972020-07-14 18:17:29 -070020 .TestQU8();
XNNPACK Teamb455b122019-09-27 18:10:33 -070021 }
22}
23
Marat Dukhan08b7a972020-07-14 18:17:29 -070024TEST(LEAKY_RELU_NC_QU8, unit_batch_with_qmin) {
XNNPACK Teamb455b122019-09-27 18:10:33 -070025 for (size_t channels = 1; channels < 100; channels += 15) {
26 LeakyReLUOperatorTester()
27 .batch_size(1)
28 .channels(channels)
29 .qmin(128)
30 .iterations(3)
Marat Dukhan08b7a972020-07-14 18:17:29 -070031 .TestQU8();
XNNPACK Teamb455b122019-09-27 18:10:33 -070032 }
33}
34
Marat Dukhan08b7a972020-07-14 18:17:29 -070035TEST(LEAKY_RELU_NC_QU8, unit_batch_with_qmax) {
XNNPACK Teamb455b122019-09-27 18:10:33 -070036 for (size_t channels = 1; channels < 100; channels += 15) {
37 LeakyReLUOperatorTester()
38 .batch_size(1)
39 .channels(channels)
40 .qmax(128)
41 .iterations(3)
Marat Dukhan08b7a972020-07-14 18:17:29 -070042 .TestQU8();
XNNPACK Teamb455b122019-09-27 18:10:33 -070043 }
44}
45
Marat Dukhan08b7a972020-07-14 18:17:29 -070046TEST(LEAKY_RELU_NC_QU8, unit_batch_with_negative_slope) {
XNNPACK Teamb455b122019-09-27 18:10:33 -070047 for (size_t channels = 1; channels < 100; channels += 15) {
48 for (float negative_slope = 1.0e-4f; negative_slope < 1.0f; negative_slope *= 3.14159265f) {
49 LeakyReLUOperatorTester()
50 .batch_size(1)
51 .channels(channels)
52 .negative_slope(negative_slope)
53 .iterations(1)
Marat Dukhan08b7a972020-07-14 18:17:29 -070054 .TestQU8();
XNNPACK Teamb455b122019-09-27 18:10:33 -070055 }
56 }
57}
58
Marat Dukhan08b7a972020-07-14 18:17:29 -070059TEST(LEAKY_RELU_NC_QU8, unit_batch_with_input_scale) {
XNNPACK Teamb455b122019-09-27 18:10:33 -070060 for (size_t channels = 1; channels < 100; channels += 15) {
61 for (float input_scale = 1.0e-2f; input_scale < 1.0e+2f; input_scale *= 3.14159265f) {
62 LeakyReLUOperatorTester()
63 .batch_size(1)
64 .channels(channels)
65 .input_scale(input_scale)
66 .iterations(1)
Marat Dukhan08b7a972020-07-14 18:17:29 -070067 .TestQU8();
XNNPACK Teamb455b122019-09-27 18:10:33 -070068 }
69 }
70}
71
Marat Dukhan08b7a972020-07-14 18:17:29 -070072TEST(LEAKY_RELU_NC_QU8, unit_batch_with_input_zero_point) {
XNNPACK Teamb455b122019-09-27 18:10:33 -070073 for (size_t channels = 1; channels < 100; channels += 15) {
74 for (int32_t input_zero_point = 0; input_zero_point <= 255; input_zero_point += 51) {
75 LeakyReLUOperatorTester()
76 .batch_size(1)
77 .channels(channels)
78 .input_zero_point(uint8_t(input_zero_point))
79 .iterations(1)
Marat Dukhan08b7a972020-07-14 18:17:29 -070080 .TestQU8();
XNNPACK Teamb455b122019-09-27 18:10:33 -070081 }
82 }
83}
84
Marat Dukhan08b7a972020-07-14 18:17:29 -070085TEST(LEAKY_RELU_NC_QU8, unit_batch_with_output_scale) {
XNNPACK Teamb455b122019-09-27 18:10:33 -070086 for (size_t channels = 1; channels < 100; channels += 15) {
87 for (float output_scale = 1.0e-2f; output_scale < 1.0e+2f; output_scale *= 3.14159265f) {
88 LeakyReLUOperatorTester()
89 .batch_size(1)
90 .channels(channels)
91 .output_scale(output_scale)
92 .iterations(1)
Marat Dukhan08b7a972020-07-14 18:17:29 -070093 .TestQU8();
XNNPACK Teamb455b122019-09-27 18:10:33 -070094 }
95 }
96}
97
Marat Dukhan08b7a972020-07-14 18:17:29 -070098TEST(LEAKY_RELU_NC_QU8, unit_batch_with_output_zero_point) {
XNNPACK Teamb455b122019-09-27 18:10:33 -070099 for (size_t channels = 1; channels < 100; channels += 15) {
100 for (int32_t output_zero_point = 0; output_zero_point <= 255; output_zero_point += 51) {
101 LeakyReLUOperatorTester()
102 .batch_size(1)
103 .channels(channels)
104 .output_zero_point(uint8_t(output_zero_point))
105 .iterations(1)
Marat Dukhan08b7a972020-07-14 18:17:29 -0700106 .TestQU8();
XNNPACK Teamb455b122019-09-27 18:10:33 -0700107 }
108 }
109}
110
Marat Dukhan08b7a972020-07-14 18:17:29 -0700111TEST(LEAKY_RELU_NC_QU8, small_batch) {
XNNPACK Teamb455b122019-09-27 18:10:33 -0700112 for (size_t channels = 1; channels < 100; channels++) {
113 LeakyReLUOperatorTester()
114 .batch_size(3)
115 .channels(channels)
116 .iterations(3)
Marat Dukhan08b7a972020-07-14 18:17:29 -0700117 .TestQU8();
XNNPACK Teamb455b122019-09-27 18:10:33 -0700118 }
119}
120
Marat Dukhan08b7a972020-07-14 18:17:29 -0700121TEST(LEAKY_RELU_NC_QU8, small_batch_with_input_stride) {
XNNPACK Teamb455b122019-09-27 18:10:33 -0700122 for (size_t channels = 1; channels < 100; channels += 15) {
123 LeakyReLUOperatorTester()
124 .batch_size(3)
125 .channels(channels)
126 .input_stride(129)
127 .iterations(3)
Marat Dukhan08b7a972020-07-14 18:17:29 -0700128 .TestQU8();
XNNPACK Teamb455b122019-09-27 18:10:33 -0700129 }
130}
131
Marat Dukhan08b7a972020-07-14 18:17:29 -0700132TEST(LEAKY_RELU_NC_QU8, small_batch_with_output_stride) {
XNNPACK Teamb455b122019-09-27 18:10:33 -0700133 for (size_t channels = 1; channels < 100; channels += 15) {
134 LeakyReLUOperatorTester()
135 .batch_size(3)
136 .channels(channels)
137 .output_stride(117)
138 .iterations(3)
Marat Dukhan08b7a972020-07-14 18:17:29 -0700139 .TestQU8();
XNNPACK Teamb455b122019-09-27 18:10:33 -0700140 }
141}
142
Marat Dukhan08b7a972020-07-14 18:17:29 -0700143TEST(LEAKY_RELU_NC_QU8, small_batch_with_input_and_output_stride) {
XNNPACK Teamb455b122019-09-27 18:10:33 -0700144 for (size_t channels = 1; channels < 100; channels += 15) {
145 LeakyReLUOperatorTester()
146 .batch_size(3)
147 .channels(channels)
148 .input_stride(129)
149 .output_stride(117)
150 .iterations(3)
Marat Dukhan08b7a972020-07-14 18:17:29 -0700151 .TestQU8();
XNNPACK Teamb455b122019-09-27 18:10:33 -0700152 }
153}
Marat Dukhan28813332020-06-10 18:05:38 -0700154
155
156TEST(LEAKY_RELU_NC_F32, unit_batch) {
157 for (size_t channels = 1; channels < 100; channels++) {
158 LeakyReLUOperatorTester()
159 .batch_size(1)
160 .channels(channels)
161 .iterations(3)
162 .TestF32();
163 }
164}
165
166TEST(LEAKY_RELU_NC_F32, small_batch) {
167 for (size_t channels = 1; channels < 100; channels++) {
168 LeakyReLUOperatorTester()
169 .batch_size(3)
170 .channels(channels)
171 .iterations(3)
172 .TestF32();
173 }
174}
175
176TEST(LEAKY_RELU_NC_F32, small_batch_with_input_stride) {
177 for (size_t channels = 1; channels < 100; channels += 15) {
178 LeakyReLUOperatorTester()
179 .batch_size(3)
180 .channels(channels)
181 .input_stride(129)
182 .iterations(3)
183 .TestF32();
184 }
185}
186
187TEST(LEAKY_RELU_NC_F32, small_batch_with_output_stride) {
188 for (size_t channels = 1; channels < 100; channels += 15) {
189 LeakyReLUOperatorTester()
190 .batch_size(3)
191 .channels(channels)
192 .output_stride(117)
193 .iterations(3)
194 .TestF32();
195 }
196}
197
198TEST(LEAKY_RELU_NC_F32, small_batch_with_input_and_output_stride) {
199 for (size_t channels = 1; channels < 100; channels += 15) {
200 LeakyReLUOperatorTester()
201 .batch_size(3)
202 .channels(channels)
203 .input_stride(129)
204 .output_stride(117)
205 .iterations(3)
206 .TestF32();
207 }
208}
209
210TEST(LEAKY_RELU_NC_F32, small_batch_with_negative_slope) {
211 for (size_t batch_size = 1; batch_size <= 3; batch_size += 2) {
212 for (size_t channels = 1; channels < 100; channels += 15) {
213 for (float negative_slope = 1.0e-4f; negative_slope < 1.0f; negative_slope *= 3.14159265f) {
214 LeakyReLUOperatorTester()
215 .batch_size(3)
216 .channels(channels)
217 .negative_slope(negative_slope)
218 .iterations(1)
219 .TestF32();
220 }
221 }
222 }
223}