mathml2asciimath 0.0.6 → 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 -4
- data/Rakefile +1 -1
- data/bin/m2a.rb +5 -7
- data/bin/rspec +1 -1
- data/lib/mathml2asciimath/m2a.rb +284 -250
- data/lib/mathml2asciimath/version.rb +1 -2
- data/mathml2asciimath.gemspec +6 -6
- data/spec/mathml_spec.rb +341 -249
- data/spec/spec_helper.rb +6 -7
- metadata +35 -39
- data/.rubocop.ribose.yml +0 -65
- data/.rubocop.tb.yml +0 -650
- data/.travis.yml +0 -18
- data/Gemfile.lock +0 -110
- data/appveyor.yml +0 -37
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
|
-
spec.add_development_dependency "bundler"
|
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,332 +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
|
-
|
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>
|
13
15
|
INPUT
|
14
|
-
|
16
|
+
a diamond x^2 + b xx x + c_3
|
15
17
|
OUTPUT
|
16
18
|
end
|
17
19
|
|
18
|
-
it "processes
|
19
|
-
expect(MathML2AsciiMath.m2a(<<~INPUT)).to
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
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>
|
27
29
|
INPUT
|
28
|
-
|
30
|
+
a diamond x^(2d) + b xx x + c_(ab)
|
29
31
|
OUTPUT
|
30
32
|
end
|
31
33
|
|
32
|
-
it "processes
|
33
|
-
expect(MathML2AsciiMath.m2a(<<~INPUT)).to
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
</mfrac>
|
39
|
-
|
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>
|
40
42
|
INPUT
|
41
|
-
|
43
|
+
((1 + sqrt(5)))/(2)
|
42
44
|
OUTPUT
|
43
45
|
end
|
44
46
|
|
45
|
-
it "processes
|
46
|
-
expect(MathML2AsciiMath.m2a(<<~INPUT)).to
|
47
|
-
|
48
|
-
|
49
|
-
|
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>
|
50
52
|
INPUT
|
51
|
-
|
53
|
+
(a + b)
|
52
54
|
OUTPUT
|
53
55
|
end
|
54
56
|
|
55
|
-
it "processes
|
56
|
-
expect(MathML2AsciiMath.m2a(<<~INPUT)).to
|
57
|
-
|
58
|
-
<mfenced open="["> <mn> 0 </mn> <mn> 1 </mn> </mfenced>
|
59
|
-
|
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>
|
60
62
|
INPUT
|
61
|
-
|
63
|
+
[0,1)
|
62
64
|
OUTPUT
|
63
65
|
end
|
64
66
|
|
65
|
-
it "processes
|
66
|
-
expect(MathML2AsciiMath.m2a(<<~INPUT)).to
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
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>
|
72
74
|
INPUT
|
73
|
-
|
75
|
+
int_0^(oo)
|
74
76
|
OUTPUT
|
75
77
|
end
|
76
78
|
|
77
|
-
it "processes
|
78
|
-
expect(MathML2AsciiMath.m2a(<<~INPUT)).to
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
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>
|
86
88
|
INPUT
|
87
|
-
|
89
|
+
int_(ab)^(ds)
|
88
90
|
OUTPUT
|
89
91
|
end
|
90
92
|
|
91
|
-
it "processes
|
92
|
-
expect(MathML2AsciiMath.m2a(<<~INPUT)).to
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
</munder>
|
104
|
-
|
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>
|
105
107
|
INPUT
|
106
|
-
|
108
|
+
ubrace (x + y + z)
|
107
109
|
OUTPUT
|
108
110
|
end
|
109
111
|
|
110
|
-
it "processes
|
111
|
-
expect(MathML2AsciiMath.m2a(<<~INPUT)).to
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
</munder>
|
123
|
-
|
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>
|
124
126
|
INPUT
|
125
|
-
|
127
|
+
ul (x + y + z)
|
126
128
|
OUTPUT
|
127
129
|
end
|
128
130
|
|
129
|
-
it "processes
|
130
|
-
expect(MathML2AsciiMath.m2a(<<~INPUT)).to
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
</munder>
|
142
|
-
|
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>
|
143
145
|
INPUT
|
144
|
-
|
146
|
+
underset(fred)((x + y + z))
|
145
147
|
OUTPUT
|
146
148
|
end
|
147
149
|
|
148
|
-
it "processes
|
149
|
-
expect(MathML2AsciiMath.m2a(<<~INPUT)).to
|
150
|
-
|
151
|
-
<mover accent="true">
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
</mover>
|
161
|
-
|
162
|
-
</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>
|
163
164
|
INPUT
|
164
|
-
|
165
|
+
obrace x + y + z
|
165
166
|
OUTPUT
|
166
167
|
end
|
167
168
|
|
168
|
-
it "processes
|
169
|
-
expect(MathML2AsciiMath.m2a(<<~INPUT)).to
|
170
|
-
|
171
|
-
<mover accent="true">
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
</mover>
|
181
|
-
|
182
|
-
</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>
|
183
183
|
INPUT
|
184
|
-
|
184
|
+
hat x + y + z
|
185
185
|
OUTPUT
|
186
186
|
end
|
187
187
|
|
188
|
-
it "processes
|
189
|
-
expect(MathML2AsciiMath.m2a(<<~INPUT)).to
|
190
|
-
|
191
|
-
<mover accent="true">
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
</mover>
|
201
|
-
|
202
|
-
</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>
|
203
202
|
INPUT
|
204
|
-
|
203
|
+
bar x + y + z
|
205
204
|
OUTPUT
|
206
205
|
end
|
207
206
|
|
208
|
-
it "processes
|
209
|
-
expect(MathML2AsciiMath.m2a(<<~INPUT)).to
|
210
|
-
|
211
|
-
<mover accent="true">
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
</mover>
|
221
|
-
|
222
|
-
</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>
|
223
221
|
INPUT
|
224
|
-
|
222
|
+
vec x + y + z
|
225
223
|
OUTPUT
|
226
224
|
end
|
227
225
|
|
228
|
-
it "processes
|
229
|
-
expect(MathML2AsciiMath.m2a(<<~INPUT)).to
|
230
|
-
|
231
|
-
<mover accent="true">
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
</mover>
|
241
|
-
|
242
|
-
</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>
|
243
240
|
INPUT
|
244
|
-
|
241
|
+
dot x + y + z
|
245
242
|
OUTPUT
|
246
243
|
end
|
247
244
|
|
248
|
-
it "processes
|
249
|
-
expect(MathML2AsciiMath.m2a(<<~INPUT)).to
|
250
|
-
|
251
|
-
<mover accent="true">
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
</mover>
|
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>
|
259
|
+
INPUT
|
260
|
+
ddot x + y + z
|
261
|
+
OUTPUT
|
262
|
+
end
|
261
263
|
|
262
|
-
|
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>
|
263
278
|
INPUT
|
264
|
-
|
279
|
+
overset(fred)(x + y + z)
|
265
280
|
OUTPUT
|
266
281
|
end
|
267
282
|
|
268
|
-
it "processes
|
269
|
-
expect(MathML2AsciiMath.m2a(<<~INPUT)).to
|
270
|
-
|
271
|
-
<
|
272
|
-
|
273
|
-
|
274
|
-
|
275
|
-
|
276
|
-
|
277
|
-
|
278
|
-
|
279
|
-
|
280
|
-
</
|
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>
|
303
|
+
INPUT
|
304
|
+
X = [[A,B],[C,D],[E,F]]
|
305
|
+
OUTPUT
|
306
|
+
end
|
281
307
|
|
282
|
-
|
308
|
+
it "processes <semantics> wrapping element" do
|
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>
|
283
332
|
INPUT
|
284
|
-
|
333
|
+
bar lambda ( t_1 , t_2 )
|
285
334
|
OUTPUT
|
286
335
|
end
|
287
336
|
|
288
|
-
it "processes
|
289
|
-
expect(MathML2AsciiMath.m2a(<<~INPUT)).to
|
290
|
-
|
291
|
-
|
292
|
-
|
293
|
-
|
294
|
-
|
295
|
-
|
296
|
-
|
297
|
-
|
298
|
-
|
299
|
-
|
300
|
-
|
301
|
-
|
302
|
-
|
303
|
-
|
304
|
-
|
305
|
-
|
306
|
-
|
307
|
-
|
337
|
+
it "processes <math> without xmlns" do
|
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>
|
308
361
|
INPUT
|
309
|
-
|
362
|
+
bar z ( t_1 , t_2 )
|
310
363
|
OUTPUT
|
311
364
|
end
|
312
365
|
|
313
|
-
|
314
|
-
expect(MathML2AsciiMath.m2a(<<~INPUT)).to
|
315
|
-
|
316
|
-
|
317
|
-
|
318
|
-
|
319
|
-
|
320
|
-
|
321
|
-
|
322
|
-
|
323
|
-
|
324
|
-
</
|
325
|
-
|
366
|
+
it "processes and skips <annotation> element" do
|
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>
|
326
391
|
INPUT
|
327
|
-
|
392
|
+
bar z ( t_1 , t_2 )
|
328
393
|
OUTPUT
|
329
394
|
end
|
330
395
|
|
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>
|
399
|
+
INPUT
|
400
|
+
x_1 , x_2 , ... x_n
|
401
|
+
OUTPUT
|
402
|
+
end
|
331
403
|
|
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
|
332
424
|
end
|