Esempio n. 1
0
    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()
Esempio n. 2
0
    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()
Esempio n. 3
0
    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()