Skip to content

Commit 237b9f9

Browse files
authored
Merge pull request #39 from mathjax/rewrite_tests
Rewrite tests
2 parents 8db821d + 49808cd commit 237b9f9

10 files changed

+403
-356
lines changed

Diff for: tests/json/KeyvalTest.json

+170
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,170 @@
1+
{
2+
"name": "KeyvalTest",
3+
"factory": "keyvalTest",
4+
"tests": {
5+
"Keyval Trival": {
6+
"input": "key={{}}",
7+
"expected": {"key": true}
8+
},
9+
"Keyval Trivial 2": {
10+
"input": "key1={{}},key2={{{{}}}}",
11+
"expected": {"key1": true, "key2": true}
12+
},
13+
"Keyval Trival3": {
14+
"input": "key={{}{}}",
15+
"expected": {"key": "{}{}"}
16+
},
17+
"Keyval Trivial 4": {
18+
"input": "key1= { { } },key2= {{ { { }} } }",
19+
"expected": {"key1": true, "key2": true}
20+
},
21+
"Keyval Single": {
22+
"input": "key=a",
23+
"expected": {"key": "a"}
24+
},
25+
"Keyval Double": {
26+
"input": "key1=a,key2=b",
27+
"expected": {"key1": "a", "key2": "b"}
28+
},
29+
"Keyval Space": {
30+
"input": "key1 = a , key2 = b",
31+
"expected": {"key1": "a", "key2": "b"}
32+
},
33+
"Keyval Single True": {
34+
"input": "key1",
35+
"expected": {"key1": true}
36+
},
37+
"Keyval Double True": {
38+
"input": "key1,key2",
39+
"expected": {"key1": true, "key2": true}
40+
},
41+
"Keyval Mixed": {
42+
"input": "key1=a,key2,key3=c",
43+
"expected": {"key1": "a", "key2": true, "key3": "c"}
44+
},
45+
"Keyval Empty Comma Begin": {
46+
"input": ",key1=a,key2,key3=c",
47+
"expected": {"key1": "a", "key2": true, "key3": "c"}
48+
},
49+
"Keyval Empty Comma Mid": {
50+
"input": "key1=a,,key2,key3=c",
51+
"expected": {"key1": "a", "key2": true, "key3": "c"}
52+
},
53+
"Keyval Empty Comma End": {
54+
"input": "key1=a,key2,key3=c,",
55+
"expected": {"key1": "a", "key2": true, "key3": "c"}
56+
},
57+
"Keyval Empty Comma Multi": {
58+
"input": ",,key1=a,,,,key2,key3=c,,",
59+
"expected": {"key1": "a", "key2": true, "key3": "c"}
60+
},
61+
"Keyval Braces": {
62+
"input": "key1={a},key2=b",
63+
"expected": {"key1": "a", "key2": "b"}
64+
},
65+
"Keyval Braces 2": {
66+
"input": "key1={{a}},key2=b",
67+
"expected": {"key1": "a", "key2": "b"}
68+
},
69+
"Keyval Braces 3": {
70+
"input": "key1={{{a}}},key2=b",
71+
"expected": {"key1": "a", "key2": "b"}
72+
},
73+
"Keyval Braces Comma": {
74+
"input": "key1={a,b,c},key2=b",
75+
"expected": {"key1": "a,b,c", "key2": "b"}
76+
},
77+
"Keyval Braces Equal": {
78+
"input": "key1={a=c},key2=b",
79+
"expected": {"key1": "a=c", "key2": "b"}
80+
},
81+
"Keyval Braces Comma Equal": {
82+
"input": "key1={a=c,b},key2=b",
83+
"expected": {"key1": "a=c,b", "key2": "b"}
84+
},
85+
"Keyval Braces Simple 1": {
86+
"input": "key1={{a}}",
87+
"expected": {"key1": "a"}
88+
},
89+
"Keyval Braces Simple 2": {
90+
"input": "key1={{a{b}}}",
91+
"expected": {"key1": "a{b}"}
92+
},
93+
"Keyval Braces Simple 3": {
94+
"input": "key1={{a={b}}}",
95+
"expected": {"key1": "a={b}"}
96+
},
97+
"Keyval Braces Prefix": {
98+
"input": "key1={{}a}",
99+
"expected": {"key1": "{}a"}
100+
},
101+
"Keyval Braces Prefix 2": {
102+
"input": "key1={{{}}a}",
103+
"expected": {"key1": "{{}}a"}
104+
},
105+
"Keyval Braces Prefix 3": {
106+
"input": "key1={{}{}a}",
107+
"expected": {"key1": "{}{}a"}
108+
},
109+
"Keyval Braces Prefix 4": {
110+
"input": "key1={{{}{}a}}",
111+
"expected": {"key1": "{}{}a"}
112+
},
113+
"Keyval Braces Prefix 5": {
114+
"input": "key1={{}{a}}",
115+
"expected": {"key1": "{}{a}"}
116+
},
117+
"Keyval Braces Prefix 6": {
118+
"input": "key1={{{}}{a}}",
119+
"expected": {"key1": "{{}}{a}"}
120+
},
121+
"Keyval Braces Mixed 1": {
122+
"input": "key1={{a},{b}},key2=b",
123+
"expected": {"key1": "{a},{b}", "key2": "b"}
124+
},
125+
"Keyval Braces Mixed 2": {
126+
"input": "key1={{{a},{b}}},key2=b",
127+
"expected": {"key1": "{a},{b}", "key2": "b"}
128+
},
129+
"Keyval Braces Mixed 3": {
130+
"input": "key1={{{a}},{{b},{c}}},key2=b",
131+
"expected": {"key1": "{{a}},{{b},{c}}", "key2": "b"}
132+
},
133+
"Keyval Braces Mixed 3 Spaces": {
134+
"input": "key1 = { { { a}},{{b},{c} } } ,key2=b",
135+
"expected": {"key1": "{ { a}},{{b},{c} }", "key2": "b"}
136+
},
137+
"Keyval Braces Mixed 4 Spaces": {
138+
"input": "key1 = { { { { { { a}},{{b},{c} } } } } } ,key2=b",
139+
"expected": {"key1": "{ { a}},{{b},{c} }", "key2": "b"}
140+
},
141+
"Keyval Braces Equals Mixed 3": {
142+
"input": "key1={{{a}}={{b},{c}}},key2=b",
143+
"expected": {"key1": "{{a}}={{b},{c}}", "key2": "b"}
144+
},
145+
"Keyval Error 1": {
146+
"input": "key={{a}",
147+
"expected": "Extra open brace or missing close brace"
148+
},
149+
"Keyval Error 2": {
150+
"input": "key={{a}{}",
151+
"expected": "Extra open brace or missing close brace"
152+
},
153+
"Keyval Error 3": {
154+
"input": "key1=}, key2={",
155+
"expected": "Extra open brace or missing close brace"
156+
},
157+
"Keyval Unbalanced 1": {
158+
"input": "key={a}}",
159+
"expected": {"key": "a}"}
160+
},
161+
"Keyval Unbalanced 2": {
162+
"input": "key1={a}}, key2=}b",
163+
"expected": {"key1": "a}", "key2": "}b"}
164+
},
165+
"Keyval Unbalanced 3": {
166+
"input": "key1=}, key2={}}",
167+
"expected": {"key1": true, "key2": true}
168+
}
169+
}
170+
}

Diff for: tests/json/ParserBussproofsRegInfTest.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "ParserBussproofsRegInfTest",
3-
"factory": "parserTest",
3+
"factory": "parserOutputTest",
44
"packages": [
55
"base",
66
"ams",
@@ -8067,4 +8067,4 @@
80678067
}
80688068
}
80698069
}
8070-
}
8070+
}

Diff for: tests/json/ParserBussproofsRegProofsTest.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "ParserBussproofsRegProofsTest",
3-
"factory": "parserTest",
3+
"factory": "parserOutputTest",
44
"packages": [
55
"base",
66
"ams",
@@ -29032,4 +29032,4 @@
2903229032
}
2903329033
}
2903429034
}
29035-
}
29035+
}

Diff for: tests/src/other-test.js

+42-39
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,45 @@
1-
import {ParserJsonTest} from './parser-test.js';
2-
import {Configuration} from '../node_modules/mathjax-full/js/input/tex/Configuration.js';
3-
import {CharacterMap} from '../node_modules/mathjax-full/js/input/tex/SymbolMap.js';
4-
import ParseMethods from '../node_modules/mathjax-full/js/input/tex/ParseMethods.js';
5-
6-
7-
export class ParserMultirelTest extends ParserJsonTest {
8-
9-
constructor(json) {
10-
// Just some things bogus attributes for testing.
11-
new CharacterMap('shadow', ParseMethods.mathchar0mo, {
12-
sim: ['\u223C', {something: 'nothing'}],
13-
simeq: ['\u2243', {something: 'nothing'}],
14-
asymp: ['\u224D', {something: 'else'}],
15-
cong: ['\u224D', {anything: 'nothing'}],
16-
lesssim: ['\u2272', {lspace: '1pt'}],
17-
gtrsim: ['\u2278', {rspace: '1pt'}]
18-
});
19-
Configuration.create('multirel-test', {handler: {macro: ['shadow']}, priority: 4});
20-
super(json);
21-
this.packages = ['base', 'ams', 'multirel-test'];
1+
/*************************************************************
2+
*
3+
* Copyright (c) 2020 The MathJax Consortium
4+
*
5+
* Licensed under the Apache License, Version 2.0 (the "License");
6+
* you may not use this file except in compliance with the License.
7+
* You may obtain a copy of the License at
8+
*
9+
* http://www.apache.org/licenses/LICENSE-2.0
10+
*
11+
* Unless required by applicable law or agreed to in writing, software
12+
* distributed under the License is distributed on an "AS IS" BASIS,
13+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14+
* See the License for the specific language governing permissions and
15+
* limitations under the License.
16+
*/
17+
18+
19+
/**
20+
* @fileoverview Various test classes that use JSON input.
21+
*
22+
* @author [email protected] (Volker Sorge)
23+
*/
24+
25+
import {JsonTest} from './test.js';
26+
import ParseUtil from '../node_modules/mathjax-full/js/input/tex/ParseUtil.js';
27+
28+
29+
export class KeyvalTest extends JsonTest {
30+
31+
runTest(name, input, expected) {
32+
this.test(
33+
name,
34+
t => {
35+
try {
36+
let keyval = ParseUtil.keyvalOptions(input);
37+
t.deepEqual(keyval, expected, name);
38+
} catch (e) {
39+
t.deepEqual(e.message, expected, name);
40+
}
41+
}
42+
);
2243
}
2344

2445
}
25-
26-
27-
export class ParserConfigMacrosTest extends ParserJsonTest {
28-
29-
constructor(json) {
30-
super(json);
31-
this.packages = ['base', 'configmacros'];
32-
Object.assign(this.settings, {macros:{}});
33-
}
34-
35-
runTest(name, input, expected, {macro, control}) {
36-
Object.assign(this.settings.macros, macro);
37-
super.runTest(name, control, expected);
38-
super.runTest(name, input, expected);
39-
}
40-
41-
}
42-

0 commit comments

Comments
 (0)