public void ConstructorTest1()
{
var log = new LogLogisticDistribution(alpha: 0.42, beta: 2.2);
double mean = log.Mean; // 0.60592605102976937
double median = log.Median; // 0.42
double mode = log.Mode; // 0.26892249963239817
double var = log.Variance; // 1.4357858982592435
double cdf = log.DistributionFunction(x: 1.4); // 0.93393329906725353
double pdf = log.ProbabilityDensityFunction(x: 1.4); // 0.096960115938100763
double lpdf = log.LogProbabilityDensityFunction(x: 1.4); // -2.3334555609306102
double ccdf = log.ComplementaryDistributionFunction(x: 1.4); // 0.066066700932746525
double icdf = log.InverseDistributionFunction(p: cdf); // 1.4000000000000006
double hf = log.HazardFunction(x: 1.4); // 1.4676094699628273
double chf = log.CumulativeHazardFunction(x: 1.4); // 2.7170904270953637
string str = log.ToString(CultureInfo.InvariantCulture); // LogLogistic(x; α = 0.42, β = 2.2)
// Tested against R's package VGAM:
// http://www.inside-r.org/packages/cran/VGAM/docs/Fisk
// dfisk(x=1.4, shape = 2.2, scale = 0.42)
// [1] 0.096960115938100735478
// pfisk(1.4, shape = 2.2, scale = 0.42)
// [1] 0.93393329906725353062
Assert.AreEqual(0.60592605102976937, mean);
Assert.AreEqual(0.41999999999999998, median);
Assert.AreEqual(0.26892249963239817, mode);
Assert.AreEqual(1.4210644953907947, var, 1e-14);
Assert.AreEqual(2.7170904270953637, chf);
Assert.AreEqual(0.93393329906725353062, cdf);
Assert.AreEqual(0.096960115938100735478, pdf, 1e-15);
Assert.AreEqual(-2.3334555609306102, lpdf);
Assert.AreEqual(1.4676094699628273, hf);
Assert.AreEqual(0.066066700932746525, ccdf);
Assert.AreEqual(1.4000000000000006, icdf);
Assert.AreEqual("LogLogistic(x; α = 0.42, β = 2.2)", str);
var range1 = log.GetRange(0.95);
var range2 = log.GetRange(0.99);
var range3 = log.GetRange(0.01);
Assert.AreEqual(0.11015333581796467, range1.Min);
Assert.AreEqual(1.6014040672496028, range1.Max);
Assert.AreEqual(0.052016650554947114, range2.Min);
Assert.AreEqual(3.3912218129781762, range2.Max);
Assert.AreEqual(0.0520166505549471, range3.Min);
Assert.AreEqual(3.3912218129781762, range3.Max);
}