public override PhiAccrualState Actual() { return(new PhiAccrualState() { History = HeartbeatHistory.Apply(_sampleSize.Get) }); }
public void StatisticsForHeartbeats_must_calculate_correct_mean_and_variance() { var samples = new[] { 100L, 200L, 125L, 340L, 130L }; var stats = samples.Aggregate(HeartbeatHistory.Apply(20), (current, stat) => current + stat); ShouldBe(stats.Mean, 179.0D, 0.00001); ShouldBe(stats.Variance, 7584.0D, 0.00001); }
public void StatisticsForHeartbeats_must_be_capped_by_the_specified_maxSampleSize() { var history3 = HeartbeatHistory.Apply(3) + 100 + 110 + 90; ShouldBe(history3.Mean, 100.0D, 0.00001D); ShouldBe(history3.Variance, 66.6666667D, 0.00001D); var history4 = history3 + 140; ShouldBe(history4.Mean, 113.333333D, 0.00001D); ShouldBe(history4.Variance, 422.222222D, 0.00001D); var history5 = history4 + 80; ShouldBe(history5.Mean, 103.333333D, 0.00001D); ShouldBe(history5.Variance, 688.88888889D, 0.00001D); }
public void StatisticsForHeartbeats_must_have_zero_variance_for_one_sample() { var history = HeartbeatHistory.Apply(600) + 1000L; ShouldBe(history.Variance, 0.0, 0.00001D); }