|
20 | 20 | #include <vector>
|
21 | 21 | #include <cassert>
|
22 | 22 |
|
23 |
| -#include "test_macros.h" |
24 |
| - |
25 | 23 | template <class T>
|
26 | 24 | inline
|
27 | 25 | T
|
@@ -188,24 +186,25 @@ test4()
|
188 | 186 | kurtosis += d2 * d2;
|
189 | 187 | }
|
190 | 188 | var /= u.size();
|
191 |
| - //double dev = std::sqrt(var); |
| 189 | + double dev = std::sqrt(var); |
192 | 190 | // In this case:
|
193 | 191 | // skew computes to 0./0. == nan
|
194 | 192 | // kurtosis computes to 0./0. == nan
|
195 | 193 | // x_skew == inf
|
196 | 194 | // x_kurtosis == inf
|
197 |
| - // These tests are commented out because UBSan warns about division by 0 |
198 |
| -// skew /= u.size() * dev * var; |
199 |
| -// kurtosis /= u.size() * var * var; |
200 |
| -// kurtosis -= 3; |
| 195 | + skew /= u.size() * dev * var; |
| 196 | + kurtosis /= u.size() * var * var; |
| 197 | + kurtosis -= 3; |
201 | 198 | double x_mean = d.t() * d.p();
|
202 | 199 | double x_var = x_mean*(1-d.p());
|
203 |
| -// double x_skew = (1-2*d.p()) / std::sqrt(x_var); |
204 |
| -// double x_kurtosis = (1-6*d.p()*(1-d.p())) / x_var; |
| 200 | + double x_skew = (1-2*d.p()) / std::sqrt(x_var); |
| 201 | + double x_kurtosis = (1-6*d.p()*(1-d.p())) / x_var; |
205 | 202 | assert(mean == x_mean);
|
206 | 203 | assert(var == x_var);
|
207 |
| -// assert(skew == x_skew); |
208 |
| -// assert(kurtosis == x_kurtosis); |
| 204 | + // assert(skew == x_skew); |
| 205 | + (void)skew; (void)x_skew; |
| 206 | + // assert(kurtosis == x_kurtosis); |
| 207 | + (void)kurtosis; (void)x_kurtosis; |
209 | 208 | }
|
210 | 209 |
|
211 | 210 | void
|
@@ -237,24 +236,25 @@ test5()
|
237 | 236 | kurtosis += d2 * d2;
|
238 | 237 | }
|
239 | 238 | var /= u.size();
|
240 |
| -// double dev = std::sqrt(var); |
| 239 | + double dev = std::sqrt(var); |
241 | 240 | // In this case:
|
242 | 241 | // skew computes to 0./0. == nan
|
243 | 242 | // kurtosis computes to 0./0. == nan
|
244 | 243 | // x_skew == -inf
|
245 | 244 | // x_kurtosis == inf
|
246 |
| - // These tests are commented out because UBSan warns about division by 0 |
247 |
| -// skew /= u.size() * dev * var; |
248 |
| -// kurtosis /= u.size() * var * var; |
249 |
| -// kurtosis -= 3; |
| 245 | + skew /= u.size() * dev * var; |
| 246 | + kurtosis /= u.size() * var * var; |
| 247 | + kurtosis -= 3; |
250 | 248 | double x_mean = d.t() * d.p();
|
251 | 249 | double x_var = x_mean*(1-d.p());
|
252 |
| -// double x_skew = (1-2*d.p()) / std::sqrt(x_var); |
253 |
| -// double x_kurtosis = (1-6*d.p()*(1-d.p())) / x_var; |
| 250 | + double x_skew = (1-2*d.p()) / std::sqrt(x_var); |
| 251 | + double x_kurtosis = (1-6*d.p()*(1-d.p())) / x_var; |
254 | 252 | assert(mean == x_mean);
|
255 | 253 | assert(var == x_var);
|
256 |
| -// assert(skew == x_skew); |
257 |
| -// assert(kurtosis == x_kurtosis); |
| 254 | + // assert(skew == x_skew); |
| 255 | + (void)skew; (void)x_skew; |
| 256 | + // assert(kurtosis == x_kurtosis); |
| 257 | + (void)kurtosis; (void)x_kurtosis; |
258 | 258 | }
|
259 | 259 |
|
260 | 260 | void
|
@@ -390,24 +390,25 @@ test9()
|
390 | 390 | kurtosis += d2 * d2;
|
391 | 391 | }
|
392 | 392 | var /= u.size();
|
393 |
| -// double dev = std::sqrt(var); |
| 393 | + double dev = std::sqrt(var); |
394 | 394 | // In this case:
|
395 | 395 | // skew computes to 0./0. == nan
|
396 | 396 | // kurtosis computes to 0./0. == nan
|
397 | 397 | // x_skew == inf
|
398 | 398 | // x_kurtosis == inf
|
399 |
| - // These tests are commented out because UBSan warns about division by 0 |
400 |
| -// skew /= u.size() * dev * var; |
401 |
| -// kurtosis /= u.size() * var * var; |
402 |
| -// kurtosis -= 3; |
| 399 | + skew /= u.size() * dev * var; |
| 400 | + kurtosis /= u.size() * var * var; |
| 401 | + kurtosis -= 3; |
403 | 402 | double x_mean = d.t() * d.p();
|
404 | 403 | double x_var = x_mean*(1-d.p());
|
405 |
| -// double x_skew = (1-2*d.p()) / std::sqrt(x_var); |
406 |
| -// double x_kurtosis = (1-6*d.p()*(1-d.p())) / x_var; |
| 404 | + double x_skew = (1-2*d.p()) / std::sqrt(x_var); |
| 405 | + double x_kurtosis = (1-6*d.p()*(1-d.p())) / x_var; |
407 | 406 | assert(mean == x_mean);
|
408 | 407 | assert(var == x_var);
|
409 |
| -// assert(skew == x_skew); |
410 |
| -// assert(kurtosis == x_kurtosis); |
| 408 | + // assert(skew == x_skew); |
| 409 | + (void)skew; (void)x_skew; |
| 410 | + // assert(kurtosis == x_kurtosis); |
| 411 | + (void)kurtosis; (void)x_kurtosis; |
411 | 412 | }
|
412 | 413 |
|
413 | 414 | void
|
@@ -439,24 +440,25 @@ test10()
|
439 | 440 | kurtosis += d2 * d2;
|
440 | 441 | }
|
441 | 442 | var /= u.size();
|
442 |
| -// double dev = std::sqrt(var); |
| 443 | + double dev = std::sqrt(var); |
443 | 444 | // In this case:
|
444 | 445 | // skew computes to 0./0. == nan
|
445 | 446 | // kurtosis computes to 0./0. == nan
|
446 | 447 | // x_skew == inf
|
447 | 448 | // x_kurtosis == inf
|
448 |
| - // These tests are commented out because UBSan warns about division by 0 |
449 |
| -// skew /= u.size() * dev * var; |
450 |
| -// kurtosis /= u.size() * var * var; |
451 |
| -// kurtosis -= 3; |
| 449 | + skew /= u.size() * dev * var; |
| 450 | + kurtosis /= u.size() * var * var; |
| 451 | + kurtosis -= 3; |
452 | 452 | double x_mean = d.t() * d.p();
|
453 | 453 | double x_var = x_mean*(1-d.p());
|
454 |
| -// double x_skew = (1-2*d.p()) / std::sqrt(x_var); |
455 |
| -// double x_kurtosis = (1-6*d.p()*(1-d.p())) / x_var; |
| 454 | + double x_skew = (1-2*d.p()) / std::sqrt(x_var); |
| 455 | + double x_kurtosis = (1-6*d.p()*(1-d.p())) / x_var; |
456 | 456 | assert(mean == x_mean);
|
457 | 457 | assert(var == x_var);
|
458 |
| -// assert(skew == x_skew); |
459 |
| -// assert(kurtosis == x_kurtosis); |
| 458 | + // assert(skew == x_skew); |
| 459 | + (void)skew; (void)x_skew; |
| 460 | + // assert(kurtosis == x_kurtosis); |
| 461 | + (void)kurtosis; (void)x_kurtosis; |
460 | 462 | }
|
461 | 463 |
|
462 | 464 | void
|
@@ -488,24 +490,25 @@ test11()
|
488 | 490 | kurtosis += d2 * d2;
|
489 | 491 | }
|
490 | 492 | var /= u.size();
|
491 |
| -// double dev = std::sqrt(var); |
| 493 | + double dev = std::sqrt(var); |
492 | 494 | // In this case:
|
493 | 495 | // skew computes to 0./0. == nan
|
494 | 496 | // kurtosis computes to 0./0. == nan
|
495 | 497 | // x_skew == -inf
|
496 | 498 | // x_kurtosis == inf
|
497 |
| - // These tests are commented out because UBSan warns about division by 0 |
498 |
| -// skew /= u.size() * dev * var; |
499 |
| -// kurtosis /= u.size() * var * var; |
500 |
| -// kurtosis -= 3; |
| 499 | + skew /= u.size() * dev * var; |
| 500 | + kurtosis /= u.size() * var * var; |
| 501 | + kurtosis -= 3; |
501 | 502 | double x_mean = d.t() * d.p();
|
502 | 503 | double x_var = x_mean*(1-d.p());
|
503 |
| -// double x_skew = (1-2*d.p()) / std::sqrt(x_var); |
504 |
| -// double x_kurtosis = (1-6*d.p()*(1-d.p())) / x_var; |
| 504 | + double x_skew = (1-2*d.p()) / std::sqrt(x_var); |
| 505 | + double x_kurtosis = (1-6*d.p()*(1-d.p())) / x_var; |
505 | 506 | assert(mean == x_mean);
|
506 | 507 | assert(var == x_var);
|
507 |
| -// assert(skew == x_skew); |
508 |
| -// assert(kurtosis == x_kurtosis); |
| 508 | + // assert(skew == x_skew); |
| 509 | + (void)skew; (void)x_skew; |
| 510 | + // assert(kurtosis == x_kurtosis); |
| 511 | + (void)kurtosis; (void)x_kurtosis; |
509 | 512 | }
|
510 | 513 |
|
511 | 514 | int main(int, char**)
|
|
0 commit comments