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.
@@ -1,4 +1,3 @@
1
1
  module MathML2AsciiMath
2
- VERSION = '0.0.10'.freeze
2
+ VERSION = "0.0.11".freeze
3
3
  end
4
-
@@ -1,6 +1,6 @@
1
1
  # coding: utf-8
2
2
 
3
- lib = File.expand_path("../lib", __FILE__)
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/metanorma/mathml2asciimath"
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", ">= 1.10.4"
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 "rubocop", "= 0.54.0"
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 'spec_helper'
1
+ require "spec_helper"
2
2
 
3
3
  RSpec.describe MathML2AsciiMath do
4
- it 'processes mstyle and mrow' do
4
+ it "processes mstyle and mrow" do
5
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>
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
- a diamond x^2 + b xx x + c_3
16
+ a diamond x^2 + b xx x + c_3
17
17
  OUTPUT
18
18
  end
19
19
 
20
- it 'processes mrow' do
20
+ it "processes mrow" do
21
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>
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
- a diamond x^(2d) + b xx x + c_(ab)
30
+ a diamond x^(2d) + b xx x + c_(ab)
31
31
  OUTPUT
32
32
  end
33
33
 
34
- it 'processes mfrac' do
34
+ it "processes mfrac" do
35
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>
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
- ((1 + sqrt(5)))/(2)
43
+ ((1 + sqrt(5)))/(2)
44
44
  OUTPUT
45
45
  end
46
46
 
47
- it 'processes mfenced default' do
47
+ it "processes mfenced default" do
48
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>
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
- (a + b)
53
+ (a + b)
54
54
  OUTPUT
55
55
  end
56
56
 
57
- it 'processes mfenced with unmatching braces' do
57
+ it "processes mfenced with unmatching braces" do
58
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>
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
- [0,1)
63
+ [0,1)
64
64
  OUTPUT
65
65
  end
66
66
 
67
- it 'processes munderover' do
67
+ it "processes munderover" do
68
68
  expect(MathML2AsciiMath.m2a(<<~INPUT)).to eq <<~OUTPUT.strip
69
- <math xmlns="http://www.w3.org/1998/Math/MathML">
70
- <munderover>
71
- <mo>&#x222B;</mo> <mn>0</mn> <mi>&#x221E;</mi>
72
- </munderover>
73
- </math>
69
+ <math xmlns="http://www.w3.org/1998/Math/MathML">
70
+ <munderover>
71
+ <mo>&#x222B;</mo> <mn>0</mn> <mi>&#x221E;</mi>
72
+ </munderover>
73
+ </math>
74
74
  INPUT
75
- int_0^(oo)
75
+ int_0^(oo)
76
76
  OUTPUT
77
77
  end
78
78
 
79
- it 'processes msubsup' do
79
+ it "processes msubsup" do
80
80
  expect(MathML2AsciiMath.m2a(<<~INPUT)).to eq <<~OUTPUT.strip
81
- <math xmlns="http://www.w3.org/1998/Math/MathML">
82
- <msubsup>
83
- <mo>&#x222B;</mo>
84
- <mn>ab</mn>
85
- <mn>ds</mn>
86
- </msubsup>
87
- </math>
81
+ <math xmlns="http://www.w3.org/1998/Math/MathML">
82
+ <msubsup>
83
+ <mo>&#x222B;</mo>
84
+ <mn>ab</mn>
85
+ <mn>ds</mn>
86
+ </msubsup>
87
+ </math>
88
88
  INPUT
89
- int_(ab)^(ds)
89
+ int_(ab)^(ds)
90
90
  OUTPUT
91
91
  end
92
92
 
93
- it 'processes ubrace' do
93
+ it "processes ubrace" do
94
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> &#x23DF;</mo>
105
- </munder>
106
- </math>
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> &#x23DF;</mo>
105
+ </munder>
106
+ </math>
107
107
  INPUT
108
- ubrace (x + y + z)
108
+ ubrace (x + y + z)
109
109
  OUTPUT
110
110
  end
111
111
 
112
- it 'processes ul' do
112
+ it "processes ul" do
113
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> &#x0332;</mo>
124
- </munder>
125
- </math>
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> &#x0332;</mo>
124
+ </munder>
125
+ </math>
126
126
  INPUT
127
- ul (x + y + z)
127
+ ul (x + y + z)
128
128
  OUTPUT
129
129
  end
130
130
 
131
- it 'processes underset' do
131
+ it "processes underset" do
132
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>
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
- underset(fred)((x + y + z))
146
+ underset(fred)((x + y + z))
147
147
  OUTPUT
148
148
  end
149
149
 
150
- it 'processes obrace' do
150
+ it "processes obrace" do
151
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> &#x23DE;</mo>
162
- </mover>
163
- </math>
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> &#x23DE;</mo>
162
+ </mover>
163
+ </math>
164
164
  INPUT
165
- obrace x + y + z
165
+ obrace x + y + z
166
166
  OUTPUT
167
167
  end
168
168
 
169
- it 'processes hat' do
169
+ it "processes hat" do
170
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> &#x5e;</mo>
181
- </mover>
182
- </math>
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> &#x5e;</mo>
181
+ </mover>
182
+ </math>
183
183
  INPUT
184
- hat x + y + z
184
+ hat x + y + z
185
185
  OUTPUT
186
186
  end
187
187
 
188
- it 'processes bar' do
188
+ it "processes bar" do
189
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> &#xaf;</mo>
200
- </mover>
201
- </math>
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> &#xaf;</mo>
200
+ </mover>
201
+ </math>
202
202
  INPUT
203
- bar x + y + z
203
+ bar x + y + z
204
204
  OUTPUT
205
205
  end
206
206
 
207
- it 'processes vec' do
207
+ it "processes vec" do
208
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>&#x2192;</mo>
219
- </mover>
220
- </math>
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>&#x2192;</mo>
219
+ </mover>
220
+ </math>
221
221
  INPUT
222
- vec x + y + z
222
+ vec x + y + z
223
223
  OUTPUT
224
224
  end
225
225
 
226
- it 'processes dot' do
226
+ it "processes dot" do
227
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>
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
- dot x + y + z
241
+ dot x + y + z
242
242
  OUTPUT
243
243
  end
244
244
 
245
- it 'processes ddot' do
245
+ it "processes ddot" do
246
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>
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
- ddot x + y + z
260
+ ddot x + y + z
261
261
  OUTPUT
262
262
  end
263
263
 
264
- it 'processes overset' do
264
+ it "processes overset" do
265
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>
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
- overset(fred)(x + y + z)
279
+ overset(fred)(x + y + z)
280
280
  OUTPUT
281
281
  end
282
282
 
283
- it 'processes mtable' do
283
+ it "processes mtable" do
284
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>
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
- X = [[A,B],[C,D],[E,F]]
304
+ X = [[A,B],[C,D],[E,F]]
305
305
  OUTPUT
306
306
  end
307
307
 
308
- it 'processes <semantics> wrapping element' do
308
+ it "processes <semantics> wrapping element" do
309
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>&#x3BB;</mi>
315
- <mo>&#xAF;</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>&#x2009;</mtext>
324
- <msub>
325
- <mi>t</mi>
326
- <mn>2</mn>
327
- </msub>
328
- <mo stretchy="false">)</mo>
329
- </mrow>
330
- </semantics>
331
- </math>
310
+ <math xmlns="http://www.w3.org/1998/Math/MathML">
311
+ <semantics>
312
+ <mrow>
313
+ <mover accent="true">
314
+ <mi>&#x3BB;</mi>
315
+ <mo>&#xAF;</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>&#x2009;</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
- bar lambda ( t_1 , t_2 )
333
+ bar lambda ( t_1 , t_2 )
334
334
  OUTPUT
335
335
  end
336
336
 
337
- it 'processes <math> without xmlns' do
337
+ it "processes <math> without xmlns" do
338
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>&#xAF;</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>&#x2009;</mtext>
353
- <msub>
354
- <mi>t</mi>
355
- <mn>2</mn>
356
- </msub>
357
- <mo stretchy="false">)</mo>
358
- </mrow>
359
- </semantics>
360
- </math>
339
+ <math>
340
+ <semantics>
341
+ <mrow>
342
+ <mover accent="true">
343
+ <mi>z</mi>
344
+ <mo>&#xAF;</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>&#x2009;</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
- bar z ( t_1 , t_2 )
362
+ bar z ( t_1 , t_2 )
363
363
  OUTPUT
364
364
  end
365
365
 
366
- it 'processes and skips <annotation> element' do
366
+ it "processes and skips <annotation> element" do
367
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>&#xAF;</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>&#x2009;</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>
368
+ <math>
369
+ <semantics>
370
+ <mrow>
371
+ <mover accent="true">
372
+ <mi>z</mi>
373
+ <mo>&#xAF;</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>&#x2009;</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
- bar z ( t_1 , t_2 )
392
+ bar z ( t_1 , t_2 )
393
393
  OUTPUT
394
394
  end
395
395
 
396
- it 'does not include non-significant whitespaces (spaces between nodes)' do
396
+ it "does not include non-significant whitespaces (spaces between nodes)" do
397
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>
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
- x_1 , x_2 , ... x_n
400
+ x_1 , x_2 , ... x_n
401
401
  OUTPUT
402
402
  end
403
403
 
404
- it 'processes unknown MathML' do
404
+ it "processes unknown MathML" do
405
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>
406
+ <math xmlns="http://www.w3.org/1998/Math/MathML">
407
+ <mrow>
408
+ <mi> x </mi>
412
409
  <mo> + </mo>
413
- </mphantom>
414
- <mi> z </mi>
415
- </mrow>
416
- </math>
410
+ <mphantom>
411
+ <mi> y </mi>
412
+ <mo> + </mo>
413
+ </mphantom>
414
+ <mi> z </mi>
415
+ </mrow>
416
+ </math>
417
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
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