public void IntervalTest() { var target = new UniformContinuousDistribution(-10, 10); for (int k = -15; k < 15; k++) { double a = target.DistributionFunction(k); double b = target.DistributionFunction(k + 1); double c = b - a; double actual = target.DistributionFunction(k, k + 1); Assert.AreEqual(c, actual, 1e-15); } }
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 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 DistributionFunctionTest() { double a = -2; double b = 2; UniformContinuousDistribution target = new UniformContinuousDistribution(a, b); double actual; actual = target.DistributionFunction(-2); Assert.AreEqual(0, actual); actual = target.DistributionFunction(-1); Assert.AreEqual(0.25, actual); actual = target.DistributionFunction(0); Assert.AreEqual(0.5, actual); actual = target.DistributionFunction(1); Assert.AreEqual(0.75, actual); actual = target.DistributionFunction(2); Assert.AreEqual(1, actual); }
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)); }