1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43 package org.eclipse.jgit.util;
44
45 import static org.junit.Assert.assertEquals;
46 import static org.junit.Assert.assertTrue;
47
48 import org.eclipse.jgit.util.Stats;
49 import org.junit.Test;
50
51 public class StatsTest {
52 @Test
53 public void testStatsTrivial() {
54 Stats s = new Stats();
55 s.add(1);
56 s.add(1);
57 s.add(1);
58 assertEquals(3, s.count());
59 assertEquals(1.0, s.min(), 1E-6);
60 assertEquals(1.0, s.max(), 1E-6);
61 assertEquals(1.0, s.avg(), 1E-6);
62 assertEquals(0.0, s.var(), 1E-6);
63 assertEquals(0.0, s.stddev(), 1E-6);
64 }
65
66 @Test
67 public void testStats() {
68 Stats s = new Stats();
69 s.add(1);
70 s.add(2);
71 s.add(3);
72 s.add(4);
73 assertEquals(4, s.count());
74 assertEquals(1.0, s.min(), 1E-6);
75 assertEquals(4.0, s.max(), 1E-6);
76 assertEquals(2.5, s.avg(), 1E-6);
77 assertEquals(1.666667, s.var(), 1E-6);
78 assertEquals(1.290994, s.stddev(), 1E-6);
79 }
80
81 @Test
82
83
84
85
86 public void testStatsCancellationExample1() {
87 Stats s = new Stats();
88 s.add(1E8 + 4);
89 s.add(1E8 + 7);
90 s.add(1E8 + 13);
91 s.add(1E8 + 16);
92 assertEquals(4, s.count());
93 assertEquals(1E8 + 4, s.min(), 1E-6);
94 assertEquals(1E8 + 16, s.max(), 1E-6);
95 assertEquals(1E8 + 10, s.avg(), 1E-6);
96 assertEquals(30, s.var(), 1E-6);
97 assertEquals(5.477226, s.stddev(), 1E-6);
98 }
99
100 @Test
101
102
103
104
105 public void testStatsCancellationExample2() {
106 Stats s = new Stats();
107 s.add(1E9 + 4);
108 s.add(1E9 + 7);
109 s.add(1E9 + 13);
110 s.add(1E9 + 16);
111 assertEquals(4, s.count());
112 assertEquals(1E9 + 4, s.min(), 1E-6);
113 assertEquals(1E9 + 16, s.max(), 1E-6);
114 assertEquals(1E9 + 10, s.avg(), 1E-6);
115 assertEquals(30, s.var(), 1E-6);
116 assertEquals(5.477226, s.stddev(), 1E-6);
117 }
118
119 @Test
120 public void testNoValues() {
121 Stats s = new Stats();
122 assertTrue(Double.isNaN(s.var()));
123 assertTrue(Double.isNaN(s.stddev()));
124 assertTrue(Double.isNaN(s.avg()));
125 assertTrue(Double.isNaN(s.min()));
126 assertTrue(Double.isNaN(s.max()));
127 s.add(42.3);
128 assertTrue(Double.isNaN(s.var()));
129 assertTrue(Double.isNaN(s.stddev()));
130 assertEquals(42.3, s.avg(), 1E-6);
131 assertEquals(42.3, s.max(), 1E-6);
132 assertEquals(42.3, s.min(), 1E-6);
133 s.add(42.3);
134 assertEquals(0, s.var(), 1E-6);
135 assertEquals(0, s.stddev(), 1E-6);
136 }
137 }