def test_schedule_generation(self): """Test triple round-robin schedule generation.""" scheduler = TripleRoundRobinScheduler(8) # Failed attempt random.seed(12) self.assertRaises(ScheduleGenerationFailed, scheduler.generate_schedule, try_once=True) # Successful attempt random.seed(1) if PY2: expected_schedule = [[(6, 5), (1, 7), (3, 4), (2, 8)], [(7, 5), (4, 3), (8, 6), (1, 2)], [(1, 8), (5, 3), (7, 2), (6, 4)], [(5, 8), (3, 1), (4, 6), (7, 2)], [(5, 4), (8, 6), (1, 2), (3, 7)], [(6, 7), (3, 8), (2, 5), (4, 1)], [(4, 3), (5, 1), (2, 7), (6, 8)], [(7, 4), (2, 3), (6, 5), (1, 8)], [(5, 8), (1, 3), (4, 7), (6, 2)], [(4, 5), (7, 6), (3, 8), (2, 1)], [(3, 5), (7, 1), (8, 2), (4, 6)], [(1, 4), (6, 3), (7, 5), (2, 8)], [(7, 8), (1, 5), (4, 2), (3, 6)], [(7, 3), (5, 2), (8, 4), (1, 6)], [(3, 7), (4, 8), (2, 6), (1, 5)], [(2, 4), (5, 7), (6, 1), (8, 3)], [(3, 2), (8, 5), (4, 1), (7, 6)], [(5, 4), (8, 7), (6, 1), (2, 3)], [(5, 3), (6, 2), (4, 7), (8, 1)], [(5, 6), (8, 7), (3, 1), (2, 4)], [(8, 4), (5, 2), (1, 7), (3, 6)]] elif PY3: expected_schedule = [[(6, 5), (4, 3), (8, 1), (7, 2)], [(7, 4), (6, 2), (8, 5), (3, 1)], [(1, 5), (3, 2), (7, 4), (8, 6)], [(7, 8), (6, 4), (3, 5), (1, 2)], [(4, 7), (2, 8), (3, 1), (5, 6)], [(3, 6), (8, 7), (4, 5), (1, 2)], [(5, 7), (3, 4), (2, 6), (8, 1)], [(2, 4), (6, 3), (5, 7), (1, 8)], [(8, 2), (7, 1), (5, 3), (4, 6)], [(7, 3), (1, 5), (8, 4), (2, 6)], [(6, 8), (7, 2), (5, 4), (1, 3)], [(1, 7), (8, 5), (2, 3), (4, 6)], [(2, 7), (1, 6), (4, 5), (8, 3)], [(6, 7), (5, 2), (8, 3), (4, 1)], [(6, 3), (4, 8), (7, 5), (2, 1)], [(1, 4), (3, 7), (5, 6), (2, 8)], [(2, 4), (6, 1), (5, 8), (3, 7)], [(5, 3), (1, 6), (4, 2), (7, 8)], [(5, 2), (3, 4), (6, 8), (1, 7)], [(3, 2), (8, 4), (6, 7), (5, 1)], [(7, 6), (4, 1), (3, 8), (2, 5)]] schedule = scheduler.generate_schedule(try_once=True) self.assertListEqual(expected_schedule, schedule, ('Wrong schedule created for ' 'triple round-robin competition'))
def test_repeated_schedule_generation(self): """Test repeated triple round-robin schedule generation.""" scheduler = TripleRoundRobinScheduler(8) random.seed(12) if PY2: expected_schedule = [ [(2, 3), (4, 1), (7, 5), (6, 8)], [(2, 1), (8, 7), (6, 3), (5, 4)], [(5, 6), (1, 7), (4, 8), (3, 2)], [(3, 5), (7, 6), (8, 2), (1, 4)], [(5, 7), (3, 6), (4, 2), (8, 1)], [(1, 5), (7, 3), (2, 8), (4, 6)], [(5, 8), (6, 1), (3, 4), (2, 7)], [(3, 6), (8, 4), (7, 1), (2, 5)], [(4, 5), (3, 8), (7, 1), (6, 2)], [(4, 3), (8, 6), (1, 5), (2, 7)], [(7, 6), (4, 2), (8, 3), (5, 1)], [(2, 6), (4, 7), (5, 3), (1, 8)], [(3, 2), (1, 6), (5, 8), (4, 7)], [(3, 7), (6, 1), (2, 4), (8, 5)], [(1, 3), (7, 4), (6, 5), (2, 8)], [(4, 3), (5, 7), (6, 2), (1, 8)], [(8, 3), (7, 2), (6, 5), (4, 1)], [(2, 1), (5, 3), (8, 4), (6, 7)], [(1, 3), (7, 8), (6, 4), (5, 2)], [(2, 5), (7, 8), (3, 1), (6, 4)], [(8, 6), (5, 4), (3, 7), (1, 2)] ] elif PY3: expected_schedule = [ [(2, 5), (4, 1), (6, 7), (8, 3)], [(8, 4), (3, 6), (1, 5), (2, 7)], [(3, 2), (8, 5), (4, 1), (7, 6)], [(8, 1), (2, 5), (4, 6), (3, 7)], [(1, 7), (5, 3), (6, 8), (2, 4)], [(7, 2), (3, 6), (8, 1), (5, 4)], [(5, 7), (6, 2), (4, 3), (1, 8)], [(5, 8), (6, 1), (4, 7), (2, 3)], [(3, 1), (2, 4), (7, 8), (5, 6)], [(8, 4), (7, 1), (6, 2), (5, 3)], [(7, 3), (8, 5), (1, 6), (4, 2)], [(5, 6), (7, 4), (3, 1), (8, 2)], [(8, 2), (4, 7), (6, 3), (1, 5)], [(1, 7), (8, 6), (4, 5), (2, 3)], [(7, 8), (1, 4), (2, 6), (3, 5)], [(1, 3), (6, 4), (8, 7), (5, 2)], [(3, 8), (1, 2), (4, 6), (5, 7)], [(5, 1), (2, 8), (3, 4), (6, 7)], [(2, 1), (7, 5), (3, 4), (6, 8)], [(4, 5), (7, 2), (6, 1), (3, 8)], [(6, 5), (7, 3), (4, 8), (1, 2)] ] schedule = scheduler.generate_schedule() self.assertListEqual(expected_schedule, schedule, ('Wrong schedule created for repeated ' 'triple round-robin competition'))
def test_repeated_schedule_generation(self): """Test repeated triple round-robin schedule generation.""" scheduler = TripleRoundRobinScheduler(8) random.seed(12) if PY2: expected_schedule = [[(2, 3), (4, 1), (7, 5), (6, 8)], [(2, 1), (8, 7), (6, 3), (5, 4)], [(5, 6), (1, 7), (4, 8), (3, 2)], [(3, 5), (7, 6), (8, 2), (1, 4)], [(5, 7), (3, 6), (4, 2), (8, 1)], [(1, 5), (7, 3), (2, 8), (4, 6)], [(5, 8), (6, 1), (3, 4), (2, 7)], [(3, 6), (8, 4), (7, 1), (2, 5)], [(4, 5), (3, 8), (7, 1), (6, 2)], [(4, 3), (8, 6), (1, 5), (2, 7)], [(7, 6), (4, 2), (8, 3), (5, 1)], [(2, 6), (4, 7), (5, 3), (1, 8)], [(3, 2), (1, 6), (5, 8), (4, 7)], [(3, 7), (6, 1), (2, 4), (8, 5)], [(1, 3), (7, 4), (6, 5), (2, 8)], [(4, 3), (5, 7), (6, 2), (1, 8)], [(8, 3), (7, 2), (6, 5), (4, 1)], [(2, 1), (5, 3), (8, 4), (6, 7)], [(1, 3), (7, 8), (6, 4), (5, 2)], [(2, 5), (7, 8), (3, 1), (6, 4)], [(8, 6), (5, 4), (3, 7), (1, 2)]] elif PY3: expected_schedule = [[(2, 5), (4, 1), (6, 7), (8, 3)], [(8, 4), (3, 6), (1, 5), (2, 7)], [(3, 2), (8, 5), (4, 1), (7, 6)], [(8, 1), (2, 5), (4, 6), (3, 7)], [(1, 7), (5, 3), (6, 8), (2, 4)], [(7, 2), (3, 6), (8, 1), (5, 4)], [(5, 7), (6, 2), (4, 3), (1, 8)], [(5, 8), (6, 1), (4, 7), (2, 3)], [(3, 1), (2, 4), (7, 8), (5, 6)], [(8, 4), (7, 1), (6, 2), (5, 3)], [(7, 3), (8, 5), (1, 6), (4, 2)], [(5, 6), (7, 4), (3, 1), (8, 2)], [(8, 2), (4, 7), (6, 3), (1, 5)], [(1, 7), (8, 6), (4, 5), (2, 3)], [(7, 8), (1, 4), (2, 6), (3, 5)], [(1, 3), (6, 4), (8, 7), (5, 2)], [(3, 8), (1, 2), (4, 6), (5, 7)], [(5, 1), (2, 8), (3, 4), (6, 7)], [(2, 1), (7, 5), (3, 4), (6, 8)], [(4, 5), (7, 2), (6, 1), (3, 8)], [(6, 5), (7, 3), (4, 8), (1, 2)]] schedule = scheduler.generate_schedule() self.assertListEqual(expected_schedule, schedule, ('Wrong schedule created for repeated ' 'triple round-robin competition'))
def test_schedule_generation(self): """Test triple round-robin schedule generation.""" scheduler = TripleRoundRobinScheduler(8) # Failed attempt random.seed(12) self.assertRaises(ScheduleGenerationFailed, scheduler.generate_schedule, try_once=True) # Successful attempt random.seed(1) if PY2: expected_schedule = [ [(6, 5), (1, 7), (3, 4), (2, 8)], [(7, 5), (4, 3), (8, 6), (1, 2)], [(1, 8), (5, 3), (7, 2), (6, 4)], [(5, 8), (3, 1), (4, 6), (7, 2)], [(5, 4), (8, 6), (1, 2), (3, 7)], [(6, 7), (3, 8), (2, 5), (4, 1)], [(4, 3), (5, 1), (2, 7), (6, 8)], [(7, 4), (2, 3), (6, 5), (1, 8)], [(5, 8), (1, 3), (4, 7), (6, 2)], [(4, 5), (7, 6), (3, 8), (2, 1)], [(3, 5), (7, 1), (8, 2), (4, 6)], [(1, 4), (6, 3), (7, 5), (2, 8)], [(7, 8), (1, 5), (4, 2), (3, 6)], [(7, 3), (5, 2), (8, 4), (1, 6)], [(3, 7), (4, 8), (2, 6), (1, 5)], [(2, 4), (5, 7), (6, 1), (8, 3)], [(3, 2), (8, 5), (4, 1), (7, 6)], [(5, 4), (8, 7), (6, 1), (2, 3)], [(5, 3), (6, 2), (4, 7), (8, 1)], [(5, 6), (8, 7), (3, 1), (2, 4)], [(8, 4), (5, 2), (1, 7), (3, 6)] ] elif PY3: expected_schedule = [ [(6, 5), (4, 3), (8, 1), (7, 2)], [(7, 4), (6, 2), (8, 5), (3, 1)], [(1, 5), (3, 2), (7, 4), (8, 6)], [(7, 8), (6, 4), (3, 5), (1, 2)], [(4, 7), (2, 8), (3, 1), (5, 6)], [(3, 6), (8, 7), (4, 5), (1, 2)], [(5, 7), (3, 4), (2, 6), (8, 1)], [(2, 4), (6, 3), (5, 7), (1, 8)], [(8, 2), (7, 1), (5, 3), (4, 6)], [(7, 3), (1, 5), (8, 4), (2, 6)], [(6, 8), (7, 2), (5, 4), (1, 3)], [(1, 7), (8, 5), (2, 3), (4, 6)], [(2, 7), (1, 6), (4, 5), (8, 3)], [(6, 7), (5, 2), (8, 3), (4, 1)], [(6, 3), (4, 8), (7, 5), (2, 1)], [(1, 4), (3, 7), (5, 6), (2, 8)], [(2, 4), (6, 1), (5, 8), (3, 7)], [(5, 3), (1, 6), (4, 2), (7, 8)], [(5, 2), (3, 4), (6, 8), (1, 7)], [(3, 2), (8, 4), (6, 7), (5, 1)], [(7, 6), (4, 1), (3, 8), (2, 5)] ] schedule = scheduler.generate_schedule(try_once=True) self.assertListEqual(expected_schedule, schedule, ('Wrong schedule created for ' 'triple round-robin competition'))