public void Returns_exact_percentiles_for_exact_durations(double duration, double expectedPercentile)
        {
            var dp = new DurationPercentiles(new double[] { 3, 1, 2 });

            Assert.Equal(expectedPercentile, dp.PercentileAtDuration(duration));
        }
        public void Returns_interpolated_durations_for_inexact_percentiles(double percentile, double expectedDuration)
        {
            var dp = new DurationPercentiles(new double[] { 1, 2, 4, 10, 100 });

            Assert.Equal(expectedDuration, dp.DurationAtPercentile(percentile), new DoubleEpsilonComparer());
        }
        public void Returns_exact_durations_for_exact_percentiles_2(double percentile, double expectedDuration)
        {
            var dp = new DurationPercentiles(new double[] { 1, 3, 5, 6, 8 });

            Assert.Equal(expectedDuration, dp.DurationAtPercentile(percentile));
        }
        public void Orders_durations()
        {
            var dp = new DurationPercentiles(new double[] { 3, 1, 2 });

            Assert.Equal(new double[] { 1, 2, 3 }, dp.Durations);
        }
        public void Contains_input_durations()
        {
            var dp = new DurationPercentiles(new double[] { 1, 2, 3 });

            Assert.Equal(new double[] { 1, 2, 3 }, dp.Durations);
        }
        public void Percentile_over_maximum_is_1(double percentile, double expectedDuration)
        {
            var dp = new DurationPercentiles(new double[] { 1, 3, 5, 6, 8 });

            Assert.Equal(expectedDuration, dp.PercentileAtDuration(percentile));
        }