OLD | NEW |
(Empty) | |
| 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 |
| 3 // BSD-style license that can be found in the LICENSE file. |
| 4 |
| 5 library analysis_server.src.utilities.average; |
| 6 |
| 7 /// Simple rolling average sample counter. |
| 8 class Average { |
| 9 num _val; |
| 10 final int _sampleCount; |
| 11 |
| 12 /// Create an average with the given (optional) sample count size. |
| 13 Average([this._sampleCount = 20]); |
| 14 |
| 15 /// The current average. |
| 16 num get value => _val ?? 0; |
| 17 |
| 18 /// Add the given [sample]. |
| 19 void addSample(num sample) { |
| 20 if (_val == null) { |
| 21 _val = sample; |
| 22 } else { |
| 23 _val = _val * ((_sampleCount - 1) / _sampleCount) + |
| 24 sample * (1 / _sampleCount); |
| 25 } |
| 26 } |
| 27 |
| 28 @override |
| 29 String toString() => 'average: ${value}'; |
| 30 } |
OLD | NEW |