1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 package org.hipparchus.stat.descriptive.rank;
23
24 import static org.junit.Assert.assertEquals;
25 import static org.junit.Assert.assertTrue;
26
27 import org.hipparchus.stat.descriptive.StorelessUnivariateStatisticAbstractTest;
28 import org.junit.Test;
29
30
31
32
33 public class MinTest extends StorelessUnivariateStatisticAbstractTest{
34
35 @Override
36 public Min getUnivariateStatistic() {
37 return new Min();
38 }
39
40 @Override
41 public double expectedValue() {
42 return this.min;
43 }
44
45 @Test
46 public void testSpecialValues() {
47 double[] testArray = {0d, Double.NaN, Double.POSITIVE_INFINITY, Double.NEGATIVE_INFINITY};
48 Min min = getUnivariateStatistic();
49 assertTrue(Double.isNaN(min.getResult()));
50 min.increment(testArray[0]);
51 assertEquals(0d, min.getResult(), 0);
52 min.increment(testArray[1]);
53 assertEquals(0d, min.getResult(), 0);
54 min.increment(testArray[2]);
55 assertEquals(0d, min.getResult(), 0);
56 min.increment(testArray[3]);
57 assertEquals(Double.NEGATIVE_INFINITY, min.getResult(), 0);
58 assertEquals(Double.NEGATIVE_INFINITY, min.evaluate(testArray), 0);
59 }
60
61 @Test
62 public void testNaNs() {
63 Min min = getUnivariateStatistic();
64 double nan = Double.NaN;
65 assertEquals(2d, min.evaluate(new double[]{nan, 2d, 3d}), 0);
66 assertEquals(1d, min.evaluate(new double[]{1d, nan, 3d}), 0);
67 assertEquals(1d, min.evaluate(new double[]{1d, 2d, nan}), 0);
68 assertTrue(Double.isNaN(min.evaluate(new double[]{nan, nan, nan})));
69 }
70
71 }