isodoc 1.8.0 → 1.8.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -1904,6 +1904,271 @@ RSpec.describe IsoDoc do
1904
1904
  .convert("test", input, true))).to be_equivalent_to xmlpp(output)
1905
1905
  end
1906
1906
 
1907
+ it "cross-references nested term notes" do
1908
+ input = <<~INPUT
1909
+ <iso-standard xmlns="http://riboseinc.com/isoxml">
1910
+ <preface>
1911
+ <foreword>
1912
+ <p>
1913
+ <xref target="note1"/>
1914
+ <xref target="note2"/>
1915
+ <xref target="note3"/>
1916
+ </p>
1917
+ </foreword>
1918
+ </preface>
1919
+ <sections>
1920
+ <clause id="scope" type="scope"><title>Scope</title>
1921
+ </clause>
1922
+ <terms id="terms">
1923
+ <term id="_waxy_rice"><preferred><expression><name>waxy rice</name></expression></preferred>
1924
+ <termnote id="note1">
1925
+ <p id="_b0cb3dfd-78fc-47dd-a339-84070d947463">The starch of waxy rice consists almost entirely of amylopectin. The kernels have a tendency to stick together after cooking.</p>
1926
+ </termnote>
1927
+ <term id="_nonwaxy_rice"><preferred><expression><name>nonwaxy rice</name></expression></preferred>
1928
+ <termnote id="note2">
1929
+ <p id="_b0cb3dfd-78fc-47dd-a339-84070d947463">The starch of waxy rice consists almost entirely of amylopectin. The kernels have a tendency to stick together after cooking.</p>
1930
+ </termnote>
1931
+ <termnote id="note3">
1932
+ <p id="_b0cb3dfd-78fc-47dd-a339-84070d947463">The starch of waxy rice consists almost entirely of amylopectin. The kernels have a tendency to stick together after cooking.</p>
1933
+ </termnote></term></term>
1934
+ </terms>
1935
+ </iso-standard>
1936
+ INPUT
1937
+ output = <<~OUTPUT
1938
+ <iso-standard xmlns='http://riboseinc.com/isoxml' type='presentation'>
1939
+ <preface>
1940
+ <foreword displayorder='1'>
1941
+ <p>
1942
+ <xref target='note1'>Clause 2.1, Note 1</xref>
1943
+ <xref target='note2'>Clause 2.1.1, Note 1</xref>
1944
+ <xref target='note3'>Clause 2.1.1, Note 2</xref>
1945
+ </p>
1946
+ </foreword>
1947
+ </preface>
1948
+ <sections>
1949
+ <clause id='scope' type='scope' displayorder='2'>
1950
+ <title depth='1'>
1951
+ 1.
1952
+ <tab/>
1953
+ Scope
1954
+ </title>
1955
+ </clause>
1956
+ <terms id='terms' displayorder='3'>
1957
+ <title>2.</title>
1958
+ <term id='_waxy_rice'>
1959
+ <name>2.1.</name>
1960
+ <preferred>waxy rice</preferred>
1961
+ <termnote id='note1'>
1962
+ <name>Note 1 to entry</name>
1963
+ <p id='_b0cb3dfd-78fc-47dd-a339-84070d947463'>
1964
+ The starch of waxy rice consists almost entirely of amylopectin. The
1965
+ kernels have a tendency to stick together after cooking.
1966
+ </p>
1967
+ </termnote>
1968
+ <term id='_nonwaxy_rice'>
1969
+ <name>2.1.1.</name>
1970
+ <preferred>nonwaxy rice</preferred>
1971
+ <termnote id='note2'>
1972
+ <name>Note 1 to entry</name>
1973
+ <p id='_b0cb3dfd-78fc-47dd-a339-84070d947463'>
1974
+ The starch of waxy rice consists almost entirely of amylopectin.
1975
+ The kernels have a tendency to stick together after cooking.
1976
+ </p>
1977
+ </termnote>
1978
+ <termnote id='note3'>
1979
+ <name>Note 2 to entry</name>
1980
+ <p id='_b0cb3dfd-78fc-47dd-a339-84070d947463'>
1981
+ The starch of waxy rice consists almost entirely of amylopectin.
1982
+ The kernels have a tendency to stick together after cooking.
1983
+ </p>
1984
+ </termnote>
1985
+ </term>
1986
+ </term>
1987
+ </terms>
1988
+ </sections>
1989
+ </iso-standard>
1990
+ OUTPUT
1991
+ expect(xmlpp(IsoDoc::PresentationXMLConvert.new({})
1992
+ .convert("test", input, true))).to be_equivalent_to xmlpp(output)
1993
+ end
1994
+
1995
+ it "cross-references term examples" do
1996
+ input = <<~INPUT
1997
+ <iso-standard xmlns="http://riboseinc.com/isoxml">
1998
+ <preface>
1999
+ <foreword>
2000
+ <p>
2001
+ <xref target="note1"/>
2002
+ <xref target="note2"/>
2003
+ <xref target="note3"/>
2004
+ </p>
2005
+ </foreword>
2006
+ </preface>
2007
+ <sections>
2008
+ <clause id="scope" type="scope"><title>Scope</title>
2009
+ </clause>
2010
+ <terms id="terms">
2011
+ <term id="_waxy_rice"><preferred><expression><name>waxy rice</name></expression></preferred>
2012
+ <termexample id="note1">
2013
+ <p id="_b0cb3dfd-78fc-47dd-a339-84070d947463">The starch of waxy rice consists almost entirely of amylopectin. The kernels have a tendency to stick together after cooking.</p>
2014
+ </termexample></term>
2015
+ <term id="_nonwaxy_rice"><preferred><expression><name>nonwaxy rice</name></expression></preferred>
2016
+ <termexample id="note2">
2017
+ <p id="_b0cb3dfd-78fc-47dd-a339-84070d947463">The starch of waxy rice consists almost entirely of amylopectin. The kernels have a tendency to stick together after cooking.</p>
2018
+ </termexample>
2019
+ <termexample id="note3">
2020
+ <p id="_b0cb3dfd-78fc-47dd-a339-84070d947463">The starch of waxy rice consists almost entirely of amylopectin. The kernels have a tendency to stick together after cooking.</p>
2021
+ </termexample></term>
2022
+ </terms>
2023
+ </iso-standard>
2024
+ INPUT
2025
+ output = <<~OUTPUT
2026
+ <?xml version='1.0'?>
2027
+ <iso-standard xmlns='http://riboseinc.com/isoxml' type="presentation">
2028
+ <preface>
2029
+ <foreword displayorder="1">
2030
+ <p>
2031
+ <xref target='note1'>Clause 2.1, Example</xref>
2032
+ <xref target='note2'>Clause 2.2, Example 1</xref>
2033
+ <xref target='note3'>Clause 2.2, Example 2</xref>
2034
+ </p>
2035
+ </foreword>
2036
+ </preface>
2037
+ <sections>
2038
+ <clause id='scope' type="scope" displayorder="2">
2039
+ <title depth='1'>
2040
+ 1.
2041
+ <tab/>
2042
+ Scope
2043
+ </title>
2044
+ </clause>
2045
+ <terms id='terms'displayorder="3">
2046
+ <title>2.</title>
2047
+ <term id='_waxy_rice'>
2048
+ <name>2.1.</name>
2049
+ <preferred>waxy rice</preferred>
2050
+ <termexample id='note1'>
2051
+ <name>EXAMPLE</name>
2052
+ <p id='_b0cb3dfd-78fc-47dd-a339-84070d947463'>
2053
+ The starch of waxy rice consists almost entirely of amylopectin. The
2054
+ kernels have a tendency to stick together after cooking.
2055
+ </p>
2056
+ </termexample>
2057
+ </term>
2058
+ <term id='_nonwaxy_rice'>
2059
+ <name>2.2.</name>
2060
+ <preferred>nonwaxy rice</preferred>
2061
+ <termexample id='note2'>
2062
+ <name>EXAMPLE 1</name>
2063
+ <p id='_b0cb3dfd-78fc-47dd-a339-84070d947463'>
2064
+ The starch of waxy rice consists almost entirely of amylopectin. The
2065
+ kernels have a tendency to stick together after cooking.
2066
+ </p>
2067
+ </termexample>
2068
+ <termexample id='note3'>
2069
+ <name>EXAMPLE 2</name>
2070
+ <p id='_b0cb3dfd-78fc-47dd-a339-84070d947463'>
2071
+ The starch of waxy rice consists almost entirely of amylopectin. The
2072
+ kernels have a tendency to stick together after cooking.
2073
+ </p>
2074
+ </termexample>
2075
+ </term>
2076
+ </terms>
2077
+ </sections>
2078
+ </iso-standard>
2079
+ OUTPUT
2080
+ expect(xmlpp(IsoDoc::PresentationXMLConvert.new({})
2081
+ .convert("test", input, true))).to be_equivalent_to xmlpp(output)
2082
+ end
2083
+
2084
+ it "cross-references nested term examples" do
2085
+ input = <<~INPUT
2086
+ <iso-standard xmlns="http://riboseinc.com/isoxml">
2087
+ <preface>
2088
+ <foreword>
2089
+ <p>
2090
+ <xref target="note1"/>
2091
+ <xref target="note2"/>
2092
+ <xref target="note3"/>
2093
+ </p>
2094
+ </foreword>
2095
+ </preface>
2096
+ <sections>
2097
+ <clause id="scope" type="scope"><title>Scope</title>
2098
+ </clause>
2099
+ <terms id="terms">
2100
+ <term id="_waxy_rice"><preferred><expression><name>waxy rice</name></expression></preferred>
2101
+ <termexample id="note1">
2102
+ <p id="_b0cb3dfd-78fc-47dd-a339-84070d947463">The starch of waxy rice consists almost entirely of amylopectin. The kernels have a tendency to stick together after cooking.</p>
2103
+ </termexample>
2104
+ <term id="_nonwaxy_rice"><preferred><expression><name>nonwaxy rice</name></expression></preferred>
2105
+ <termexample id="note2">
2106
+ <p id="_b0cb3dfd-78fc-47dd-a339-84070d947463">The starch of waxy rice consists almost entirely of amylopectin. The kernels have a tendency to stick together after cooking.</p>
2107
+ </termexample>
2108
+ <termexample id="note3">
2109
+ <p id="_b0cb3dfd-78fc-47dd-a339-84070d947463">The starch of waxy rice consists almost entirely of amylopectin. The kernels have a tendency to stick together after cooking.</p>
2110
+ </termexample></term></term>
2111
+ </terms>
2112
+ </iso-standard>
2113
+ INPUT
2114
+ output = <<~OUTPUT
2115
+ <iso-standard xmlns='http://riboseinc.com/isoxml' type='presentation'>
2116
+ <preface>
2117
+ <foreword displayorder='1'>
2118
+ <p>
2119
+ <xref target='note1'>Clause 2.1, Example</xref>
2120
+ <xref target='note2'>Clause 2.1.1, Example 1</xref>
2121
+ <xref target='note3'>Clause 2.1.1, Example 2</xref>
2122
+ </p>
2123
+ </foreword>
2124
+ </preface>
2125
+ <sections>
2126
+ <clause id='scope' type='scope' displayorder='2'>
2127
+ <title depth='1'>
2128
+ 1.
2129
+ <tab/>
2130
+ Scope
2131
+ </title>
2132
+ </clause>
2133
+ <terms id='terms' displayorder='3'>
2134
+ <title>2.</title>
2135
+ <term id='_waxy_rice'>
2136
+ <name>2.1.</name>
2137
+ <preferred>waxy rice</preferred>
2138
+ <termexample id='note1'>
2139
+ <name>EXAMPLE</name>
2140
+ <p id='_b0cb3dfd-78fc-47dd-a339-84070d947463'>
2141
+ The starch of waxy rice consists almost entirely of amylopectin. The
2142
+ kernels have a tendency to stick together after cooking.
2143
+ </p>
2144
+ </termexample>
2145
+ <term id='_nonwaxy_rice'>
2146
+ <name>2.1.1.</name>
2147
+ <preferred>nonwaxy rice</preferred>
2148
+ <termexample id='note2'>
2149
+ <name>EXAMPLE 1</name>
2150
+ <p id='_b0cb3dfd-78fc-47dd-a339-84070d947463'>
2151
+ The starch of waxy rice consists almost entirely of amylopectin.
2152
+ The kernels have a tendency to stick together after cooking.
2153
+ </p>
2154
+ </termexample>
2155
+ <termexample id='note3'>
2156
+ <name>EXAMPLE 2</name>
2157
+ <p id='_b0cb3dfd-78fc-47dd-a339-84070d947463'>
2158
+ The starch of waxy rice consists almost entirely of amylopectin.
2159
+ The kernels have a tendency to stick together after cooking.
2160
+ </p>
2161
+ </termexample>
2162
+ </term>
2163
+ </term>
2164
+ </terms>
2165
+ </sections>
2166
+ </iso-standard>
2167
+ OUTPUT
2168
+ expect(xmlpp(IsoDoc::PresentationXMLConvert.new({})
2169
+ .convert("test", input, true))).to be_equivalent_to xmlpp(output)
2170
+ end
2171
+
1907
2172
  it "cross-references sections" do
1908
2173
  input = <<~INPUT
1909
2174
  <iso-standard xmlns="http://riboseinc.com/isoxml">
@@ -1999,7 +2264,7 @@ RSpec.describe IsoDoc do
1999
2264
  <foreword obligation='informative' displayorder='1'>
2000
2265
  <title>Foreword</title>
2001
2266
  <p id='A'>
2002
- This is a preamble#{' '}
2267
+ This is a preamble
2003
2268
  <xref target='C'>Introduction Subsection</xref>
2004
2269
  <xref target='C1'>Introduction, 2</xref>
2005
2270
  <xref target='D'>Clause 1</xref>
@@ -2453,7 +2718,7 @@ RSpec.describe IsoDoc do
2453
2718
  .to be_equivalent_to xmlpp(output)
2454
2719
  end
2455
2720
 
2456
- it "cross-references definition list terms" do
2721
+ it "cross-references definition list terms" do
2457
2722
  input = <<~INPUT
2458
2723
  <iso-standard xmlns="http://riboseinc.com/isoxml">
2459
2724
  <preface>
@@ -2533,7 +2798,7 @@ RSpec.describe IsoDoc do
2533
2798
  .convert("test", input, true))
2534
2799
  .at("//xmlns:foreword").to_xml))
2535
2800
  .to be_equivalent_to xmlpp(output)
2536
- end
2801
+ end
2537
2802
 
2538
2803
  it "cross-references bookmarks" do
2539
2804
  input = <<~INPUT
@@ -2617,348 +2882,4 @@ RSpec.describe IsoDoc do
2617
2882
  .at("//xmlns:foreword").to_xml))
2618
2883
  .to be_equivalent_to xmlpp(output)
2619
2884
  end
2620
-
2621
- it "realises subsequences" do
2622
- input = <<~INPUT
2623
- <iso-standard xmlns="http://riboseinc.com/isoxml">
2624
- <preface>
2625
- <foreword id="fwd">
2626
- <p>
2627
- <xref target="N1"/>
2628
- <xref target="N2"/>
2629
- <xref target="N3"/>
2630
- <xref target="N4"/>
2631
- <xref target="N5"/>
2632
- <xref target="N6"/>
2633
- <xref target="N7"/>
2634
- <xref target="N8"/>
2635
- </p>
2636
- </foreword>
2637
- <introduction id="intro">
2638
- <figure id="N1"> <name>Split-it-right sample divider</name>
2639
- <image src="rice_images/rice_image1.png" id="_8357ede4-6d44-4672-bac4-9a85e82ab7f0" mimetype="image/png"/>
2640
- </figure>
2641
- <figure id="N2" subsequence="A"> <name>Split-it-right sample divider</name>
2642
- <image src="rice_images/rice_image1.png" id="_8357ede4-6d44-4672-bac4-9a85e82ab7f0" mimetype="image/png"/>
2643
- </figure>
2644
- <figure id="N3" subsequence="A"> <name>Split-it-right sample divider</name>
2645
- <image src="rice_images/rice_image1.png" id="_8357ede4-6d44-4672-bac4-9a85e82ab7f0" mimetype="image/png"/>
2646
- </figure>
2647
- <figure id="N4" subsequence="B"> <name>Split-it-right sample divider</name>
2648
- <image src="rice_images/rice_image1.png" id="_8357ede4-6d44-4672-bac4-9a85e82ab7f0" mimetype="image/png"/>
2649
- </figure>
2650
- <figure id="N5" subsequence="B"> <name>Split-it-right sample divider</name>
2651
- <image src="rice_images/rice_image1.png" id="_8357ede4-6d44-4672-bac4-9a85e82ab7f0" mimetype="image/png"/>
2652
- </figure>
2653
- <figure id="N6" subsequence="B"> <name>Split-it-right sample divider</name>
2654
- <image src="rice_images/rice_image1.png" id="_8357ede4-6d44-4672-bac4-9a85e82ab7f0" mimetype="image/png"/>
2655
- </figure>
2656
- <figure id="N7"> <name>Split-it-right sample divider</name>
2657
- <image src="rice_images/rice_image1.png" id="_8357ede4-6d44-4672-bac4-9a85e82ab7f0" mimetype="image/png"/>
2658
- </figure>
2659
- <figure id="N8"> <name>Split-it-right sample divider</name>
2660
- <image src="rice_images/rice_image1.png" id="_8357ede4-6d44-4672-bac4-9a85e82ab7f0" mimetype="image/png"/>
2661
- </figure>
2662
- </introduction>
2663
- </iso-standard>
2664
- INPUT
2665
- output = <<~OUTPUT
2666
- <foreword id='fwd' displayorder="1">
2667
- <p>
2668
- <xref target='N1'>Figure 1</xref>
2669
- <xref target='N2'>Figure 2a</xref>
2670
- <xref target='N3'>Figure 2b</xref>
2671
- <xref target='N4'>Figure 3a</xref>
2672
- <xref target='N5'>Figure 3b</xref>
2673
- <xref target='N6'>Figure 3c</xref>
2674
- <xref target='N7'>Figure 4</xref>
2675
- <xref target='N8'>Figure 5</xref>
2676
- </p>
2677
- </foreword>
2678
- OUTPUT
2679
- expect(xmlpp(Nokogiri::XML(IsoDoc::PresentationXMLConvert.new({})
2680
- .convert("test", input, true))
2681
- .at("//xmlns:foreword").to_xml))
2682
- .to be_equivalent_to xmlpp(output)
2683
- end
2684
-
2685
- it "realises numbering overrides" do
2686
- input = <<~INPUT
2687
- <iso-standard xmlns="http://riboseinc.com/isoxml">
2688
- <preface>
2689
- <foreword id="fwd">
2690
- <p>
2691
- <xref target="N1"/>
2692
- <xref target="N2"/>
2693
- <xref target="N3"/>
2694
- <xref target="N4"/>
2695
- <xref target="N5"/>
2696
- <xref target="N6"/>
2697
- <xref target="N7"/>
2698
- <xref target="N8"/>
2699
- <xref target="N9"/>
2700
- <xref target="N10"/>
2701
- <xref target="N11"/>
2702
- <xref target="N12"/>
2703
- <xref target="N13"/>
2704
- </p>
2705
- <p>
2706
- <xref target="S1"/>
2707
- <xref target="S2"/>
2708
- <xref target="S3"/>
2709
- <xref target="S4"/>
2710
- <xref target="S12"/>
2711
- <xref target="S13"/>
2712
- <xref target="S14"/>
2713
- <xref target="S15"/>
2714
- <xref target="S16"/>
2715
- <xref target="S17"/>
2716
- <xref target="S18"/>
2717
- <xref target="S19"/>
2718
- <xref target="S20"/>
2719
- <xref target="S21"/>
2720
- <xref target="S22"/>
2721
- <xref target="S23"/>
2722
- <xref target="S24"/>
2723
- <xref target="S25"/>
2724
- <xref target="S26"/>
2725
- <xref target="S27"/>
2726
- <xref target="S28"/>
2727
- <xref target="S29"/>
2728
- <xref target="S30"/>
2729
- </p>
2730
- </foreword>
2731
- <introduction id="intro">
2732
- <figure id="N1"> <name>Split-it-right sample divider</name>
2733
- <image src="rice_images/rice_image1.png" id="_8357ede4-6d44-4672-bac4-9a85e82ab7f0" mimetype="image/png"/>
2734
- </figure>
2735
- <figure id="N2" number="A"> <name>Split-it-right sample divider</name>
2736
- <image src="rice_images/rice_image1.png" id="_8357ede4-6d44-4672-bac4-9a85e82ab7f0" mimetype="image/png"/>
2737
- </figure>
2738
- <figure id="N3"> <name>Split-it-right sample divider</name>
2739
- <image src="rice_images/rice_image1.png" id="_8357ede4-6d44-4672-bac4-9a85e82ab7f0" mimetype="image/png"/>
2740
- </figure>
2741
- <figure id="N4" number="7"> <name>Split-it-right sample divider</name>
2742
- <image src="rice_images/rice_image1.png" id="_8357ede4-6d44-4672-bac4-9a85e82ab7f0" mimetype="image/png"/>
2743
- </figure>
2744
- <figure id="N5"> <name>Split-it-right sample divider</name>
2745
- <image src="rice_images/rice_image1.png" id="_8357ede4-6d44-4672-bac4-9a85e82ab7f0" mimetype="image/png"/>
2746
- </figure>
2747
- <figure id="N6" subsequence="B"> <name>Split-it-right sample divider</name>
2748
- <image src="rice_images/rice_image1.png" id="_8357ede4-6d44-4672-bac4-9a85e82ab7f0" mimetype="image/png"/>
2749
- </figure>
2750
- <figure id="N7" subsequence="B" number="c"> <name>Split-it-right sample divider</name>
2751
- <image src="rice_images/rice_image1.png" id="_8357ede4-6d44-4672-bac4-9a85e82ab7f0" mimetype="image/png"/>
2752
- </figure>
2753
- <figure id="N8" subsequence="B"> <name>Split-it-right sample divider</name>
2754
- <image src="rice_images/rice_image1.png" id="_8357ede4-6d44-4672-bac4-9a85e82ab7f0" mimetype="image/png"/>
2755
- </figure>
2756
- <figure id="N9" subsequence="C" number="20f"> <name>Split-it-right sample divider</name>
2757
- <image src="rice_images/rice_image1.png" id="_8357ede4-6d44-4672-bac4-9a85e82ab7f0" mimetype="image/png"/>
2758
- </figure>
2759
- <figure id="N10" subsequence="C"> <name>Split-it-right sample divider</name>
2760
- <image src="rice_images/rice_image1.png" id="_8357ede4-6d44-4672-bac4-9a85e82ab7f0" mimetype="image/png"/>
2761
- </figure>
2762
- <figure id="N11" number="A.1"> <name>Split-it-right sample divider</name>
2763
- <image src="rice_images/rice_image1.png" id="_8357ede4-6d44-4672-bac4-9a85e82ab7f0" mimetype="image/png"/>
2764
- </figure>
2765
- <figure id="N12"> <name>Split-it-right sample divider</name>
2766
- <image src="rice_images/rice_image1.png" id="_8357ede4-6d44-4672-bac4-9a85e82ab7f0" mimetype="image/png"/>
2767
- </figure>
2768
- <figure id="N13" number="100"> <name>Split-it-right sample divider</name>
2769
- <image src="rice_images/rice_image1.png" id="_8357ede4-6d44-4672-bac4-9a85e82ab7f0" mimetype="image/png"/>
2770
- </figure>
2771
- </introduction>
2772
- </preface>
2773
- <sections>
2774
- <clause id='S1' number='1bis' type='scope' inline-header='false' obligation='normative'>
2775
- <title>Scope</title>
2776
- <p id='_'>Text</p>
2777
- </clause>
2778
- <terms id='S3' number='3bis' obligation='normative'>
2779
- <title>Terms and definitions</title>
2780
- <p id='_'>For the purposes of this document, the following terms and definitions apply.</p>
2781
- <term id='S4' number='4bis'>
2782
- <preferred><expression><name>Term1</name></expression></preferred>
2783
- </term>
2784
- </terms>
2785
- <definitions id='S12' number='12bis' type='abbreviated_terms' obligation='normative'>
2786
- <title>Abbreviated terms</title>
2787
- </definitions>
2788
- <clause id='S13' number='13bis' inline-header='false' obligation='normative'>
2789
- <title>Clause 4</title>
2790
- <clause id='S14' number='14bis' inline-header='false' obligation='normative'>
2791
- <title>Introduction</title>
2792
- </clause>
2793
- <clause id='S15' inline-header='false' obligation='normative'>
2794
- <title>Clause A</title>
2795
- </clause>
2796
- <clause id='S16' inline-header='false' obligation='normative'>
2797
- <title>Clause B</title>
2798
- </clause>
2799
- <clause id='S17' number='0' inline-header='false' obligation='normative'>
2800
- <title>Clause C</title>
2801
- </clause>
2802
- <clause id='S18' inline-header='false' obligation='normative'>
2803
- <title>Clause D</title>
2804
- </clause>
2805
- <clause id='S19' inline-header='false' obligation='normative'>
2806
- <title>Clause E</title>
2807
- </clause>
2808
- <clause id='S20' number='a' inline-header='false' obligation='normative'>
2809
- <title>Clause F</title>
2810
- </clause>
2811
- <clause id='S21' inline-header='false' obligation='normative'>
2812
- <title>Clause G</title>
2813
- </clause>
2814
- <clause id='S22' number='B' inline-header='false' obligation='normative'>
2815
- <title>Clause H</title>
2816
- </clause>
2817
- <clause id='S23' inline-header='false' obligation='normative'>
2818
- <title>Clause I</title>
2819
- </clause>
2820
- </clause>
2821
- <clause id='S24' number='16bis' inline-header='false' obligation='normative'>
2822
- <title>Terms and Definitions</title>
2823
- </clause>
2824
- </sections>
2825
- <annex id='S25' obligation='normative'>
2826
- <title>First Annex</title>
2827
- </annex>
2828
- <annex id='S26' number='17bis' inline-header='false' obligation='normative'>
2829
- <title>Annex</title>
2830
- <clause id='S27' number='18bis' inline-header='false' obligation='normative'>
2831
- <title>Annex A.1</title>
2832
- </clause>
2833
- </annex>
2834
- <annex id='S28' inline-header='false' obligation='normative'>
2835
- <title>Another Annex</title>
2836
- </annex>
2837
- <bibliography>
2838
- <references id='S2' number='2bis' normative='true' obligation='informative'>
2839
- <title>Normative references</title>
2840
- <p id='_'>There are no normative references in this document.</p>
2841
- </references>
2842
- <clause id='S29' number='19bis' obligation='informative'>
2843
- <title>Bibliography</title>
2844
- <references id='S30' number='20bis' normative='false' obligation='informative'>
2845
- <title>Bibliography Subsection</title>
2846
- </references>
2847
- </clause>
2848
- </bibliography>
2849
- </iso-standard>
2850
- INPUT
2851
- output = <<~OUTPUT
2852
- <foreword id='fwd' displayorder='1'>
2853
- <p>
2854
- <xref target='N1'>Figure 1</xref>
2855
- <xref target='N2'>Figure A</xref>
2856
- <xref target='N3'>Figure B</xref>
2857
- <xref target='N4'>Figure 7</xref>
2858
- <xref target='N5'>Figure 8</xref>
2859
- <xref target='N6'>Figure 9a</xref>
2860
- <xref target='N7'>Figure 9c</xref>
2861
- <xref target='N8'>Figure 9d</xref>
2862
- <xref target='N9'>Figure 20f</xref>
2863
- <xref target='N10'>Figure 20g</xref>
2864
- <xref target='N11'>Figure A.1</xref>
2865
- <xref target='N12'>Figure A.2</xref>
2866
- <xref target='N13'>Figure 100</xref>
2867
- </p>
2868
- <p>
2869
- <xref target='S1'>Clause 1bis</xref>
2870
- <xref target='S2'>Clause 2bis</xref>
2871
- <xref target='S3'>Clause 3bis</xref>
2872
- <xref target='S4'>Clause 3bis.4bis</xref>
2873
- <xref target='S12'>Clause 12bis</xref>
2874
- <xref target='S13'>Clause 13bis</xref>
2875
- <xref target='S14'>Clause 13bis.14bis</xref>
2876
- <xref target='S15'>Clause 13bis.14bit</xref>
2877
- <xref target='S16'>Clause 13bis.14biu</xref>
2878
- <xref target='S17'>Clause 13bis.0</xref>
2879
- <xref target='S18'>Clause 13bis.1</xref>
2880
- <xref target='S19'>Clause 13bis.2</xref>
2881
- <xref target='S20'>Clause 13bis.a</xref>
2882
- <xref target='S21'>Clause 13bis.b</xref>
2883
- <xref target='S22'>Clause 13bis.B</xref>
2884
- <xref target='S23'>Clause 13bis.C</xref>
2885
- <xref target='S24'>Clause 16bis</xref>
2886
- <xref target='S25'>Annex A</xref>
2887
- <xref target='S26'>Annex 17bis</xref>
2888
- <xref target='S27'>Annex 17bis.18bis</xref>
2889
- <xref target='S28'>Annex 17bit</xref>
2890
- <xref target='S29'>Bibliography</xref>
2891
- <xref target='S30'>Bibliography Subsection</xref>
2892
- </p>
2893
- </foreword>
2894
- OUTPUT
2895
- expect(xmlpp(Nokogiri::XML(IsoDoc::PresentationXMLConvert.new({})
2896
- .convert("test", input, true))
2897
- .at("//xmlns:foreword").to_xml))
2898
- .to be_equivalent_to xmlpp(output)
2899
- end
2900
-
2901
- it "realises roman counter for xrefs" do
2902
- a = IsoDoc::XrefGen::Counter.new(0, numerals: :roman)
2903
- a.increment({})
2904
- expect(a.print).to eq "I"
2905
- a.increment({})
2906
- expect(a.print).to eq "II"
2907
- a.increment({})
2908
- expect(a.print).to eq "III"
2909
- a.increment({})
2910
- expect(a.print).to eq "IV"
2911
- a.increment({})
2912
- expect(a.print).to eq "V"
2913
- end
2914
-
2915
- it "skips I in counter for xrefs" do
2916
- a = IsoDoc::XrefGen::Counter.new("@", skip_i: true)
2917
- a.increment({})
2918
- a.increment({})
2919
- a.increment({})
2920
- a.increment({})
2921
- a.increment({})
2922
- a.increment({})
2923
- a.increment({})
2924
- a.increment({})
2925
- expect(a.print).to eq "H"
2926
- a.increment({})
2927
- expect(a.print).to eq "J"
2928
- a = IsoDoc::XrefGen::Counter.new("@")
2929
- a.increment({})
2930
- a.increment({})
2931
- a.increment({})
2932
- a.increment({})
2933
- a.increment({})
2934
- a.increment({})
2935
- a.increment({})
2936
- a.increment({})
2937
- expect(a.print).to eq "H"
2938
- a.increment({})
2939
- expect(a.print).to eq "I"
2940
- end
2941
-
2942
- it "increments counter past Z for xrefs" do
2943
- a = IsoDoc::XrefGen::Counter.new("Z")
2944
- a.increment({})
2945
- expect(a.print).to eq "AA"
2946
- a.increment({})
2947
- expect(a.print).to eq "AB"
2948
- a = IsoDoc::XrefGen::Counter.new("BZ")
2949
- a.increment({})
2950
- expect(a.print).to eq "CA"
2951
- a.increment({})
2952
- expect(a.print).to eq "CB"
2953
- a = IsoDoc::XrefGen::Counter.new("z")
2954
- a.increment({})
2955
- expect(a.print).to eq "aa"
2956
- a.increment({})
2957
- expect(a.print).to eq "ab"
2958
- a = IsoDoc::XrefGen::Counter.new("Az")
2959
- a.increment({})
2960
- expect(a.print).to eq "Ba"
2961
- a.increment({})
2962
- expect(a.print).to eq "Bb"
2963
- end
2964
2885
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: isodoc
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.8.0
4
+ version: 1.8.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-10-25 00:00:00.000000000 Z
11
+ date: 2021-11-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: asciimath
@@ -509,6 +509,7 @@ files:
509
509
  - spec/isodoc/section_spec.rb
510
510
  - spec/isodoc/table_spec.rb
511
511
  - spec/isodoc/terms_spec.rb
512
+ - spec/isodoc/xref_numbering_spec.rb
512
513
  - spec/isodoc/xref_spec.rb
513
514
  - spec/isodoc/xslfo_convert_spec.rb
514
515
  - spec/spec_helper.rb