isodoc 1.5.4 → 1.6.3

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.
Files changed (74) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +6 -4
  3. data/Gemfile +2 -2
  4. data/Rakefile +2 -2
  5. data/bin/rspec +1 -2
  6. data/isodoc.gemspec +11 -11
  7. data/lib/isodoc-yaml/i18n-ar.yaml +152 -0
  8. data/lib/isodoc-yaml/i18n-de.yaml +149 -0
  9. data/lib/isodoc-yaml/i18n-es.yaml +151 -0
  10. data/lib/isodoc-yaml/i18n-ru.yaml +154 -0
  11. data/lib/isodoc/base_style/all.css +7 -0
  12. data/lib/isodoc/base_style/metanorma_word.css +7 -0
  13. data/lib/isodoc/base_style/metanorma_word.scss +8 -0
  14. data/lib/isodoc/base_style/reset.css +7 -0
  15. data/lib/isodoc/base_style/reset.scss +9 -0
  16. data/lib/isodoc/base_style/scripts.html +187 -0
  17. data/lib/isodoc/class_utils.rb +6 -5
  18. data/lib/isodoc/common.rb +2 -0
  19. data/lib/isodoc/convert.rb +30 -17
  20. data/lib/isodoc/css.rb +42 -28
  21. data/lib/isodoc/function/blocks.rb +21 -4
  22. data/lib/isodoc/function/blocks_example_note.rb +2 -2
  23. data/lib/isodoc/function/cleanup.rb +1 -2
  24. data/lib/isodoc/function/form.rb +51 -0
  25. data/lib/isodoc/function/inline.rb +32 -10
  26. data/lib/isodoc/function/references.rb +55 -42
  27. data/lib/isodoc/function/table.rb +1 -0
  28. data/lib/isodoc/function/to_word_html.rb +29 -28
  29. data/lib/isodoc/function/utils.rb +41 -38
  30. data/lib/isodoc/gem_tasks.rb +30 -31
  31. data/lib/isodoc/html_convert.rb +6 -4
  32. data/lib/isodoc/html_function/form.rb +62 -0
  33. data/lib/isodoc/html_function/postprocess.rb +35 -76
  34. data/lib/isodoc/html_function/postprocess_footnotes.rb +59 -0
  35. data/lib/isodoc/i18n.rb +33 -31
  36. data/lib/isodoc/pdf_convert.rb +1 -3
  37. data/lib/isodoc/presentation_function/bibdata.rb +13 -10
  38. data/lib/isodoc/presentation_function/block.rb +17 -8
  39. data/lib/isodoc/presentation_function/inline.rb +75 -118
  40. data/lib/isodoc/presentation_function/math.rb +84 -0
  41. data/lib/isodoc/presentation_function/section.rb +20 -22
  42. data/lib/isodoc/presentation_xml_convert.rb +2 -1
  43. data/lib/isodoc/sassc_importer.rb +1 -1
  44. data/lib/isodoc/version.rb +1 -1
  45. data/lib/isodoc/word_function/body.rb +28 -24
  46. data/lib/isodoc/word_function/footnotes.rb +22 -15
  47. data/lib/isodoc/word_function/postprocess.rb +16 -6
  48. data/lib/isodoc/xref.rb +10 -11
  49. data/lib/isodoc/xref/xref_counter.rb +32 -17
  50. data/lib/isodoc/xref/xref_gen.rb +45 -32
  51. data/lib/isodoc/xref/xref_sect_gen.rb +33 -31
  52. data/lib/isodoc/xslfo_convert.rb +36 -25
  53. data/spec/assets/html_override.css +1 -0
  54. data/spec/assets/word_override.css +1 -0
  55. data/spec/isodoc/blocks_spec.rb +2518 -2570
  56. data/spec/isodoc/cleanup_spec.rb +1107 -1109
  57. data/spec/isodoc/footnotes_spec.rb +1 -16
  58. data/spec/isodoc/form_spec.rb +156 -0
  59. data/spec/isodoc/i18n_spec.rb +984 -972
  60. data/spec/isodoc/inline_spec.rb +984 -920
  61. data/spec/isodoc/lists_spec.rb +316 -315
  62. data/spec/isodoc/postproc_spec.rb +1692 -1538
  63. data/spec/isodoc/presentation_xml_spec.rb +345 -342
  64. data/spec/isodoc/ref_spec.rb +718 -723
  65. data/spec/isodoc/section_spec.rb +910 -902
  66. data/spec/isodoc/table_spec.rb +566 -556
  67. data/spec/isodoc/terms_spec.rb +252 -256
  68. data/spec/isodoc/xref_spec.rb +3040 -2985
  69. data/spec/isodoc/xslfo_convert_spec.rb +39 -0
  70. data/spec/spec_helper.rb +30 -29
  71. metadata +80 -70
  72. data/.rubocop.ribose.yml +0 -65
  73. data/.rubocop.tb.yml +0 -650
  74. data/lib/twitter-cldr/patch.rb +0 -39
@@ -1,136 +1,137 @@
1
1
  require "spec_helper"
2
2
 
3
3
  RSpec.describe IsoDoc do
4
- it "generates file based on string input" do
5
- FileUtils.rm_f "test.presentation.xml"
6
- IsoDoc::PresentationXMLConvert.new({filename: "test"}).convert("test", <<~"INPUT", false)
7
- <iso-standard xmlns="http://riboseinc.com/isoxml">
8
- <bibdata>
9
- <title language="en">test</title>
10
- </bibdata>
11
- <preface><foreword>
12
- <note>
13
- <p id="_f06fd0d1-a203-4f3d-a515-0bdba0f8d83f">These results are based on a study carried out on three different types of kernel.</p>
14
- </note>
15
- </foreword></preface>
16
- </iso-standard>
4
+ it "generates file based on string input" do
5
+ FileUtils.rm_f "test.presentation.xml"
6
+ IsoDoc::PresentationXMLConvert.new({ filename: "test" })
7
+ .convert("test", <<~"INPUT", false)
8
+ <iso-standard xmlns="http://riboseinc.com/isoxml">
9
+ <bibdata>
10
+ <title language="en">test</title>
11
+ </bibdata>
12
+ <preface><foreword>
13
+ <note>
14
+ <p id="_f06fd0d1-a203-4f3d-a515-0bdba0f8d83f">These results are based on a study carried out on three different types of kernel.</p>
15
+ </note>
16
+ </foreword></preface>
17
+ </iso-standard>
17
18
  INPUT
18
19
  expect(File.exist?("test.presentation.xml")).to be true
19
20
  end
20
21
 
21
- it "localises numbers in MathML" do
22
- expect(xmlpp(IsoDoc::PresentationXMLConvert.new({}).convert("test", <<~INPUT, true)).sub(%r{<localized-strings>.*</localized-strings>}m, "")).to be_equivalent_to xmlpp(<<~OUTPUT)
23
- <iso-standard xmlns="http://riboseinc.com/isoxml">
24
- <bibdata>
25
- <title language="en">test</title>
26
- </bibdata>
27
- <preface>
28
- <p>
29
- <stem type="MathML"><math xmlns="http://www.w3.org/1998/Math/MathML"><mn>64212149677264515</mn></math></stem>
30
- <stem type="MathML"><math xmlns="http://www.w3.org/1998/Math/MathML"><mn>642121496772645.15</mn></math></stem>
31
- <stem type="MathML"><math xmlns="http://www.w3.org/1998/Math/MathML"><mn>30000</mn></math></stem>
32
- <stem type="MathML"><math xmlns="http://www.w3.org/1998/Math/MathML"><mi>P</mi><mfenced open="(" close=")"><mrow><mi>X</mi><mo>≥</mo><msub><mrow><mi>X</mi></mrow><mrow><mo>max</mo></mrow></msub></mrow></mfenced><mo>=</mo><munderover><mrow><mo>∑</mo></mrow><mrow><mrow><mi>j</mi><mo>=</mo><msub><mrow><mi>X</mi></mrow><mrow><mo>max</mo></mrow></msub></mrow></mrow><mrow><mn>1000</mn></mrow></munderover><mfenced open="(" close=")"><mtable><mtr><mtd><mn>1000</mn></mtd></mtr><mtr><mtd><mi>j</mi></mtd></mtr></mtable></mfenced><msup><mrow><mi>p</mi></mrow><mrow><mi>j</mi></mrow></msup><msup><mrow><mfenced open="(" close=")"><mrow><mn>1</mn><mo>−</mo><mi>p</mi></mrow></mfenced></mrow><mrow><mrow><mn>1.003</mn><mo>−</mo><mi>j</mi></mrow></mrow></msup></math></stem></p>
33
- </preface>
34
- </iso-standard>
35
- INPUT
36
- <iso-standard xmlns='http://riboseinc.com/isoxml' type='presentation'>
37
- <bibdata>
38
- <title language='en'>test</title>
39
- </bibdata>
40
-
41
- <preface>
42
- <p>
43
- 64,212,149,677,264,515
44
- 642,121,496,772,645.15 30,000
45
- <stem type='MathML'>
46
- <math xmlns='http://www.w3.org/1998/Math/MathML'>
47
- <mi>P</mi>
48
- <mfenced open='(' close=')'>
49
- <mrow>
50
- <mi>X</mi>
51
- <mo>&#x2265;</mo>
52
- <msub>
53
- <mrow>
54
- <mi>X</mi>
55
- </mrow>
56
- <mrow>
57
- <mo>max</mo>
58
- </mrow>
59
- </msub>
60
- </mrow>
61
- </mfenced>
62
- <mo>=</mo>
63
- <munderover>
64
- <mrow>
65
- <mo>&#x2211;</mo>
66
- </mrow>
67
- <mrow>
68
- <mrow>
69
- <mi>j</mi>
70
- <mo>=</mo>
71
- <msub>
72
- <mrow>
73
- <mi>X</mi>
74
- </mrow>
75
- <mrow>
76
- <mo>max</mo>
77
- </mrow>
78
- </msub>
79
- </mrow>
80
- </mrow>
81
- <mrow>
82
- <mn>1,000</mn>
83
- </mrow>
84
- </munderover>
85
- <mfenced open='(' close=')'>
86
- <mtable>
87
- <mtr>
88
- <mtd>
89
- <mn>1,000</mn>
90
- </mtd>
91
- </mtr>
92
- <mtr>
93
- <mtd>
94
- <mi>j</mi>
95
- </mtd>
96
- </mtr>
97
- </mtable>
98
- </mfenced>
99
- <msup>
100
- <mrow>
101
- <mi>p</mi>
102
- </mrow>
103
- <mrow>
104
- <mi>j</mi>
105
- </mrow>
106
- </msup>
107
- <msup>
108
- <mrow>
109
- <mfenced open='(' close=')'>
110
- <mrow>
111
- <mn>1</mn>
112
- <mo>&#x2212;</mo>
113
- <mi>p</mi>
114
- </mrow>
115
- </mfenced>
116
- </mrow>
117
- <mrow>
118
- <mrow>
119
- <mn>1.003</mn>
120
- <mo>&#x2212;</mo>
121
- <mi>j</mi>
122
- </mrow>
123
- </mrow>
124
- </msup>
125
- </math>
126
- </stem>
127
- </p>
128
- </preface>
129
- </iso-standard>
130
- OUTPUT
131
- end
22
+ it "localises numbers in MathML" do
23
+ expect(xmlpp(IsoDoc::PresentationXMLConvert.new({})
24
+ .convert("test", <<~INPUT, true)).sub(%r{<localized-strings>.*</localized-strings>}m, "")).to be_equivalent_to xmlpp(<<~OUTPUT)
25
+ <iso-standard xmlns="http://riboseinc.com/isoxml">
26
+ <bibdata>
27
+ <title language="en">test</title>
28
+ </bibdata>
29
+ <preface>
30
+ <p>
31
+ <stem type="MathML"><math xmlns="http://www.w3.org/1998/Math/MathML"><mn>64212149677264515</mn></math></stem>
32
+ <stem type="MathML"><math xmlns="http://www.w3.org/1998/Math/MathML"><mn>642121496772645.15</mn></math></stem>
33
+ <stem type="MathML"><math xmlns="http://www.w3.org/1998/Math/MathML"><mn>30000</mn></math></stem>
34
+ <stem type="MathML"><math xmlns="http://www.w3.org/1998/Math/MathML"><mi>P</mi><mfenced open="(" close=")"><mrow><mi>X</mi><mo>≥</mo><msub><mrow><mi>X</mi></mrow><mrow><mo>max</mo></mrow></msub></mrow></mfenced><mo>=</mo><munderover><mrow><mo>∑</mo></mrow><mrow><mrow><mi>j</mi><mo>=</mo><msub><mrow><mi>X</mi></mrow><mrow><mo>max</mo></mrow></msub></mrow></mrow><mrow><mn>1000</mn></mrow></munderover><mfenced open="(" close=")"><mtable><mtr><mtd><mn>1000</mn></mtd></mtr><mtr><mtd><mi>j</mi></mtd></mtr></mtable></mfenced><msup><mrow><mi>p</mi></mrow><mrow><mi>j</mi></mrow></msup><msup><mrow><mfenced open="(" close=")"><mrow><mn>1</mn><mo>−</mo><mi>p</mi></mrow></mfenced></mrow><mrow><mrow><mn>1.003</mn><mo>−</mo><mi>j</mi></mrow></mrow></msup></math></stem></p>
35
+ </preface>
36
+ </iso-standard>
37
+ INPUT
38
+ <iso-standard xmlns='http://riboseinc.com/isoxml' type='presentation'>
39
+ <bibdata>
40
+ <title language='en'>test</title>
41
+ </bibdata>
42
+ <preface>
43
+ <p>
44
+ 64,212,149,677,264,515
45
+ 642,121,496,772,645.15 30,000
46
+ <stem type='MathML'>
47
+ <math xmlns='http://www.w3.org/1998/Math/MathML'>
48
+ <mi>P</mi>
49
+ <mfenced open='(' close=')'>
50
+ <mrow>
51
+ <mi>X</mi>
52
+ <mo>&#x2265;</mo>
53
+ <msub>
54
+ <mrow>
55
+ <mi>X</mi>
56
+ </mrow>
57
+ <mrow>
58
+ <mo>max</mo>
59
+ </mrow>
60
+ </msub>
61
+ </mrow>
62
+ </mfenced>
63
+ <mo>=</mo>
64
+ <munderover>
65
+ <mrow>
66
+ <mo>&#x2211;</mo>
67
+ </mrow>
68
+ <mrow>
69
+ <mrow>
70
+ <mi>j</mi>
71
+ <mo>=</mo>
72
+ <msub>
73
+ <mrow>
74
+ <mi>X</mi>
75
+ </mrow>
76
+ <mrow>
77
+ <mo>max</mo>
78
+ </mrow>
79
+ </msub>
80
+ </mrow>
81
+ </mrow>
82
+ <mrow>
83
+ <mn>1,000</mn>
84
+ </mrow>
85
+ </munderover>
86
+ <mfenced open='(' close=')'>
87
+ <mtable>
88
+ <mtr>
89
+ <mtd>
90
+ <mn>1,000</mn>
91
+ </mtd>
92
+ </mtr>
93
+ <mtr>
94
+ <mtd>
95
+ <mi>j</mi>
96
+ </mtd>
97
+ </mtr>
98
+ </mtable>
99
+ </mfenced>
100
+ <msup>
101
+ <mrow>
102
+ <mi>p</mi>
103
+ </mrow>
104
+ <mrow>
105
+ <mi>j</mi>
106
+ </mrow>
107
+ </msup>
108
+ <msup>
109
+ <mrow>
110
+ <mfenced open='(' close=')'>
111
+ <mrow>
112
+ <mn>1</mn>
113
+ <mo>&#x2212;</mo>
114
+ <mi>p</mi>
115
+ </mrow>
116
+ </mfenced>
117
+ </mrow>
118
+ <mrow>
119
+ <mrow>
120
+ <mn>1.003</mn>
121
+ <mo>&#x2212;</mo>
122
+ <mi>j</mi>
123
+ </mrow>
124
+ </mrow>
125
+ </msup>
126
+ </math>
127
+ </stem>
128
+ </p>
129
+ </preface>
130
+ </iso-standard>
131
+ OUTPUT
132
+ end
132
133
 
133
- context 'when twitter_cldr_localiser_symbols has additional options' do
134
+ context "when twitter_cldr_localiser_symbols has additional options" do
134
135
  let(:input) do
135
136
  <<~INPUT
136
137
  <iso-standard xmlns="http://riboseinc.com/isoxml">
@@ -362,7 +363,7 @@ end
362
363
  {
363
364
  fraction_group_digits: 2,
364
365
  fraction_group: "'",
365
- precision: 5
366
+ precision: 5,
366
367
  }
367
368
  end
368
369
 
@@ -372,234 +373,236 @@ end
372
373
  end
373
374
 
374
375
  it "Supports twitter_cldr_localiser_symbols fraction options" do
375
- expect(xmlpp(IsoDoc::PresentationXMLConvert.new({}).convert("test", input, true))
376
- .sub(%r{<localized-strings>.*</localized-strings>}m, ""))
376
+ expect(xmlpp(IsoDoc::PresentationXMLConvert.new({})
377
+ .convert("test", input, true))
378
+ .sub(%r{<localized-strings>.*</localized-strings>}m, ""))
377
379
  .to(be_equivalent_to(xmlpp(output)))
378
380
  end
379
381
  end
380
382
 
381
- it "localises numbers in MathML in French" do
382
- expect(xmlpp(IsoDoc::PresentationXMLConvert.new({}).convert("test", <<~INPUT, true)).sub(%r{<localized-strings>.*</localized-strings>}m, "")).to be_equivalent_to xmlpp(<<~OUTPUT)
383
- <iso-standard xmlns="http://riboseinc.com/isoxml">
384
- <bibdata>
385
- <title language="en">test</title>
386
- <language>fr</language>
387
- </bibdata>
388
- <preface>
389
- <p><math xmlns="http://www.w3.org/1998/Math/MathML"><mn>30000</mn></math>
390
- <stem type="MathML"><math xmlns="http://www.w3.org/1998/Math/MathML"><mi>P</mi><mfenced open="(" close=")"><mrow><mi>X</mi><mo>≥</mo><msub><mrow><mi>X</mi></mrow><mrow><mo>max</mo></mrow></msub></mrow></mfenced><mo>=</mo><munderover><mrow><mo>∑</mo></mrow><mrow><mrow><mi>j</mi><mo>=</mo><msub><mrow><mi>X</mi></mrow><mrow><mo>max</mo></mrow></msub></mrow></mrow><mrow><mn>1000</mn></mrow></munderover><mfenced open="(" close=")"><mtable><mtr><mtd><mn>1000</mn></mtd></mtr><mtr><mtd><mi>j</mi></mtd></mtr></mtable></mfenced><msup><mrow><mi>p</mi></mrow><mrow><mi>j</mi></mrow></msup><msup><mrow><mfenced open="(" close=")"><mrow><mn>1</mn><mo>−</mo><mi>p</mi></mrow></mfenced></mrow><mrow><mrow><mn>1.003</mn><mo>−</mo><mi>j</mi></mrow></mrow></msup></math></stem></p>
391
- </preface>
392
- </iso-standard>
393
- INPUT
394
- <iso-standard xmlns='http://riboseinc.com/isoxml' type='presentation'>
395
- <bibdata>
396
- <title language='en'>test</title>
397
- <language current='true'>fr</language>
398
- </bibdata>
399
-
400
- <preface>
401
- <p>
402
- 30&#x202F;000
403
- <stem type='MathML'>
404
- <math xmlns='http://www.w3.org/1998/Math/MathML'>
405
- <mi>P</mi>
406
- <mfenced open='(' close=')'>
407
- <mrow>
408
- <mi>X</mi>
409
- <mo>&#x2265;</mo>
410
- <msub>
411
- <mrow>
412
- <mi>X</mi>
413
- </mrow>
414
- <mrow>
415
- <mo>max</mo>
416
- </mrow>
417
- </msub>
418
- </mrow>
419
- </mfenced>
420
- <mo>=</mo>
421
- <munderover>
422
- <mrow>
423
- <mo>&#x2211;</mo>
424
- </mrow>
425
- <mrow>
426
- <mrow>
427
- <mi>j</mi>
428
- <mo>=</mo>
429
- <msub>
430
- <mrow>
431
- <mi>X</mi>
432
- </mrow>
433
- <mrow>
434
- <mo>max</mo>
435
- </mrow>
436
- </msub>
437
- </mrow>
438
- </mrow>
439
- <mrow>
440
- <mn>1&#x202F;000</mn>
441
- </mrow>
442
- </munderover>
443
- <mfenced open='(' close=')'>
444
- <mtable>
445
- <mtr>
446
- <mtd>
447
- <mn>1&#x202F;000</mn>
448
- </mtd>
449
- </mtr>
450
- <mtr>
451
- <mtd>
452
- <mi>j</mi>
453
- </mtd>
454
- </mtr>
455
- </mtable>
456
- </mfenced>
457
- <msup>
458
- <mrow>
459
- <mi>p</mi>
460
- </mrow>
461
- <mrow>
462
- <mi>j</mi>
463
- </mrow>
464
- </msup>
465
- <msup>
466
- <mrow>
467
- <mfenced open='(' close=')'>
468
- <mrow>
469
- <mn>1</mn>
470
- <mo>&#x2212;</mo>
471
- <mi>p</mi>
472
- </mrow>
473
- </mfenced>
474
- </mrow>
475
- <mrow>
476
- <mrow>
477
- <mn>1,003</mn>
478
- <mo>&#x2212;</mo>
479
- <mi>j</mi>
480
- </mrow>
481
- </mrow>
482
- </msup>
483
- </math>
484
- </stem>
485
- </p>
486
- </preface>
487
- </iso-standard>
488
- OUTPUT
489
- end
383
+ it "localises numbers in MathML in French" do
384
+ expect(xmlpp(IsoDoc::PresentationXMLConvert.new({})
385
+ .convert("test", <<~INPUT, true)).sub(%r{<localized-strings>.*</localized-strings>}m, "")).to be_equivalent_to xmlpp(<<~OUTPUT)
386
+ <iso-standard xmlns="http://riboseinc.com/isoxml">
387
+ <bibdata>
388
+ <title language="en">test</title>
389
+ <language>fr</language>
390
+ </bibdata>
391
+ <preface>
392
+ <p><math xmlns="http://www.w3.org/1998/Math/MathML"><mn>30000</mn></math>
393
+ <stem type="MathML"><math xmlns="http://www.w3.org/1998/Math/MathML"><mi>P</mi><mfenced open="(" close=")"><mrow><mi>X</mi><mo>≥</mo><msub><mrow><mi>X</mi></mrow><mrow><mo>max</mo></mrow></msub></mrow></mfenced><mo>=</mo><munderover><mrow><mo>∑</mo></mrow><mrow><mrow><mi>j</mi><mo>=</mo><msub><mrow><mi>X</mi></mrow><mrow><mo>max</mo></mrow></msub></mrow></mrow><mrow><mn>1000</mn></mrow></munderover><mfenced open="(" close=")"><mtable><mtr><mtd><mn>1000</mn></mtd></mtr><mtr><mtd><mi>j</mi></mtd></mtr></mtable></mfenced><msup><mrow><mi>p</mi></mrow><mrow><mi>j</mi></mrow></msup><msup><mrow><mfenced open="(" close=")"><mrow><mn>1</mn><mo>−</mo><mi>p</mi></mrow></mfenced></mrow><mrow><mrow><mn>1.003</mn><mo>−</mo><mi>j</mi></mrow></mrow></msup></math></stem></p>
394
+ </preface>
395
+ </iso-standard>
396
+ INPUT
397
+ <iso-standard xmlns='http://riboseinc.com/isoxml' type='presentation'>
398
+ <bibdata>
399
+ <title language='en'>test</title>
400
+ <language current='true'>fr</language>
401
+ </bibdata>
402
+ <preface>
403
+ <p>
404
+ 30&#x202F;000
405
+ <stem type='MathML'>
406
+ <math xmlns='http://www.w3.org/1998/Math/MathML'>
407
+ <mi>P</mi>
408
+ <mfenced open='(' close=')'>
409
+ <mrow>
410
+ <mi>X</mi>
411
+ <mo>&#x2265;</mo>
412
+ <msub>
413
+ <mrow>
414
+ <mi>X</mi>
415
+ </mrow>
416
+ <mrow>
417
+ <mo>max</mo>
418
+ </mrow>
419
+ </msub>
420
+ </mrow>
421
+ </mfenced>
422
+ <mo>=</mo>
423
+ <munderover>
424
+ <mrow>
425
+ <mo>&#x2211;</mo>
426
+ </mrow>
427
+ <mrow>
428
+ <mrow>
429
+ <mi>j</mi>
430
+ <mo>=</mo>
431
+ <msub>
432
+ <mrow>
433
+ <mi>X</mi>
434
+ </mrow>
435
+ <mrow>
436
+ <mo>max</mo>
437
+ </mrow>
438
+ </msub>
439
+ </mrow>
440
+ </mrow>
441
+ <mrow>
442
+ <mn>1&#x202F;000</mn>
443
+ </mrow>
444
+ </munderover>
445
+ <mfenced open='(' close=')'>
446
+ <mtable>
447
+ <mtr>
448
+ <mtd>
449
+ <mn>1&#x202F;000</mn>
450
+ </mtd>
451
+ </mtr>
452
+ <mtr>
453
+ <mtd>
454
+ <mi>j</mi>
455
+ </mtd>
456
+ </mtr>
457
+ </mtable>
458
+ </mfenced>
459
+ <msup>
460
+ <mrow>
461
+ <mi>p</mi>
462
+ </mrow>
463
+ <mrow>
464
+ <mi>j</mi>
465
+ </mrow>
466
+ </msup>
467
+ <msup>
468
+ <mrow>
469
+ <mfenced open='(' close=')'>
470
+ <mrow>
471
+ <mn>1</mn>
472
+ <mo>&#x2212;</mo>
473
+ <mi>p</mi>
474
+ </mrow>
475
+ </mfenced>
476
+ </mrow>
477
+ <mrow>
478
+ <mrow>
479
+ <mn>1,003</mn>
480
+ <mo>&#x2212;</mo>
481
+ <mi>j</mi>
482
+ </mrow>
483
+ </mrow>
484
+ </msup>
485
+ </math>
486
+ </stem>
487
+ </p>
488
+ </preface>
489
+ </iso-standard>
490
+ OUTPUT
491
+ end
490
492
 
491
- it "customises localisation of numbers" do
492
- mock_symbols
493
- expect(xmlpp(IsoDoc::PresentationXMLConvert.new({}).convert("test", <<~INPUT, true)).sub(%r{<localized-strings>.*</localized-strings>}m, "")).to be_equivalent_to xmlpp(<<~OUTPUT)
494
- <iso-standard xmlns="http://riboseinc.com/isoxml">
495
- <bibdata>
496
- <title language="en">test</title>
497
- <language>fr</language>
498
- </bibdata>
499
- <preface>
500
- <p><stem type="MathML"><math xmlns="http://www.w3.org/1998/Math/MathML"><mn>30000</mn></math></stem>
501
- <stem type="MathML"><math xmlns="http://www.w3.org/1998/Math/MathML"><mi>P</mi><mfenced open="(" close=")"><mrow><mi>X</mi><mo>≥</mo><msub><mrow><mi>X</mi></mrow><mrow><mo>max</mo></mrow></msub></mrow></mfenced><mo>=</mo><munderover><mrow><mo>∑</mo></mrow><mrow><mrow><mi>j</mi><mo>=</mo><msub><mrow><mi>X</mi></mrow><mrow><mo>max</mo></mrow></msub></mrow></mrow><mrow><mn>1000</mn></mrow></munderover><mfenced open="(" close=")"><mtable><mtr><mtd><mn>1000</mn></mtd></mtr><mtr><mtd><mi>j</mi></mtd></mtr></mtable></mfenced><msup><mrow><mi>p</mi></mrow><mrow><mi>j</mi></mrow></msup><msup><mrow><mfenced open="(" close=")"><mrow><mn>0.0000032</mn><mo>−</mo><mi>p</mi></mrow></mfenced></mrow><mrow><mrow><mn>1.003</mn><mo>−</mo><mi>j</mi></mrow></mrow></msup></math></stem></p>
502
- </preface>
503
- </iso-standard>
504
- INPUT
505
- <iso-standard xmlns='http://riboseinc.com/isoxml' type='presentation'>
506
- <bibdata>
507
- <title language='en'>test</title>
508
- <language current='true'>fr</language>
509
- </bibdata>
493
+ it "customises localisation of numbers" do
494
+ mock_symbols
495
+ expect(xmlpp(IsoDoc::PresentationXMLConvert.new({})
496
+ .convert("test", <<~INPUT, true)).sub(%r{<localized-strings>.*</localized-strings>}m, "")).to be_equivalent_to xmlpp(<<~OUTPUT)
497
+ <iso-standard xmlns="http://riboseinc.com/isoxml">
498
+ <bibdata>
499
+ <title language="en">test</title>
500
+ <language>fr</language>
501
+ </bibdata>
502
+ <preface>
503
+ <p><stem type="MathML"><math xmlns="http://www.w3.org/1998/Math/MathML"><mn>30000</mn></math></stem>
504
+ <stem type="MathML"><math xmlns="http://www.w3.org/1998/Math/MathML"><mi>P</mi><mfenced open="(" close=")"><mrow><mi>X</mi><mo>≥</mo><msub><mrow><mi>X</mi></mrow><mrow><mo>max</mo></mrow></msub></mrow></mfenced><mo>=</mo><munderover><mrow><mo>∑</mo></mrow><mrow><mrow><mi>j</mi><mo>=</mo><msub><mrow><mi>X</mi></mrow><mrow><mo>max</mo></mrow></msub></mrow></mrow><mrow><mn>1000</mn></mrow></munderover><mfenced open="(" close=")"><mtable><mtr><mtd><mn>1000</mn></mtd></mtr><mtr><mtd><mi>j</mi></mtd></mtr></mtable></mfenced><msup><mrow><mi>p</mi></mrow><mrow><mi>j</mi></mrow></msup><msup><mrow><mfenced open="(" close=")"><mrow><mn>0.0000032</mn><mo>−</mo><mi>p</mi></mrow></mfenced></mrow><mrow><mrow><mn>1.003</mn><mo>−</mo><mi>j</mi></mrow></mrow></msup></math></stem></p>
505
+ </preface>
506
+ </iso-standard>
507
+ INPUT
508
+ <iso-standard xmlns='http://riboseinc.com/isoxml' type='presentation'>
509
+ <bibdata>
510
+ <title language='en'>test</title>
511
+ <language current='true'>fr</language>
512
+ </bibdata>
510
513
 
511
- <preface>
512
- <p>
513
- 30'000
514
- <stem type='MathML'>
515
- <math xmlns='http://www.w3.org/1998/Math/MathML'>
516
- <mi>P</mi>
517
- <mfenced open='(' close=')'>
518
- <mrow>
519
- <mi>X</mi>
520
- <mo>&#x2265;</mo>
521
- <msub>
522
- <mrow>
523
- <mi>X</mi>
524
- </mrow>
525
- <mrow>
526
- <mo>max</mo>
527
- </mrow>
528
- </msub>
529
- </mrow>
530
- </mfenced>
531
- <mo>=</mo>
532
- <munderover>
533
- <mrow>
534
- <mo>&#x2211;</mo>
535
- </mrow>
536
- <mrow>
537
- <mrow>
538
- <mi>j</mi>
539
- <mo>=</mo>
540
- <msub>
514
+ <preface>
515
+ <p>
516
+ 30'000
517
+ <stem type='MathML'>
518
+ <math xmlns='http://www.w3.org/1998/Math/MathML'>
519
+ <mi>P</mi>
520
+ <mfenced open='(' close=')'>
541
521
  <mrow>
542
522
  <mi>X</mi>
523
+ <mo>&#x2265;</mo>
524
+ <msub>
525
+ <mrow>
526
+ <mi>X</mi>
527
+ </mrow>
528
+ <mrow>
529
+ <mo>max</mo>
530
+ </mrow>
531
+ </msub>
532
+ </mrow>
533
+ </mfenced>
534
+ <mo>=</mo>
535
+ <munderover>
536
+ <mrow>
537
+ <mo>&#x2211;</mo>
543
538
  </mrow>
544
539
  <mrow>
545
- <mo>max</mo>
540
+ <mrow>
541
+ <mi>j</mi>
542
+ <mo>=</mo>
543
+ <msub>
544
+ <mrow>
545
+ <mi>X</mi>
546
+ </mrow>
547
+ <mrow>
548
+ <mo>max</mo>
549
+ </mrow>
550
+ </msub>
551
+ </mrow>
546
552
  </mrow>
547
- </msub>
548
- </mrow>
549
- </mrow>
550
- <mrow>
551
- <mn>1'000</mn>
552
- </mrow>
553
- </munderover>
554
- <mfenced open='(' close=')'>
555
- <mtable>
556
- <mtr>
557
- <mtd>
558
- <mn>1'000</mn>
559
- </mtd>
560
- </mtr>
561
- <mtr>
562
- <mtd>
563
- <mi>j</mi>
564
- </mtd>
565
- </mtr>
566
- </mtable>
567
- </mfenced>
568
- <msup>
569
- <mrow>
570
- <mi>p</mi>
571
- </mrow>
572
- <mrow>
573
- <mi>j</mi>
574
- </mrow>
575
- </msup>
576
- <msup>
577
- <mrow>
578
- <mfenced open='(' close=')'>
579
- <mrow>
580
- <mn>0,0000032</mn>
581
- <mo>&#x2212;</mo>
582
- <mi>p</mi>
583
- </mrow>
584
- </mfenced>
585
- </mrow>
586
- <mrow>
587
- <mrow>
588
- <mn>1,003</mn>
589
- <mo>&#x2212;</mo>
590
- <mi>j</mi>
591
- </mrow>
592
- </mrow>
593
- </msup>
594
- </math>
595
- </stem>
596
- </p>
597
- </preface>
598
- </iso-standard>
599
- OUTPUT
600
- end
553
+ <mrow>
554
+ <mn>1'000</mn>
555
+ </mrow>
556
+ </munderover>
557
+ <mfenced open='(' close=')'>
558
+ <mtable>
559
+ <mtr>
560
+ <mtd>
561
+ <mn>1'000</mn>
562
+ </mtd>
563
+ </mtr>
564
+ <mtr>
565
+ <mtd>
566
+ <mi>j</mi>
567
+ </mtd>
568
+ </mtr>
569
+ </mtable>
570
+ </mfenced>
571
+ <msup>
572
+ <mrow>
573
+ <mi>p</mi>
574
+ </mrow>
575
+ <mrow>
576
+ <mi>j</mi>
577
+ </mrow>
578
+ </msup>
579
+ <msup>
580
+ <mrow>
581
+ <mfenced open='(' close=')'>
582
+ <mrow>
583
+ <mn>0,0000032</mn>
584
+ <mo>&#x2212;</mo>
585
+ <mi>p</mi>
586
+ </mrow>
587
+ </mfenced>
588
+ </mrow>
589
+ <mrow>
590
+ <mrow>
591
+ <mn>1,003</mn>
592
+ <mo>&#x2212;</mo>
593
+ <mi>j</mi>
594
+ </mrow>
595
+ </mrow>
596
+ </msup>
597
+ </math>
598
+ </stem>
599
+ </p>
600
+ </preface>
601
+ </iso-standard>
602
+ OUTPUT
603
+ end
601
604
 
602
- private
605
+ private
603
606
 
604
607
  def mock_symbols
605
608
  allow_any_instance_of(::IsoDoc::PresentationXMLConvert).to receive(:twitter_cldr_localiser_symbols).and_return(group: "'")