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