예제 #1
0
class TestBinomialClass(unittest.TestCase):
    def setUp(self):
        self.binomial = Binomial('numbers_binomial.txt')

    def test_readdata(self):
        self.assertEqual(self.binomial.data,\
         [0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0], 'data not read in correctly')

    def test_meancalculation(self):
        mean = self.binomial.calculate_mean()
        self.assertEqual(round(mean, 2), 8.00,
                         'calculated mean not as expected')

    def test_stdevcalculation(self):
        stdev = self.binomial.calculate_stdev()
        self.assertEqual(
            round(stdev, 2), 1.75, 'calculated standard deviation\
                         not as expected')

    def test_pmf(self):
        self.assertEqual(
            round(self.binomial.pmf(5), 3), 0.054, 'propability \
        mass function does not give the expected result ')
        self.assertEqual(round(self.binomial.pmf(3), 3), 0.005)

    def test_def(self):
        self.assertEqual(str(self.binomial),
        """Number of trials {}, success propability for each trial {} """ .\
        format(13, 0.62),'Parameters of the Binomial not as expected')
예제 #2
0
class TestBinomail(unittest.TestCase):
    def setUp(self):
        self.distribution = Binomial(3, 5, 0.85)

    def test_init_with_errors(self):
        params = ((None, None, None), (1.2, None, None), (-1, None, None),
                  (-1.2, None, None), (3, None, None), (3, 1.2, None),
                  (3, -1, None), (3, 5, None), (3, 5, -2), (3, 5, -1.2),
                  ('some', 5, 0.85), (5, 'string', 0.85), (5, 10,
                                                           'some'), (3, 5, 2))

        for param in params:
            with self.assertRaises(ValueError):
                Binomial(*param)

    def test_mean(self):
        mean = self.distribution.mean()
        self.assertEqual(mean, 4.25)

    def test_pmf(self):
        pmf = self.distribution.pmf()
        self.assertEqual(pmf, 0.13817812500000001)

    def test_variance(self):
        variance = self.distribution.variance()
        self.assertEqual(variance, 0.63750000000000007)

    def test_std(self):
        std = self.distribution.std()
        self.assertTrue(std, 0.79843597113356568)

    def test_cdf(self):
        cdf = self.distribution.cdf()
        self.assertTrue(cdf, 0.16479000000000005)

    def test_pmfs(self):
        t_pmfs = np.array(
            [7.59375000e-05, 2.15156250e-03, 2.43843750e-02, 1.38178125e-01])
        pmfs = self.distribution.pmfs()
        self.assertIsNotNone(pmfs)
        numpy_testing.assert_allclose(t_pmfs, pmfs)