wortsammler 0.0.3 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
data/resources/logo.jpg CHANGED
Binary file
data/resources/main.md CHANGED
@@ -1,6 +1,6 @@
1
1
  % Wortsammler sample document
2
2
  % Bernhard Weichel; and others
3
- % date
3
+ % 2013/05
4
4
 
5
5
  # Introduction
6
6
 
@@ -266,3 +266,8 @@ Paragraphs like starting with
266
266
 
267
267
  }(RS_Comp_003)
268
268
 
269
+ ### this should not show up in toc
270
+
271
+ This chapter should not show up in the toc
272
+
273
+
@@ -6,6 +6,7 @@
6
6
  - latex
7
7
  - docx
8
8
  - html
9
+ - pdf
9
10
 
10
11
  :vars:
11
12
  :lang: german
@@ -13,11 +14,12 @@
13
14
  :mainfont: Calibri
14
15
  :sansfont: Calibri
15
16
  :geometry: a4paper
17
+ :logofile: ../ZSUPP_Styles/logo.jpg
16
18
 
17
19
  :stylefiles:
18
- :latex: ../ZSUPP_Styles/default.latex
19
- :docx: ../ZSUPP_Styles/default.docx
20
- :html: ../ZSUPP_Styles/default.css
20
+ :latex: ../ZSUPP_Styles/default.wortsammler.latex
21
+ :docx: ../ZSUPP_Styles/default.wortsammler.docx
22
+ :html: ../ZSUPP_Styles/default.wortsammler.css
21
23
 
22
24
  :input:
23
25
  - ../001_main/main.md
Binary file
@@ -0,0 +1,8 @@
1
+ require 'wortsammler/class.proolib.rb'
2
+
3
+ describe PandocBeautifier do
4
+ it "checks the availability of the right pandoc version", :exp=> false do
5
+
6
+ PandocBeautifier.new.check_pandoc_version.should == true
7
+ end
8
+ end
Binary file
@@ -0,0 +1,48 @@
1
+ require 'wortsammler/pdf_utilities'
2
+ describe "pdf utilities:", :exp => false do
3
+
4
+
5
+ before :all do
6
+ @indir=File.dirname(__FILE__)
7
+ @outdir=File.absolute_path("#{@indir}/../testoutput")
8
+ @testbase="wortsammler_test"
9
+ FileUtils.rm(Dir["#{@outdir}/#{@testbase}*.pdf"])
10
+ end
11
+
12
+ it "adjusts the bounding box of a pdf file" do
13
+ pdffile="#{@testbase}_pdf.pdf"
14
+ FileUtils.cp("#{@indir}/#{pdffile}", @outdir )
15
+ Wortsammler.crop_pdf("#{@outdir}/#{pdffile}")
16
+
17
+ Dir["#{@outdir}/#{@testbase}_pdf.pdf"].count.should==1
18
+ end
19
+
20
+ it "converts an excel sheet to pdf" do
21
+ infile="#{@testbase}_xlsx.xlsx"
22
+ @pdf_files = Wortsammler.xlsx_to_pdf("#{@indir}/#{infile}", "#{@outdir}/#{@testbase}_xlsx.pdf")
23
+
24
+ Dir["#{@outdir}/#{@testbase}_xlsx*.pdf"].count.should==2
25
+ end
26
+
27
+ it "converts a powerpoint to pdf" do
28
+ infile="#{@testbase}_pptx.pptx"
29
+ outfile="#{@outdir}/#{@testbase}_pptx.pdf"
30
+ Wortsammler.pptx_to_pdf("#{@indir}/#{infile}", outfile)
31
+ Dir["#{@outdir}/#{@testbase}_pptx.pdf"].count.should==1
32
+ end
33
+
34
+ it "converts an excelsheet to cropped pdf" do
35
+ infile="#{@testbase}_xlsx.xlsx"
36
+
37
+ @pdf_files = Wortsammler.xlsx_to_cropped_pdf("#{@indir}/#{infile}", "#{@outdir}/#{@testbase}_xlsx_cropped.pdf")
38
+ Dir["#{@outdir}/#{@testbase}_xlsx_cropped*.pdf"].count.should==2
39
+ end
40
+
41
+ it "converts a powerpoint to cropped pdf" do
42
+ infile="#{@testbase}_pptx.pptx"
43
+ outfile="#{@outdir}/#{@testbase}_pptx_cropped.pdf"
44
+ Wortsammler.pptx_to_cropped_pdf("#{@indir}/#{infile}", outfile)
45
+ Dir["#{@outdir}/#{@testbase}_pptx_cropped.pdf"].count.should==1
46
+ end
47
+
48
+ end
@@ -5,6 +5,8 @@ require 'pry'
5
5
  wortsammlerbin = "'#{File.expand_path("bin")}'"
6
6
  wortsammler = "'#{File.expand_path(File.join("bin", "wortsammler"))}'"
7
7
  testprojectdir = "testproject/30_Sources"
8
+ specdir =File.dirname(__FILE__)
9
+
8
10
 
9
11
  describe "Wortsammler generic issues" do
10
12
 
@@ -14,11 +16,13 @@ describe "Wortsammler generic issues" do
14
16
  $?.success?.should==true
15
17
  end
16
18
 
17
- it "can create a new project folder" do
19
+ it "can create a new project folder", :exp => false do
20
+ FileUtils.rm_rf(testprojectdir)
18
21
  system "#{wortsammler} -n #{testprojectdir}"
19
22
  $?.success?.should==true
20
23
 
21
24
  Dir["#{testprojectdir}/**/*"].should include "#{testprojectdir}/001_Main"
25
+ Dir["#{testprojectdir}/**/snippets.xlsx"].should include "#{testprojectdir}/900_snippets/snippets.xlsx"
22
26
  end
23
27
 
24
28
  it "does not initialize into an existing project folder" do
@@ -26,6 +30,10 @@ describe "Wortsammler generic issues" do
26
30
  `#{wortsammler} -n #{tempdir}`
27
31
  $?.success?.should==false
28
32
  end
33
+
34
+ it "controls the pandoc options by document class" do
35
+ pending "implmenet test to control pandoc options by document class"
36
+ end
29
37
  end
30
38
 
31
39
  describe "Wortsammler options validator" do
@@ -76,6 +84,15 @@ describe "Wortsammler beautifier features" do
76
84
  beautified_result.should include("# this is headline")
77
85
  end
78
86
 
87
+ it "recognizes if the specified manifest file is a directory", exp: false do
88
+ FileUtils.cd("testproject/30_Sources/ZSUPP_Tools") {|d|
89
+ manifest="../ZSUPP_Manifests"
90
+ cmd= "#{wortsammler} -bm #{manifest} 2>&1"
91
+ r=`#{cmd}`
92
+ r.include?("directory").should==true
93
+ }
94
+ $?.success?.should==false
95
+ end
79
96
  it "beautifies input files in a manifest" do
80
97
  FileUtils.cd("testproject/30_Sources/ZSUPP_Tools") {|d|
81
98
  manifest="../ZSUPP_Manifests/sample_the-sample-document.yaml"
@@ -132,20 +149,82 @@ describe "Wortsammler conversion" do
132
149
  end
133
150
 
134
151
 
152
+ it "handles chapters up to 6 levels", exp: false do
153
+ tempdir="#{specdir}/../testoutput"
154
+ mdfile="#{tempdir}/chapternesting.md"
155
+ mdtext="#this is headline\n\n lorem ipsum\n\nbla fasel"
156
+ def lorem(j)
157
+ (1.upto 100) .map{|i| "text_#{j} lorem ipsum #{i} dolor "}.join(" ")
158
+ end
159
+ def chapter(i, depth)
160
+ ["\n\n", "##########"[1..depth], " this is example on level #{i} .. #{depth}\n\n",
161
+ lorem(i),
162
+ ].join("")
163
+ end
164
+ File.open(mdfile, "w"){|f|
165
+ 1.upto 10 do |i|
166
+ 1.upto 6 do |j|
167
+ f.puts chapter(i,j)
168
+ end
169
+ end
170
+ }
171
+
172
+ system "#{wortsammler} -pbi '#{mdfile}' -o '#{tempdir}' -f pdf:latex"
173
+ $?.success?.should==true
174
+
175
+ Dir["#{tempdir}/chapternesting*"].map{|f|File.basename(f)}.sort.should== ["chapternesting.md",
176
+ "chapternesting.pdf",
177
+ "chapternesting.latex",
178
+ "chapternesting.md.bak"
179
+ ].sort
180
+ end
181
+
182
+ it "handles lists up to 9 levels", exp: false do
183
+ tempdir="#{specdir}/../testoutput"
184
+ mdfile="#{tempdir}/listnesting.md"
185
+ mdtext="#this is headline\n\n lorem ipsum\n\nbla fasel"
186
+ def lorem(j)
187
+ (1.upto 100) .map{|i| "text_#{j} lorem ipsum #{i} dolor "}.join(" ")
188
+ end
189
+ def chapter(i, depth)
190
+ ["\n\n", "##########"[1..depth], " this is example on level #{i} .. #{depth}\n\n",
191
+ lorem(i),
192
+ ].join("")
193
+ end
194
+ File.open(mdfile, "w"){|f|
195
+ f.puts "# depth test for lists"
196
+ f.puts ""
197
+ f.puts lorem(1)
198
+ f.puts ""
199
+
200
+ 0.upto 8 do |i|
201
+ f.puts [" "*i, "- this is list level #{i}"].join
202
+ end
203
+ }
204
+
205
+ system "#{wortsammler} -pbi '#{mdfile}' -o '#{tempdir}' -f pdf:latex"
206
+ $?.success?.should==true
207
+
208
+ Dir["#{tempdir}/listnesting*"].map{|f|File.basename(f)}.sort.should== ["listnesting.md",
209
+ "listnesting.pdf",
210
+ "listnesting.latex",
211
+ "listnesting.md.bak"
212
+ ].sort
213
+ end
214
+
135
215
  it "converts all files within a folder to output format" do
136
216
  tempdir=Dir.mktmpdir
137
- system "#{wortsammler} -pi . -o #{tempdir} -f latex:pdf:html:docx"
138
- $?.success?.should==true
217
+ mdtext="# Header\n\n lorem ipsum\n"
218
+ basefiles = ["f1", "f2", "f3"]
219
+ outfiles = basefiles.map{|f| ["#{f}.md", "#{f}.latex"]}.flatten.sort
220
+ basefiles.each{|f|
221
+ File.open("#{tempdir}/#{f}.md", "w"){|fo|fo.puts mdtext}
222
+ }
139
223
 
224
+ system "#{wortsammler} -pi #{tempdir} -o #{tempdir} -f latex"
225
+ $?.success?.should==true
140
226
 
141
- Dir["#{tempdir}/*"].map{|f|File.basename(f)}.should== ["main.docx",
142
- "main.html",
143
- "main.latex",
144
- "main.pdf",
145
- "README.docx",
146
- "README.html",
147
- "README.latex",
148
- "README.pdf"]
227
+ Dir["#{tempdir}/*"].map{|f|File.basename(f)}.sort.should== outfiles
149
228
 
150
229
  end
151
230
 
@@ -170,16 +249,72 @@ describe "Wortsammler conversion" do
170
249
  $?.success?.should==true
171
250
  end
172
251
 
252
+ it "processes snippets" do
253
+ pending "Test not yet implemented"
254
+ end
255
+
256
+ it "handles undefined snippets" do
257
+ pending "Test not yet implemented"
258
+ end
259
+
260
+
261
+
262
+ it "runs the rake file in the sample document" do
263
+ FileUtils.cd("testproject/30_Sources/ZSUPP_Tools") {|d|
264
+ path=ENV['PATH']
265
+ ENV['PATH']="#{wortsammlerbin}:#{path}"
266
+ puts ENV['PATH']
267
+ #system 'wortsammler -h'
268
+ cmd= "rake sample"
269
+ system cmd
270
+ }
271
+ $?.success?.should==true
272
+ end
273
+
274
+ it "compiles all documents" do
275
+ FileUtils.cd("testproject/30_Sources/ZSUPP_Tools") {|d|
276
+ path=ENV['PATH']
277
+ ENV['PATH']="#{wortsammlerbin}:#{path}"
278
+ puts ENV['PATH']
279
+ #system 'wortsammler -h'
280
+ cmd= "rake all"
281
+ #system cmd
282
+ }
283
+ end
284
+ end
285
+
286
+
287
+ describe "Wortsammler syntax extensions", :exp => false do
288
+ it "[RS_Comp_012] supports embedded images" do
289
+ tempdir ="#{specdir}/../testoutput"
290
+ imagefile ="floating-image.pdf"
291
+
292
+ FileUtils.cd(tempdir){|c|
293
+ FileUtils.cp("#{specdir}/#{imagefile}", ".")
294
+
295
+ mdfile="embedded-image.md"
296
+
297
+ mdtext=["#this is headline",
298
+ (5..100).to_a.map{|oi|
299
+ ["\n\n",
300
+ "this is image\n\n~~EMBED \"#{imagefile}\" o 40mm 60mm~~",
301
+ (1..20).to_a.map{|ii|
302
+ "#{oi} und #{ii} lorem ipsum und blafasel"
303
+ }.join(" "),
304
+ "\n\n",
305
+ (5..15+oi).to_a.map{|ii|
306
+ "#{oi} und #{ii} lorem ipsum und blafasel"
307
+ }.join(" "),
308
+ "\n\n"]
309
+ }
310
+ ].flatten.join("\n")
311
+
312
+ File.open(mdfile, "w"){|f| f.puts mdtext}
313
+
314
+ system "#{wortsammler} -pi '#{mdfile}' -o '.' -f pdf:latex:html:docx"
315
+ FileUtils.rm imagefile
316
+ }
317
+ $?.success?.should==true
318
+ end
173
319
 
174
- # it "shall run the rake file in the sample document" do
175
- # FileUtils.cd("testproject/30_Sources/ZSUPP_Tools") {|d|
176
- # path=ENV['PATH']
177
- # ENV['PATH']="#{wortsammlerbin}:#{path}"
178
- # puts ENV['PATH']
179
- # system 'wortsammler -h'
180
- # #cmd= "rake sample"
181
- # #system cmd
182
- # }
183
- # $?.success?.should==true
184
- # end
185
320
  end
Binary file
Binary file
Binary file
Binary file
@@ -284,126 +284,15 @@ a {
284
284
  <div class="results">
285
285
  <div id="div_group_1" class="example_group passed">
286
286
  <dl style="margin-left: 0px;">
287
- <dt id="example_group_1" class="passed">TraceableSet</dt>
288
- <script type="text/javascript">moveProgressBar('2.2');</script>
289
- <dd class="example passed"><span class="passed_spec_name">should return a blank instance</span><span class='duration'>0.00021s</span></dd>
290
- <script type="text/javascript">moveProgressBar('4.4');</script>
291
- <dd class="example passed"><span class="passed_spec_name">allows to add Traceables</span><span class='duration'>0.00011s</span></dd>
292
- <script type="text/javascript">moveProgressBar('6.6');</script>
293
- <dd class="example passed"><span class="passed_spec_name">delivers the first of the duplicates</span><span class='duration'>0.00011s</span></dd>
294
- <script type="text/javascript">moveProgressBar('8.8');</script>
295
- <dd class="example passed"><span class="passed_spec_name">advertises duplicates</span><span class='duration'>0.00018s</span></dd>
296
- <script type="text/javascript">moveProgressBar('11.1');</script>
297
- <dd class="example passed"><span class="passed_spec_name">adertises undefined traceables</span><span class='duration'>0.00011s</span></dd>
298
- <script type="text/javascript">moveProgressBar('13.3');</script>
299
- <dd class="example passed"><span class="passed_spec_name">advertises all traceables</span><span class='duration'>0.00008s</span></dd>
300
- <script type="text/javascript">moveProgressBar('15.5');</script>
301
- <dd class="example passed"><span class="passed_spec_name">advertises a hash of supporting traces</span><span class='duration'>0.00007s</span></dd>
302
- <script type="text/javascript">moveProgressBar('17.7');</script>
303
- <dd class="example passed"><span class="passed_spec_name">advertises traceable ids of a particular category</span><span class='duration'>0.00010s</span></dd>
304
- <script type="text/javascript">moveProgressBar('20.0');</script>
305
- <dd class="example passed"><span class="passed_spec_name">advertises ttraceables of a particular category</span><span class='duration'>0.00008s</span></dd>
306
- <script type="text/javascript">moveProgressBar('22.2');</script>
307
- <dd class="example passed"><span class="passed_spec_name">merges traceables</span><span class='duration'>0.00016s</span></dd>
308
- <script type="text/javascript">moveProgressBar('24.4');</script>
309
- <dd class="example passed"><span class="passed_spec_name">exposes deleted Traceables</span><span class='duration'>0.00010s</span></dd>
310
- <script type="text/javascript">moveProgressBar('26.6');</script>
311
- <dd class="example passed"><span class="passed_spec_name">exposes added Traceables</span><span class='duration'>0.00010s</span></dd>
312
- <script type="text/javascript">moveProgressBar('28.8');</script>
313
- <dd class="example passed"><span class="passed_spec_name">exposes deleted Traceables of category</span><span class='duration'>0.00009s</span></dd>
314
- <script type="text/javascript">moveProgressBar('31.1');</script>
315
- <dd class="example passed"><span class="passed_spec_name">exposes added Traceables of category</span><span class='duration'>0.00009s</span></dd>
316
- <script type="text/javascript">moveProgressBar('33.3');</script>
317
- <dd class="example passed"><span class="passed_spec_name">exploses changed traceids as array of [Traceid, levensthein, diff_as_html]</span><span class='duration'>0.00967s</span></dd>
318
- <script type="text/javascript">moveProgressBar('35.5');</script>
319
- <dd class="example passed"><span class="passed_spec_name">exposes unchanged Traceables</span><span class='duration'>0.00507s</span></dd>
320
- <script type="text/javascript">moveProgressBar('37.7');</script>
321
- <dd class="example passed"><span class="passed_spec_name">can be marshalled to a file</span><span class='duration'>0.00216s</span></dd>
322
- <script type="text/javascript">moveProgressBar('40.0');</script>
323
- <dd class="example passed"><span class="passed_spec_name">can be dumped to a graphml file</span><span class='duration'>0.00258s</span></dd>
324
- </dl>
325
- </div>
326
- <div id="div_group_2" class="example_group passed">
327
- <dl style="margin-left: 0px;">
328
- <dt id="example_group_2" class="passed">Traceable</dt>
329
- <script type="text/javascript">moveProgressBar('42.2');</script>
330
- <dd class="example passed"><span class="passed_spec_name">should == &quot;id&quot;</span><span class='duration'>0.00009s</span></dd>
331
- <script type="text/javascript">moveProgressBar('44.4');</script>
332
- <dd class="example passed"><span class="passed_spec_name">should == &quot;origin&quot;</span><span class='duration'>0.00010s</span></dd>
333
- <script type="text/javascript">moveProgressBar('46.6');</script>
334
- <dd class="example passed"><span class="passed_spec_name">should == &quot;alternative_id&quot;</span><span class='duration'>0.00011s</span></dd>
335
- <script type="text/javascript">moveProgressBar('48.8');</script>
336
- <dd class="example passed"><span class="passed_spec_name">should == &quot;header_plain&quot;</span><span class='duration'>0.00009s</span></dd>
337
- <script type="text/javascript">moveProgressBar('51.1');</script>
338
- <dd class="example passed"><span class="passed_spec_name">should == &quot;\\textt{header_origin}&quot;</span><span class='duration'>0.00009s</span></dd>
339
- <script type="text/javascript">moveProgressBar('53.3');</script>
340
- <dd class="example passed"><span class="passed_spec_name">should == &quot;body_plain&quot;</span><span class='duration'>0.00008s</span></dd>
341
- <script type="text/javascript">moveProgressBar('55.5');</script>
342
- <dd class="example passed"><span class="passed_spec_name">should == [&quot;contributes_to&quot;]</span><span class='duration'>0.00017s</span></dd>
343
- <script type="text/javascript">moveProgressBar('57.7');</script>
344
- <dd class="example passed"><span class="passed_spec_name">should == &quot;trace_orig&quot;</span><span class='duration'>0.00009s</span></dd>
345
- <script type="text/javascript">moveProgressBar('60.0');</script>
346
- <dd class="example passed"><span class="passed_spec_name">should == &quot;origin&quot;</span><span class='duration'>0.00009s</span></dd>
347
- <script type="text/javascript">moveProgressBar('62.2');</script>
348
- <dd class="example passed"><span class="passed_spec_name">should == &quot;category&quot;</span><span class='duration'>0.00008s</span></dd>
349
- <script type="text/javascript">moveProgressBar('64.4');</script>
350
- <dd class="example passed"><span class="passed_spec_name">should == &quot;info&quot;</span><span class='duration'>0.00009s</span></dd>
351
- </dl>
352
- </div>
353
- <div id="div_group_3" class="example_group passed">
354
- <dl style="margin-left: 0px;">
355
- <dt id="example_group_3" class="passed">Wortsammler generic issues</dt>
356
- <script type="text/javascript">moveProgressBar('66.6');</script>
357
- <dd class="example passed"><span class="passed_spec_name">provides a help</span><span class='duration'>0.38245s</span></dd>
358
- <script type="text/javascript">moveProgressBar('68.8');</script>
359
- <dd class="example passed"><span class="passed_spec_name">can create a new project folder</span><span class='duration'>0.37585s</span></dd>
360
- <script type="text/javascript">moveProgressBar('71.1');</script>
361
- <dd class="example passed"><span class="passed_spec_name">does not initialize into an existing project folder</span><span class='duration'>0.38931s</span></dd>
362
- </dl>
363
- </div>
364
- <div id="div_group_4" class="example_group passed">
365
- <dl style="margin-left: 0px;">
366
- <dt id="example_group_4" class="passed">Wortsammler options validator</dt>
367
- <script type="text/javascript">moveProgressBar('73.3');</script>
368
- <dd class="example passed"><span class="passed_spec_name">rejects no processing</span><span class='duration'>0.37411s</span></dd>
369
- <script type="text/javascript">moveProgressBar('75.5');</script>
370
- <dd class="example passed"><span class="passed_spec_name">rejeccts inputs without outputs</span><span class='duration'>0.38225s</span></dd>
371
- </dl>
372
- </div>
373
- <div id="div_group_5" class="example_group passed">
374
- <dl style="margin-left: 0px;">
375
- <dt id="example_group_5" class="passed">Wortsammler beautifier features</dt>
376
- <script type="text/javascript">moveProgressBar('77.7');</script>
377
- <dd class="example passed"><span class="passed_spec_name">beautifies all markdown files in a folder</span><span class='duration'>0.54681s</span></dd>
378
- <script type="text/javascript">moveProgressBar('80.0');</script>
379
- <dd class="example passed"><span class="passed_spec_name">beautifies a single file</span><span class='duration'>0.40187s</span></dd>
380
- <script type="text/javascript">moveProgressBar('82.2');</script>
381
- <dd class="example passed"><span class="passed_spec_name">beautifies input files in a manifest</span><span class='duration'>0.45741s</span></dd>
382
- <script type="text/javascript">moveProgressBar('84.4');</script>
383
- <dd class="example passed"><span class="passed_spec_name">claims missing input</span><span class='duration'>0.37757s</span></dd>
384
- <script type="text/javascript">moveProgressBar('86.6');</script>
385
- <dd class="example passed"><span class="passed_spec_name">claims undefined document path</span><span class='duration'>0.38838s</span></dd>
386
- </dl>
387
- </div>
388
- <div id="div_group_6" class="example_group passed">
389
- <dl style="margin-left: 0px;">
390
- <dt id="example_group_6" class="passed">Wortsammler conversion</dt>
391
- <script type="text/javascript">moveProgressBar('88.8');</script>
392
- <dd class="example passed"><span class="passed_spec_name">converts a single file to output format</span><span class='duration'>4.06108s</span></dd>
393
- <script type="text/javascript">moveProgressBar('91.1');</script>
394
- <dd class="example passed"><span class="passed_spec_name">converts a single file to default output format</span><span class='duration'>4.00713s</span></dd>
395
- <script type="text/javascript">moveProgressBar('93.3');</script>
396
- <dd class="example passed"><span class="passed_spec_name">converts all files within a folder to output format</span><span class='duration'>12.77486s</span></dd>
397
- <script type="text/javascript">moveProgressBar('95.5');</script>
398
- <dd class="example passed"><span class="passed_spec_name">processes a manifest</span><span class='duration'>5.32879s</span></dd>
399
- <script type="text/javascript">moveProgressBar('97.7');</script>
400
- <dd class="example passed"><span class="passed_spec_name">investigates the existence of a manifest</span><span class='duration'>0.37400s</span></dd>
287
+ <dt id="example_group_1" class="passed">Wortsammler conversion</dt>
288
+ <script type="text/javascript">moveProgressBar('50.0');</script>
289
+ <dd class="example passed"><span class="passed_spec_name">handles chapters up to 6 levels</span><span class='duration'>7.56170s</span></dd>
401
290
  <script type="text/javascript">moveProgressBar('100.0');</script>
402
- <dd class="example passed"><span class="passed_spec_name">extracts the traceables according to a manifest</span><span class='duration'>0.49726s</span></dd>
291
+ <dd class="example passed"><span class="passed_spec_name">handles lists up to 9 levels</span><span class='duration'>4.37834s</span></dd>
403
292
  </dl>
404
293
  </div>
405
- <script type="text/javascript">document.getElementById('duration').innerHTML = "Finished in <strong>31.15227 seconds</strong>";</script>
406
- <script type="text/javascript">document.getElementById('totals').innerHTML = "45 examples, 0 failures";</script>
294
+ <script type="text/javascript">document.getElementById('duration').innerHTML = "Finished in <strong>11.94121 seconds</strong>";</script>
295
+ <script type="text/javascript">document.getElementById('totals').innerHTML = "2 examples, 0 failures";</script>
407
296
  </div>
408
297
  </div>
409
298
  </body>