Grammalecte  Check-in [b5cf58977b]

Overview
Comment:[core] tests: sort errors by <nStart>, [fr] ajustements
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk | fr | core
Files: files | file ages | folders
SHA3-256: b5cf58977b17ef2c6f99682f6f5569fe8d083529555949ee858bd71ce1e71bff
User & Date: olr on 2020-09-10 22:50:47
Other Links: manifest | tags
Context
2020-09-10
23:47
[fr] ajustements check-in: e1e8778897 user: olr tags: fr, trunk
22:50
[core] tests: sort errors by <nStart>, [fr] ajustements check-in: b5cf58977b user: olr tags: core, fr, trunk
22:05
[fr] ajustements check-in: a9c5f8dab7 user: olr tags: fr, trunk
Changes

Modified gc_core/py/lang_core/tests_core.py from [81fdf8c610] to [f2e83e1db8].

79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
...
119
120
121
122
123
124
125



126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
                sOption = None
                m = zOption.search(sLine)
                if m:
                    sLine = sLine[m.end():]
                    sOption = m.group(1)
                if "->>" in sLine:
                    sErrorText, sExceptedSuggs = self._splitTestLine(sLine)
                    if sExceptedSuggs.startswith('"') and sExceptedSuggs.endswith('"'):
                        sExceptedSuggs = sExceptedSuggs[1:-1]
                else:
                    sErrorText = sLine.strip()
                    sExceptedSuggs = ""
                sExpectedErrors = self._getExpectedErrors(sErrorText)
                sTextToCheck = sErrorText.replace("}}", "").replace("{{", "")
                sFoundErrors, sListErr, sFoundSuggs = self._getFoundErrors(sTextToCheck, sOption)
                # tests
................................................................................
            print()
            for sRule in aUntestedRules:
                echo(sRule)
            echo("  [{} untested rules]".format(len(aUntestedRules)))

    def _splitTestLine (self, sLine):
        sText, sSugg = sLine.split("->>")



        return (sText.strip(), sSugg.strip())

    def _getFoundErrors (self, sLine, sOption):
        if sOption:
            gc_engine.setOption(sOption, True)
            aErrs = gc_engine.parse(sLine)
            gc_engine.setOption(sOption, False)
        else:
            aErrs = gc_engine.parse(sLine)
        sRes = " " * len(sLine)
        sListErr = ""
        lAllSugg = []
        for dErr in aErrs:
            sRes = sRes[:dErr["nStart"]] + "~" * (dErr["nEnd"] - dErr["nStart"]) + sRes[dErr["nEnd"]:]
            sListErr += "    * {sLineId} / {sRuleId}  at  {nStart}:{nEnd}\n".format(**dErr)
            lAllSugg.append("|".join(dErr["aSuggestions"]))
            self._aTestedRules.add(dErr["sRuleId"].rstrip("0123456789"))
            # test messages
            if "<start>" in dErr["sMessage"] or "<end>" in dErr["sMessage"]:
                print("\n# Line num : " + dErr["sLineId"] + \







<
<







 







>
>
>
|











|







79
80
81
82
83
84
85


86
87
88
89
90
91
92
...
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
                sOption = None
                m = zOption.search(sLine)
                if m:
                    sLine = sLine[m.end():]
                    sOption = m.group(1)
                if "->>" in sLine:
                    sErrorText, sExceptedSuggs = self._splitTestLine(sLine)


                else:
                    sErrorText = sLine.strip()
                    sExceptedSuggs = ""
                sExpectedErrors = self._getExpectedErrors(sErrorText)
                sTextToCheck = sErrorText.replace("}}", "").replace("{{", "")
                sFoundErrors, sListErr, sFoundSuggs = self._getFoundErrors(sTextToCheck, sOption)
                # tests
................................................................................
            print()
            for sRule in aUntestedRules:
                echo(sRule)
            echo("  [{} untested rules]".format(len(aUntestedRules)))

    def _splitTestLine (self, sLine):
        sText, sSugg = sLine.split("->>")
        sSugg = sSugg.strip()
        if sSugg.startswith('"') and sSugg.endswith('"'):
            sSugg = sSugg[1:-1]
        return (sText.strip(), sSugg)

    def _getFoundErrors (self, sLine, sOption):
        if sOption:
            gc_engine.setOption(sOption, True)
            aErrs = gc_engine.parse(sLine)
            gc_engine.setOption(sOption, False)
        else:
            aErrs = gc_engine.parse(sLine)
        sRes = " " * len(sLine)
        sListErr = ""
        lAllSugg = []
        for dErr in sorted(aErrs, key=lambda d: d["nStart"]):
            sRes = sRes[:dErr["nStart"]] + "~" * (dErr["nEnd"] - dErr["nStart"]) + sRes[dErr["nEnd"]:]
            sListErr += "    * {sLineId} / {sRuleId}  at  {nStart}:{nEnd}\n".format(**dErr)
            lAllSugg.append("|".join(dErr["aSuggestions"]))
            self._aTestedRules.add(dErr["sRuleId"].rstrip("0123456789"))
            # test messages
            if "<start>" in dErr["sMessage"] or "<end>" in dErr["sMessage"]:
                print("\n# Line num : " + dErr["sLineId"] + \

Modified gc_lang/fr/rules.grx from [4a2551e5e6] to [073f53470c].

724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
....
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
.....
27094
27095
27096
27097
27098
27099
27100
27101
27102
27103
27104
27105
27106
27107
27108
        <<- -1>> " »|”"                                                                             && Guillemets typographiques fermants.

TEST: {{"}}Le grand homme.”                                                 ->> « |“
TEST: “Le grand homme.{{"}}                                                 ->> " »|”"


__<s>/typo(typo_guillemets_typographiques_simples_doubles_ouvrants)__
    (?:^|[ –—-])('')(?=\w)  @@*
        <<- -1>> « |“                                                                               && Guillemets typographiques ouvrants.
__<s>/typo(typo_guillemets_typographiques_simples_doubles_fermants)__
    [\w.?!…,]('')(?![\w'’])  @@*
        <<- -1>> " »|”"                                                                             && Guillemets typographiques fermants.

TEST: {{''}}Ça{{”}} recommence.                                                 ->> « |“|||
TEST: Le {{''}}grand{{”}} homme.                                                ->> « |“|||
TEST: Le {{“}}grand{{''}} homme.                                                ->> " »|”|||"


__<s>/typo(typo_guillemets_typographiques_simples_ouvrants)__
    (?:^|[ –—-])(['’])(?=\w)  @@*
        <<- -1>> “|‘|‹                                                                              && Guillemets typographiques ouvrants.
__<s>/typo(typo_guillemets_typographiques_simples_fermants)__
    [\w.?!](')(?:[   ]|$)  @@*
................................................................................
        <<- not after("^\\w") -2>> ”                                                                && Guillemet fermant différent du guillemet ouvrant (“).

TEST: C’est {{«}}stupide{{”}}.
TEST: Quel {{“}}emmerdeur{{»}}, ce gars-là.


__<s>/typo(typo_cohérence_guillemets_doubles_ouvrants)__
    (“)[^”’“«]+?(’)(?!\w)  @@0,$
        <<- not before("\\w$") -1>> "‘"                                                             && Guillemet ouvrant différent du guillemet fermant (’).
        <<- -2>> ”                                                                                  && Guillemet fermant différent du guillemet ouvrant (“).
__<s>/typo(typo_cohérence_guillemets_doubles_fermants)__
    (‘)[^’“«]+?(”)  @@0,$
        <<- not before("\\w$") -1>> "“"                                                             && Guillemet ouvrant différent du guillemet fermant (”).
        <<- not after("^\\w") -2>> ’                                                                && Guillemet fermant différent du guillemet ouvrant (‘).

................................................................................
        -2:3>> =suggVerbTense(\2, ":E", ":2p") + "-" + \3                                           && Confusion probable. Pour l’impératif, écrivez :

    [<start>|,|(|et|ou]  *WORD  [les|le|la|lui|nous|vous|leur]  [<end>|,|)]
        <<- /imp/ space_after(\2, 1, 1) and morph(\2, ":(?:V1.*:[YQ]|Iq.*:[123]s)")
        -2:3>> =suggVerbTense(\2, ":E", ":2p") + "-" + \3                                           && Confusion probable. Pour l’impératif, écrivez :

TEST: {{Donner moi}} une chance                         ->> Donnez-moi
TEST: {{donner la}} et oublie-moi.                      ->> là|||donnez-la
TEST: {{prenait les}} ou volez-les                      ->> prenez-les
TEST: je vous en prie, {{prenais moi}} avec vous.       ->> prenez-moi
TEST: {{avançait moi}} de l’argent                      ->> avancez-moi
TEST: {{filé moi}} du fric, bon sang !                  ->> filez-moi
TEST: {{Données lui}} ça.                               ->> Donnez-lui
TEST: {{Enseignait nous}}.                              ->> Enseignez-nous
TEST: {{attacher le}}                                   ->> attachez-le







|


|




|







 







|







 







|







724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
....
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
.....
27094
27095
27096
27097
27098
27099
27100
27101
27102
27103
27104
27105
27106
27107
27108
        <<- -1>> " »|”"                                                                             && Guillemets typographiques fermants.

TEST: {{"}}Le grand homme.”                                                 ->> « |“
TEST: “Le grand homme.{{"}}                                                 ->> " »|”"


__<s>/typo(typo_guillemets_typographiques_simples_doubles_ouvrants)__
    (?:^|[ –—-])(['’]['’])(?=\w)  @@*
        <<- -1>> « |“                                                                               && Guillemets typographiques ouvrants.
__<s>/typo(typo_guillemets_typographiques_simples_doubles_fermants)__
    [\w.?!…,](['’]['’])(?![\w'’])  @@*
        <<- -1>> " »|”"                                                                             && Guillemets typographiques fermants.

TEST: {{''}}Ça{{”}} recommence.                                                 ->> « |“|||
TEST: Le {{''}}grand{{”}} homme.                                                ->> « |“|||
TEST: Le {{“}}grand{{''}} homme.                                                ->> ||| »|”


__<s>/typo(typo_guillemets_typographiques_simples_ouvrants)__
    (?:^|[ –—-])(['’])(?=\w)  @@*
        <<- -1>> “|‘|‹                                                                              && Guillemets typographiques ouvrants.
__<s>/typo(typo_guillemets_typographiques_simples_fermants)__
    [\w.?!](')(?:[   ]|$)  @@*
................................................................................
        <<- not after("^\\w") -2>> ”                                                                && Guillemet fermant différent du guillemet ouvrant (“).

TEST: C’est {{«}}stupide{{”}}.
TEST: Quel {{“}}emmerdeur{{»}}, ce gars-là.


__<s>/typo(typo_cohérence_guillemets_doubles_ouvrants)__
    (“)[^”’“«]+?(’)(?![\w'’])  @@0,$
        <<- not before("\\w$") -1>> "‘"                                                             && Guillemet ouvrant différent du guillemet fermant (’).
        <<- -2>> ”                                                                                  && Guillemet fermant différent du guillemet ouvrant (“).
__<s>/typo(typo_cohérence_guillemets_doubles_fermants)__
    (‘)[^’“«]+?(”)  @@0,$
        <<- not before("\\w$") -1>> "“"                                                             && Guillemet ouvrant différent du guillemet fermant (”).
        <<- not after("^\\w") -2>> ’                                                                && Guillemet fermant différent du guillemet ouvrant (‘).

................................................................................
        -2:3>> =suggVerbTense(\2, ":E", ":2p") + "-" + \3                                           && Confusion probable. Pour l’impératif, écrivez :

    [<start>|,|(|et|ou]  *WORD  [les|le|la|lui|nous|vous|leur]  [<end>|,|)]
        <<- /imp/ space_after(\2, 1, 1) and morph(\2, ":(?:V1.*:[YQ]|Iq.*:[123]s)")
        -2:3>> =suggVerbTense(\2, ":E", ":2p") + "-" + \3                                           && Confusion probable. Pour l’impératif, écrivez :

TEST: {{Donner moi}} une chance                         ->> Donnez-moi
TEST: {{donner la}} et oublie-moi.                      ->> donnez-la|||là
TEST: {{prenait les}} ou volez-les                      ->> prenez-les
TEST: je vous en prie, {{prenais moi}} avec vous.       ->> prenez-moi
TEST: {{avançait moi}} de l’argent                      ->> avancez-moi
TEST: {{filé moi}} du fric, bon sang !                  ->> filez-moi
TEST: {{Données lui}} ça.                               ->> Donnez-lui
TEST: {{Enseignait nous}}.                              ->> Enseignez-nous
TEST: {{attacher le}}                                   ->> attachez-le