mathml2asciimath 0.0.9 → 0.0.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/workflows/rake.yml +32 -0
- data/.gitignore +1 -0
- data/.hound.yml +3 -1
- data/.rubocop.yml +7 -7
- data/Gemfile +1 -2
- data/README.adoc +6 -6
- data/Rakefile +1 -1
- data/bin/m2a.rb +5 -7
- data/bin/rspec +1 -1
- data/lib/mathml2asciimath/m2a.rb +208 -210
- data/lib/mathml2asciimath/version.rb +1 -2
- data/mathml2asciimath.gemspec +7 -7
- data/spec/mathml_spec.rb +329 -327
- data/spec/spec_helper.rb +6 -7
- metadata +37 -41
- data/.github/workflows/macos.yml +0 -31
- data/.github/workflows/ubuntu.yml +0 -43
- data/.github/workflows/windows.yml +0 -34
- data/.rubocop.ribose.yml +0 -65
- data/.rubocop.tb.yml +0 -650
- data/Gemfile.lock +0 -106
data/spec/mathml_spec.rb
CHANGED
@@ -1,422 +1,424 @@
|
|
1
1
|
require "spec_helper"
|
2
2
|
|
3
3
|
RSpec.describe MathML2AsciiMath do
|
4
|
-
it "processes
|
5
|
-
expect(MathML2AsciiMath.m2a(<<~INPUT)).to
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
4
|
+
it "processes mstyle and mrow" do
|
5
|
+
expect(MathML2AsciiMath.m2a(<<~INPUT)).to eq <<~OUTPUT.strip.strip
|
6
|
+
<math xmlns="http://www.w3.org/1998/Math/MathML">
|
7
|
+
<mstyle>
|
8
|
+
<mrow>
|
9
|
+
<mi>a</mi> <mo>⋄</mo> <msup><mi>x</mi><mn>2</mn></msup>
|
10
|
+
<mo>+</mo><mi>b</mi><mo>×</mo><mi>x</mi>
|
11
|
+
<mo>+</mo><msub><mi>c</mi><mn>3</mn></msub>
|
12
|
+
</mrow>
|
13
|
+
</mstyle>
|
14
|
+
</math>
|
15
15
|
INPUT
|
16
|
-
|
16
|
+
a diamond x^2 + b xx x + c_3
|
17
17
|
OUTPUT
|
18
18
|
end
|
19
19
|
|
20
|
-
it "processes
|
21
|
-
expect(MathML2AsciiMath.m2a(<<~INPUT)).to
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
20
|
+
it "processes mrow" do
|
21
|
+
expect(MathML2AsciiMath.m2a(<<~INPUT)).to eq <<~OUTPUT.strip
|
22
|
+
<math xmlns="http://www.w3.org/1998/Math/MathML">
|
23
|
+
<mrow>
|
24
|
+
<mi>a</mi> <mo>⋄</mo> <msup><mi>x</mi><mn>2d</mn></msup>
|
25
|
+
<mo>+</mo><mi>b</mi><mo>×</mo><mi>x</mi>
|
26
|
+
<mo>+</mo><msub><mi>c</mi><mn>ab</mn></msub>
|
27
|
+
</mrow>
|
28
|
+
</math>
|
29
29
|
INPUT
|
30
|
-
|
30
|
+
a diamond x^(2d) + b xx x + c_(ab)
|
31
31
|
OUTPUT
|
32
32
|
end
|
33
33
|
|
34
|
-
it "processes
|
35
|
-
expect(MathML2AsciiMath.m2a(<<~INPUT)).to
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
</mfrac>
|
41
|
-
|
34
|
+
it "processes mfrac" do
|
35
|
+
expect(MathML2AsciiMath.m2a(<<~INPUT)).to eq <<~OUTPUT.strip
|
36
|
+
<math xmlns="http://www.w3.org/1998/Math/MathML">
|
37
|
+
<mfrac>
|
38
|
+
<mrow> <mn> 1 </mn> <mo> + </mo> <msqrt> <mn> 5 </mn> </msqrt> </mrow>
|
39
|
+
<mn> 2 </mn>
|
40
|
+
</mfrac>
|
41
|
+
</math>
|
42
42
|
INPUT
|
43
|
-
|
43
|
+
((1 + sqrt(5)))/(2)
|
44
44
|
OUTPUT
|
45
45
|
end
|
46
46
|
|
47
|
-
it "processes
|
48
|
-
expect(MathML2AsciiMath.m2a(<<~INPUT)).to
|
49
|
-
|
50
|
-
|
51
|
-
|
47
|
+
it "processes mfenced default" do
|
48
|
+
expect(MathML2AsciiMath.m2a(<<~INPUT)).to eq <<~OUTPUT.strip
|
49
|
+
<math xmlns="http://www.w3.org/1998/Math/MathML">
|
50
|
+
<mfenced><mrow><mi> a </mi> <mo> + </mo> <mi> b </mi></mrow></mfenced>
|
51
|
+
</math>
|
52
52
|
INPUT
|
53
|
-
|
53
|
+
(a + b)
|
54
54
|
OUTPUT
|
55
55
|
end
|
56
56
|
|
57
|
-
it "processes
|
58
|
-
expect(MathML2AsciiMath.m2a(<<~INPUT)).to
|
59
|
-
|
60
|
-
<mfenced open="["> <mn> 0 </mn> <mn> 1 </mn> </mfenced>
|
61
|
-
|
57
|
+
it "processes mfenced with unmatching braces" do
|
58
|
+
expect(MathML2AsciiMath.m2a(<<~INPUT)).to eq <<~OUTPUT.to_s.strip
|
59
|
+
<math xmlns="http://www.w3.org/1998/Math/MathML">
|
60
|
+
<mfenced open="["> <mn> 0 </mn> <mn> 1 </mn> </mfenced>
|
61
|
+
</math>
|
62
62
|
INPUT
|
63
|
-
|
63
|
+
[0,1)
|
64
64
|
OUTPUT
|
65
65
|
end
|
66
66
|
|
67
|
-
it "processes
|
68
|
-
expect(MathML2AsciiMath.m2a(<<~INPUT)).to
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
67
|
+
it "processes munderover" do
|
68
|
+
expect(MathML2AsciiMath.m2a(<<~INPUT)).to eq <<~OUTPUT.strip
|
69
|
+
<math xmlns="http://www.w3.org/1998/Math/MathML">
|
70
|
+
<munderover>
|
71
|
+
<mo>∫</mo> <mn>0</mn> <mi>∞</mi>
|
72
|
+
</munderover>
|
73
|
+
</math>
|
74
74
|
INPUT
|
75
|
-
|
75
|
+
int_0^(oo)
|
76
76
|
OUTPUT
|
77
77
|
end
|
78
78
|
|
79
|
-
it "processes
|
80
|
-
expect(MathML2AsciiMath.m2a(<<~INPUT)).to
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
79
|
+
it "processes msubsup" do
|
80
|
+
expect(MathML2AsciiMath.m2a(<<~INPUT)).to eq <<~OUTPUT.strip
|
81
|
+
<math xmlns="http://www.w3.org/1998/Math/MathML">
|
82
|
+
<msubsup>
|
83
|
+
<mo>∫</mo>
|
84
|
+
<mn>ab</mn>
|
85
|
+
<mn>ds</mn>
|
86
|
+
</msubsup>
|
87
|
+
</math>
|
88
88
|
INPUT
|
89
|
-
|
89
|
+
int_(ab)^(ds)
|
90
90
|
OUTPUT
|
91
91
|
end
|
92
92
|
|
93
|
-
it "processes
|
94
|
-
expect(MathML2AsciiMath.m2a(<<~INPUT)).to
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
</munder>
|
106
|
-
|
93
|
+
it "processes ubrace" do
|
94
|
+
expect(MathML2AsciiMath.m2a(<<~INPUT)).to eq <<~OUTPUT.strip
|
95
|
+
<math xmlns="http://www.w3.org/1998/Math/MathML">
|
96
|
+
<munder>
|
97
|
+
<mrow>
|
98
|
+
<mi> x </mi>
|
99
|
+
<mo> + </mo>
|
100
|
+
<mi> y </mi>
|
101
|
+
<mo> + </mo>
|
102
|
+
<mi> z </mi>
|
103
|
+
</mrow>
|
104
|
+
<mo> ⏟</mo>
|
105
|
+
</munder>
|
106
|
+
</math>
|
107
107
|
INPUT
|
108
|
-
|
108
|
+
ubrace (x + y + z)
|
109
109
|
OUTPUT
|
110
110
|
end
|
111
111
|
|
112
|
-
it "processes
|
113
|
-
expect(MathML2AsciiMath.m2a(<<~INPUT)).to
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
</munder>
|
125
|
-
|
112
|
+
it "processes ul" do
|
113
|
+
expect(MathML2AsciiMath.m2a(<<~INPUT)).to eq <<~OUTPUT.strip
|
114
|
+
<math xmlns="http://www.w3.org/1998/Math/MathML">
|
115
|
+
<munder>
|
116
|
+
<mrow>
|
117
|
+
<mi> x </mi>
|
118
|
+
<mo> + </mo>
|
119
|
+
<mi> y </mi>
|
120
|
+
<mo> + </mo>
|
121
|
+
<mi> z </mi>
|
122
|
+
</mrow>
|
123
|
+
<mo> ̲</mo>
|
124
|
+
</munder>
|
125
|
+
</math>
|
126
126
|
INPUT
|
127
|
-
|
127
|
+
ul (x + y + z)
|
128
128
|
OUTPUT
|
129
129
|
end
|
130
130
|
|
131
|
-
it "processes
|
132
|
-
expect(MathML2AsciiMath.m2a(<<~INPUT)).to
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
</munder>
|
144
|
-
|
131
|
+
it "processes underset" do
|
132
|
+
expect(MathML2AsciiMath.m2a(<<~INPUT)).to eq <<~OUTPUT.strip
|
133
|
+
<math xmlns="http://www.w3.org/1998/Math/MathML">
|
134
|
+
<munder>
|
135
|
+
<mrow>
|
136
|
+
<mi> x </mi>
|
137
|
+
<mo> + </mo>
|
138
|
+
<mi> y </mi>
|
139
|
+
<mo> + </mo>
|
140
|
+
<mi> z </mi>
|
141
|
+
</mrow>
|
142
|
+
<mo>fred </mo>
|
143
|
+
</munder>
|
144
|
+
</math>
|
145
145
|
INPUT
|
146
|
-
|
146
|
+
underset(fred)((x + y + z))
|
147
147
|
OUTPUT
|
148
148
|
end
|
149
149
|
|
150
|
-
it "processes
|
151
|
-
expect(MathML2AsciiMath.m2a(<<~INPUT)).to
|
152
|
-
|
153
|
-
<mover accent="true">
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
</mover>
|
163
|
-
|
164
|
-
</math>
|
150
|
+
it "processes obrace" do
|
151
|
+
expect(MathML2AsciiMath.m2a(<<~INPUT)).to eq <<~OUTPUT.strip
|
152
|
+
<math xmlns="http://www.w3.org/1998/Math/MathML">
|
153
|
+
<mover accent="true">
|
154
|
+
<mrow>
|
155
|
+
<mi> x </mi>
|
156
|
+
<mo> + </mo>
|
157
|
+
<mi> y </mi>
|
158
|
+
<mo> + </mo>
|
159
|
+
<mi> z </mi>
|
160
|
+
</mrow>
|
161
|
+
<mo> ⏞</mo>
|
162
|
+
</mover>
|
163
|
+
</math>
|
165
164
|
INPUT
|
166
|
-
|
165
|
+
obrace x + y + z
|
167
166
|
OUTPUT
|
168
167
|
end
|
169
168
|
|
170
|
-
it "processes
|
171
|
-
expect(MathML2AsciiMath.m2a(<<~INPUT)).to
|
172
|
-
|
173
|
-
<mover accent="true">
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
</mover>
|
183
|
-
|
184
|
-
</math>
|
169
|
+
it "processes hat" do
|
170
|
+
expect(MathML2AsciiMath.m2a(<<~INPUT)).to eq <<~OUTPUT.strip
|
171
|
+
<math xmlns="http://www.w3.org/1998/Math/MathML">
|
172
|
+
<mover accent="true">
|
173
|
+
<mrow>
|
174
|
+
<mi> x </mi>
|
175
|
+
<mo> + </mo>
|
176
|
+
<mi> y </mi>
|
177
|
+
<mo> + </mo>
|
178
|
+
<mi> z </mi>
|
179
|
+
</mrow>
|
180
|
+
<mo> ^</mo>
|
181
|
+
</mover>
|
182
|
+
</math>
|
185
183
|
INPUT
|
186
|
-
|
184
|
+
hat x + y + z
|
187
185
|
OUTPUT
|
188
186
|
end
|
189
187
|
|
190
|
-
it "processes
|
191
|
-
expect(MathML2AsciiMath.m2a(<<~INPUT)).to
|
192
|
-
|
193
|
-
<mover accent="true">
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
</mover>
|
203
|
-
|
204
|
-
</math>
|
188
|
+
it "processes bar" do
|
189
|
+
expect(MathML2AsciiMath.m2a(<<~INPUT)).to eq <<~OUTPUT.strip
|
190
|
+
<math xmlns="http://www.w3.org/1998/Math/MathML">
|
191
|
+
<mover accent="true">
|
192
|
+
<mrow>
|
193
|
+
<mi> x </mi>
|
194
|
+
<mo> + </mo>
|
195
|
+
<mi> y </mi>
|
196
|
+
<mo> + </mo>
|
197
|
+
<mi> z </mi>
|
198
|
+
</mrow>
|
199
|
+
<mo> ¯</mo>
|
200
|
+
</mover>
|
201
|
+
</math>
|
205
202
|
INPUT
|
206
|
-
|
203
|
+
bar x + y + z
|
207
204
|
OUTPUT
|
208
205
|
end
|
209
206
|
|
210
|
-
it "processes
|
211
|
-
expect(MathML2AsciiMath.m2a(<<~INPUT)).to
|
212
|
-
|
213
|
-
<mover accent="true">
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
</mover>
|
223
|
-
|
224
|
-
</math>
|
207
|
+
it "processes vec" do
|
208
|
+
expect(MathML2AsciiMath.m2a(<<~INPUT)).to eq <<~OUTPUT.strip
|
209
|
+
<math xmlns="http://www.w3.org/1998/Math/MathML">
|
210
|
+
<mover accent="true">
|
211
|
+
<mrow>
|
212
|
+
<mi> x </mi>
|
213
|
+
<mo> + </mo>
|
214
|
+
<mi> y </mi>
|
215
|
+
<mo> + </mo>
|
216
|
+
<mi> z </mi>
|
217
|
+
</mrow>
|
218
|
+
<mo>→</mo>
|
219
|
+
</mover>
|
220
|
+
</math>
|
225
221
|
INPUT
|
226
|
-
|
222
|
+
vec x + y + z
|
227
223
|
OUTPUT
|
228
224
|
end
|
229
225
|
|
230
|
-
it "processes
|
231
|
-
expect(MathML2AsciiMath.m2a(<<~INPUT)).to
|
232
|
-
|
233
|
-
<mover accent="true">
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
</mover>
|
243
|
-
|
244
|
-
</math>
|
226
|
+
it "processes dot" do
|
227
|
+
expect(MathML2AsciiMath.m2a(<<~INPUT)).to eq <<~OUTPUT.strip
|
228
|
+
<math xmlns="http://www.w3.org/1998/Math/MathML">
|
229
|
+
<mover accent="true">
|
230
|
+
<mrow>
|
231
|
+
<mi> x </mi>
|
232
|
+
<mo> + </mo>
|
233
|
+
<mi> y </mi>
|
234
|
+
<mo> + </mo>
|
235
|
+
<mi> z </mi>
|
236
|
+
</mrow>
|
237
|
+
<mo> .</mo>
|
238
|
+
</mover>
|
239
|
+
</math>
|
245
240
|
INPUT
|
246
|
-
|
241
|
+
dot x + y + z
|
247
242
|
OUTPUT
|
248
243
|
end
|
249
244
|
|
250
|
-
it "processes
|
251
|
-
expect(MathML2AsciiMath.m2a(<<~INPUT)).to
|
252
|
-
|
253
|
-
<mover accent="true">
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
</mover>
|
263
|
-
|
264
|
-
</math>
|
245
|
+
it "processes ddot" do
|
246
|
+
expect(MathML2AsciiMath.m2a(<<~INPUT)).to eq <<~OUTPUT.strip
|
247
|
+
<math xmlns="http://www.w3.org/1998/Math/MathML">
|
248
|
+
<mover accent="true">
|
249
|
+
<mrow>
|
250
|
+
<mi> x </mi>
|
251
|
+
<mo> + </mo>
|
252
|
+
<mi> y </mi>
|
253
|
+
<mo> + </mo>
|
254
|
+
<mi> z </mi>
|
255
|
+
</mrow>
|
256
|
+
<mo>..</mo>
|
257
|
+
</mover>
|
258
|
+
</math>
|
265
259
|
INPUT
|
266
|
-
|
260
|
+
ddot x + y + z
|
267
261
|
OUTPUT
|
268
262
|
end
|
269
263
|
|
270
|
-
it "processes
|
271
|
-
expect(MathML2AsciiMath.m2a(<<~INPUT)).to
|
272
|
-
|
273
|
-
<mover accent="true">
|
274
|
-
|
275
|
-
|
276
|
-
|
277
|
-
|
278
|
-
|
279
|
-
|
280
|
-
|
281
|
-
|
282
|
-
</mover>
|
283
|
-
|
284
|
-
</math>
|
264
|
+
it "processes overset" do
|
265
|
+
expect(MathML2AsciiMath.m2a(<<~INPUT)).to eq <<~OUTPUT.strip
|
266
|
+
<math xmlns="http://www.w3.org/1998/Math/MathML">
|
267
|
+
<mover accent="true">
|
268
|
+
<mrow>
|
269
|
+
<mi> x </mi>
|
270
|
+
<mo> + </mo>
|
271
|
+
<mi> y </mi>
|
272
|
+
<mo> + </mo>
|
273
|
+
<mi> z </mi>
|
274
|
+
</mrow>
|
275
|
+
<mo>fred</mo>
|
276
|
+
</mover>
|
277
|
+
</math>
|
285
278
|
INPUT
|
286
|
-
|
279
|
+
overset(fred)(x + y + z)
|
287
280
|
OUTPUT
|
288
281
|
end
|
289
282
|
|
290
|
-
it "processes
|
291
|
-
expect(MathML2AsciiMath.m2a(<<~INPUT)).to
|
292
|
-
|
293
|
-
|
294
|
-
|
295
|
-
|
296
|
-
|
297
|
-
|
298
|
-
|
299
|
-
|
300
|
-
|
301
|
-
|
302
|
-
|
303
|
-
|
304
|
-
|
305
|
-
|
306
|
-
|
307
|
-
|
308
|
-
|
309
|
-
|
283
|
+
it "processes mtable" do
|
284
|
+
expect(MathML2AsciiMath.m2a(<<~INPUT)).to eq <<~OUTPUT.strip
|
285
|
+
<math xmlns="http://www.w3.org/1998/Math/MathML">
|
286
|
+
<mi>X</mi>
|
287
|
+
<mo>=</mo>
|
288
|
+
<mtable frame="solid" rowlines="solid" align="axis 3">
|
289
|
+
<mtr>
|
290
|
+
<mtd><mi>A</mi></mtd>
|
291
|
+
<mtd><mi>B</mi></mtd>
|
292
|
+
</mtr>
|
293
|
+
<mtr>
|
294
|
+
<mtd><mi>C</mi></mtd>
|
295
|
+
<mtd><mi>D</mi></mtd>
|
296
|
+
</mtr>
|
297
|
+
<mtr>
|
298
|
+
<mtd><mi>E</mi></mtd>
|
299
|
+
<mtd><mi>F</mi></mtd>
|
300
|
+
</mtr>
|
301
|
+
</mtable>
|
302
|
+
</math>
|
310
303
|
INPUT
|
311
|
-
|
304
|
+
X = [[A,B],[C,D],[E,F]]
|
312
305
|
OUTPUT
|
313
306
|
end
|
314
307
|
|
315
308
|
it "processes <semantics> wrapping element" do
|
316
|
-
expect(MathML2AsciiMath.m2a(<<~INPUT)).to
|
317
|
-
|
318
|
-
|
319
|
-
|
320
|
-
|
321
|
-
|
322
|
-
|
323
|
-
|
324
|
-
|
325
|
-
|
326
|
-
|
327
|
-
|
328
|
-
|
329
|
-
|
330
|
-
|
331
|
-
|
332
|
-
|
333
|
-
|
334
|
-
|
335
|
-
|
336
|
-
|
337
|
-
|
338
|
-
|
309
|
+
expect(MathML2AsciiMath.m2a(<<~INPUT)).to eq <<~OUTPUT.strip
|
310
|
+
<math xmlns="http://www.w3.org/1998/Math/MathML">
|
311
|
+
<semantics>
|
312
|
+
<mrow>
|
313
|
+
<mover accent="true">
|
314
|
+
<mi>λ</mi>
|
315
|
+
<mo>¯</mo>
|
316
|
+
</mover>
|
317
|
+
<mo stretchy="false">(</mo>
|
318
|
+
<msub>
|
319
|
+
<mi>t</mi>
|
320
|
+
<mn>1</mn>
|
321
|
+
</msub>
|
322
|
+
<mo>,</mo>
|
323
|
+
<mtext> </mtext>
|
324
|
+
<msub>
|
325
|
+
<mi>t</mi>
|
326
|
+
<mn>2</mn>
|
327
|
+
</msub>
|
328
|
+
<mo stretchy="false">)</mo>
|
329
|
+
</mrow>
|
330
|
+
</semantics>
|
331
|
+
</math>
|
339
332
|
INPUT
|
340
|
-
|
333
|
+
bar lambda ( t_1 , t_2 )
|
341
334
|
OUTPUT
|
342
335
|
end
|
343
336
|
|
344
337
|
it "processes <math> without xmlns" do
|
345
|
-
expect(MathML2AsciiMath.m2a(<<~INPUT)).to
|
346
|
-
|
347
|
-
|
348
|
-
|
349
|
-
|
350
|
-
|
351
|
-
|
352
|
-
|
353
|
-
|
354
|
-
|
355
|
-
|
356
|
-
|
357
|
-
|
358
|
-
|
359
|
-
|
360
|
-
|
361
|
-
|
362
|
-
|
363
|
-
|
364
|
-
|
365
|
-
|
366
|
-
|
367
|
-
|
338
|
+
expect(MathML2AsciiMath.m2a(<<~INPUT)).to eq <<~OUTPUT.strip
|
339
|
+
<math>
|
340
|
+
<semantics>
|
341
|
+
<mrow>
|
342
|
+
<mover accent="true">
|
343
|
+
<mi>z</mi>
|
344
|
+
<mo>¯</mo>
|
345
|
+
</mover>
|
346
|
+
<mo stretchy="false">(</mo>
|
347
|
+
<msub>
|
348
|
+
<mi>t</mi>
|
349
|
+
<mn>1</mn>
|
350
|
+
</msub>
|
351
|
+
<mo>,</mo>
|
352
|
+
<mtext> </mtext>
|
353
|
+
<msub>
|
354
|
+
<mi>t</mi>
|
355
|
+
<mn>2</mn>
|
356
|
+
</msub>
|
357
|
+
<mo stretchy="false">)</mo>
|
358
|
+
</mrow>
|
359
|
+
</semantics>
|
360
|
+
</math>
|
368
361
|
INPUT
|
369
|
-
|
362
|
+
bar z ( t_1 , t_2 )
|
370
363
|
OUTPUT
|
371
364
|
end
|
372
365
|
|
373
366
|
it "processes and skips <annotation> element" do
|
374
|
-
expect(MathML2AsciiMath.m2a(<<~INPUT)).to
|
375
|
-
|
376
|
-
|
377
|
-
|
378
|
-
|
379
|
-
|
380
|
-
|
381
|
-
|
382
|
-
|
383
|
-
|
384
|
-
|
385
|
-
|
386
|
-
|
387
|
-
|
388
|
-
|
389
|
-
|
390
|
-
|
391
|
-
|
392
|
-
|
393
|
-
|
394
|
-
|
395
|
-
|
396
|
-
|
397
|
-
|
367
|
+
expect(MathML2AsciiMath.m2a(<<~INPUT)).to eq <<~OUTPUT.strip
|
368
|
+
<math>
|
369
|
+
<semantics>
|
370
|
+
<mrow>
|
371
|
+
<mover accent="true">
|
372
|
+
<mi>z</mi>
|
373
|
+
<mo>¯</mo>
|
374
|
+
</mover>
|
375
|
+
<mo stretchy="false">(</mo>
|
376
|
+
<msub>
|
377
|
+
<mi>t</mi>
|
378
|
+
<mn>1</mn>
|
379
|
+
</msub>
|
380
|
+
<mo>,</mo>
|
381
|
+
<mtext> </mtext>
|
382
|
+
<msub>
|
383
|
+
<mi>t</mi>
|
384
|
+
<mn>2</mn>
|
385
|
+
</msub>
|
386
|
+
<mo stretchy="false">)</mo>
|
387
|
+
</mrow>
|
388
|
+
<annotation encoding="MathType-MTEF">MathType@MTEF@5@5@+=feaagCart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbuLwBLnhiov2DGi1BTfMBaeXatLxBI9gBaerbbjxAHXgarqqtubsr4rNCHbGeaGqipG0dh9qqWrVepG0dbbL8F4rqqrVepeea0xe9LqFf0xc9q8qqaqFn0lXdHiVcFbIOFHK8Feea0dXdar=Jb9hs0dXdHuk9fr=xfr=xfrpeWZqaaeqabiGaciGacaqadmaadaqaaqaaaOqaaiqadQhagaqeaiaacIcacaWG0bWaaSbaaSqaaiaaigdaaeqaaOGaaiilaiaaysW7caWG0bWaaSbaaSqaaiaaikdaaeqaaOGaaiykaaaa@3DCE@</annotation>
|
389
|
+
</semantics>
|
390
|
+
</math>
|
398
391
|
INPUT
|
399
|
-
|
392
|
+
bar z ( t_1 , t_2 )
|
400
393
|
OUTPUT
|
401
394
|
end
|
402
395
|
|
403
|
-
it "
|
404
|
-
expect(MathML2AsciiMath.m2a(<<~INPUT)).to
|
405
|
-
|
406
|
-
<mrow>
|
407
|
-
<mi> x </mi>
|
408
|
-
<mo> + </mo>
|
409
|
-
<mphantom>
|
410
|
-
<mi> y </mi>
|
411
|
-
<mo> + </mo>
|
412
|
-
</mphantom>
|
413
|
-
<mi> z </mi>
|
414
|
-
</mrow>
|
415
|
-
</math>
|
396
|
+
it "does not include non-significant whitespaces (spaces between nodes)" do
|
397
|
+
expect(MathML2AsciiMath.m2a(<<~INPUT)).to eq <<~OUTPUT.strip
|
398
|
+
<math> <semantics> <mrow> <msub> <mi>x</mi> <mn>1</mn> </msub> <mo>,</mo><mtext> </mtext><msub> <mi>x</mi> <mn>2</mn> </msub> <mo>,</mo><mtext> </mtext><mtext> </mtext><mo>…</mo><mtext> </mtext><mtext> </mtext><mtext> </mtext><msub> <mi>x</mi> <mi>n</mi> </msub> </mrow> <annotation encoding='MathType-MTEF'>MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbbjxAHX garuavP1wzZbItLDhis9wBH5garmWu51MyVXgarqqtubsr4rNCHbGe aGqipG0dh9qqWrVepG0dbbL8F4rqqrVepeea0xe9LqFf0xc9q8qqaq Fn0lXdHiVcFbIOFHK8Feea0dXdar=Jb9hs0dXdHuk9fr=xfr=xfrpe WZqaaeGaciWaamGadaGadeaabaGaaqaaaOqaaiaadIhadaWgaaWcba GaaGymaaqabaGccaGGSaGaaGjbVlaadIhadaWgaaWcbaGaaGOmaaqa baGccaGGSaGaaGjbVlaaykW7cqWIMaYscaaMc8UaaGPaVlaaysW7ca WG4bWaaSbaaSqaaiaad6gaaeqaaaaa@4713@ </annotation> </semantics> </math>
|
416
399
|
INPUT
|
417
|
-
|
400
|
+
x_1 , x_2 , ... x_n
|
418
401
|
OUTPUT
|
419
402
|
end
|
420
403
|
|
421
|
-
|
404
|
+
it "processes unknown MathML" do
|
405
|
+
expect(MathML2AsciiMath.m2a(<<~INPUT)).to eq <<~OUTPUT.strip
|
406
|
+
<math xmlns="http://www.w3.org/1998/Math/MathML">
|
407
|
+
<mrow>
|
408
|
+
<mi> x </mi>
|
409
|
+
<mo> + </mo>
|
410
|
+
<mphantom>
|
411
|
+
<mi> y </mi>
|
412
|
+
<mo> + </mo>
|
413
|
+
</mphantom>
|
414
|
+
<mi> z </mi>
|
415
|
+
</mrow>
|
416
|
+
</math>
|
417
|
+
INPUT
|
418
|
+
x + <math xmlns="http://www.w3.org/1998/Math/MathML"><mphantom>
|
419
|
+
<mi> y </mi>
|
420
|
+
<mo> + </mo>
|
421
|
+
</mphantom></math> z
|
422
|
+
OUTPUT
|
423
|
+
end
|
422
424
|
end
|