public void ConstructorTest()
{
double[] ranks = { 1, 2, 3, 4, 5.5, 5.5, 7, 8, 9, 10, 11, 12 };
var W = new WilcoxonDistribution(ranks);
double mean = W.Mean; // 39.0
double median = W.Median; // 38.5
double var = W.Variance; // 162.5
double cdf = W.DistributionFunction(w: 42); // 0.60817384423279575
double pdf = W.ProbabilityDensityFunction(w: 42); // 0.38418508862319295
double lpdf = W.LogProbabilityDensityFunction(w: 42); // 0.38418508862319295
double ccdf = W.ComplementaryDistributionFunction(x: 42); // 0.39182615576720425
double icdf = W.InverseDistributionFunction(p: cdf); // 42
double icdf2 = W.InverseDistributionFunction(p: 0.5); // 42
double hf = W.HazardFunction(x: 42); // 0.98049883339449373
double chf = W.CumulativeHazardFunction(x: 42); // 0.936937017743799
string str = W.ToString(); // "W+(x; R)"
Assert.AreEqual(39.0, mean);
Assert.AreEqual(38.5, median, 1e-6);
Assert.AreEqual(162.5, var);
Assert.AreEqual(0.936937017743799, chf);
Assert.AreEqual(0.60817384423279575, cdf);
Assert.AreEqual(0.38418508862319295, pdf);
Assert.AreEqual(-0.95663084089698047, lpdf);
Assert.AreEqual(0.98049883339449373, hf);
Assert.AreEqual(0.39182615576720425, ccdf);
Assert.AreEqual(42, icdf, 1e-6);
Assert.AreEqual("W+(x; R)", str);
}