public void DynamicConstructorTest() { var dist = UnivariateDistributionInfo.CreateInstance <HypergeometricDistribution>(); Assert.AreEqual(1, dist.PopulationSize); Assert.AreEqual(0, dist.PopulationSuccess); Assert.AreEqual(1, dist.SampleSize); Assert.AreEqual(0, dist.Support.Min); Assert.AreEqual(0, dist.Support.Max); }
public void MedianTest2() { var target = UnivariateDistributionInfo.CreateInstance <ParetoDistribution>(); Assert.AreEqual(1, target.Alpha); Assert.AreEqual(1, target.Scale); double median = target.Median; Assert.AreEqual(2, target.Median); Assert.AreEqual(median, target.InverseDistributionFunction(0.5), 1e-6); }
public void pdf() { NegativeBinomialDistribution dist = UnivariateDistributionInfo.CreateInstance <NegativeBinomialDistribution>(); Assert.AreEqual(0.5, dist.ProbabilityOfSuccess); Assert.AreEqual(1, dist.NumberOfFailures); double median = dist.Median; Assert.AreEqual(0, median); int middle = (int)median; double pdf = dist.ProbabilityMassFunction(middle); double lpdf = dist.LogProbabilityMassFunction(middle); Assert.AreEqual(Math.Log(pdf), lpdf, 1e-10); Assert.AreEqual(pdf, Math.Exp(lpdf), 1e-10); }