mathml2asciimath 0.0.10 → 0.0.11
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 +8 -10
- data/bin/rspec +1 -1
- data/lib/mathml2asciimath.rb +2 -2
- data/lib/mathml2asciimath/m2a.rb +186 -186
- data/lib/mathml2asciimath/version.rb +1 -2
- data/mathml2asciimath.gemspec +5 -5
- data/spec/mathml_spec.rb +306 -308
- data/spec/spec_helper.rb +7 -8
- metadata +31 -35
- 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/mathml2asciimath.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
|
3
|
-
lib = File.expand_path("
|
3
|
+
lib = File.expand_path("lib", __dir__)
|
4
4
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
5
5
|
require "mathml2asciimath/version"
|
6
6
|
|
@@ -17,7 +17,7 @@ Gem::Specification.new do |spec|
|
|
17
17
|
This gem is in active development.
|
18
18
|
DESCRIPTION
|
19
19
|
|
20
|
-
spec.homepage = "https://github.com/
|
20
|
+
spec.homepage = "https://github.com/plurimath/mathml2asciimath"
|
21
21
|
spec.license = "BSD-2-Clause"
|
22
22
|
|
23
23
|
spec.bindir = "bin"
|
@@ -27,16 +27,16 @@ Gem::Specification.new do |spec|
|
|
27
27
|
spec.required_ruby_version = Gem::Requirement.new(">= 2.4.0")
|
28
28
|
|
29
29
|
spec.add_dependency "htmlentities", "~> 4.3.4"
|
30
|
-
spec.add_dependency "nokogiri", "
|
30
|
+
spec.add_dependency "nokogiri", "~> 1.11"
|
31
31
|
|
32
32
|
spec.add_development_dependency "bundler"
|
33
33
|
spec.add_development_dependency "byebug", "~> 9.1"
|
34
|
-
spec.add_development_dependency "rspec-match_fuzzy", "~> 0.1.3"
|
35
34
|
spec.add_development_dependency "guard", "~> 2.14"
|
36
35
|
spec.add_development_dependency "guard-rspec", "~> 4.7"
|
37
36
|
spec.add_development_dependency "rake", "~> 12.0"
|
38
37
|
spec.add_development_dependency "rspec", "~> 3.6"
|
39
|
-
spec.add_development_dependency "
|
38
|
+
spec.add_development_dependency "rspec-match_fuzzy", "~> 0.1.3"
|
39
|
+
spec.add_development_dependency "rubocop", "~> 1.5.2"
|
40
40
|
spec.add_development_dependency "simplecov", "~> 0.15"
|
41
41
|
spec.add_development_dependency "timecop", "~> 0.9"
|
42
42
|
end
|
data/spec/mathml_spec.rb
CHANGED
@@ -1,426 +1,424 @@
|
|
1
|
-
require
|
1
|
+
require "spec_helper"
|
2
2
|
|
3
3
|
RSpec.describe MathML2AsciiMath do
|
4
|
-
it
|
4
|
+
it "processes mstyle and mrow" do
|
5
5
|
expect(MathML2AsciiMath.m2a(<<~INPUT)).to eq <<~OUTPUT.strip.strip
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
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
|
20
|
+
it "processes mrow" do
|
21
21
|
expect(MathML2AsciiMath.m2a(<<~INPUT)).to eq <<~OUTPUT.strip
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
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
|
34
|
+
it "processes mfrac" do
|
35
35
|
expect(MathML2AsciiMath.m2a(<<~INPUT)).to eq <<~OUTPUT.strip
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
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
|
47
|
+
it "processes mfenced default" do
|
48
48
|
expect(MathML2AsciiMath.m2a(<<~INPUT)).to eq <<~OUTPUT.strip
|
49
|
-
|
50
|
-
|
51
|
-
|
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
|
57
|
+
it "processes mfenced with unmatching braces" do
|
58
58
|
expect(MathML2AsciiMath.m2a(<<~INPUT)).to eq <<~OUTPUT.to_s.strip
|
59
|
-
|
60
|
-
|
61
|
-
|
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
|
67
|
+
it "processes munderover" do
|
68
68
|
expect(MathML2AsciiMath.m2a(<<~INPUT)).to eq <<~OUTPUT.strip
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
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
|
79
|
+
it "processes msubsup" do
|
80
80
|
expect(MathML2AsciiMath.m2a(<<~INPUT)).to eq <<~OUTPUT.strip
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
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
|
93
|
+
it "processes ubrace" do
|
94
94
|
expect(MathML2AsciiMath.m2a(<<~INPUT)).to eq <<~OUTPUT.strip
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
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
|
112
|
+
it "processes ul" do
|
113
113
|
expect(MathML2AsciiMath.m2a(<<~INPUT)).to eq <<~OUTPUT.strip
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
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
|
131
|
+
it "processes underset" do
|
132
132
|
expect(MathML2AsciiMath.m2a(<<~INPUT)).to eq <<~OUTPUT.strip
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
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
|
150
|
+
it "processes obrace" do
|
151
151
|
expect(MathML2AsciiMath.m2a(<<~INPUT)).to eq <<~OUTPUT.strip
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
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>
|
164
164
|
INPUT
|
165
|
-
|
165
|
+
obrace x + y + z
|
166
166
|
OUTPUT
|
167
167
|
end
|
168
168
|
|
169
|
-
it
|
169
|
+
it "processes hat" do
|
170
170
|
expect(MathML2AsciiMath.m2a(<<~INPUT)).to eq <<~OUTPUT.strip
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
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>
|
183
183
|
INPUT
|
184
|
-
|
184
|
+
hat x + y + z
|
185
185
|
OUTPUT
|
186
186
|
end
|
187
187
|
|
188
|
-
it
|
188
|
+
it "processes bar" do
|
189
189
|
expect(MathML2AsciiMath.m2a(<<~INPUT)).to eq <<~OUTPUT.strip
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
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>
|
202
202
|
INPUT
|
203
|
-
|
203
|
+
bar x + y + z
|
204
204
|
OUTPUT
|
205
205
|
end
|
206
206
|
|
207
|
-
it
|
207
|
+
it "processes vec" do
|
208
208
|
expect(MathML2AsciiMath.m2a(<<~INPUT)).to eq <<~OUTPUT.strip
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
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>
|
221
221
|
INPUT
|
222
|
-
|
222
|
+
vec x + y + z
|
223
223
|
OUTPUT
|
224
224
|
end
|
225
225
|
|
226
|
-
it
|
226
|
+
it "processes dot" do
|
227
227
|
expect(MathML2AsciiMath.m2a(<<~INPUT)).to eq <<~OUTPUT.strip
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
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>
|
240
240
|
INPUT
|
241
|
-
|
241
|
+
dot x + y + z
|
242
242
|
OUTPUT
|
243
243
|
end
|
244
244
|
|
245
|
-
it
|
245
|
+
it "processes ddot" do
|
246
246
|
expect(MathML2AsciiMath.m2a(<<~INPUT)).to eq <<~OUTPUT.strip
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
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>
|
259
259
|
INPUT
|
260
|
-
|
260
|
+
ddot x + y + z
|
261
261
|
OUTPUT
|
262
262
|
end
|
263
263
|
|
264
|
-
it
|
264
|
+
it "processes overset" do
|
265
265
|
expect(MathML2AsciiMath.m2a(<<~INPUT)).to eq <<~OUTPUT.strip
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
|
274
|
-
|
275
|
-
|
276
|
-
|
277
|
-
|
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>
|
278
278
|
INPUT
|
279
|
-
|
279
|
+
overset(fred)(x + y + z)
|
280
280
|
OUTPUT
|
281
281
|
end
|
282
282
|
|
283
|
-
it
|
283
|
+
it "processes mtable" do
|
284
284
|
expect(MathML2AsciiMath.m2a(<<~INPUT)).to eq <<~OUTPUT.strip
|
285
|
-
|
286
|
-
|
287
|
-
|
288
|
-
|
289
|
-
|
290
|
-
|
291
|
-
|
292
|
-
|
293
|
-
|
294
|
-
|
295
|
-
|
296
|
-
|
297
|
-
|
298
|
-
|
299
|
-
|
300
|
-
|
301
|
-
|
302
|
-
|
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>
|
303
303
|
INPUT
|
304
|
-
|
304
|
+
X = [[A,B],[C,D],[E,F]]
|
305
305
|
OUTPUT
|
306
306
|
end
|
307
307
|
|
308
|
-
it
|
308
|
+
it "processes <semantics> wrapping element" do
|
309
309
|
expect(MathML2AsciiMath.m2a(<<~INPUT)).to eq <<~OUTPUT.strip
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
|
318
|
-
|
319
|
-
|
320
|
-
|
321
|
-
|
322
|
-
|
323
|
-
|
324
|
-
|
325
|
-
|
326
|
-
|
327
|
-
|
328
|
-
|
329
|
-
|
330
|
-
|
331
|
-
|
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>
|
332
332
|
INPUT
|
333
|
-
|
333
|
+
bar lambda ( t_1 , t_2 )
|
334
334
|
OUTPUT
|
335
335
|
end
|
336
336
|
|
337
|
-
it
|
337
|
+
it "processes <math> without xmlns" do
|
338
338
|
expect(MathML2AsciiMath.m2a(<<~INPUT)).to eq <<~OUTPUT.strip
|
339
|
-
|
340
|
-
|
341
|
-
|
342
|
-
|
343
|
-
|
344
|
-
|
345
|
-
|
346
|
-
|
347
|
-
|
348
|
-
|
349
|
-
|
350
|
-
|
351
|
-
|
352
|
-
|
353
|
-
|
354
|
-
|
355
|
-
|
356
|
-
|
357
|
-
|
358
|
-
|
359
|
-
|
360
|
-
|
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>
|
361
361
|
INPUT
|
362
|
-
|
362
|
+
bar z ( t_1 , t_2 )
|
363
363
|
OUTPUT
|
364
364
|
end
|
365
365
|
|
366
|
-
it
|
366
|
+
it "processes and skips <annotation> element" do
|
367
367
|
expect(MathML2AsciiMath.m2a(<<~INPUT)).to eq <<~OUTPUT.strip
|
368
|
-
|
369
|
-
|
370
|
-
|
371
|
-
|
372
|
-
|
373
|
-
|
374
|
-
|
375
|
-
|
376
|
-
|
377
|
-
|
378
|
-
|
379
|
-
|
380
|
-
|
381
|
-
|
382
|
-
|
383
|
-
|
384
|
-
|
385
|
-
|
386
|
-
|
387
|
-
|
388
|
-
|
389
|
-
|
390
|
-
|
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>
|
391
391
|
INPUT
|
392
|
-
|
392
|
+
bar z ( t_1 , t_2 )
|
393
393
|
OUTPUT
|
394
394
|
end
|
395
395
|
|
396
|
-
it
|
396
|
+
it "does not include non-significant whitespaces (spaces between nodes)" do
|
397
397
|
expect(MathML2AsciiMath.m2a(<<~INPUT)).to eq <<~OUTPUT.strip
|
398
|
-
|
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>
|
399
399
|
INPUT
|
400
|
-
|
400
|
+
x_1 , x_2 , ... x_n
|
401
401
|
OUTPUT
|
402
402
|
end
|
403
403
|
|
404
|
-
it
|
404
|
+
it "processes unknown MathML" do
|
405
405
|
expect(MathML2AsciiMath.m2a(<<~INPUT)).to eq <<~OUTPUT.strip
|
406
|
-
|
407
|
-
|
408
|
-
|
409
|
-
<mo> + </mo>
|
410
|
-
<mphantom>
|
411
|
-
<mi> y </mi>
|
406
|
+
<math xmlns="http://www.w3.org/1998/Math/MathML">
|
407
|
+
<mrow>
|
408
|
+
<mi> x </mi>
|
412
409
|
<mo> + </mo>
|
413
|
-
|
414
|
-
|
415
|
-
|
416
|
-
|
410
|
+
<mphantom>
|
411
|
+
<mi> y </mi>
|
412
|
+
<mo> + </mo>
|
413
|
+
</mphantom>
|
414
|
+
<mi> z </mi>
|
415
|
+
</mrow>
|
416
|
+
</math>
|
417
417
|
INPUT
|
418
|
-
|
419
|
-
|
420
|
-
|
421
|
-
|
418
|
+
x + <math xmlns="http://www.w3.org/1998/Math/MathML"><mphantom>
|
419
|
+
<mi> y </mi>
|
420
|
+
<mo> + </mo>
|
421
|
+
</mphantom></math> z
|
422
422
|
OUTPUT
|
423
423
|
end
|
424
|
-
|
425
|
-
|
426
424
|
end
|