Пример #1
0
class TestChoose(unittest.TestCase):
    def setUp(self):
        self.one = Choose({1})
        self.six = Choose({1, 2, 3, 4, 5, 6})
        self.repeated = Choose([1, 1, 1, 2])

    def test_choose(self):
        assert_almost_equal(self, self.one, Constant(1))
        self.assertAlmostEqual(self.one.probability(1), 1.)
        self.assertAlmostEqual(self.one.probability(0), 0.)

        categorical_six = Categorical({x: 1 / 6 for x in range(1, 7)})
        assert_almost_equal(self, self.six, categorical_six)
        self.assertAlmostEqual(self.six.probability(1), 1 / 6)
        self.assertAlmostEqual(self.six.probability(0), 0.)

    def test_repeated(self):
        counts = Counter(self.repeated.sample_n(1000))
        self.assertLess(abs(counts[1] - 750), 50)
        self.assertLess(abs(counts[2] - 250), 50)

        table = self.repeated.table()
        self.assertAlmostEqual(table[1], 0.75)
        self.assertAlmostEqual(table[2], 0.25)

        counts = Counter(self.repeated.sample_n(1000))
        self.assertLess(abs(counts[1] - 750), 50)
        self.assertLess(abs(counts[2] - 250), 50)
Пример #2
0
class TestChoose(unittest.TestCase):
    def setUp(self):
        self.one = Choose({1})
        self.six = Choose({1, 2, 3, 4, 5, 6})

    def test_choose(self):
        assert_almost_equal(self, self.one, Constant(1))
        self.assertAlmostEqual(self.one.probability(1), 1.)
        self.assertAlmostEqual(self.one.probability(0), 0.)

        categorical_six = Categorical({x: 1 / 6 for x in range(1, 7)})
        assert_almost_equal(self, self.six, categorical_six)
        self.assertAlmostEqual(self.six.probability(1), 1 / 6)
        self.assertAlmostEqual(self.six.probability(0), 0.)