public void UniformTest()
{
int a = 2;
int b = 5;
int n = b - a + 1;
// Wikipedia definitions
double expectedMean = (a + b) / 2.0;
double expectedVar = (System.Math.Pow(b - a + 1, 2) - 1) / 12.0;
double p = 1.0 / n;
GeneralDiscreteDistribution dist = GeneralDiscreteDistribution.Uniform(a, b);
Assert.AreEqual(expectedMean, dist.Mean); ;
Assert.AreEqual(expectedVar, dist.Variance);
Assert.AreEqual(n, dist.Frequencies.Length);
Assert.AreEqual(0, dist.ProbabilityMassFunction(0));
Assert.AreEqual(0, dist.ProbabilityMassFunction(1));
Assert.AreEqual(p, dist.ProbabilityMassFunction(2));
Assert.AreEqual(p, dist.ProbabilityMassFunction(3));
Assert.AreEqual(p, dist.ProbabilityMassFunction(4));
Assert.AreEqual(p, dist.ProbabilityMassFunction(5));
Assert.AreEqual(0, dist.ProbabilityMassFunction(6));
Assert.AreEqual(0, dist.ProbabilityMassFunction(7));
}