11package metrics
22
3- import "testing"
3+ import (
4+ "math"
5+ "testing"
6+ )
47
58func BenchmarkEWMA (b * testing.B ) {
69 a := NewEWMA1 ()
@@ -15,67 +18,67 @@ func TestEWMA1(t *testing.T) {
1518 a := NewEWMA1 ()
1619 a .Update (3 )
1720 a .Tick ()
18- if rate := a .Rate (); 0.6 != rate {
21+ if rate := a .Rate (); math . Abs ( 0.6 - rate ) > epsilon {
1922 t .Errorf ("initial a.Rate(): 0.6 != %v\n " , rate )
2023 }
2124 elapseMinute (a )
22- if rate := a .Rate (); 0.22072766470286553 != rate {
25+ if rate := a .Rate (); math . Abs ( 0.22072766470286553 - rate ) > epsilon {
2326 t .Errorf ("1 minute a.Rate(): 0.22072766470286553 != %v\n " , rate )
2427 }
2528 elapseMinute (a )
26- if rate := a .Rate (); 0.08120116994196772 != rate {
29+ if rate := a .Rate (); math . Abs ( 0.08120116994196772 - rate ) > epsilon {
2730 t .Errorf ("2 minute a.Rate(): 0.08120116994196772 != %v\n " , rate )
2831 }
2932 elapseMinute (a )
30- if rate := a .Rate (); 0.029872241020718428 != rate {
33+ if rate := a .Rate (); math . Abs ( 0.029872241020718428 - rate ) > epsilon {
3134 t .Errorf ("3 minute a.Rate(): 0.029872241020718428 != %v\n " , rate )
3235 }
3336 elapseMinute (a )
34- if rate := a .Rate (); 0.01098938333324054 != rate {
37+ if rate := a .Rate (); math . Abs ( 0.01098938333324054 - rate ) > epsilon {
3538 t .Errorf ("4 minute a.Rate(): 0.01098938333324054 != %v\n " , rate )
3639 }
3740 elapseMinute (a )
38- if rate := a .Rate (); 0.004042768199451294 != rate {
41+ if rate := a .Rate (); math . Abs ( 0.004042768199451294 - rate ) > epsilon {
3942 t .Errorf ("5 minute a.Rate(): 0.004042768199451294 != %v\n " , rate )
4043 }
4144 elapseMinute (a )
42- if rate := a .Rate (); 0.0014872513059998212 != rate {
45+ if rate := a .Rate (); math . Abs ( 0.0014872513059998212 - rate ) > epsilon {
4346 t .Errorf ("6 minute a.Rate(): 0.0014872513059998212 != %v\n " , rate )
4447 }
4548 elapseMinute (a )
46- if rate := a .Rate (); 0.0005471291793327122 != rate {
49+ if rate := a .Rate (); math . Abs ( 0.0005471291793327122 - rate ) > epsilon {
4750 t .Errorf ("7 minute a.Rate(): 0.0005471291793327122 != %v\n " , rate )
4851 }
4952 elapseMinute (a )
50- if rate := a .Rate (); 0.00020127757674150815 != rate {
53+ if rate := a .Rate (); math . Abs ( 0.00020127757674150815 - rate ) > epsilon {
5154 t .Errorf ("8 minute a.Rate(): 0.00020127757674150815 != %v\n " , rate )
5255 }
5356 elapseMinute (a )
54- if rate := a .Rate (); 7.404588245200814e-05 != rate {
57+ if rate := a .Rate (); math . Abs ( 7.404588245200814e-05 - rate ) > epsilon {
5558 t .Errorf ("9 minute a.Rate(): 7.404588245200814e-05 != %v\n " , rate )
5659 }
5760 elapseMinute (a )
58- if rate := a .Rate (); 2.7239957857491083e-05 != rate {
61+ if rate := a .Rate (); math . Abs ( 2.7239957857491083e-05 - rate ) > epsilon {
5962 t .Errorf ("10 minute a.Rate(): 2.7239957857491083e-05 != %v\n " , rate )
6063 }
6164 elapseMinute (a )
62- if rate := a .Rate (); 1.0021020474147462e-05 != rate {
65+ if rate := a .Rate (); math . Abs ( 1.0021020474147462e-05 - rate ) > epsilon {
6366 t .Errorf ("11 minute a.Rate(): 1.0021020474147462e-05 != %v\n " , rate )
6467 }
6568 elapseMinute (a )
66- if rate := a .Rate (); 3.6865274119969525e-06 != rate {
69+ if rate := a .Rate (); math . Abs ( 3.6865274119969525e-06 - rate ) > epsilon {
6770 t .Errorf ("12 minute a.Rate(): 3.6865274119969525e-06 != %v\n " , rate )
6871 }
6972 elapseMinute (a )
70- if rate := a .Rate (); 1.3561976441886433e-06 != rate {
73+ if rate := a .Rate (); math . Abs ( 1.3561976441886433e-06 - rate ) > epsilon {
7174 t .Errorf ("13 minute a.Rate(): 1.3561976441886433e-06 != %v\n " , rate )
7275 }
7376 elapseMinute (a )
74- if rate := a .Rate (); 4.989172314621449e-07 != rate {
77+ if rate := a .Rate (); math . Abs ( 4.989172314621449e-07 - rate ) > epsilon {
7578 t .Errorf ("14 minute a.Rate(): 4.989172314621449e-07 != %v\n " , rate )
7679 }
7780 elapseMinute (a )
78- if rate := a .Rate (); 1.8354139230109722e-07 != rate {
81+ if rate := a .Rate (); math . Abs ( 1.8354139230109722e-07 - rate ) > epsilon {
7982 t .Errorf ("15 minute a.Rate(): 1.8354139230109722e-07 != %v\n " , rate )
8083 }
8184}
@@ -84,67 +87,67 @@ func TestEWMA5(t *testing.T) {
8487 a := NewEWMA5 ()
8588 a .Update (3 )
8689 a .Tick ()
87- if rate := a .Rate (); 0.6 != rate {
90+ if rate := a .Rate (); math . Abs ( 0.6 - rate ) > epsilon {
8891 t .Errorf ("initial a.Rate(): 0.6 != %v\n " , rate )
8992 }
9093 elapseMinute (a )
91- if rate := a .Rate (); 0.49123845184678905 != rate {
94+ if rate := a .Rate (); math . Abs ( 0.49123845184678905 - rate ) > epsilon {
9295 t .Errorf ("1 minute a.Rate(): 0.49123845184678905 != %v\n " , rate )
9396 }
9497 elapseMinute (a )
95- if rate := a .Rate (); 0.4021920276213837 != rate {
98+ if rate := a .Rate (); math . Abs ( 0.4021920276213837 - rate ) > epsilon {
9699 t .Errorf ("2 minute a.Rate(): 0.4021920276213837 != %v\n " , rate )
97100 }
98101 elapseMinute (a )
99- if rate := a .Rate (); 0.32928698165641596 != rate {
102+ if rate := a .Rate (); math . Abs ( 0.32928698165641596 - rate ) > epsilon {
100103 t .Errorf ("3 minute a.Rate(): 0.32928698165641596 != %v\n " , rate )
101104 }
102105 elapseMinute (a )
103- if rate := a .Rate (); 0.269597378470333 != rate {
106+ if rate := a .Rate (); math . Abs ( 0.269597378470333 - rate ) > epsilon {
104107 t .Errorf ("4 minute a.Rate(): 0.269597378470333 != %v\n " , rate )
105108 }
106109 elapseMinute (a )
107- if rate := a .Rate (); 0.2207276647028654 != rate {
110+ if rate := a .Rate (); math . Abs ( 0.2207276647028654 - rate ) > epsilon {
108111 t .Errorf ("5 minute a.Rate(): 0.2207276647028654 != %v\n " , rate )
109112 }
110113 elapseMinute (a )
111- if rate := a .Rate (); 0.18071652714732128 != rate {
114+ if rate := a .Rate (); math . Abs ( 0.18071652714732128 - rate ) > epsilon {
112115 t .Errorf ("6 minute a.Rate(): 0.18071652714732128 != %v\n " , rate )
113116 }
114117 elapseMinute (a )
115- if rate := a .Rate (); 0.14795817836496392 != rate {
118+ if rate := a .Rate (); math . Abs ( 0.14795817836496392 - rate ) > epsilon {
116119 t .Errorf ("7 minute a.Rate(): 0.14795817836496392 != %v\n " , rate )
117120 }
118121 elapseMinute (a )
119- if rate := a .Rate (); 0.12113791079679326 != rate {
122+ if rate := a .Rate (); math . Abs ( 0.12113791079679326 - rate ) > epsilon {
120123 t .Errorf ("8 minute a.Rate(): 0.12113791079679326 != %v\n " , rate )
121124 }
122125 elapseMinute (a )
123- if rate := a .Rate (); 0.09917933293295193 != rate {
126+ if rate := a .Rate (); math . Abs ( 0.09917933293295193 - rate ) > epsilon {
124127 t .Errorf ("9 minute a.Rate(): 0.09917933293295193 != %v\n " , rate )
125128 }
126129 elapseMinute (a )
127- if rate := a .Rate (); 0.08120116994196763 != rate {
130+ if rate := a .Rate (); math . Abs ( 0.08120116994196763 - rate ) > epsilon {
128131 t .Errorf ("10 minute a.Rate(): 0.08120116994196763 != %v\n " , rate )
129132 }
130133 elapseMinute (a )
131- if rate := a .Rate (); 0.06648189501740036 != rate {
134+ if rate := a .Rate (); math . Abs ( 0.06648189501740036 - rate ) > epsilon {
132135 t .Errorf ("11 minute a.Rate(): 0.06648189501740036 != %v\n " , rate )
133136 }
134137 elapseMinute (a )
135- if rate := a .Rate (); 0.05443077197364752 != rate {
138+ if rate := a .Rate (); math . Abs ( 0.05443077197364752 - rate ) > epsilon {
136139 t .Errorf ("12 minute a.Rate(): 0.05443077197364752 != %v\n " , rate )
137140 }
138141 elapseMinute (a )
139- if rate := a .Rate (); 0.04456414692860035 != rate {
142+ if rate := a .Rate (); math . Abs ( 0.04456414692860035 - rate ) > epsilon {
140143 t .Errorf ("13 minute a.Rate(): 0.04456414692860035 != %v\n " , rate )
141144 }
142145 elapseMinute (a )
143- if rate := a .Rate (); 0.03648603757513079 != rate {
146+ if rate := a .Rate (); math . Abs ( 0.03648603757513079 - rate ) > epsilon {
144147 t .Errorf ("14 minute a.Rate(): 0.03648603757513079 != %v\n " , rate )
145148 }
146149 elapseMinute (a )
147- if rate := a .Rate (); 0.0298722410207183831020718428 != rate {
150+ if rate := a .Rate (); math . Abs ( 0.0298722410207183831020718428 - rate ) > epsilon {
148151 t .Errorf ("15 minute a.Rate(): 0.0298722410207183831020718428 != %v\n " , rate )
149152 }
150153}
@@ -153,67 +156,67 @@ func TestEWMA15(t *testing.T) {
153156 a := NewEWMA15 ()
154157 a .Update (3 )
155158 a .Tick ()
156- if rate := a .Rate (); 0.6 != rate {
159+ if rate := a .Rate (); math . Abs ( 0.6 - rate ) > epsilon {
157160 t .Errorf ("initial a.Rate(): 0.6 != %v\n " , rate )
158161 }
159162 elapseMinute (a )
160- if rate := a .Rate (); 0.5613041910189706 != rate {
163+ if rate := a .Rate (); math . Abs ( 0.5613041910189706 - rate ) > epsilon {
161164 t .Errorf ("1 minute a.Rate(): 0.5613041910189706 != %v\n " , rate )
162165 }
163166 elapseMinute (a )
164- if rate := a .Rate (); 0.5251039914257684 != rate {
167+ if rate := a .Rate (); math . Abs ( 0.5251039914257684 - rate ) > epsilon {
165168 t .Errorf ("2 minute a.Rate(): 0.5251039914257684 != %v\n " , rate )
166169 }
167170 elapseMinute (a )
168- if rate := a .Rate (); 0.4912384518467888184678905 != rate {
171+ if rate := a .Rate (); math . Abs ( 0.4912384518467888184678905 - rate ) > epsilon {
169172 t .Errorf ("3 minute a.Rate(): 0.4912384518467888184678905 != %v\n " , rate )
170173 }
171174 elapseMinute (a )
172- if rate := a .Rate (); 0.459557003018789 != rate {
175+ if rate := a .Rate (); math . Abs ( 0.459557003018789 - rate ) > epsilon {
173176 t .Errorf ("4 minute a.Rate(): 0.459557003018789 != %v\n " , rate )
174177 }
175178 elapseMinute (a )
176- if rate := a .Rate (); 0.4299187863442732 != rate {
179+ if rate := a .Rate (); math . Abs ( 0.4299187863442732 - rate ) > epsilon {
177180 t .Errorf ("5 minute a.Rate(): 0.4299187863442732 != %v\n " , rate )
178181 }
179182 elapseMinute (a )
180- if rate := a .Rate (); 0.4021920276213831 != rate {
183+ if rate := a .Rate (); math . Abs ( 0.4021920276213831 - rate ) > epsilon {
181184 t .Errorf ("6 minute a.Rate(): 0.4021920276213831 != %v\n " , rate )
182185 }
183186 elapseMinute (a )
184- if rate := a .Rate (); 0.37625345116383313 != rate {
187+ if rate := a .Rate (); math . Abs ( 0.37625345116383313 - rate ) > epsilon {
185188 t .Errorf ("7 minute a.Rate(): 0.37625345116383313 != %v\n " , rate )
186189 }
187190 elapseMinute (a )
188- if rate := a .Rate (); 0.3519877317060185 != rate {
191+ if rate := a .Rate (); math . Abs ( 0.3519877317060185 - rate ) > epsilon {
189192 t .Errorf ("8 minute a.Rate(): 0.3519877317060185 != %v\n " , rate )
190193 }
191194 elapseMinute (a )
192- if rate := a .Rate (); 0.3292869816564153165641596 != rate {
195+ if rate := a .Rate (); math . Abs ( 0.3292869816564153165641596 - rate ) > epsilon {
193196 t .Errorf ("9 minute a.Rate(): 0.3292869816564153165641596 != %v\n " , rate )
194197 }
195198 elapseMinute (a )
196- if rate := a .Rate (); 0.3080502714195546 != rate {
199+ if rate := a .Rate (); math . Abs ( 0.3080502714195546 - rate ) > epsilon {
197200 t .Errorf ("10 minute a.Rate(): 0.3080502714195546 != %v\n " , rate )
198201 }
199202 elapseMinute (a )
200- if rate := a .Rate (); 0.2881831806538789 != rate {
203+ if rate := a .Rate (); math . Abs ( 0.2881831806538789 - rate ) > epsilon {
201204 t .Errorf ("11 minute a.Rate(): 0.2881831806538789 != %v\n " , rate )
202205 }
203206 elapseMinute (a )
204- if rate := a .Rate (); 0.26959737847033216 != rate {
207+ if rate := a .Rate (); math . Abs ( 0.26959737847033216 - rate ) > epsilon {
205208 t .Errorf ("12 minute a.Rate(): 0.26959737847033216 != %v\n " , rate )
206209 }
207210 elapseMinute (a )
208- if rate := a .Rate (); 0.2522102307052083 != rate {
211+ if rate := a .Rate (); math . Abs ( 0.2522102307052083 - rate ) > epsilon {
209212 t .Errorf ("13 minute a.Rate(): 0.2522102307052083 != %v\n " , rate )
210213 }
211214 elapseMinute (a )
212- if rate := a .Rate (); 0.23594443252115815 != rate {
215+ if rate := a .Rate (); math . Abs ( 0.23594443252115815 - rate ) > epsilon {
213216 t .Errorf ("14 minute a.Rate(): 0.23594443252115815 != %v\n " , rate )
214217 }
215218 elapseMinute (a )
216- if rate := a .Rate (); 0.2207276647028646247028654470286553 != rate {
219+ if rate := a .Rate (); math . Abs ( 0.2207276647028646247028654470286553 - rate ) > epsilon {
217220 t .Errorf ("15 minute a.Rate(): 0.2207276647028646247028654470286553 != %v\n " , rate )
218221 }
219222}
0 commit comments