asciidoctor-iso 0.6.1 → 0.7.0
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/.gitattributes +2 -0
- data/.travis.yml +5 -0
- data/Gemfile.lock +12 -10
- data/README.adoc +113 -16
- data/bin/rspec +18 -0
- data/lib/asciidoctor/iso/base.rb +30 -28
- data/lib/asciidoctor/iso/blocks.rb +33 -33
- data/lib/asciidoctor/iso/cleanup.rb +79 -33
- data/lib/asciidoctor/iso/cleanup_block.rb +71 -18
- data/lib/asciidoctor/iso/cleanup_ref.rb +35 -30
- data/lib/asciidoctor/iso/converter.rb +0 -3
- data/lib/asciidoctor/iso/front.rb +29 -16
- data/lib/asciidoctor/iso/html/isodoc.css +34 -0
- data/lib/asciidoctor/iso/html/wordstyle.css +138 -6
- data/lib/asciidoctor/iso/inline.rb +10 -22
- data/lib/asciidoctor/iso/isodoc.rng +66 -16
- data/lib/asciidoctor/iso/isostandard.rng +129 -15
- data/lib/asciidoctor/iso/lists.rb +49 -42
- data/lib/asciidoctor/iso/macros.rb +12 -8
- data/lib/asciidoctor/iso/section.rb +53 -37
- data/lib/asciidoctor/iso/table.rb +9 -1
- data/lib/asciidoctor/iso/utils.rb +18 -13
- data/lib/asciidoctor/iso/validate.rb +100 -24
- data/lib/asciidoctor/iso/validate_requirements.rb +106 -0
- data/lib/asciidoctor/iso/validate_section.rb +85 -65
- data/lib/asciidoctor/iso/validate_style.rb +68 -115
- data/lib/asciidoctor/iso/version.rb +1 -1
- data/spec/asciidoctor-iso/base_spec.rb +193 -0
- data/spec/asciidoctor-iso/blocks_spec.rb +426 -0
- data/spec/asciidoctor-iso/cleanup_spec.rb +687 -0
- data/spec/asciidoctor-iso/inline_spec.rb +159 -0
- data/spec/asciidoctor-iso/lists_spec.rb +189 -0
- data/spec/asciidoctor-iso/macros_spec.rb +20 -0
- data/spec/asciidoctor-iso/refs_spec.rb +194 -0
- data/spec/asciidoctor-iso/section_spec.rb +301 -0
- data/spec/asciidoctor-iso/table_spec.rb +307 -0
- data/spec/asciidoctor-iso/validate_spec.rb +749 -0
- data/spec/examples/english.yaml +69 -0
- data/spec/examples/rice.adoc +30 -28
- data/spec/examples/rice.doc +3035 -2865
- data/spec/examples/rice.html +281 -234
- data/spec/examples/rice.preview.html +30 -20
- data/spec/examples/rice.xml +250 -282
- data/spec/spec_helper.rb +87 -0
- metadata +17 -2
@@ -0,0 +1,301 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
RSpec.describe Asciidoctor::ISO do
|
4
|
+
it "processes sections" do
|
5
|
+
expect(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true))).to be_equivalent_to <<~"OUTPUT"
|
6
|
+
#{ASCIIDOC_BLANK_HDR}
|
7
|
+
.Foreword
|
8
|
+
|
9
|
+
== Introduction
|
10
|
+
|
11
|
+
=== Introduction Subsection
|
12
|
+
|
13
|
+
=== Patent Notice
|
14
|
+
|
15
|
+
== Scope
|
16
|
+
|
17
|
+
Text
|
18
|
+
|
19
|
+
== Normative References
|
20
|
+
|
21
|
+
== Terms and Definitions
|
22
|
+
|
23
|
+
=== Term1
|
24
|
+
|
25
|
+
== Terms, Definitions, Symbols and Abbreviated Terms
|
26
|
+
|
27
|
+
=== Normal Terms
|
28
|
+
|
29
|
+
==== Term2
|
30
|
+
|
31
|
+
=== Symbols and Abbreviated Terms
|
32
|
+
|
33
|
+
== Symbols and Abbreviated Terms
|
34
|
+
|
35
|
+
== Clause 4
|
36
|
+
|
37
|
+
=== Introduction
|
38
|
+
|
39
|
+
=== Clause 4.2
|
40
|
+
|
41
|
+
[appendix]
|
42
|
+
== Annex
|
43
|
+
|
44
|
+
=== Annex A.1
|
45
|
+
|
46
|
+
== Bibliography
|
47
|
+
|
48
|
+
=== Bibliography Subsection
|
49
|
+
INPUT
|
50
|
+
#{BLANK_HDR}
|
51
|
+
<introduction id="_" obligation="informative"><title>Introduction</title><subsection id="_" inline-header="false" obligation="informative">
|
52
|
+
<title>Introduction Subsection</title>
|
53
|
+
</subsection>
|
54
|
+
</introduction><sections>
|
55
|
+
<clause id="_" obligation="normative">
|
56
|
+
<title>Scope</title>
|
57
|
+
<p id="_">Text</p>
|
58
|
+
</clause>
|
59
|
+
|
60
|
+
<terms id="_" obligation="normative">
|
61
|
+
<title>Terms and Definitions</title>
|
62
|
+
<term id="_">
|
63
|
+
<preferred>Term1</preferred>
|
64
|
+
</term>
|
65
|
+
</terms>
|
66
|
+
<terms id="_" obligation="normative"><title>Terms, Definitions, Symbols and Abbreviated Terms</title><terms id="_" obligation="normative">
|
67
|
+
<title>Normal Terms</title>
|
68
|
+
<term id="_">
|
69
|
+
<preferred>Term2</preferred>
|
70
|
+
</term>
|
71
|
+
</terms>
|
72
|
+
<symbols-abbrevs id="_"/></terms>
|
73
|
+
<symbols-abbrevs id="_"/>
|
74
|
+
<clause id="_" inline-header="false" obligation="normative"><title>Clause 4</title><subsection id="_" inline-header="false" obligation="normative">
|
75
|
+
<title>Introduction</title>
|
76
|
+
</subsection>
|
77
|
+
<subsection id="_" inline-header="false" obligation="normative">
|
78
|
+
<title>Clause 4.2</title>
|
79
|
+
</subsection></clause>
|
80
|
+
|
81
|
+
</sections><annex id="_" inline-header="false" obligation="normative">
|
82
|
+
<title>Annex</title>
|
83
|
+
<subsection id="_" inline-header="false" obligation="normative">
|
84
|
+
<title>Annex A.1</title>
|
85
|
+
</subsection>
|
86
|
+
</annex><references id="_" obligation="informative">
|
87
|
+
<title>Normative References</title>
|
88
|
+
</references><references id="_" obligation="informative">
|
89
|
+
<title>Bibliography</title>
|
90
|
+
<references id="_" obligation="informative">
|
91
|
+
<title>Bibliography Subsection</title>
|
92
|
+
</references>
|
93
|
+
</references>
|
94
|
+
</iso-standard>
|
95
|
+
OUTPUT
|
96
|
+
end
|
97
|
+
|
98
|
+
it "processes sections with title attributes" do
|
99
|
+
expect(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true))).to be_equivalent_to <<~"OUTPUT"
|
100
|
+
#{ASCIIDOC_BLANK_HDR}
|
101
|
+
.Foreword
|
102
|
+
|
103
|
+
[heading=introduction]
|
104
|
+
== Εισαγωγή
|
105
|
+
|
106
|
+
=== Introduction Subsection
|
107
|
+
|
108
|
+
=== Patent Notice
|
109
|
+
|
110
|
+
[heading=scope]
|
111
|
+
== Σκοπός
|
112
|
+
|
113
|
+
Text
|
114
|
+
|
115
|
+
[heading=normative references]
|
116
|
+
== Κανονιστικές Παραπομπές
|
117
|
+
|
118
|
+
[heading=terms and definitions]
|
119
|
+
== Όροι και Ορισμοί
|
120
|
+
|
121
|
+
=== Term1
|
122
|
+
|
123
|
+
[heading="terms, definitions, symbols and abbreviated terms"]
|
124
|
+
== Όροι, Ορισμοί, Σύμβολα και Συντομογραφίες
|
125
|
+
|
126
|
+
=== Normal Terms
|
127
|
+
|
128
|
+
==== Term2
|
129
|
+
|
130
|
+
[heading=symbols and abbreviated terms]
|
131
|
+
=== Σύμβολα και Συντομογραφίες
|
132
|
+
|
133
|
+
[heading=symbols and abbreviated terms]
|
134
|
+
== Σύμβολα και Συντομογραφίες
|
135
|
+
|
136
|
+
== Clause 4
|
137
|
+
|
138
|
+
=== Introduction
|
139
|
+
|
140
|
+
=== Clause 4.2
|
141
|
+
|
142
|
+
[appendix]
|
143
|
+
== Annex
|
144
|
+
|
145
|
+
=== Annex A.1
|
146
|
+
|
147
|
+
[heading=bibliography]
|
148
|
+
== Βιβλιογραφία
|
149
|
+
|
150
|
+
=== Bibliography Subsection
|
151
|
+
INPUT
|
152
|
+
#{BLANK_HDR}
|
153
|
+
<introduction id="_" obligation="informative"><title>Introduction</title><subsection id="_" inline-header="false" obligation="informative">
|
154
|
+
<title>Introduction Subsection</title>
|
155
|
+
</subsection>
|
156
|
+
</introduction><sections>
|
157
|
+
<clause id="_" obligation="normative">
|
158
|
+
<title>Scope</title>
|
159
|
+
<p id="_">Text</p>
|
160
|
+
</clause>
|
161
|
+
|
162
|
+
<terms id="_" obligation="normative">
|
163
|
+
<title>Terms and Definitions</title>
|
164
|
+
<term id="_">
|
165
|
+
<preferred>Term1</preferred>
|
166
|
+
</term>
|
167
|
+
</terms>
|
168
|
+
<terms id="_" obligation="normative"><title>Terms and Definitions</title><terms id="_" obligation="normative">
|
169
|
+
<title>Normal Terms</title>
|
170
|
+
<term id="_">
|
171
|
+
<preferred>Term2</preferred>
|
172
|
+
</term>
|
173
|
+
</terms>
|
174
|
+
<symbols-abbrevs id="_"/></terms>
|
175
|
+
<symbols-abbrevs id="_"/>
|
176
|
+
<clause id="_" inline-header="false" obligation="normative"><title>Clause 4</title><subsection id="_" inline-header="false" obligation="normative">
|
177
|
+
<title>Introduction</title>
|
178
|
+
</subsection>
|
179
|
+
<subsection id="_" inline-header="false" obligation="normative">
|
180
|
+
<title>Clause 4.2</title>
|
181
|
+
</subsection></clause>
|
182
|
+
|
183
|
+
</sections><annex id="_" inline-header="false" obligation="normative">
|
184
|
+
<title>Annex</title>
|
185
|
+
<subsection id="_" inline-header="false" obligation="normative">
|
186
|
+
<title>Annex A.1</title>
|
187
|
+
</subsection>
|
188
|
+
</annex><references id="_" obligation="informative">
|
189
|
+
<title>Normative References</title>
|
190
|
+
</references><references id="_" obligation="informative">
|
191
|
+
<title>Bibliography</title>
|
192
|
+
<references id="_" obligation="informative">
|
193
|
+
<title>Bibliography Subsection</title>
|
194
|
+
</references>
|
195
|
+
</references>
|
196
|
+
</iso-standard>
|
197
|
+
OUTPUT
|
198
|
+
end
|
199
|
+
|
200
|
+
it "processes section obligations" do
|
201
|
+
expect(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true))).to be_equivalent_to <<~"OUTPUT"
|
202
|
+
#{ASCIIDOC_BLANK_HDR}
|
203
|
+
[obligation=informative]
|
204
|
+
== Clause 1
|
205
|
+
|
206
|
+
=== Clause 1a
|
207
|
+
|
208
|
+
[obligation=normative]
|
209
|
+
== Clause 2
|
210
|
+
|
211
|
+
[appendix,obligation=informative]
|
212
|
+
== Annex
|
213
|
+
INPUT
|
214
|
+
#{BLANK_HDR}
|
215
|
+
<sections><clause id="_" inline-header="false" obligation="informative">
|
216
|
+
<title>Clause 1</title>
|
217
|
+
<subsection id="_" inline-header="false" obligation="informative">
|
218
|
+
<title>Clause 1a</title>
|
219
|
+
</subsection>
|
220
|
+
</clause>
|
221
|
+
<clause id="_" inline-header="false" obligation="normative">
|
222
|
+
<title>Clause 2</title>
|
223
|
+
</clause>
|
224
|
+
</sections><annex id="_" inline-header="false" obligation="informative">
|
225
|
+
<title>Annex</title>
|
226
|
+
</annex>
|
227
|
+
</iso-standard>
|
228
|
+
OUTPUT
|
229
|
+
end
|
230
|
+
|
231
|
+
it "processes inline headers" do
|
232
|
+
expect(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true))).to be_equivalent_to <<~"OUTPUT"
|
233
|
+
#{ASCIIDOC_BLANK_HDR}
|
234
|
+
== Clause 1
|
235
|
+
|
236
|
+
[%inline-header]
|
237
|
+
=== Clause 1a
|
238
|
+
|
239
|
+
[appendix]
|
240
|
+
== Annex A
|
241
|
+
|
242
|
+
[%inline-header]
|
243
|
+
=== Clause Aa
|
244
|
+
INPUT
|
245
|
+
#{BLANK_HDR}
|
246
|
+
<sections><clause id="_" inline-header="false" obligation="normative">
|
247
|
+
<title>Clause 1</title>
|
248
|
+
<subsection id="_" inline-header="true" obligation="normative">
|
249
|
+
<title>Clause 1a</title>
|
250
|
+
</subsection>
|
251
|
+
</clause>
|
252
|
+
</sections><annex id="_" inline-header="false" obligation="normative">
|
253
|
+
<title>Annex A</title>
|
254
|
+
<subsection id="_" inline-header="true" obligation="normative">
|
255
|
+
<title>Clause Aa</title>
|
256
|
+
</subsection>
|
257
|
+
</annex>
|
258
|
+
</iso-standard>
|
259
|
+
OUTPUT
|
260
|
+
end
|
261
|
+
|
262
|
+
it "processes blank headers" do
|
263
|
+
expect(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true))).to be_equivalent_to <<~"OUTPUT"
|
264
|
+
#{ASCIIDOC_BLANK_HDR}
|
265
|
+
== Clause 1
|
266
|
+
|
267
|
+
=== {blank}
|
268
|
+
|
269
|
+
INPUT
|
270
|
+
#{BLANK_HDR}
|
271
|
+
<sections>
|
272
|
+
<clause id="_" inline-header="false" obligation="normative">
|
273
|
+
<title>Clause 1</title>
|
274
|
+
<subsection id="_" inline-header="false" obligation="normative">
|
275
|
+
</subsection>
|
276
|
+
</clause>
|
277
|
+
</sections>
|
278
|
+
</iso-standard>
|
279
|
+
OUTPUT
|
280
|
+
end
|
281
|
+
|
282
|
+
it "processes term document sources" do
|
283
|
+
expect(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true))).to be_equivalent_to <<~"OUTPUT"
|
284
|
+
#{ASCIIDOC_BLANK_HDR}
|
285
|
+
[source="iso1234,iso5678"]
|
286
|
+
== Terms and Definitions
|
287
|
+
|
288
|
+
INPUT
|
289
|
+
#{BLANK_HDR}
|
290
|
+
<sections>
|
291
|
+
<terms id="_" obligation="normative">
|
292
|
+
<title>Terms and Definitions</title>
|
293
|
+
<source type="inline" bibitemid="iso1234" citeas=""/>
|
294
|
+
<source type="inline" bibitemid="iso5678" citeas=""/>
|
295
|
+
</terms>
|
296
|
+
</sections>
|
297
|
+
</iso-standard>
|
298
|
+
OUTPUT
|
299
|
+
end
|
300
|
+
|
301
|
+
end
|
@@ -0,0 +1,307 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
RSpec.describe Asciidoctor::ISO do
|
4
|
+
it "processes basic tables" do
|
5
|
+
expect(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true))).to be_equivalent_to <<~"OUTPUT"
|
6
|
+
#{ASCIIDOC_BLANK_HDR}
|
7
|
+
.Table Name
|
8
|
+
|===
|
9
|
+
|A |B |C
|
10
|
+
|
11
|
+
h|1 |2 |3
|
12
|
+
|===
|
13
|
+
INPUT
|
14
|
+
#{BLANK_HDR}
|
15
|
+
<sections>
|
16
|
+
<table id="_">
|
17
|
+
<name>Table Name</name>
|
18
|
+
<thead>
|
19
|
+
<tr>
|
20
|
+
<th align="left">A</th>
|
21
|
+
<th align="left">B</th>
|
22
|
+
<th align="left">C</th>
|
23
|
+
</tr>
|
24
|
+
</thead>
|
25
|
+
<tbody>
|
26
|
+
<tr>
|
27
|
+
<th align="left">1</th>
|
28
|
+
<td align="left">2</td>
|
29
|
+
<td align="left">3</td>
|
30
|
+
</tr>
|
31
|
+
</tbody>
|
32
|
+
</table>
|
33
|
+
</sections>
|
34
|
+
</iso-standard>
|
35
|
+
OUTPUT
|
36
|
+
end
|
37
|
+
|
38
|
+
it "inserts header rows in a table with a name and no header" do
|
39
|
+
expect(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true))).to be_equivalent_to <<~"OUTPUT"
|
40
|
+
#{ASCIIDOC_BLANK_HDR}
|
41
|
+
[headerrows=2]
|
42
|
+
.Table Name
|
43
|
+
|===
|
44
|
+
|A |B |C
|
45
|
+
h|1 |2 |3
|
46
|
+
h|1 |2 |3
|
47
|
+
|===
|
48
|
+
INPUT
|
49
|
+
#{BLANK_HDR}
|
50
|
+
<sections>
|
51
|
+
<table id="_">
|
52
|
+
<name>Table Name</name>
|
53
|
+
<thead><tr>
|
54
|
+
<td align="left">A</td>
|
55
|
+
<td align="left">B</td>
|
56
|
+
<td align="left">C</td>
|
57
|
+
</tr><tr>
|
58
|
+
<th align="left">1</th>
|
59
|
+
<td align="left">2</td>
|
60
|
+
<td align="left">3</td>
|
61
|
+
</tr></thead>
|
62
|
+
<tbody>
|
63
|
+
|
64
|
+
|
65
|
+
<tr>
|
66
|
+
<th align="left">1</th>
|
67
|
+
<td align="left">2</td>
|
68
|
+
<td align="left">3</td>
|
69
|
+
</tr>
|
70
|
+
</tbody>
|
71
|
+
</table>
|
72
|
+
</sections>
|
73
|
+
</iso-standard>
|
74
|
+
OUTPUT
|
75
|
+
end
|
76
|
+
|
77
|
+
|
78
|
+
it "inserts header rows in a table without a name and no header" do
|
79
|
+
expect(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true))).to be_equivalent_to <<~"OUTPUT"
|
80
|
+
#{ASCIIDOC_BLANK_HDR}
|
81
|
+
[headerrows=2]
|
82
|
+
|===
|
83
|
+
|A |B |C
|
84
|
+
h|1 |2 |3
|
85
|
+
h|1 |2 |3
|
86
|
+
|===
|
87
|
+
INPUT
|
88
|
+
#{BLANK_HDR}
|
89
|
+
<sections>
|
90
|
+
<table id="_"><thead><tr>
|
91
|
+
<td align="left">A</td>
|
92
|
+
<td align="left">B</td>
|
93
|
+
<td align="left">C</td>
|
94
|
+
</tr><tr>
|
95
|
+
<th align="left">1</th>
|
96
|
+
<td align="left">2</td>
|
97
|
+
<td align="left">3</td>
|
98
|
+
</tr></thead>
|
99
|
+
<tbody>
|
100
|
+
|
101
|
+
|
102
|
+
<tr>
|
103
|
+
<th align="left">1</th>
|
104
|
+
<td align="left">2</td>
|
105
|
+
<td align="left">3</td>
|
106
|
+
</tr>
|
107
|
+
</tbody>
|
108
|
+
</table>
|
109
|
+
</sections>
|
110
|
+
</iso-standard>
|
111
|
+
OUTPUT
|
112
|
+
end
|
113
|
+
|
114
|
+
it "processes complex tables" do
|
115
|
+
expect(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true))).to be_equivalent_to <<~"OUTPUT"
|
116
|
+
#{ASCIIDOC_BLANK_HDR}
|
117
|
+
[cols="<,^,^,^,^",options="header,footer",headerrows=2]
|
118
|
+
.Maximum permissible mass fraction of defects
|
119
|
+
|===
|
120
|
+
.2+|Defect 4+^| Maximum permissible mass fraction of defects in husked rice +
|
121
|
+
stem:[w_max]
|
122
|
+
| in husked rice | in milled rice (non-glutinous) | in husked parboiled rice | in milled parboiled rice
|
123
|
+
|
124
|
+
| Extraneous matter: organic footnote:[Organic extraneous matter includes foreign seeds, husks, bran, parts of straw, etc.] | 1,0 | 0,5 | 1,0 | 0,5
|
125
|
+
// not rendered list here
|
126
|
+
| Extraneous matter: inorganic footnote:[Inorganic extraneous matter includes stones, sand, dust, etc.] | 0,5 | 0,5 | 0,5 | 0,5
|
127
|
+
| Paddy | 2,5 | 0,3 | 2,5 | 0,3
|
128
|
+
| Husked rice, non-parboiled | Not applicable | 1,0 | 1,0 | 1,0
|
129
|
+
| Milled rice, non-parboiled | 1,0 | Not applicable | 1,0 | 1,0
|
130
|
+
| Husked rice, parboiled | 1,0 | 1,0 | Not applicable | 1,0
|
131
|
+
| Milled rice, parboiled | 1,0 | 1,0 | 1,0 | Not applicable
|
132
|
+
| Chips | 0,1 | 0,1 | 0,1 | 0,1
|
133
|
+
| HDK | 2,0 footnoteref:[defectsmass,The maximum permissible mass fraction of defects shall be determined with respect to the mass fraction obtained after milling.] | 2,0 | 2,0 footnoteref:[defectsmass] | 2,0
|
134
|
+
| Damaged kernels | 4,0 | 3,0 | 4,0 | 3,0
|
135
|
+
| Immature and/or malformed kernels | 8,0 | 2,0 | 8,0 | 2,0
|
136
|
+
| Chalky kernels | 5,0 footnoteref:[defectsmass] | 5,0 | Not applicable | Not applicable
|
137
|
+
| Red kernels and red-streaked kernels | 12,0 | 12,0 | 12,0 footnoteref:[defectsmass] | 12,0
|
138
|
+
| Partly gelatinized kernels | Not applicable | Not applicable | 11,0 footnoteref:[defectsmass] | 11,0
|
139
|
+
| Pecks | Not applicable | Not applicable | 4,0 | 2,0
|
140
|
+
| Waxy rice | 1,0 footnoteref:[defectsmass] | 1,0 | 1,0 footnoteref:[defectsmass] | 1,0
|
141
|
+
|
142
|
+
5+a| Live insects shall not be present. Dead insects shall be included in extraneous matter.
|
143
|
+
|===
|
144
|
+
INPUT
|
145
|
+
#{BLANK_HDR}
|
146
|
+
<sections>
|
147
|
+
<table id="_">
|
148
|
+
<name>Maximum permissible mass fraction of defects</name>
|
149
|
+
<thead>
|
150
|
+
<tr>
|
151
|
+
<th rowspan="2" align="left">Defect</th>
|
152
|
+
<th colspan="4" align="center">Maximum permissible mass fraction of defects in husked rice<br/>
|
153
|
+
<stem type="AsciiMath">w_max</stem></th>
|
154
|
+
</tr>
|
155
|
+
<tr>
|
156
|
+
<td align="left">in husked rice</td>
|
157
|
+
<td align="center">in milled rice (non-glutinous)</td>
|
158
|
+
<td align="center">in husked parboiled rice</td>
|
159
|
+
<td align="center">in milled parboiled rice</td>
|
160
|
+
</tr></thead>
|
161
|
+
<tbody>
|
162
|
+
|
163
|
+
<tr>
|
164
|
+
<td align="left">Extraneous matter: organic<fn reference="a">
|
165
|
+
<p id="_">Organic extraneous matter includes foreign seeds, husks, bran, parts of straw, etc.</p>
|
166
|
+
</fn></td>
|
167
|
+
<td align="center">1,0</td>
|
168
|
+
<td align="center">0,5</td>
|
169
|
+
<td align="center">1,0</td>
|
170
|
+
<td align="center">0,5</td>
|
171
|
+
</tr>
|
172
|
+
<tr>
|
173
|
+
<td align="left">Extraneous matter: inorganic<fn reference="b">
|
174
|
+
<p id="_">Inorganic extraneous matter includes stones, sand, dust, etc.</p>
|
175
|
+
</fn></td>
|
176
|
+
<td align="center">0,5</td>
|
177
|
+
<td align="center">0,5</td>
|
178
|
+
<td align="center">0,5</td>
|
179
|
+
<td align="center">0,5</td>
|
180
|
+
</tr>
|
181
|
+
<tr>
|
182
|
+
<td align="left">Paddy</td>
|
183
|
+
<td align="center">2,5</td>
|
184
|
+
<td align="center">0,3</td>
|
185
|
+
<td align="center">2,5</td>
|
186
|
+
<td align="center">0,3</td>
|
187
|
+
</tr>
|
188
|
+
<tr>
|
189
|
+
<td align="left">Husked rice, non-parboiled</td>
|
190
|
+
<td align="center">Not applicable</td>
|
191
|
+
<td align="center">1,0</td>
|
192
|
+
<td align="center">1,0</td>
|
193
|
+
<td align="center">1,0</td>
|
194
|
+
</tr>
|
195
|
+
<tr>
|
196
|
+
<td align="left">Milled rice, non-parboiled</td>
|
197
|
+
<td align="center">1,0</td>
|
198
|
+
<td align="center">Not applicable</td>
|
199
|
+
<td align="center">1,0</td>
|
200
|
+
<td align="center">1,0</td>
|
201
|
+
</tr>
|
202
|
+
<tr>
|
203
|
+
<td align="left">Husked rice, parboiled</td>
|
204
|
+
<td align="center">1,0</td>
|
205
|
+
<td align="center">1,0</td>
|
206
|
+
<td align="center">Not applicable</td>
|
207
|
+
<td align="center">1,0</td>
|
208
|
+
</tr>
|
209
|
+
<tr>
|
210
|
+
<td align="left">Milled rice, parboiled</td>
|
211
|
+
<td align="center">1,0</td>
|
212
|
+
<td align="center">1,0</td>
|
213
|
+
<td align="center">1,0</td>
|
214
|
+
<td align="center">Not applicable</td>
|
215
|
+
</tr>
|
216
|
+
<tr>
|
217
|
+
<td align="left">Chips</td>
|
218
|
+
<td align="center">0,1</td>
|
219
|
+
<td align="center">0,1</td>
|
220
|
+
<td align="center">0,1</td>
|
221
|
+
<td align="center">0,1</td>
|
222
|
+
</tr>
|
223
|
+
<tr>
|
224
|
+
<td align="left">HDK</td>
|
225
|
+
<td align="center">2,0<fn reference="c">
|
226
|
+
<p id="_">The maximum permissible mass fraction of defects shall be determined with respect to the mass fraction obtained after milling.</p>
|
227
|
+
</fn></td>
|
228
|
+
<td align="center">2,0</td>
|
229
|
+
<td align="center">2,0<fn reference="c">
|
230
|
+
<p id="_">The maximum permissible mass fraction of defects shall be determined with respect to the mass fraction obtained after milling.</p>
|
231
|
+
</fn></td>
|
232
|
+
<td align="center">2,0</td>
|
233
|
+
</tr>
|
234
|
+
<tr>
|
235
|
+
<td align="left">Damaged kernels</td>
|
236
|
+
<td align="center">4,0</td>
|
237
|
+
<td align="center">3,0</td>
|
238
|
+
<td align="center">4,0</td>
|
239
|
+
<td align="center">3,0</td>
|
240
|
+
</tr>
|
241
|
+
<tr>
|
242
|
+
<td align="left">Immature and/or malformed kernels</td>
|
243
|
+
<td align="center">8,0</td>
|
244
|
+
<td align="center">2,0</td>
|
245
|
+
<td align="center">8,0</td>
|
246
|
+
<td align="center">2,0</td>
|
247
|
+
</tr>
|
248
|
+
<tr>
|
249
|
+
<td align="left">Chalky kernels</td>
|
250
|
+
<td align="center">5,0<fn reference="c">
|
251
|
+
<p id="_">The maximum permissible mass fraction of defects shall be determined with respect to the mass fraction obtained after milling.</p>
|
252
|
+
</fn></td>
|
253
|
+
<td align="center">5,0</td>
|
254
|
+
<td align="center">Not applicable</td>
|
255
|
+
<td align="center">Not applicable</td>
|
256
|
+
</tr>
|
257
|
+
<tr>
|
258
|
+
<td align="left">Red kernels and red-streaked kernels</td>
|
259
|
+
<td align="center">12,0</td>
|
260
|
+
<td align="center">12,0</td>
|
261
|
+
<td align="center">12,0<fn reference="c">
|
262
|
+
<p id="_">The maximum permissible mass fraction of defects shall be determined with respect to the mass fraction obtained after milling.</p>
|
263
|
+
</fn></td>
|
264
|
+
<td align="center">12,0</td>
|
265
|
+
</tr>
|
266
|
+
<tr>
|
267
|
+
<td align="left">Partly gelatinized kernels</td>
|
268
|
+
<td align="center">Not applicable</td>
|
269
|
+
<td align="center">Not applicable</td>
|
270
|
+
<td align="center">11,0<fn reference="c">
|
271
|
+
<p id="_">The maximum permissible mass fraction of defects shall be determined with respect to the mass fraction obtained after milling.</p>
|
272
|
+
</fn></td>
|
273
|
+
<td align="center">11,0</td>
|
274
|
+
</tr>
|
275
|
+
<tr>
|
276
|
+
<td align="left">Pecks</td>
|
277
|
+
<td align="center">Not applicable</td>
|
278
|
+
<td align="center">Not applicable</td>
|
279
|
+
<td align="center">4,0</td>
|
280
|
+
<td align="center">2,0</td>
|
281
|
+
</tr>
|
282
|
+
<tr>
|
283
|
+
<td align="left">Waxy rice</td>
|
284
|
+
<td align="center">1,0<fn reference="c">
|
285
|
+
<p id="_">The maximum permissible mass fraction of defects shall be determined with respect to the mass fraction obtained after milling.</p>
|
286
|
+
</fn></td>
|
287
|
+
<td align="center">1,0</td>
|
288
|
+
<td align="center">1,0<fn reference="c">
|
289
|
+
<p id="_">The maximum permissible mass fraction of defects shall be determined with respect to the mass fraction obtained after milling.</p>
|
290
|
+
</fn></td>
|
291
|
+
<td align="center">1,0</td>
|
292
|
+
</tr>
|
293
|
+
</tbody>
|
294
|
+
<tfoot>
|
295
|
+
<tr>
|
296
|
+
<td colspan="5" align="left">
|
297
|
+
<p id="_">Live insects shall not be present. Dead insects shall be included in extraneous matter.</p>
|
298
|
+
</td>
|
299
|
+
</tr>
|
300
|
+
</tfoot>
|
301
|
+
</table>
|
302
|
+
</sections>
|
303
|
+
</iso-standard>
|
304
|
+
OUTPUT
|
305
|
+
end
|
306
|
+
end
|
307
|
+
|