def parse(pref_fname="preferences.txt", groups_fname="groups.txt", terms_fname="terms.txt", assign_fname="output.txt"): preferences = parse_preferences(open(pref_fname).read()) assignments = parse_assignments(open(assign_fname).read()) groups = parse_groups(open(groups_fname).read()) subjects, terms = parse_subjects_and_terms(open(terms_fname).read()) return Configuration(preferences, groups, subjects, terms), assignments
def test_parsing(self): preferences = parse_preferences(''' [258668] global:0:100:0 645277:645373,0;645372,8; 645279:645391,8;645388,0; [258669] global:0:100:0 645277:645373,3;645372,5;''') self.assertEquals(preferences, frozenset([ Preference(person=Person(id=258668)), Preference(person=Person(id=258669)) ])) points = {preference.person.id: preference.term_ids_to_points for preference in preferences} self.assertEquals(points, { 258668: {645388: 0, 645372: 8, 645373: 0, 645391: 8}, 258669: {645372: 5, 645373: 3} })