private static void testChiSquare(GeneralContinuousDistribution chisq)
{
double mean = chisq.Mean; // 7
double median = chisq.Median; // 6.345811195595612
double var = chisq.Variance; // 14
double cdf = chisq.DistributionFunction(x: 6.27); // 0.49139966433823956
double pdf = chisq.ProbabilityDensityFunction(x: 6.27); // 0.11388708001184455
double lpdf = chisq.LogProbabilityDensityFunction(x: 6.27); // -2.1725478476948092
double ccdf = chisq.ComplementaryDistributionFunction(x: 6.27); // 0.50860033566176044
double icdf = chisq.InverseDistributionFunction(p: cdf); // 6.2700000000852318
double hf = chisq.HazardFunction(x: 6.27); // 0.22392254197721179
double chf = chisq.CumulativeHazardFunction(x: 6.27); // 0.67609276602233315
Assert.AreEqual(7, mean, 1e-8);
Assert.AreEqual(6.345811195595612, median, 1e-6);
Assert.AreEqual(14, var, 1e-6);
Assert.AreEqual(0.67609276602233315, chf, 1e-8);
Assert.AreEqual(0.49139966433823956, cdf, 1e-8);
Assert.AreEqual(0.11388708001184455, pdf, 1e-8);
Assert.AreEqual(-2.1725478476948092, lpdf, 1e-8);
Assert.AreEqual(0.22392254197721179, hf, 1e-8);
Assert.AreEqual(0.50860033566176044, ccdf, 1e-8);
Assert.AreEqual(6.2700000000852318, icdf, 1e-6);
}