1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
// JavaScript
"use strict";
const helpers = require("resource://grammalecte/helpers.js");
class TestGrammarChecking {
constructor (gce) {
this.gce = gce;
this._aRuleTested = new Set();
};
* testParse (bDebug=false) {
const t0 = Date.now();
const aData = JSON.parse(helpers.loadFile("resource://grammalecte/"+this.gce.lang+"/tests_data.json")).aData;
//const aData = require("resource://grammalecte/"+this.gce.lang+"/tests_data.js").aData;
let nInvalid = 0
let nTotal = 0
let sErrorText;
let sSugg;
let sExpectedErrors;
let sTextToCheck;
let sFoundErrors;
|
>
|
>
|
>
>
|
<
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
// JavaScript
"use strict";
if (typeof(require) !== 'undefined') {
var helpers = require("resource://grammalecte/helpers.js");
}
class TestGrammarChecking {
constructor (gce, spfTests="") {
this.gce = gce;
this.spfTests = spfTests
this._aRuleTested = new Set();
};
* testParse (bDebug=false) {
const t0 = Date.now();
let sURL = (this.spfTests !== "") ? this.spfTests : "resource://grammalecte/"+this.gce.lang+"/tests_data.json";
const aData = JSON.parse(helpers.loadFile(sURL)).aData;
let nInvalid = 0
let nTotal = 0
let sErrorText;
let sSugg;
let sExpectedErrors;
let sTextToCheck;
let sFoundErrors;
|
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
|
}
catch (e) {
helpers.logerror(e);
}
if (bShowUntested) {
i = 0;
for (let [sOpt, sLineId, sRuleId] of gce.listRules()) {
if (!this._aRuleTested.has(sLineId) && !/^[0-9]+[sp]$|^[pd]_/.test(sRuleId)) {
sUntestedRules += sRuleId + ", ";
i += 1;
}
}
if (i > 0) {
yield sUntestedRules + "\n[" + i.toString() + " untested rules]";
|
|
|
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
|
}
catch (e) {
helpers.logerror(e);
}
if (bShowUntested) {
i = 0;
for (let [sOpt, sLineId, sRuleId] of this.gce.listRules()) {
if (!this._aRuleTested.has(sLineId) && !/^[0-9]+[sp]$|^[pd]_/.test(sRuleId)) {
sUntestedRules += sRuleId + ", ";
i += 1;
}
}
if (i > 0) {
yield sUntestedRules + "\n[" + i.toString() + " untested rules]";
|
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
|
return " ".repeat(sLine.length);
};
_getFoundErrors (sLine, bDebug, sOption) {
try {
let aErrs = [];
if (sOption) {
gce.setOption(sOption, true);
aErrs = this.gce.parse(sLine, "FR", bDebug);
gce.setOption(sOption, false);
} else {
aErrs = this.gce.parse(sLine, "FR", bDebug);
}
let sRes = " ".repeat(sLine.length);
let sListErr = "";
for (let dErr of aErrs) {
sRes = sRes.slice(0, dErr["nStart"]) + "~".repeat(dErr["nEnd"] - dErr["nStart"]) + sRes.slice(dErr["nEnd"]);
|
|
|
|
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
|
return " ".repeat(sLine.length);
};
_getFoundErrors (sLine, bDebug, sOption) {
try {
let aErrs = [];
if (sOption) {
this.gce.setOption(sOption, true);
aErrs = this.gce.parse(sLine, "FR", bDebug);
this.gce.setOption(sOption, false);
} else {
aErrs = this.gce.parse(sLine, "FR", bDebug);
}
let sRes = " ".repeat(sLine.length);
let sListErr = "";
for (let dErr of aErrs) {
sRes = sRes.slice(0, dErr["nStart"]) + "~".repeat(dErr["nEnd"] - dErr["nStart"]) + sRes.slice(dErr["nEnd"]);
|