| 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 |