1
1
package metrics
2
2
3
- import "testing"
3
+ import (
4
+ "math"
5
+ "testing"
6
+ )
4
7
5
8
func BenchmarkEWMA (b * testing.B ) {
6
9
a := NewEWMA1 ()
@@ -15,67 +18,67 @@ func TestEWMA1(t *testing.T) {
15
18
a := NewEWMA1 ()
16
19
a .Update (3 )
17
20
a .Tick ()
18
- if rate := a .Rate (); 0.6 != rate {
21
+ if rate := a .Rate (); math . Abs ( 0.6 - rate ) > epsilon {
19
22
t .Errorf ("initial a.Rate(): 0.6 != %v\n " , rate )
20
23
}
21
24
elapseMinute (a )
22
- if rate := a .Rate (); 0.22072766470286553 != rate {
25
+ if rate := a .Rate (); math . Abs ( 0.22072766470286553 - rate ) > epsilon {
23
26
t .Errorf ("1 minute a.Rate(): 0.22072766470286553 != %v\n " , rate )
24
27
}
25
28
elapseMinute (a )
26
- if rate := a .Rate (); 0.08120116994196772 != rate {
29
+ if rate := a .Rate (); math . Abs ( 0.08120116994196772 - rate ) > epsilon {
27
30
t .Errorf ("2 minute a.Rate(): 0.08120116994196772 != %v\n " , rate )
28
31
}
29
32
elapseMinute (a )
30
- if rate := a .Rate (); 0.029872241020718428 != rate {
33
+ if rate := a .Rate (); math . Abs ( 0.029872241020718428 - rate ) > epsilon {
31
34
t .Errorf ("3 minute a.Rate(): 0.029872241020718428 != %v\n " , rate )
32
35
}
33
36
elapseMinute (a )
34
- if rate := a .Rate (); 0.01098938333324054 != rate {
37
+ if rate := a .Rate (); math . Abs ( 0.01098938333324054 - rate ) > epsilon {
35
38
t .Errorf ("4 minute a.Rate(): 0.01098938333324054 != %v\n " , rate )
36
39
}
37
40
elapseMinute (a )
38
- if rate := a .Rate (); 0.004042768199451294 != rate {
41
+ if rate := a .Rate (); math . Abs ( 0.004042768199451294 - rate ) > epsilon {
39
42
t .Errorf ("5 minute a.Rate(): 0.004042768199451294 != %v\n " , rate )
40
43
}
41
44
elapseMinute (a )
42
- if rate := a .Rate (); 0.0014872513059998212 != rate {
45
+ if rate := a .Rate (); math . Abs ( 0.0014872513059998212 - rate ) > epsilon {
43
46
t .Errorf ("6 minute a.Rate(): 0.0014872513059998212 != %v\n " , rate )
44
47
}
45
48
elapseMinute (a )
46
- if rate := a .Rate (); 0.0005471291793327122 != rate {
49
+ if rate := a .Rate (); math . Abs ( 0.0005471291793327122 - rate ) > epsilon {
47
50
t .Errorf ("7 minute a.Rate(): 0.0005471291793327122 != %v\n " , rate )
48
51
}
49
52
elapseMinute (a )
50
- if rate := a .Rate (); 0.00020127757674150815 != rate {
53
+ if rate := a .Rate (); math . Abs ( 0.00020127757674150815 - rate ) > epsilon {
51
54
t .Errorf ("8 minute a.Rate(): 0.00020127757674150815 != %v\n " , rate )
52
55
}
53
56
elapseMinute (a )
54
- if rate := a .Rate (); 7.404588245200814e-05 != rate {
57
+ if rate := a .Rate (); math . Abs ( 7.404588245200814e-05 - rate ) > epsilon {
55
58
t .Errorf ("9 minute a.Rate(): 7.404588245200814e-05 != %v\n " , rate )
56
59
}
57
60
elapseMinute (a )
58
- if rate := a .Rate (); 2.7239957857491083e-05 != rate {
61
+ if rate := a .Rate (); math . Abs ( 2.7239957857491083e-05 - rate ) > epsilon {
59
62
t .Errorf ("10 minute a.Rate(): 2.7239957857491083e-05 != %v\n " , rate )
60
63
}
61
64
elapseMinute (a )
62
- if rate := a .Rate (); 1.0021020474147462e-05 != rate {
65
+ if rate := a .Rate (); math . Abs ( 1.0021020474147462e-05 - rate ) > epsilon {
63
66
t .Errorf ("11 minute a.Rate(): 1.0021020474147462e-05 != %v\n " , rate )
64
67
}
65
68
elapseMinute (a )
66
- if rate := a .Rate (); 3.6865274119969525e-06 != rate {
69
+ if rate := a .Rate (); math . Abs ( 3.6865274119969525e-06 - rate ) > epsilon {
67
70
t .Errorf ("12 minute a.Rate(): 3.6865274119969525e-06 != %v\n " , rate )
68
71
}
69
72
elapseMinute (a )
70
- if rate := a .Rate (); 1.3561976441886433e-06 != rate {
73
+ if rate := a .Rate (); math . Abs ( 1.3561976441886433e-06 - rate ) > epsilon {
71
74
t .Errorf ("13 minute a.Rate(): 1.3561976441886433e-06 != %v\n " , rate )
72
75
}
73
76
elapseMinute (a )
74
- if rate := a .Rate (); 4.989172314621449e-07 != rate {
77
+ if rate := a .Rate (); math . Abs ( 4.989172314621449e-07 - rate ) > epsilon {
75
78
t .Errorf ("14 minute a.Rate(): 4.989172314621449e-07 != %v\n " , rate )
76
79
}
77
80
elapseMinute (a )
78
- if rate := a .Rate (); 1.8354139230109722e-07 != rate {
81
+ if rate := a .Rate (); math . Abs ( 1.8354139230109722e-07 - rate ) > epsilon {
79
82
t .Errorf ("15 minute a.Rate(): 1.8354139230109722e-07 != %v\n " , rate )
80
83
}
81
84
}
@@ -84,67 +87,67 @@ func TestEWMA5(t *testing.T) {
84
87
a := NewEWMA5 ()
85
88
a .Update (3 )
86
89
a .Tick ()
87
- if rate := a .Rate (); 0.6 != rate {
90
+ if rate := a .Rate (); math . Abs ( 0.6 - rate ) > epsilon {
88
91
t .Errorf ("initial a.Rate(): 0.6 != %v\n " , rate )
89
92
}
90
93
elapseMinute (a )
91
- if rate := a .Rate (); 0.49123845184678905 != rate {
94
+ if rate := a .Rate (); math . Abs ( 0.49123845184678905 - rate ) > epsilon {
92
95
t .Errorf ("1 minute a.Rate(): 0.49123845184678905 != %v\n " , rate )
93
96
}
94
97
elapseMinute (a )
95
- if rate := a .Rate (); 0.4021920276213837 != rate {
98
+ if rate := a .Rate (); math . Abs ( 0.4021920276213837 - rate ) > epsilon {
96
99
t .Errorf ("2 minute a.Rate(): 0.4021920276213837 != %v\n " , rate )
97
100
}
98
101
elapseMinute (a )
99
- if rate := a .Rate (); 0.32928698165641596 != rate {
102
+ if rate := a .Rate (); math . Abs ( 0.32928698165641596 - rate ) > epsilon {
100
103
t .Errorf ("3 minute a.Rate(): 0.32928698165641596 != %v\n " , rate )
101
104
}
102
105
elapseMinute (a )
103
- if rate := a .Rate (); 0.269597378470333 != rate {
106
+ if rate := a .Rate (); math . Abs ( 0.269597378470333 - rate ) > epsilon {
104
107
t .Errorf ("4 minute a.Rate(): 0.269597378470333 != %v\n " , rate )
105
108
}
106
109
elapseMinute (a )
107
- if rate := a .Rate (); 0.2207276647028654 != rate {
110
+ if rate := a .Rate (); math . Abs ( 0.2207276647028654 - rate ) > epsilon {
108
111
t .Errorf ("5 minute a.Rate(): 0.2207276647028654 != %v\n " , rate )
109
112
}
110
113
elapseMinute (a )
111
- if rate := a .Rate (); 0.18071652714732128 != rate {
114
+ if rate := a .Rate (); math . Abs ( 0.18071652714732128 - rate ) > epsilon {
112
115
t .Errorf ("6 minute a.Rate(): 0.18071652714732128 != %v\n " , rate )
113
116
}
114
117
elapseMinute (a )
115
- if rate := a .Rate (); 0.14795817836496392 != rate {
118
+ if rate := a .Rate (); math . Abs ( 0.14795817836496392 - rate ) > epsilon {
116
119
t .Errorf ("7 minute a.Rate(): 0.14795817836496392 != %v\n " , rate )
117
120
}
118
121
elapseMinute (a )
119
- if rate := a .Rate (); 0.12113791079679326 != rate {
122
+ if rate := a .Rate (); math . Abs ( 0.12113791079679326 - rate ) > epsilon {
120
123
t .Errorf ("8 minute a.Rate(): 0.12113791079679326 != %v\n " , rate )
121
124
}
122
125
elapseMinute (a )
123
- if rate := a .Rate (); 0.09917933293295193 != rate {
126
+ if rate := a .Rate (); math . Abs ( 0.09917933293295193 - rate ) > epsilon {
124
127
t .Errorf ("9 minute a.Rate(): 0.09917933293295193 != %v\n " , rate )
125
128
}
126
129
elapseMinute (a )
127
- if rate := a .Rate (); 0.08120116994196763 != rate {
130
+ if rate := a .Rate (); math . Abs ( 0.08120116994196763 - rate ) > epsilon {
128
131
t .Errorf ("10 minute a.Rate(): 0.08120116994196763 != %v\n " , rate )
129
132
}
130
133
elapseMinute (a )
131
- if rate := a .Rate (); 0.06648189501740036 != rate {
134
+ if rate := a .Rate (); math . Abs ( 0.06648189501740036 - rate ) > epsilon {
132
135
t .Errorf ("11 minute a.Rate(): 0.06648189501740036 != %v\n " , rate )
133
136
}
134
137
elapseMinute (a )
135
- if rate := a .Rate (); 0.05443077197364752 != rate {
138
+ if rate := a .Rate (); math . Abs ( 0.05443077197364752 - rate ) > epsilon {
136
139
t .Errorf ("12 minute a.Rate(): 0.05443077197364752 != %v\n " , rate )
137
140
}
138
141
elapseMinute (a )
139
- if rate := a .Rate (); 0.04456414692860035 != rate {
142
+ if rate := a .Rate (); math . Abs ( 0.04456414692860035 - rate ) > epsilon {
140
143
t .Errorf ("13 minute a.Rate(): 0.04456414692860035 != %v\n " , rate )
141
144
}
142
145
elapseMinute (a )
143
- if rate := a .Rate (); 0.03648603757513079 != rate {
146
+ if rate := a .Rate (); math . Abs ( 0.03648603757513079 - rate ) > epsilon {
144
147
t .Errorf ("14 minute a.Rate(): 0.03648603757513079 != %v\n " , rate )
145
148
}
146
149
elapseMinute (a )
147
- if rate := a .Rate (); 0.0298722410207183831020718428 != rate {
150
+ if rate := a .Rate (); math . Abs ( 0.0298722410207183831020718428 - rate ) > epsilon {
148
151
t .Errorf ("15 minute a.Rate(): 0.0298722410207183831020718428 != %v\n " , rate )
149
152
}
150
153
}
@@ -153,67 +156,67 @@ func TestEWMA15(t *testing.T) {
153
156
a := NewEWMA15 ()
154
157
a .Update (3 )
155
158
a .Tick ()
156
- if rate := a .Rate (); 0.6 != rate {
159
+ if rate := a .Rate (); math . Abs ( 0.6 - rate ) > epsilon {
157
160
t .Errorf ("initial a.Rate(): 0.6 != %v\n " , rate )
158
161
}
159
162
elapseMinute (a )
160
- if rate := a .Rate (); 0.5613041910189706 != rate {
163
+ if rate := a .Rate (); math . Abs ( 0.5613041910189706 - rate ) > epsilon {
161
164
t .Errorf ("1 minute a.Rate(): 0.5613041910189706 != %v\n " , rate )
162
165
}
163
166
elapseMinute (a )
164
- if rate := a .Rate (); 0.5251039914257684 != rate {
167
+ if rate := a .Rate (); math . Abs ( 0.5251039914257684 - rate ) > epsilon {
165
168
t .Errorf ("2 minute a.Rate(): 0.5251039914257684 != %v\n " , rate )
166
169
}
167
170
elapseMinute (a )
168
- if rate := a .Rate (); 0.4912384518467888184678905 != rate {
171
+ if rate := a .Rate (); math . Abs ( 0.4912384518467888184678905 - rate ) > epsilon {
169
172
t .Errorf ("3 minute a.Rate(): 0.4912384518467888184678905 != %v\n " , rate )
170
173
}
171
174
elapseMinute (a )
172
- if rate := a .Rate (); 0.459557003018789 != rate {
175
+ if rate := a .Rate (); math . Abs ( 0.459557003018789 - rate ) > epsilon {
173
176
t .Errorf ("4 minute a.Rate(): 0.459557003018789 != %v\n " , rate )
174
177
}
175
178
elapseMinute (a )
176
- if rate := a .Rate (); 0.4299187863442732 != rate {
179
+ if rate := a .Rate (); math . Abs ( 0.4299187863442732 - rate ) > epsilon {
177
180
t .Errorf ("5 minute a.Rate(): 0.4299187863442732 != %v\n " , rate )
178
181
}
179
182
elapseMinute (a )
180
- if rate := a .Rate (); 0.4021920276213831 != rate {
183
+ if rate := a .Rate (); math . Abs ( 0.4021920276213831 - rate ) > epsilon {
181
184
t .Errorf ("6 minute a.Rate(): 0.4021920276213831 != %v\n " , rate )
182
185
}
183
186
elapseMinute (a )
184
- if rate := a .Rate (); 0.37625345116383313 != rate {
187
+ if rate := a .Rate (); math . Abs ( 0.37625345116383313 - rate ) > epsilon {
185
188
t .Errorf ("7 minute a.Rate(): 0.37625345116383313 != %v\n " , rate )
186
189
}
187
190
elapseMinute (a )
188
- if rate := a .Rate (); 0.3519877317060185 != rate {
191
+ if rate := a .Rate (); math . Abs ( 0.3519877317060185 - rate ) > epsilon {
189
192
t .Errorf ("8 minute a.Rate(): 0.3519877317060185 != %v\n " , rate )
190
193
}
191
194
elapseMinute (a )
192
- if rate := a .Rate (); 0.3292869816564153165641596 != rate {
195
+ if rate := a .Rate (); math . Abs ( 0.3292869816564153165641596 - rate ) > epsilon {
193
196
t .Errorf ("9 minute a.Rate(): 0.3292869816564153165641596 != %v\n " , rate )
194
197
}
195
198
elapseMinute (a )
196
- if rate := a .Rate (); 0.3080502714195546 != rate {
199
+ if rate := a .Rate (); math . Abs ( 0.3080502714195546 - rate ) > epsilon {
197
200
t .Errorf ("10 minute a.Rate(): 0.3080502714195546 != %v\n " , rate )
198
201
}
199
202
elapseMinute (a )
200
- if rate := a .Rate (); 0.2881831806538789 != rate {
203
+ if rate := a .Rate (); math . Abs ( 0.2881831806538789 - rate ) > epsilon {
201
204
t .Errorf ("11 minute a.Rate(): 0.2881831806538789 != %v\n " , rate )
202
205
}
203
206
elapseMinute (a )
204
- if rate := a .Rate (); 0.26959737847033216 != rate {
207
+ if rate := a .Rate (); math . Abs ( 0.26959737847033216 - rate ) > epsilon {
205
208
t .Errorf ("12 minute a.Rate(): 0.26959737847033216 != %v\n " , rate )
206
209
}
207
210
elapseMinute (a )
208
- if rate := a .Rate (); 0.2522102307052083 != rate {
211
+ if rate := a .Rate (); math . Abs ( 0.2522102307052083 - rate ) > epsilon {
209
212
t .Errorf ("13 minute a.Rate(): 0.2522102307052083 != %v\n " , rate )
210
213
}
211
214
elapseMinute (a )
212
- if rate := a .Rate (); 0.23594443252115815 != rate {
215
+ if rate := a .Rate (); math . Abs ( 0.23594443252115815 - rate ) > epsilon {
213
216
t .Errorf ("14 minute a.Rate(): 0.23594443252115815 != %v\n " , rate )
214
217
}
215
218
elapseMinute (a )
216
- if rate := a .Rate (); 0.2207276647028646247028654470286553 != rate {
219
+ if rate := a .Rate (); math . Abs ( 0.2207276647028646247028654470286553 - rate ) > epsilon {
217
220
t .Errorf ("15 minute a.Rate(): 0.2207276647028646247028654470286553 != %v\n " , rate )
218
221
}
219
222
}
0 commit comments