public void ConstructorTest1()
{
var plog = new PowerLognormalDistribution(power: 4.2, shape: 1.2);
try { double mean = plog.Mean; Assert.Fail(); }
catch { }
try { double variance = plog.Variance; Assert.Fail(); }
catch { }
try { double mode = plog.Mode; Assert.Fail(); }
catch { }
try { double median = plog.Median; Assert.Fail(); }
catch { }
double cdf = plog.DistributionFunction(x: 1.4); // 0.98092157745191766
double pdf = plog.ProbabilityDensityFunction(x: 1.4); // 0.046958580233533977
double lpdf = plog.LogProbabilityDensityFunction(x: 1.4); // -3.0584893374471496
double ccdf = plog.ComplementaryDistributionFunction(x: 1.4); // 0.019078422548082351
double icdf = plog.InverseDistributionFunction(p: cdf); // 1.4
double hf = plog.HazardFunction(x: 1.4); // 10.337649063164642
double chf = plog.CumulativeHazardFunction(x: 1.4); // 3.9591972920568446
string str = plog.ToString(CultureInfo.InvariantCulture); // PLD(x; p = 4.2, σ = 1.2)
Assert.AreEqual(3.9591972920568446, chf);
Assert.AreEqual(0.98092157745191766, cdf);
Assert.AreEqual(0.046958580233533977, pdf);
Assert.AreEqual(-3.0584893374471496, lpdf);
Assert.AreEqual(10.337649063164642, hf);
Assert.AreEqual(0.019078422548082351, ccdf);
Assert.AreEqual(1.4000000000000001, icdf);
Assert.AreEqual("PLD(x; p = 4.2, σ = 1.2)", str);
var range1 = plog.GetRange(0.95);
var range2 = plog.GetRange(0.99);
var range3 = plog.GetRange(0.01);
Assert.AreEqual(0.066986543067356463, range1.Min);
Assert.AreEqual(1.0304177429659382, range1.Max);
Assert.AreEqual(0.033851065908457677, range2.Min);
Assert.AreEqual(1.672824432596103, range2.Max);
Assert.AreEqual(0.033851065908457677, range3.Min);
Assert.AreEqual(1.672824432596103, range3.Max);
}