private static void testNormal(GeneralContinuousDistribution normal, double prec)
{
double mean = normal.Mean; // 4.0
double median = normal.Median; // 4.0
double var = normal.Variance; // 17.64
double mode = normal.Mode; // 4.0
double cdf = normal.DistributionFunction(x: 1.4); // 0.26794249453351904
double pdf = normal.ProbabilityDensityFunction(x: 1.4); // 0.078423391448155175
double lpdf = normal.LogProbabilityDensityFunction(x: 1.4); // -2.5456330358182586
double ccdf = normal.ComplementaryDistributionFunction(x: 1.4); // 0.732057505466481
double icdf = normal.InverseDistributionFunction(p: cdf); // 1.4
double hf = normal.HazardFunction(x: 1.4); // 0.10712736480747137
double chf = normal.CumulativeHazardFunction(x: 1.4); // 0.31189620872601354
Assert.AreEqual(4.0, mean, 1e-10 * prec);
Assert.AreEqual(4.0, median, 1e-5 * prec);
Assert.AreEqual(4.0, mode, 1e-7 * prec);
Assert.AreEqual(17.64, var, 1e-10 * prec);
Assert.AreEqual(0.31189620872601354, chf, 1e-10 * prec);
Assert.AreEqual(0.26794249453351904, cdf, 1e-10 * prec);
Assert.AreEqual(0.078423391448155175, pdf, 1e-10 * prec);
Assert.AreEqual(-2.5456330358182586, lpdf, 1e-10 * prec);
Assert.AreEqual(0.10712736480747137, hf, 1e-10 * prec);
Assert.AreEqual(0.732057505466481, ccdf, 1e-10 * prec);
Assert.AreEqual(1.4, icdf, 1e-7 * prec);
}