public void RunTestDefinition(BsonDocument definition) { var subject = new ExponentiallyWeightedMovingAverage(0.2); var current = definition["avg_rtt_ms"]; if (current.ToString() != "NULL") { subject.AddSample(TimeSpan.FromMilliseconds(current.ToDouble())); // the first value } var nextValue = definition["new_rtt_ms"].ToDouble(); subject.AddSample(TimeSpan.FromMilliseconds(nextValue)); var expected = definition["new_avg_rtt"].ToDouble(); subject.Average.Should().BeCloseTo(TimeSpan.FromMilliseconds(expected), 1); }