]> gitweb.michael.orlitzky.com - dead/census-tools.git/blob - src/Tests/Unit/UniformDistributionTest.py
Added the (Uniform)DistributionTest modules.
[dead/census-tools.git] / src / Tests / Unit / UniformDistributionTest.py
1 import unittest
2
3 import probability.Distribution
4
5
6 class UniformDistributionTest(unittest.TestCase):
7
8 def testBoundsOrdered(self):
9 """
10 The constructor for Uniform() takes two numbers, 'a' and 'b'
11 which provide the upper and lower bounds for the
12 distribution. The constructor should place the lesser of the
13 two in self.min, and the greater in self.max.
14 """
15 ud = probability.Distribution.Uniform(0,0)
16 self.assertTrue(ud.min == 0)
17 self.assertTrue(ud.max == 0)
18
19 ud = probability.Distribution.Uniform(0,10)
20 self.assertTrue(ud.min == 0)
21 self.assertTrue(ud.max == 10)
22
23 ud = probability.Distribution.Uniform(0.558, 0.23)
24 self.assertTrue(ud.min == 0.23)
25 self.assertTrue(ud.max == 0.558)
26
27
28 def testSampledValuesWithinBounds(self):
29 """
30 Sample the distribution a few times, and make sure the values
31 we get are within the (min,max) we supplied.
32 """
33 ud = probability.Distribution.Uniform(0.558, 0.23)
34 for x in range(0,1000):
35 s = ud.sample()
36 self.assertTrue(s >= ud.min)
37 self.assertTrue(s <= ud.max)
38
39
40 def testKnownCdfValues(self):
41 """
42 The CDF of a uniform distribution is easy to calculate.
43 Check a few known values.
44 """
45 ud = probability.Distribution.Uniform(0, 1)
46 delta = 0.1
47 for i in range(0,11):
48 x = i*delta
49 self.assertEqual(x, ud.cdf(x))
50
51
52 def suite():
53 suite = unittest.TestSuite()
54 suite.addTest(unittest.makeSuite(UniformDistributionTest))
55 return suite