2 changed files with 134 additions and 10 deletions
@ -1,6 +0,0 @@ |
|||||||
#' # Examples.jl |
|
||||||
#' |
|
||||||
#' This file is an example of how to write an input file for Examples.jl. |
|
||||||
#' The file will be used to render a markdown file, a notebook |
|
||||||
1 + 1 |
|
||||||
|
|
||||||
@ -1,5 +1,135 @@ |
|||||||
using Examples |
import Examples |
||||||
using Base.Test |
import Examples: Chunk, MDChunk, CodeChunk |
||||||
|
using Compat.Test |
||||||
|
|
||||||
# write your own tests here |
# compare content of two parsed chunk vectors |
||||||
@test 1 == 1 |
function compare_chunks(chunks1, chunks2) |
||||||
|
@test length(chunks1) == length(chunks2) |
||||||
|
for (c1, c2) in zip(chunks1, chunks2) |
||||||
|
# compare types |
||||||
|
@test typeof(c1) == typeof(c2) |
||||||
|
# test that no chunk start or end with "" |
||||||
|
@test !isempty(first(c1.lines)); @test !isempty(last(c1.lines)) |
||||||
|
@test !isempty(first(c2.lines)); @test !isempty(last(c2.lines)) |
||||||
|
# compare content |
||||||
|
for (l1, l2) in zip(c1.lines, c2.lines) |
||||||
|
@test l1 == l2 |
||||||
|
end |
||||||
|
# test continued code |
||||||
|
if isa(c1, CodeChunk) |
||||||
|
@test c1.continued == c2.continued |
||||||
|
end |
||||||
|
end |
||||||
|
end |
||||||
|
|
||||||
|
@testset "parser" begin |
||||||
|
content = """ |
||||||
|
#' Line 1 |
||||||
|
Line 2 |
||||||
|
#' Line 3 |
||||||
|
#' |
||||||
|
#' Line 5 |
||||||
|
Line 6 |
||||||
|
|
||||||
|
Line 8 |
||||||
|
#' Line 9 |
||||||
|
#- |
||||||
|
#' Line 11 |
||||||
|
Line 12 |
||||||
|
#- |
||||||
|
Line 14 |
||||||
|
#' Line 15 |
||||||
|
#----------------- |
||||||
|
#' Line 17 |
||||||
|
Line 18 |
||||||
|
#----------------- |
||||||
|
Line 20 |
||||||
|
#' Line 21 |
||||||
|
Line 22 |
||||||
|
Line 23 |
||||||
|
Line 24 |
||||||
|
#- |
||||||
|
Line 26 |
||||||
|
Line 27 |
||||||
|
#- |
||||||
|
Line 29 |
||||||
|
#- |
||||||
|
Line 31 |
||||||
|
Line 32 |
||||||
|
#' Line 33 |
||||||
|
Line 34 |
||||||
|
#- |
||||||
|
Line 36 |
||||||
|
#- |
||||||
|
Line 38 |
||||||
|
#- |
||||||
|
Line 40 |
||||||
|
#- |
||||||
|
Line 42 |
||||||
|
Line 43 |
||||||
|
#' Line 44 |
||||||
|
Line 45 |
||||||
|
#' Line 46 |
||||||
|
Line 47 |
||||||
|
#' Line 48 |
||||||
|
#Line 49 |
||||||
|
Line 50 |
||||||
|
""" |
||||||
|
expected_chunks = Chunk[ |
||||||
|
MDChunk(["Line 1"]), |
||||||
|
CodeChunk(["Line 2"], false), |
||||||
|
MDChunk(["Line 3", "","Line 5"]), |
||||||
|
CodeChunk(["Line 6", "","Line 8"], false), |
||||||
|
MDChunk(["Line 9"]), |
||||||
|
MDChunk(["Line 11"]), |
||||||
|
CodeChunk(["Line 12"], false), |
||||||
|
CodeChunk(["Line 14"], false), |
||||||
|
MDChunk(["Line 15"]), |
||||||
|
MDChunk(["Line 17"]), |
||||||
|
CodeChunk(["Line 18"], false), |
||||||
|
CodeChunk(["Line 20"], false), |
||||||
|
MDChunk(["Line 21"]), |
||||||
|
CodeChunk(["Line 22", " Line 23", "Line 24"], false), |
||||||
|
CodeChunk(["Line 26", " Line 27"], true), |
||||||
|
CodeChunk(["Line 29"], false), |
||||||
|
CodeChunk(["Line 31", " Line 32"], true), |
||||||
|
MDChunk(["Line 33"]), |
||||||
|
CodeChunk(["Line 34"], false), |
||||||
|
CodeChunk(["Line 36"], true), |
||||||
|
CodeChunk([" Line 38"], true), |
||||||
|
CodeChunk(["Line 40"], false), |
||||||
|
CodeChunk(["Line 42", " Line 43"], true), |
||||||
|
MDChunk(["Line 44"]), |
||||||
|
CodeChunk([" Line 45"], true), |
||||||
|
MDChunk(["Line 46"]), |
||||||
|
CodeChunk(["Line 47"], false), |
||||||
|
MDChunk(["Line 48"]), |
||||||
|
CodeChunk(["#Line 49", "Line 50"], false), |
||||||
|
] |
||||||
|
parsed_chunks = Examples.parse(content) |
||||||
|
compare_chunks(parsed_chunks, expected_chunks) |
||||||
|
|
||||||
|
# test leading/trailing whitespace removal |
||||||
|
io = IOBuffer() |
||||||
|
iows = IOBuffer() |
||||||
|
for c in expected_chunks |
||||||
|
if isa(c, CodeChunk) |
||||||
|
foreach(x-> println(io, x), c.lines) |
||||||
|
foreach(x-> println(iows, x), c.lines) |
||||||
|
else |
||||||
|
foreach(x -> println(io, "#' ", x), c.lines) |
||||||
|
foreach(x -> println(iows, "#' ", x), c.lines) |
||||||
|
end |
||||||
|
println(io, "#-") |
||||||
|
println(iows, "#-") |
||||||
|
foreach(x -> println(iows), 1:rand(2:5)) |
||||||
|
end |
||||||
|
|
||||||
|
compare_chunks(Examples.parse(String(take!(io))), Examples.parse(String(take!(iows)))) |
||||||
|
|
||||||
|
end # testset parser |
||||||
|
|
||||||
|
|
||||||
|
# @testset "Examples.markdown" begin |
||||||
|
# content = read("testinput.jl", String) |
||||||
|
# end |
||||||
|
|||||||
Loading…
Reference in new issue