public void TrapezoidalDistributionConstructorTest()
{
double x = 0.75d;
double a = 0;
double b = (1.0d/3.0d);
double c = (2.0d/3.0d);
double d = 1.0d;
double n1 = 2.0d;
double n3 = 2.0d;
var trapDist = new TrapezoidalDistribution(a, b, c, d, n1, n3);
double mean = trapDist.Mean; //0.62499999999999989
double variance = trapDist.Variance; //0.37103174603174593
double pdf = trapDist.ProbabilityDensityFunction(x); //1.1249999999999998
double cdf = trapDist.DistributionFunction(x); //1.28125
string tostr = trapDist.ToString("N2", CultureInfo.InvariantCulture);
Assert.AreEqual(mean, 0.625d, 0.00000001);
Assert.AreEqual(variance, 0.37103175d, 0.00000001);
Assert.AreEqual(pdf, 1.125, 0.000000001, "should match output from dtrapezoid in R");
Assert.AreEqual(cdf, 1.28125,0.000000001);
Assert.AreEqual(tostr, "Trapezoidal(x; a = 0.00, b = 0.33, c = 0.67, d = 1.00, n1 = 2.00, n3 = 2.00, α = 1.00)");
//Verified using R package 'trapezoid'
}