private static void compare(TukeyLambdaDistribution target,
UnivariateContinuousDistribution comparison, double tol)
{
Assert.AreEqual(comparison.Mean, target.Mean);
Assert.AreEqual(comparison.Variance, target.Variance, tol);
Assert.AreEqual(comparison.Entropy, target.Entropy, 1e-4);
Assert.AreEqual(comparison.StandardDeviation, target.StandardDeviation, tol);
Assert.AreEqual(comparison.Mode, target.Mode);
Assert.AreEqual(comparison.Median, target.Median);
for (double x = -10; x < 10; x += 0.0001)
{
double actual = target.ProbabilityDensityFunction(x);
double expected = comparison.ProbabilityDensityFunction(x);
Assert.AreEqual(expected, actual, tol);
Assert.IsFalse(Double.IsNaN(actual));
}
for (double x = -10; x < 10; x += 0.0001)
{
double actual = target.DistributionFunction(x);
double expected = comparison.DistributionFunction(x);
Assert.AreEqual(expected, actual, tol);
Assert.IsFalse(Double.IsNaN(actual));
}
for (double x = -10; x < 10; x += 0.0001)
{
double actual = target.LogProbabilityDensityFunction(x);
double expected = comparison.LogProbabilityDensityFunction(x);
Assert.AreEqual(expected, actual, tol);
Assert.IsFalse(Double.IsNaN(actual));
}
}