public void ConstructorTest()
{
var t = new TDistribution(degreesOfFreedom: 4.2);
double mean = t.Mean; // 0.0
double median = t.Median; // 0.0
double var = t.Variance; // 1.9090909090909089
double mode = t.Mode;
double cdf = t.DistributionFunction(x: 1.4); // 0.88456136730659074
double pdf = t.ProbabilityDensityFunction(x: 1.4); // 0.13894002185341031
double lpdf = t.LogProbabilityDensityFunction(x: 1.4); // -1.9737129364307417
double ccdf = t.ComplementaryDistributionFunction(x: 1.4); // 0.11543863269340926
double icdf = t.InverseDistributionFunction(p: cdf); // 1.4000000000000012
double hf = t.HazardFunction(x: 1.4); // 1.2035833984833988
double chf = t.CumulativeHazardFunction(x: 1.4); // 2.1590162088918525
string str = t.ToString(CultureInfo.InvariantCulture); // T(x; df = 4.2)
Assert.AreEqual(0.0, mean);
Assert.AreEqual(0.0, median);
Assert.AreEqual(0.0, mode);
Assert.AreEqual(1.9090909090909089, var);
Assert.AreEqual(2.1590162088918525, chf);
Assert.AreEqual(0.88456136730659074, cdf);
Assert.AreEqual(0.13894002185341031, pdf);
Assert.AreEqual(-1.9737129364307417, lpdf);
Assert.AreEqual(1.2035833984833988, hf);
Assert.AreEqual(0.11543863269340926, ccdf);
Assert.AreEqual(1.4000000000000012, icdf);
Assert.AreEqual("T(x; df = 4.2)", str);
var range1 = t.GetRange(0.95);
var range2 = t.GetRange(0.99);
var range3 = t.GetRange(0.01);
Assert.AreEqual(-2.1030107450099362, range1.Min);
Assert.AreEqual(2.1030107450099362, range1.Max);
Assert.AreEqual(-3.6502571302187774, range2.Min);
Assert.AreEqual(3.6502571302187774, range2.Max);
Assert.AreEqual(-3.6502571302187792, range3.Min);
Assert.AreEqual(3.6502571302187774, range3.Max);
}