def run_draw(self, break_size, expected, exp_bypassing=None): teams = [TestTeam(*args) for args in self.teams] self.fed = DrawGenerator("first_elimination", teams, break_size=break_size) pairings = self.fed.make_draw() self.assertEqual([(p.aff_team.id, p.neg_team.id) for p in pairings], expected) if exp_bypassing is not None: bypassing = [t.id for t in self.fed.get_bypassing_teams()] self.assertEqual(bypassing, exp_bypassing)
def test_split(self): self.fed = DrawGenerator("first_elimination", DUMMY_TEAMS) self.assertEqual(self.fed._bypass_debate_split( 3), ( 1, 2)) self.assertEqual(self.fed._bypass_debate_split( 5), ( 3, 2)) self.assertEqual(self.fed._bypass_debate_split( 8), ( 8, 0)) self.assertEqual(self.fed._bypass_debate_split(11), ( 5, 6)) self.assertEqual(self.fed._bypass_debate_split(21), (11, 10)) self.assertEqual(self.fed._bypass_debate_split(24), ( 8, 16)) self.assertEqual(self.fed._bypass_debate_split(31), ( 1, 30)) self.assertEqual(self.fed._bypass_debate_split(32), (32, 0)) del self.fed
def test_draw(self): for i in xrange(100): teams = [TestTeam(*args, aff_count=0) for args in self.teams] self.rd = DrawGenerator("random", teams, avoid_conflicts="on") _draw = self.rd.make_draw() for pairing in _draw: if pairing.aff_team.seen(pairing.neg_team) or \ pairing.neg_team.seen(pairing.aff_team) or \ pairing.aff_team.institution == pairing.neg_team.institution: print pairing self.assertEqual(pairing.flags, ["max_swapped"]) else: self.assertEqual(pairing.flags, [])
def run_draw(self, teams, results, expected): self.ed = DrawGenerator("elimination", teams, results) pairings = self.ed.make_draw() self.assertEqual([(p.aff_team.id, p.neg_team.id) for p in pairings], expected)
def test_error(self): teams = self._teams(9, 11, 12) results = self._results(([1, 5], 1), ([6, 7], 7), ([3, 2], 3), ([4, 8], 8)) self.ed = DrawGenerator("elimination", teams, results) self.assertRaises(RuntimeError, self.ed.make_draw)
def setUp(self): self.ppd = DrawGenerator("power_paired", DUMMY_TEAMS, side_allocations="preallocated")
def setUp(self): self.b2 = copy.deepcopy(self.brackets) self.ppd = DrawGenerator("power_paired", DUMMY_TEAMS)
def do_draw(self, standings, options): standings = [TestTeam(*args, **kwargs) for args, kwargs in standings] self.ppd = DrawGenerator("power_paired", standings, **options) return self.ppd.make_draw()
def go(): self.rd = DrawGenerator("random", teams, random=True)