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