OLD | NEW |
1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 library analysis_server.src.utilities.average; | 5 library analysis_server.src.utilities.average; |
6 | 6 |
7 /// Simple rolling average sample counter. | 7 /// Simple rolling average sample counter. |
8 class Average { | 8 class Average { |
9 num _val; | 9 num _val; |
10 final int _sampleCount; | 10 final int _sampleCount; |
11 | 11 |
12 /// Create an average with the given (optional) sample count size. | 12 /// Create an average with the given (optional) sample count size. |
13 Average([this._sampleCount = 20]); | 13 Average([this._sampleCount = 20]); |
14 | 14 |
15 /// The current average. | 15 /// The current average. |
16 num get value => _val ?? 0; | 16 num get value => _val ?? 0; |
17 | 17 |
18 /// Add the given [sample]. | 18 /// Add the given [sample]. |
19 void addSample(num sample) { | 19 void addSample(num sample) { |
20 if (_val == null) { | 20 if (_val == null) { |
21 _val = sample; | 21 _val = sample; |
22 } else { | 22 } else { |
23 _val = _val * ((_sampleCount - 1) / _sampleCount) + | 23 _val = _val * ((_sampleCount - 1) / _sampleCount) + |
24 sample * (1 / _sampleCount); | 24 sample * (1 / _sampleCount); |
25 } | 25 } |
26 } | 26 } |
27 | 27 |
28 @override | 28 @override |
29 String toString() => 'average: ${value}'; | 29 String toString() => 'average: $value'; |
30 } | 30 } |
OLD | NEW |