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.moment;
23
24 import org.hipparchus.stat.descriptive.StorelessUnivariateStatisticAbstractTest;
25 import org.junit.jupiter.api.Test;
26
27 import static org.junit.jupiter.api.Assertions.assertEquals;
28 import static org.junit.jupiter.api.Assertions.assertFalse;
29 import static org.junit.jupiter.api.Assertions.assertTrue;
30
31
32
33
34 public class GeometricMeanTest extends StorelessUnivariateStatisticAbstractTest{
35
36 @Override
37 public GeometricMean getUnivariateStatistic() {
38 return new GeometricMean();
39 }
40
41 @Override
42 public double expectedValue() {
43 return this.geoMean;
44 }
45
46 @Test
47 void testSpecialValues() {
48 GeometricMean mean = getUnivariateStatistic();
49
50 assertTrue(Double.isNaN(mean.getResult()));
51
52
53 mean.increment(1d);
54 assertFalse(Double.isNaN(mean.getResult()));
55
56
57 mean.increment(0d);
58 assertEquals(0d, mean.getResult(), 0);
59
60
61 mean.increment(Double.POSITIVE_INFINITY);
62 assertTrue(Double.isNaN(mean.getResult()));
63
64
65 mean.clear();
66 assertTrue(Double.isNaN(mean.getResult()));
67
68
69 mean.increment(Double.POSITIVE_INFINITY);
70 assertEquals(Double.POSITIVE_INFINITY, mean.getResult(), 0);
71
72
73 mean.increment(-2d);
74 assertTrue(Double.isNaN(mean.getResult()));
75 }
76
77 }