private static void test(GeneralizedNormalDistribution target, UnivariateContinuousDistribution normal)
{
Assert.AreEqual(normal.Mean, target.Mean);
Assert.AreEqual(normal.Variance, target.Variance, 1e-10);
Assert.AreEqual(normal.Entropy, target.Entropy, 1e-10);
Assert.AreEqual(normal.StandardDeviation, target.StandardDeviation, 1e-10);
Assert.AreEqual(normal.Mode, target.Mode);
Assert.AreEqual(normal.Median, target.Median);
for (double x = -10; x < 10; x += 0.0001)
{
double actual = target.ProbabilityDensityFunction(x);
double expected = normal.ProbabilityDensityFunction(x);
Assert.AreEqual(expected, actual, 1e-15);
Assert.IsFalse(Double.IsNaN(actual));
}
for (double x = -10; x < 10; x += 0.0001)
{
double actual = target.LogProbabilityDensityFunction(x);
double expected = normal.LogProbabilityDensityFunction(x);
Assert.AreEqual(expected, actual, 1e-10);
Assert.IsFalse(Double.IsNaN(actual));
}
}