class CourseAllocationTestCase(unittest.TestCase): class MockPreference: def __init__(self, user_id, preference, group_id, group_capacity): self.user_id = user_id self.preference = preference self.group_id = group_id self.group_capacity = group_capacity preferences = [ MockPreference(1, 1, 1, 2), MockPreference(1, 2, 2, 2), MockPreference(1, 3, 3, 2), MockPreference(1, 4, 4, 2), MockPreference(1, 5, 5, 2), MockPreference(2, 1, 1, 2), MockPreference(2, 2, 2, 2), MockPreference(2, 3, 3, 2), MockPreference(2, 4, 4, 2), MockPreference(2, 5, 5, 2), MockPreference(3, 1, 1, 2), MockPreference(3, 2, 2, 2), MockPreference(3, 3, 3, 2), MockPreference(3, 4, 4, 2), MockPreference(3, 5, 5, 2), MockPreference(4, 1, 1, 2), MockPreference(5, 1, 1, 2), MockPreference(6, 1, 1, 2), MockPreference(7, 1, 1, 2), ] def setUp(self): self.allocator = RandomCourseAllocator(list(self.preferences)) self.allocation = self.allocator.get_allocation() pass def test_number_of_allocations(self): number_of_users = len(set([p.user_id for p in self.preferences])) self.assertEqual(len(self.allocation), number_of_users) def test_all_users_got_a_group(self): users = set([p.user_id for p in self.preferences]) for user in users: self.assertTrue(user in self.allocation) def test_to_much_users(self): preferences = self.preferences + [ self.MockPreference(8, 1, 1, 2), self.MockPreference(9, 1, 1, 2), self.MockPreference(10, 1, 1, 2), self.MockPreference(11, 1, 1, 2), ] allocator = RandomCourseAllocator(list(preferences)) self.assertRaises(ValueError, allocator.get_allocation)
def setUp(self): self.allocator = RandomCourseAllocator(list(self.preferences)) self.allocation = self.allocator.get_allocation() pass