blob: aa475a41c2af5fef284a24e3ceddfbabb49d6f6c [file] [log] [blame]
Marat Dukhanb6bd4bc2020-12-01 17:01:40 -08001// Copyright 2020 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 "elu-operator-tester.h"
9
10
Marat Dukhaneec00522021-09-15 00:01:41 -070011TEST(ELU_NC_QS8, unit_batch) {
12 for (size_t channels = 1; channels < 100; channels += 15) {
13 ELUOperatorTester()
14 .batch_size(1)
15 .channels(channels)
16 .iterations(3)
17 .TestQS8();
18 }
19}
20
21TEST(ELU_NC_QS8, unit_batch_with_qmin) {
22 for (size_t channels = 1; channels < 100; channels += 15) {
23 ELUOperatorTester()
24 .batch_size(1)
25 .channels(channels)
26 .qmin(128)
27 .iterations(3)
28 .TestQS8();
29 }
30}
31
32TEST(ELU_NC_QS8, unit_batch_with_qmax) {
33 for (size_t channels = 1; channels < 100; channels += 15) {
34 ELUOperatorTester()
35 .batch_size(1)
36 .channels(channels)
37 .qmax(128)
38 .iterations(3)
39 .TestQS8();
40 }
41}
42
43TEST(ELU_NC_QS8, unit_batch_with_input_scale) {
44 for (size_t channels = 1; channels < 100; channels += 15) {
45 for (float input_scale = 1.0e-2f; input_scale < 1.0e+2f; input_scale *= 10.0f) {
46 ELUOperatorTester()
47 .batch_size(1)
48 .channels(channels)
49 .input_scale(input_scale)
50 .iterations(1)
51 .TestQS8();
52 }
53 }
54}
55
56TEST(ELU_NC_QS8, unit_batch_with_input_zero_point) {
57 for (size_t channels = 1; channels < 100; channels += 15) {
58 for (int32_t input_zero_point = 0; input_zero_point <= 255; input_zero_point += 51) {
59 ELUOperatorTester()
60 .batch_size(1)
61 .channels(channels)
62 .input_zero_point(uint8_t(input_zero_point))
63 .iterations(1)
64 .TestQS8();
65 }
66 }
67}
68
69TEST(ELU_NC_QS8, small_batch) {
70 for (size_t channels = 1; channels < 100; channels += 15) {
71 ELUOperatorTester()
72 .batch_size(3)
73 .channels(channels)
74 .iterations(3)
75 .TestQS8();
76 }
77}
78
79TEST(ELU_NC_QS8, small_batch_with_input_stride) {
80 for (size_t channels = 1; channels < 100; channels += 15) {
81 ELUOperatorTester()
82 .batch_size(3)
83 .channels(channels)
84 .input_stride(129)
85 .iterations(3)
86 .TestQS8();
87 }
88}
89
90TEST(ELU_NC_QS8, small_batch_with_output_stride) {
91 for (size_t channels = 1; channels < 100; channels += 15) {
92 ELUOperatorTester()
93 .batch_size(3)
94 .channels(channels)
95 .output_stride(117)
96 .iterations(3)
97 .TestQS8();
98 }
99}
100
101TEST(ELU_NC_QS8, small_batch_with_qmin) {
102 for (size_t channels = 1; channels < 100; channels += 15) {
103 ELUOperatorTester()
104 .batch_size(3)
105 .channels(channels)
106 .qmin(128)
107 .iterations(3)
108 .TestQS8();
109 }
110}
111
112TEST(ELU_NC_QS8, small_batch_with_qmax) {
113 for (size_t channels = 1; channels < 100; channels += 15) {
114 ELUOperatorTester()
115 .batch_size(3)
116 .channels(channels)
117 .qmax(128)
118 .iterations(3)
119 .TestQS8();
120 }
121}
122
123TEST(ELU_NC_QS8, small_batch_with_input_scale) {
124 for (size_t channels = 1; channels < 100; channels += 15) {
125 for (float input_scale = 1.0e-2f; input_scale < 1.0e+2f; input_scale *= 10.0f) {
126 ELUOperatorTester()
127 .batch_size(3)
128 .channels(channels)
129 .input_scale(input_scale)
130 .iterations(1)
131 .TestQS8();
132 }
133 }
134}
135
136TEST(ELU_NC_QS8, small_batch_with_input_zero_point) {
137 for (size_t channels = 1; channels < 100; channels += 15) {
138 for (int32_t input_zero_point = 0; input_zero_point <= 255; input_zero_point += 51) {
139 ELUOperatorTester()
140 .batch_size(3)
141 .channels(channels)
142 .input_zero_point(uint8_t(input_zero_point))
143 .iterations(1)
144 .TestQS8();
145 }
146 }
147}
148
149TEST(ELU_NC_QS8, small_batch_with_alpha) {
150 for (size_t channels = 1; channels < 100; channels += 15) {
151 for (float alpha = 1.0e-4f; alpha < 1.0f; alpha *= 3.14159265f) {
152 ELUOperatorTester()
153 .batch_size(3)
154 .channels(channels)
155 .alpha(alpha)
156 .iterations(1)
157 .TestQS8();
158 }
159 }
160}
161
162TEST(ELU_NC_QS8, strided_batch) {
163 for (size_t channels = 1; channels < 100; channels += 15) {
164 ELUOperatorTester()
165 .batch_size(3)
166 .channels(channels)
167 .input_stride(129)
168 .output_stride(117)
169 .iterations(3)
170 .TestQS8();
171 }
172}
173
174TEST(ELU_NC_QS8, strided_batch_with_qmin) {
175 for (size_t channels = 1; channels < 100; channels += 15) {
176 ELUOperatorTester()
177 .batch_size(3)
178 .channels(channels)
179 .input_stride(129)
180 .output_stride(117)
181 .qmin(128)
182 .iterations(3)
183 .TestQS8();
184 }
185}
186
187TEST(ELU_NC_QS8, strided_batch_with_qmax) {
188 for (size_t channels = 1; channels < 100; channels += 15) {
189 ELUOperatorTester()
190 .batch_size(3)
191 .channels(channels)
192 .input_stride(129)
193 .output_stride(117)
194 .qmax(128)
195 .iterations(3)
196 .TestQS8();
197 }
198}
199
200TEST(ELU_NC_QS8, strided_batch_with_input_scale) {
201 for (size_t channels = 1; channels < 100; channels += 15) {
202 for (float input_scale = 1.0e-2f; input_scale < 1.0e+2f; input_scale *= 10.0f) {
203 ELUOperatorTester()
204 .batch_size(3)
205 .channels(channels)
206 .input_stride(129)
207 .output_stride(117)
208 .input_scale(input_scale)
209 .iterations(1)
210 .TestQS8();
211 }
212 }
213}
214
215TEST(ELU_NC_QS8, strided_batch_with_input_zero_point) {
216 for (size_t channels = 1; channels < 100; channels += 15) {
217 for (int32_t input_zero_point = 0; input_zero_point <= 255; input_zero_point += 51) {
218 ELUOperatorTester()
219 .batch_size(3)
220 .channels(channels)
221 .input_stride(129)
222 .output_stride(117)
223 .input_zero_point(uint8_t(input_zero_point))
224 .iterations(1)
225 .TestQS8();
226 }
227 }
228}
229
230TEST(ELU_NC_QS8, strided_batch_with_alpha) {
231 for (size_t channels = 1; channels < 100; channels += 15) {
232 for (float alpha = 1.0e-4f; alpha < 1.0f; alpha *= 3.14159265f) {
233 ELUOperatorTester()
234 .batch_size(3)
235 .channels(channels)
236 .input_stride(129)
237 .output_stride(117)
238 .alpha(alpha)
239 .iterations(1)
240 .TestQS8();
241 }
242 }
243}
244
Marat Dukhanb6bd4bc2020-12-01 17:01:40 -0800245TEST(ELU_NC_F32, unit_batch) {
246 for (size_t channels = 1; channels < 100; channels++) {
247 ELUOperatorTester()
248 .batch_size(1)
249 .channels(channels)
250 .iterations(3)
251 .TestF32();
252 }
253}
254
255TEST(ELU_NC_F32, small_batch) {
256 for (size_t channels = 1; channels < 100; channels++) {
257 ELUOperatorTester()
258 .batch_size(3)
259 .channels(channels)
260 .iterations(3)
261 .TestF32();
262 }
263}
264
265TEST(ELU_NC_F32, small_batch_with_input_stride) {
266 for (size_t channels = 1; channels < 100; channels += 15) {
267 ELUOperatorTester()
268 .batch_size(3)
269 .channels(channels)
270 .input_stride(129)
271 .iterations(3)
272 .TestF32();
273 }
274}
275
276TEST(ELU_NC_F32, small_batch_with_output_stride) {
277 for (size_t channels = 1; channels < 100; channels += 15) {
278 ELUOperatorTester()
279 .batch_size(3)
280 .channels(channels)
281 .output_stride(117)
282 .iterations(3)
283 .TestF32();
284 }
285}
286
287TEST(ELU_NC_F32, small_batch_with_input_and_output_stride) {
288 for (size_t channels = 1; channels < 100; channels += 15) {
289 ELUOperatorTester()
290 .batch_size(3)
291 .channels(channels)
292 .input_stride(129)
293 .output_stride(117)
294 .iterations(3)
295 .TestF32();
296 }
297}
298
299TEST(ELU_NC_F32, small_batch_with_alpha) {
300 for (size_t batch_size = 1; batch_size <= 3; batch_size += 2) {
301 for (size_t channels = 1; channels < 100; channels += 15) {
302 for (float alpha = 1.0e-4f; alpha < 1.0f; alpha *= 3.14159265f) {
303 ELUOperatorTester()
304 .batch_size(3)
305 .channels(channels)
306 .alpha(alpha)
307 .iterations(1)
308 .TestF32();
309 }
310 }
311 }
312}