Example #1
0
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)
Example #2
0
 def setUp(self):
     self.allocator = RandomCourseAllocator(list(self.preferences))
     self.allocation = self.allocator.get_allocation()
     pass