@@ -43,6 +43,7 @@ func TestCompute(t *testing.T) {
43
43
assert .EqualValues (1 , metrics .PacketsLost )
44
44
assert .EqualValues (0 , metrics .Best )
45
45
assert .EqualValues (0 , metrics .Worst )
46
+ assert .True (math .IsNaN (float64 (metrics .Median )))
46
47
assert .True (math .IsNaN (float64 (metrics .Mean )))
47
48
assert .True (math .IsNaN (float64 (metrics .StdDev )))
48
49
}
@@ -59,6 +60,18 @@ func TestCompute(t *testing.T) {
59
60
assert .EqualValues (1 , h .Compute ().PacketsLost )
60
61
}
61
62
63
+ { // test median
64
+ h := NewHistory (5 )
65
+ h .AddResult (3 * dur , nil )
66
+ h .AddResult (2 * dur , nil )
67
+ h .AddResult (1 * dur , nil )
68
+ h .AddResult (0 * dur , nil )
69
+ assert .EqualValues (150 , h .Compute ().Median )
70
+
71
+ h .AddResult (4 * dur , nil )
72
+ assert .EqualValues (200 , h .Compute ().Median )
73
+ }
74
+
62
75
{
63
76
// test zero variance
64
77
h := NewHistory (8 )
@@ -70,6 +83,7 @@ func TestCompute(t *testing.T) {
70
83
assert .EqualValues (100 , metrics .Best )
71
84
assert .EqualValues (100 , metrics .Worst )
72
85
assert .EqualValues (100 , metrics .Mean )
86
+ assert .EqualValues (100 , metrics .Median )
73
87
assert .EqualValues (0 , metrics .StdDev )
74
88
assert .EqualValues (3 , metrics .PacketsSent )
75
89
assert .EqualValues (1 , metrics .PacketsLost )
@@ -83,6 +97,7 @@ func TestCompute(t *testing.T) {
83
97
assert .EqualValues (100 , metrics .Best )
84
98
assert .EqualValues (200 , metrics .Worst )
85
99
assert .EqualValues (125 , metrics .Mean )
100
+ assert .EqualValues (100 , metrics .Median )
86
101
assert .InDelta (43.30127 , float64 (metrics .StdDev ), 0.000001 )
87
102
assert .EqualValues (6 , metrics .PacketsSent )
88
103
assert .EqualValues (2 , metrics .PacketsLost )
@@ -93,6 +108,7 @@ func TestCompute(t *testing.T) {
93
108
assert .EqualValues (0 , metrics .Best )
94
109
assert .EqualValues (200 , metrics .Worst )
95
110
assert .EqualValues (100 , metrics .Mean )
111
+ assert .EqualValues (100 , metrics .Median )
96
112
assert .InDelta (63.2455 , float64 (metrics .StdDev ), 0.0001 )
97
113
assert .EqualValues (7 , metrics .PacketsSent )
98
114
assert .EqualValues (2 , metrics .PacketsLost )
0 commit comments