public void ConstructorTest() { var dist = new RademacherDistribution(); double median = dist.Median; // 0 double mode = dist.Mode; // 0 double lpdf = dist.LogProbabilityMassFunction(k: -1); // -0.69314718055994529 double ccdf = dist.ComplementaryDistributionFunction(k: 1); // 0.0 int icdf1 = dist.InverseDistributionFunction(p: 0); // -1 int icdf3 = dist.InverseDistributionFunction(p: 1); // +1 double hf = dist.HazardFunction(x: 0); // 0.0 double chf = dist.CumulativeHazardFunction(x: 0); // 0.69314718055994529 string str = dist.ToString(CultureInfo.InvariantCulture); // Rademacher(x) Assert.AreEqual(0, median); Assert.AreEqual(0, mode); Assert.AreEqual(0.69314718055994529, chf); Assert.AreEqual(-0.69314718055994529, lpdf); Assert.AreEqual(0, hf); Assert.AreEqual(0, ccdf); Assert.AreEqual(-1, icdf1); Assert.AreEqual(1, icdf3); Assert.AreEqual("Rademacher(x)", str); var range1 = dist.GetRange(0.95); var range2 = dist.GetRange(0.99); var range3 = dist.GetRange(0.01); Assert.AreEqual(-1, range1.Min); Assert.AreEqual(+1, range1.Max); Assert.AreEqual(-1, range2.Min); Assert.AreEqual(+1, range2.Max); Assert.AreEqual(-1, range3.Min); Assert.AreEqual(+1, range3.Max); }