1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.statistics.distribution;
18
19 import org.junit.jupiter.api.Assertions;
20 import org.junit.jupiter.params.ParameterizedTest;
21 import org.junit.jupiter.params.provider.ValueSource;
22
23
24
25
26 class ArgumentUtilsTest {
27 @ParameterizedTest
28 @ValueSource(doubles = {Double.MIN_VALUE, 1, 2, 3, Double.MAX_VALUE})
29 void testIsFiniteStrictlyPositiveTrue(double x) {
30 Assertions.assertTrue(ArgumentUtils.isFiniteStrictlyPositive(x), () -> Double.toString(x));
31 }
32
33 @ParameterizedTest
34 @ValueSource(doubles = {0, -0.0, -Double.MIN_VALUE, -Double.MAX_VALUE,
35 Double.POSITIVE_INFINITY, Double.NEGATIVE_INFINITY, Double.NaN})
36 void testIsFiniteStrictlyPositiveFalse(double x) {
37 Assertions.assertFalse(ArgumentUtils.isFiniteStrictlyPositive(x), () -> Double.toString(x));
38 }
39
40 @ParameterizedTest
41 @ValueSource(doubles = {-0.0, 0.0, Double.MIN_VALUE, 1 - 0x1.0p-53, 1})
42 void testCheckProbability(double p) {
43 Assertions.assertDoesNotThrow(() -> ArgumentUtils.checkProbability(p), () -> Double.toString(p));
44 }
45
46 @ParameterizedTest
47 @ValueSource(doubles = {-Double.MIN_VALUE, -0.1, -1, -2, 1.0 + 0x1.0p-52, 1.1, -Double.MAX_VALUE,
48 Double.POSITIVE_INFINITY, Double.NEGATIVE_INFINITY, Double.NaN})
49 void testCheckProbabilityThrows(double p) {
50 Assertions.assertThrows(IllegalArgumentException.class,
51 () -> ArgumentUtils.checkProbability(p), () -> Double.toString(p));
52 }
53 }