public void ProbabilityDensityFunctionTest() { double a = -5; double b = 11; UniformContinuousDistribution target = new UniformContinuousDistribution(a, b); double x = 4.2; double expected = 0.0625; double actual = target.ProbabilityDensityFunction(x); Assert.AreEqual(expected, actual); x = -5; expected = 0.0; actual = target.ProbabilityDensityFunction(x); Assert.AreEqual(expected, actual); x = -6; expected = 0.0; actual = target.ProbabilityDensityFunction(x); Assert.AreEqual(expected, actual); x = 11; expected = 0.0625; actual = target.ProbabilityDensityFunction(x); Assert.AreEqual(expected, actual); x = 12; expected = 0.0; actual = target.ProbabilityDensityFunction(x); Assert.AreEqual(expected, actual); }
public void ConstructorTest() { var uniform = new UniformContinuousDistribution(a: 0.42, b: 1.1); double mean = uniform.Mean; // 0.76 double median = uniform.Median; // 0.76 double var = uniform.Variance; // 0.03853333333333335 double cdf = uniform.DistributionFunction(x: 0.9); // 0.70588235294117641 double pdf = uniform.ProbabilityDensityFunction(x: 0.9); // 1.4705882352941173 double lpdf = uniform.LogProbabilityDensityFunction(x: 0.9); // 0.38566248081198445 double ccdf = uniform.ComplementaryDistributionFunction(x: 0.9); // 0.29411764705882359 double icdf = uniform.InverseDistributionFunction(p: cdf); // 0.9 double hf = uniform.HazardFunction(x: 0.9); // 4.9999999999999973 double chf = uniform.CumulativeHazardFunction(x: 0.9); // 1.2237754316221154 string str = uniform.ToString(CultureInfo.InvariantCulture); // "U(x; a = 0.42, b = 1.1)" Assert.AreEqual(0.76, mean); Assert.AreEqual(0.76, median); Assert.AreEqual(0.03853333333333335, var); Assert.AreEqual(1.2237754316221154, chf); Assert.AreEqual(0.70588235294117641, cdf); Assert.AreEqual(1.4705882352941173, pdf); Assert.AreEqual(0.38566248081198445, lpdf); Assert.AreEqual(4.9999999999999973, hf); Assert.AreEqual(0.29411764705882359, ccdf); Assert.AreEqual(0.9, icdf); Assert.AreEqual("U(x; a = 0.42, b = 1.1)", str); }
public void IntervalTest() { var target = new UniformContinuousDistribution(-10, 10); for (int k = -15; k < 15; k++) { double expected = target.ProbabilityDensityFunction(k); double a = target.DistributionFunction(k); double b = target.DistributionFunction(k - 1); double c = a - b; Assert.AreEqual(expected, c, 1e-15); Assert.AreEqual(c, target.DistributionFunction(k - 1, k), 1e-15); } }
public void RTest() { var target = new UniformContinuousDistribution(3, 6); Assert.AreEqual(0, target.ProbabilityDensityFunction(2)); Assert.AreEqual(1 / 3.0, target.ProbabilityDensityFunction(3), 1e-10); Assert.AreEqual(1 / 3.0, target.ProbabilityDensityFunction(4), 1e-10); Assert.AreEqual(1 / 3.0, target.ProbabilityDensityFunction(5), 1e-10); Assert.AreEqual(1 / 3.0, target.ProbabilityDensityFunction(6), 1e-10); Assert.AreEqual(0, target.ProbabilityDensityFunction(7)); Assert.AreEqual(0, target.DistributionFunction(2)); Assert.AreEqual(0, target.DistributionFunction(3)); Assert.AreEqual(1 / 3.0, target.DistributionFunction(4), 1e-10); Assert.AreEqual(2 / 3.0, target.DistributionFunction(5), 1e-10); Assert.AreEqual(1, target.DistributionFunction(6), 1e-10); Assert.AreEqual(1, target.DistributionFunction(7)); }
public void ProbabilityDensityFunctionTest() { double a = -5; double b = 11; UniformContinuousDistribution target = new UniformContinuousDistribution(a, b); double x = 4.2; double expected = 0.0625; double actual = target.ProbabilityDensityFunction(x); Assert.AreEqual(expected, actual); x = -5; expected = 0.0625; actual = target.ProbabilityDensityFunction(x); Assert.AreEqual(expected, actual); x = -6; expected = 0.0; actual = target.ProbabilityDensityFunction(x); Assert.AreEqual(expected, actual); x = 11; expected = 0.0625; actual = target.ProbabilityDensityFunction(x); Assert.AreEqual(expected, actual); x = 12; expected = 0.0; actual = target.ProbabilityDensityFunction(x); Assert.AreEqual(expected, actual); }