def test_discrete_dist_describe_on_uniform_data(self): points = [ utils.Point(omega=0, value=1, prob=.25), utils.Point(omega=1, value=2, prob=.25), utils.Point(omega=2, value=3, prob=.25), utils.Point(omega=3, value=4, prob=.25), ] dist = utils.DiscreteDist(points) expected = utils.Summary(mean=2.5, p10=1, p90=4) actual = dist.summarize() self.assertEqual(actual, expected)
def test_discrete_dist_describe_on_nonuniform_data(self): points = [ utils.Point(omega=0, value=0, prob=.4), utils.Point(omega=1, value=3, prob=.2), utils.Point(omega=2, value=10, prob=.2), utils.Point(omega=3, value=20, prob=.1), utils.Point(omega=4, value=50, prob=.1) ] dist = utils.DiscreteDist(points) expected = utils.Summary(mean=9.6, p10=0, p90=20) actual = dist.summarize() self.assertEqual(actual, expected)
def get_dist(self): points = list() for code, (prob, winner_names) in \ self._tournament.brackets_info.items(): score = self._get_score(winner_names) sample_point = utils.Point(omega=code, prob=prob, value=score) points.append(sample_point) return utils.DiscreteDist(points)
def test_make_dist_with_four_equal_teams(self): expected = [ utils.Point(omega=2, prob=.125, value=0), utils.Point(omega=3, prob=.125, value=0), utils.Point(omega=0, prob=.125, value=160), utils.Point(omega=1, prob=.125, value=160), utils.Point(omega=6, prob=.125, value=160), utils.Point(omega=4, prob=.125, value=320), utils.Point(omega=7, prob=.125, value=480), utils.Point(omega=5, prob=.125, value=640) ] actual = self.equal_bracket.get_dist()._points self.assertEqual(actual, expected)
def test_make_dist_with_four_unequal_teams(self): expected = [ utils.Point(omega=2, prob=.09375, value=0), utils.Point(omega=3, prob=.09375, value=0), utils.Point(omega=0, prob=.01563, value=160), utils.Point(omega=1, prob=.04688, value=160), utils.Point(omega=6, prob=.14062, value=160), utils.Point(omega=4, prob=.01875, value=320), utils.Point(omega=7, prob=.42188, value=480), utils.Point(omega=5, prob=.16875, value=640) ] actual = self.unequal_bracket.get_dist()._points for actual_point, expected_point in zip(actual, expected): self.assertEqual(actual_point.omega, expected_point.omega) self.assertEqual(actual_point.value, expected_point.value) self.assertAlmostEqual(actual_point.prob, expected_point.prob, 4)