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: trunk, fr
22:50
[core] tests: sort errors by <nStart>, [fr] ajustements check-in: b5cf58977b user: olr tags: trunk, fr, core
22:05
[fr] ajustements check-in: a9c5f8dab7 user: olr tags: trunk, fr
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
79
80
81
82
83
84
85


86
87
88
89
90
91
92







-
-







                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
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
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







+
+
+
-
+











-
+







            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.strip())
        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 aErrs:
        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
724
725
726
727
728
729
730

731
732
733

734
735
736
737
738

739
740
741
742
743
744
745
746







-
+


-
+




-
+







        <<- -1>> " »|”"                                                                             && Guillemets typographiques fermants.

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


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

TEST: {{''}}Ça{{”}} recommence.                                                 ->> « |“|||
TEST: Le {{''}}grand{{”}} homme.                                                ->> « |“|||
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.?!](')(?:[   ]|$)  @@*
1321
1322
1323
1324
1325
1326
1327
1328

1329
1330
1331
1332
1333
1334
1335
1321
1322
1323
1324
1325
1326
1327

1328
1329
1330
1331
1332
1333
1334
1335







-
+







        <<- 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,$
    (“)[^”’“«]+?(’)(?![\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 (‘).

27094
27095
27096
27097
27098
27099
27100
27101

27102
27103
27104
27105
27106
27107
27108
27094
27095
27096
27097
27098
27099
27100

27101
27102
27103
27104
27105
27106
27107
27108







-
+







        -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: {{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