public void CalculateExponentialExpectedStandardDeviation() { //Arrange ExponentialGenerator exponentialGenerator = new ExponentialGenerator(4, 100); //Act double number = exponentialGenerator.CalculateExpectedStandardDeviation(); //Assert Assert.AreEqual(0.25, number); }
public void CalculateExponentialExpectedVarianceTest() { //Arrange ExponentialGenerator exponentialGenerator = new ExponentialGenerator(4, 100); //Act double number = exponentialGenerator.CalculateExpectedVariance(); //Assert Assert.AreEqual(0.0625, number); }
public void CalculateExponentialTest() { //Arrange ExponentialGenerator exponentialGenerator = new ExponentialGenerator(4, 100); //Act double probability = exponentialGenerator.CalculateExponential(1); //Assert Assert.AreEqual(0.0183, Math.Round(probability, 4)); }
public void GenerateExponentialDistributionTest() { //Arrange ExponentialGenerator exponentialGenerator = new ExponentialGenerator(20, 100); //Act double[] distribution = exponentialGenerator.GenerateExponentialDistribution(); //Assert foreach (double number in distribution) { Assert.AreEqual(0, Math.Round(number)); } }
private async void GenerateButton_Click(object sender, EventArgs e) { string distribution = DistributionComboBox.SelectedItem.ToString(); int count = (int)CountInput.Value; int seed = (int)SeedInput.Value; int multiplier = (int)MultiplierInput.Value; int range = (int)RangeInput.Value; bool showAllNumbers = !DisplayedNumbersLimiter.Checked; IGenerator generator; MLCG generatorMLCG = new MLCG(seed, multiplier, range); ClearComponents(); GeneratingProgress.Maximum = count; switch (distribution) { case "Uniform": generator = new UniformGenerator(Input1.Value, Input2.Value, generatorMLCG); break; case "Gauss": generator = new GaussGenerator(Input1.Value, Input2.Value, Input3.Value, count, generatorMLCG); break; case "Exponential": generator = new ExponentialGenerator(Input1.Value, generatorMLCG); break; case "Gamma": generator = new GammaGenerator(Input1.Value, Input2.Value, count, generatorMLCG); break; case "Triangular": generator = new TriangularGenerator(Input1.Value, Input2.Value, TriangularMinCheckBox.Checked, count, generatorMLCG); break; case "Simpson": generator = new SimpsonGenerator(Input1.Value, Input2.Value, count, generatorMLCG); break; default: generator = generatorMLCG; break; } await Task.Factory.StartNew(() => { ProgressStage("Generating numbers..."); for (int i = 0; i < count; i++) { if (showAllNumbers || i < 100) { string row = $"{i + 1}. {generator.NextNumber()}"; ExecuteInUIThread(() => NumbersList.Items.Add(row)); } else { generator.NextNumber(); } ExecuteInUIThread(() => GeneratingProgress.Value++); } ProgressStage("Calculating statistics..."); Calculations calculations = new Calculations(generator); AddToOutputBox($"M = {calculations.ExpectedValue:F5}"); AddToOutputBox($"D = {calculations.Variance:F5}"); AddToOutputBox($"σ = {calculations.StandardDeviation:F5}"); ProgressStage("Building plot..."); calculations.BuildHistogram(Plot.plt); Plot.Render(); ProgressStage("Complete."); }); }
public Simulator(double inputIntensity, double outputIntensity) { this.inputIntensity = inputIntensity; this.outputIntensity = outputIntensity; random = new ExponentialGenerator(inputIntensity); }