public void GetPercentile_twoPrices() { var percentiler = new PricePercentile(0.01, 1); percentiler.Add(0.03); percentiler.Add(0.05); Assert.Equal(0.03, percentiler.GetPercentilePrice(0.25)); Assert.Equal(0.05, percentiler.GetPercentilePrice(0.5)); }
public void GetPercentile_repeatElements() { var percentiler = new PricePercentile(0.01, 1); percentiler.Add(0.25); percentiler.Add(0.5); percentiler.Add(0.5); percentiler.Add(0.5); percentiler.Add(0.75); Assert.Equal(0.5, percentiler.GetPercentilePrice(0.25)); Assert.Equal(0.5, percentiler.GetPercentilePrice(0.5)); Assert.Equal(0.5, percentiler.GetPercentilePrice(0.75)); }
public void GetPercentile_threePrices() { var percentiler = new PricePercentile(0.01, 1); percentiler.Add(0.25); percentiler.Add(0.5); percentiler.Add(0.75); Assert.Equal(0, percentiler.GetPercentilePrice(0)); Assert.Equal(0.25, percentiler.GetPercentilePrice(0.25)); Assert.Equal(0.5, percentiler.GetPercentilePrice(0.5)); Assert.Equal(0.75, percentiler.GetPercentilePrice(0.75)); Assert.Equal(0.75, percentiler.GetPercentilePrice(0.9)); Assert.Equal(0.75, percentiler.GetPercentilePrice(1)); }
public void Add_tests() { var percentiler = new PricePercentile(0.01, 100); for (var i = 0; i < 128; i++) { var rand = new Random(); var p = rand.NextDouble() * 100; p = Math.Round(p, 2); if (p < 0.01) { p = 0.01; // the min price } percentiler.Add(p); } Assert.Equal(128, percentiler.Count); }