public void ConstructorTest()
{
var gompertz = new GompertzDistribution(eta: 4.2, b: 1.1);
try { double mean = gompertz.Mean; Assert.Fail(); }
catch { }
double median = gompertz.Median; // 0.13886469671401389
double mode = gompertz.Mode; // 0.0
double cdf = gompertz.DistributionFunction(x: 0.27); // 0.76599768199799145
double pdf = gompertz.ProbabilityDensityFunction(x: 0.27); // 1.4549484164912097
double lpdf = gompertz.LogProbabilityDensityFunction(x: 0.27); // 0.37497044741163688
double ccdf = gompertz.ComplementaryDistributionFunction(x: 0.27); // 0.23400231800200855
double icdf = gompertz.InverseDistributionFunction(p: cdf); // 0.26999999999766749
double hf = gompertz.HazardFunction(x: 0.27); // 6.2176666834502088
double chf = gompertz.CumulativeHazardFunction(x: 0.27); // 1.4524242576820101
string str = gompertz.ToString(System.Globalization.CultureInfo.InvariantCulture);
// "Gompertz(x; η = 4.2, b = 1.1)"
Assert.AreEqual(0.13886469671401389, median);
Assert.AreEqual(0.0, mode);
Assert.AreEqual(1.4524242576820101, chf);
Assert.AreEqual(0.76599768199799145, cdf);
Assert.AreEqual(1.4549484164912097, pdf);
Assert.AreEqual(0.37497044741163688, lpdf);
Assert.AreEqual(6.2176666834502088, hf);
Assert.AreEqual(0.23400231800200855, ccdf);
Assert.AreEqual(0.26999999999766749, icdf);
Assert.AreEqual("Gompertz(x; η = 4.2, b = 1.1)", str);
var range1 = gompertz.GetRange(0.95);
var range2 = gompertz.GetRange(0.99);
var range3 = gompertz.GetRange(0.01);
Assert.AreEqual(0.011035174219697141, range1.Min, 1e-6);
Assert.AreEqual(0.48945776418276288, range1.Max, 1e-6);
Assert.AreEqual(0.002172798720176344, range2.Min, 1e-6);
Assert.AreEqual(0.67295877422837591, range2.Max, 1e-6);
Assert.AreEqual(0.0021727987201762976, range3.Min, 1e-6);
Assert.AreEqual(0.67295877422837591, range3.Max, 1e-6);
}