def testDeclaration(self): tokenTestData = { "gruppe": ["BAI1", "GWu", "INF", "Vorkurs"], "fach": ["BAI1-GI/GIÜ", "GWu DANN", "INF-WPP-C2/01", "Vorkurs PRG", "BAI4-CI"], "uhrzeit": ["17:00", "9:00", "8:15", "24:66"], "wochentag": ["Mo", "Di", "Mi", "Do", "Fr", "Sa", "So", "mo", "mO", "MO"], "raum": ["1260", "1101b", "1101a", "irgendwasOhneKomma"], "dozent": ["SRS", "WND/[Oel]"], "wochen": ["11", "12, 18, 21"], "bezeichner": ["Name, Dozent, Raum, Tag, Anfang, Ende"], "section": [sectionTestDatum], "versionsDatum": ["1.3.11"], "semester": ["SoSe 11", "WiSe 10"], "ersteZeile": [ "Stundenplan SoSe 11 (Vers.0.9 vom 1.3.11)", "Stundenplan SoSe 11 (Vers.0.9 vom 1.3.11)", "Stundenplan WiSe 11/12 Vers.1.01 vom 16.09.2011", ], "zweiteZeile": ["Semestergruppe M-AI1"], "header": [ "Stundenplan SoSe 11 (Vers.0.9 vom 1.3.11)\nSemestergruppe M-AI1", "Stundenplan WiSe 11/12 Vers.1.01 vom 16.09.2011\nSemestergruppe B-AI1", ], "semestergruppe": [semestergruppeTestDatum, semestergruppeTestDatum2], "datei": [ dateiTestDatum1, dateiTestDatum2, dateiTestDatum3, dateiTestDatum4, dateiTestDatum5, dateiTestDatum6, dateiTestDatum7, dateiTestDatum8, dateiTestDatum9, ], } for token in tokenTestData: production = token testData = tokenTestData[token] for testDatum in testData: success, children, nextcharacter = HawParser.parse(testDatum, production) def errStr(): from pprint import pformat r = """Could not parse %s\nas a\n\n%s\t(%s chars parsed of %s)""" % ( repr(testDatum), production, nextcharacter, len(testDatum), ) r += "\n\nreturned value was:\n\n" + pformat((success, children, nextcharacter)) r += "\n\nparsed:\n+++\n" + str(testDatum)[0:nextcharacter] + "\n+++" r += "\n\nNOT parsed:\n+++\n" + str(testDatum)[nextcharacter : len(testDatum)] + "\n+++" return r assert success and nextcharacter == len(testDatum), errStr()
def testDeclaration(self): tokenTestData = { "gruppe": ["BAI1", "GWu", "INF", "Vorkurs"], "fach": [ "BAI1-GI/GIÜ", "GWu DANN", "INF-WPP-C2/01", "Vorkurs PRG", "BAI4-CI", "E1a-ALÜ/01 u. 02", "E1a-PRP1/01,02,03", "BAI1-PTP/07 optional", # IuE.WiSe2013 ], "uhrzeit": ["17:00", "9:00", "8:15", "24:66"], "wochentag": ["Mo", "Di", "Mi", "Do", "Fr", "Sa", "So", "mo", "mO", "MO"], "raum": ["1260", "1101b", "1101a", "irgendwasOhneKomma"], "dozent": ["SRS", "WND/[Oel]", "Birgit/_Oelker"], "wochen": ["11", "12, 18, 21"], "bezeichner": ["Name, Dozent, Raum, Tag, Anfang, Ende"], "section": [sectionTestDatum], "version": ["0.9", "1.2", "0.9.3"], "versionsDatum": ["1.3.11", "30.09.2012", "12.07.2013"], "semester": [ "SoSe 11", "WiSe 10", "WiSe 11/12", "WiSe 2012/13", "WiSe 2013", ], "infoString": [ "SoSe 11 (Vers.0.9 vom 1.3.11)", "WiSe 2012/13 Vers 1.2 vom 30.09.2012", "WiSe 2013 Vers. 0.9.3 vom 12.07.2013", ], "ersteZeile": [ "Stundenplan SoSe 11 (Vers.0.9 vom 1.3.11)", "Stundenplan SoSe 11 (Vers.0.9 vom 1.3.11)", "Stundenplan WiSe 11/12 Vers.1.01 vom 16.09.2011", "Stundenplan WiSe 2012/13 Vers 1.2 vom 30.09.2012", "Stundenplan WiSe 2013 Vers. 0.9.3 vom 12.07.2013", "Dozentenplan WiSe 2013 Vers. 1.20 vom 24.9.2013", ], "zweiteZeile": ["Semestergruppe M-AI1", "Semestergruppe A-M"], "header": [ "Stundenplan SoSe 11 (Vers.0.9 vom 1.3.11)\nSemestergruppe M-AI1", "Stundenplan WiSe 11/12 Vers.1.01 vom 16.09.2011\nSemestergruppe B-AI1", "Stundenplan WiSe 2013 Vers. 0.9.3 vom 12.07.2013\nSemestergruppe A-M", # Geändertes Format: header besteht nur noch aus einer Zeile "Dozentenplan WiSe 2013 Vers. 1.20 vom 24.9.2013", ], "eintrag": [ "BAI1-PTP/07 optional,Birgit Wendholt/_Gerhard Oelker,1165,Fr,8:15,11:30", ], "semestergruppe": [ semestergruppeTestDatum, semestergruppeTestDatum2, semestergruppeTestDatum3, ], "datei": [ dateiTestDatum1, dateiTestDatum2, dateiTestDatum3, dateiTestDatum4, dateiTestDatum5, dateiTestDatum6, dateiTestDatum7, dateiTestDatum8, dateiTestDatum9, dateiTestDatum10, dateiTestDatum11, dateiTestDatum12, dateiTestDatum13, dateiTestDatum14, dateiTestDatum15, ] } for token in tokenTestData: production = token testData = tokenTestData[token] for testDatum in testData: success, children, nextcharacter = HawParser.parse( testDatum, production) def errStr(): from pprint import pformat r = """Could not parse %s\nas a\n\n%s\t(%s chars parsed of %s)""" % ( repr(testDatum), production, nextcharacter, len(testDatum)) r += "\n\nreturned value was:\n\n" + pformat( (success, children, nextcharacter)) r += "\n\nparsed:\n+++\n" + str( testDatum)[0:nextcharacter] + "\n+++" r += "\n\nNOT parsed:\n+++\n" + str( testDatum)[nextcharacter:len(testDatum)] + "\n+++" return r assert success and nextcharacter == len(testDatum), errStr()
def testDeclaration(self): tokenTestData = { "gruppe": ["BAI1", "GWu", "INF", "Vorkurs"], "fach": [ "BAI1-GI/GIÜ", "GWu DANN", "INF-WPP-C2/01", "Vorkurs PRG", "BAI4-CI", "E1a-ALÜ/01 u. 02", "E1a-PRP1/01,02,03", "BAI1-PTP/07 optional", # IuE.WiSe2013 ], "uhrzeit": ["17:00", "9:00", "8:15", "24:66"], "wochentag": ["Mo", "Di", "Mi", "Do", "Fr", "Sa", "So", "mo", "mO", "MO"], "raum": ["1260", "1101b", "1101a", "irgendwasOhneKomma"], "dozent": ["SRS", "WND/[Oel]", "Birgit/_Oelker"], "wochen": ["11", "12, 18, 21"], "bezeichner": ["Name, Dozent, Raum, Tag, Anfang, Ende"], "section": [sectionTestDatum], "version": ["0.9", "1.2", "0.9.3"], "versionsDatum": ["1.3.11", "30.09.2012", "12.07.2013"], "semester": ["SoSe 11", "WiSe 10", "WiSe 11/12", "WiSe 2012/13", "WiSe 2013"], "infoString": [ "SoSe 11 (Vers.0.9 vom 1.3.11)", "WiSe 2012/13 Vers 1.2 vom 30.09.2012", "WiSe 2013 Vers. 0.9.3 vom 12.07.2013", ], "ersteZeile": [ "Stundenplan SoSe 11 (Vers.0.9 vom 1.3.11)", "Stundenplan SoSe 11 (Vers.0.9 vom 1.3.11)", "Stundenplan WiSe 11/12 Vers.1.01 vom 16.09.2011", "Stundenplan WiSe 2012/13 Vers 1.2 vom 30.09.2012", "Stundenplan WiSe 2013 Vers. 0.9.3 vom 12.07.2013", "Dozentenplan WiSe 2013 Vers. 1.20 vom 24.9.2013", "Stundenplan WiSe 2015/2016 Vers. 0.9.1 vom 7.9.2015", ], "zweiteZeile": ["Semestergruppe M-AI1", "Semestergruppe A-M"], "header": [ "Stundenplan SoSe 11 (Vers.0.9 vom 1.3.11)\nSemestergruppe M-AI1", "Stundenplan WiSe 11/12 Vers.1.01 vom 16.09.2011\nSemestergruppe B-AI1", "Stundenplan WiSe 2013 Vers. 0.9.3 vom 12.07.2013\nSemestergruppe A-M", # Geändertes Format: header besteht nur noch aus einer Zeile "Dozentenplan WiSe 2013 Vers. 1.20 vom 24.9.2013", ], "eintrag": ["BAI1-PTP/07 optional,Birgit Wendholt/_Gerhard Oelker,1165,Fr,8:15,11:30"], "semestergruppe": [ semestergruppeTestDatum, semestergruppeTestDatum2, semestergruppeTestDatum3, semestergruppeTestDatum4, ], "datei": [ dateiTestDatum1, dateiTestDatum2, dateiTestDatum3, dateiTestDatum4, dateiTestDatum5, dateiTestDatum6, dateiTestDatum7, dateiTestDatum8, dateiTestDatum9, dateiTestDatum10, dateiTestDatum11, dateiTestDatum12, dateiTestDatum13, dateiTestDatum14, dateiTestDatum15, dateiTestDatum16, dateiTestDatum17, ], } for token in tokenTestData: production = token testData = tokenTestData[token] for testDatum in testData: success, children, nextcharacter = HawParser.parse(testDatum, production) def errStr(): from pprint import pformat r = """Could not parse %s\nas a\n\n%s\t(%s chars parsed of %s)""" % ( repr(testDatum), production, nextcharacter, len(testDatum), ) r += "\n\nreturned value was:\n\n" + pformat((success, children, nextcharacter)) r += "\n\nparsed:\n+++\n" + str(testDatum)[0:nextcharacter] + "\n+++" r += "\n\nNOT parsed:\n+++\n" + str(testDatum)[nextcharacter : len(testDatum)] + "\n+++" return r assert success and nextcharacter == len(testDatum), errStr()