aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorfiddlosopher <fiddlosopher@788f1e2b-df1e-0410-8736-df70ead52e1b>2009-02-07 19:20:49 +0000
committerfiddlosopher <fiddlosopher@788f1e2b-df1e-0410-8736-df70ead52e1b>2009-02-07 19:20:49 +0000
commit7955c44cb33d17066c297f9f99edf5de7937e659 (patch)
treeaa22a057656b5a0bf0fb230a5a4a6f368f743ae3
parentdcedb2f71243197f34c241b28b8ae76c2f1422c6 (diff)
downloadpandoc-7955c44cb33d17066c297f9f99edf5de7937e659.tar.gz
Added tests for lhs writers.
git-svn-id: https://pandoc.googlecode.com/svn/trunk@1537 788f1e2b-df1e-0410-8736-df70ead52e1b
-rw-r--r--tests/RunTests.hs18
-rw-r--r--tests/lhs-test.html75
-rw-r--r--tests/lhs-test.html+lhs81
-rw-r--r--tests/lhs-test.latex36
-rw-r--r--tests/lhs-test.latex+lhs36
-rw-r--r--tests/lhs-test.markdown19
-rw-r--r--tests/lhs-test.markdown+lhs20
-rw-r--r--tests/lhs-test.native10
-rw-r--r--tests/lhs-test.rst24
-rw-r--r--tests/lhs-test.rst+lhs22
10 files changed, 340 insertions, 1 deletions
diff --git a/tests/RunTests.hs b/tests/RunTests.hs
index 6579077f1..3645b9dfe 100644
--- a/tests/RunTests.hs
+++ b/tests/RunTests.hs
@@ -49,6 +49,17 @@ writerFormats = [ "native"
, "rtf"
]
+lhsWriterFormats :: [String]
+lhsWriterFormats = [ "markdown"
+ , "markdown+lhs"
+ , "rst"
+ , "rst+lhs"
+ , "latex"
+ , "latex+lhs"
+ , "html"
+ , "html+lhs"
+ ]
+
main :: IO ()
main = do
r1s <- mapM runWriterTest writerFormats
@@ -71,7 +82,8 @@ main = do
"latex-reader.latex" "latex-reader.native"
r11 <- runTest "native reader" ["-r", "native", "-w", "native", "-s"]
"testsuite.native" "testsuite.native"
- let results = r1s ++ [r2, r3, r4, r5, r6, r7, r7a, r8, r9, r10, r11]
+ r12s <- mapM runLhsWriterTest lhsWriterFormats
+ let results = r1s ++ [r2, r3, r4, r5, r6, r7, r7a, r8, r9, r10, r11] ++ r12s
if all id results
then do
putStrLn "\nAll tests passed."
@@ -86,6 +98,10 @@ readFile' :: FilePath -> IO String
readFile' f = do s <- readFile f
return $! (length s `seq` s)
+runLhsWriterTest :: String -> IO Bool
+runLhsWriterTest format =
+ runTest ("(lhs) " ++ format ++ " writer") ["-r", "native", "-s", "-w", format] "lhs-test.native" ("lhs-test" <.> format)
+
runWriterTest :: String -> IO Bool
runWriterTest format = do
r1 <- runTest (format ++ " writer") ["-r", "native", "-s", "-w", format] "testsuite.native" ("writer" <.> format)
diff --git a/tests/lhs-test.html b/tests/lhs-test.html
new file mode 100644
index 000000000..695165fd6
--- /dev/null
+++ b/tests/lhs-test.html
@@ -0,0 +1,75 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"
+><head
+ ><title
+ ></title
+ ><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
+ /><meta name="generator" content="pandoc"
+ /><style type="text/css"
+ >
+table.sourceCode, tr.sourceCode, td.lineNumbers, td.sourceCode, table.sourceCode pre
+ { margin: 0; padding: 0; border: 0; vertical-align: baseline; border: none; }
+td.lineNumbers { border-right: 1px solid #AAAAAA; text-align: right; color: #AAAAAA; padding-right: 5px; padding-left: 5px; }
+td.sourceCode { padding-left: 5px; }
+pre.sourceCode { }
+pre.sourceCode span.Normal { }
+pre.sourceCode span.Keyword { color: #007020; font-weight: bold; }
+pre.sourceCode span.DataType { color: #902000; }
+pre.sourceCode span.DecVal { color: #40a070; }
+pre.sourceCode span.BaseN { color: #40a070; }
+pre.sourceCode span.Float { color: #40a070; }
+pre.sourceCode span.Char { color: #4070a0; }
+pre.sourceCode span.String { color: #4070a0; }
+pre.sourceCode span.Comment { color: #60a0b0; font-style: italic; }
+pre.sourceCode span.Others { color: #007020; }
+pre.sourceCode span.Alert { color: red; font-weight: bold; }
+pre.sourceCode span.Function { color: #06287e; }
+pre.sourceCode span.RegionMarker { }
+pre.sourceCode span.Error { color: red; font-weight: bold; }
+</style
+ ></head
+ ><body
+ ><h1 id="lhs-test"
+ >lhs test</h1
+ ><p
+ ><code
+ >unsplit</code
+ > is an arrow that takes a pair of values and combines them to return a single value:</p
+ ><pre class="sourceCode haskell"
+ ><code
+ ><span class="Function FunctionDefinition"
+ >unsplit ::</span
+ ><span class="Normal NormalText"
+ > (Arrow a) =&gt; (b -&gt; c -&gt; d) -&gt; a (b, c) d</span
+ ><br
+ /><span class="Normal NormalText"
+ >unsplit = arr . </span
+ ><span class="Function"
+ >uncurry</span
+ ><span class="Normal NormalText"
+ > </span
+ ><br
+ /><span class="Normal NormalText"
+ > </span
+ ><span class="Comment"
+ >-- arr (\op (x,y) -&gt; x `op` y) </span
+ ><br
+ /></code
+ ></pre
+ ><p
+ ><code
+ >(***)</code
+ > combines two arrows into a new arrow by running the two arrows on a pair of values (one arrow on the first item of the pair and one arrow on the second item of the pair).</p
+ ><pre
+ ><code
+ >f *** g = first f &gt;&gt;&gt; second g
+</code
+ ></pre
+ ><blockquote
+ ><p
+ >Here is a block quote section.</p
+ ></blockquote
+ ></body
+ ></html
+>
+
diff --git a/tests/lhs-test.html+lhs b/tests/lhs-test.html+lhs
new file mode 100644
index 000000000..1cda84cdb
--- /dev/null
+++ b/tests/lhs-test.html+lhs
@@ -0,0 +1,81 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"
+><head
+ ><title
+ ></title
+ ><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
+ /><meta name="generator" content="pandoc"
+ /><style type="text/css"
+ >
+table.sourceCode, tr.sourceCode, td.lineNumbers, td.sourceCode, table.sourceCode pre
+ { margin: 0; padding: 0; border: 0; vertical-align: baseline; border: none; }
+td.lineNumbers { border-right: 1px solid #AAAAAA; text-align: right; color: #AAAAAA; padding-right: 5px; padding-left: 5px; }
+td.sourceCode { padding-left: 5px; }
+pre.sourceCode { }
+pre.sourceCode span.Normal { }
+pre.sourceCode span.Keyword { color: #007020; font-weight: bold; }
+pre.sourceCode span.DataType { color: #902000; }
+pre.sourceCode span.DecVal { color: #40a070; }
+pre.sourceCode span.BaseN { color: #40a070; }
+pre.sourceCode span.Float { color: #40a070; }
+pre.sourceCode span.Char { color: #4070a0; }
+pre.sourceCode span.String { color: #4070a0; }
+pre.sourceCode span.Comment { color: #60a0b0; font-style: italic; }
+pre.sourceCode span.Others { color: #007020; }
+pre.sourceCode span.Alert { color: red; font-weight: bold; }
+pre.sourceCode span.Function { color: #06287e; }
+pre.sourceCode span.RegionMarker { }
+pre.sourceCode span.Error { color: red; font-weight: bold; }
+</style
+ ></head
+ ><body
+ ><h1 id="lhs-test"
+ >lhs test</h1
+ ><p
+ ><code
+ >unsplit</code
+ > is an arrow that takes a pair of values and combines them to return a single value:</p
+ ><pre class="sourceCode literatehaskell"
+ ><code
+ ><span class="Char Special"
+ >&gt;</span
+ ><span class="Function FunctionDefinition"
+ > unsplit ::</span
+ ><span class="Normal NormalText"
+ > (Arrow a) =&gt; (b -&gt; c -&gt; d) -&gt; a (b, c) d</span
+ ><br
+ /><span class="Char Special"
+ >&gt;</span
+ ><span class="Normal NormalText"
+ > unsplit = arr . </span
+ ><span class="Function"
+ >uncurry</span
+ ><span class="Normal NormalText"
+ > </span
+ ><br
+ /><span class="Char Special"
+ >&gt;</span
+ ><span class="Normal NormalText"
+ > </span
+ ><span class="Comment"
+ >-- arr (\op (x,y) -&gt; x `op` y) </span
+ ><br
+ /></code
+ ></pre
+ ><p
+ ><code
+ >(***)</code
+ > combines two arrows into a new arrow by running the two arrows on a pair of values (one arrow on the first item of the pair and one arrow on the second item of the pair).</p
+ ><pre
+ ><code
+ >f *** g = first f &gt;&gt;&gt; second g
+</code
+ ></pre
+ ><blockquote
+ ><p
+ >Here is a block quote section.</p
+ ></blockquote
+ ></body
+ ></html
+>
+
diff --git a/tests/lhs-test.latex b/tests/lhs-test.latex
new file mode 100644
index 000000000..73273765a
--- /dev/null
+++ b/tests/lhs-test.latex
@@ -0,0 +1,36 @@
+\documentclass{article}
+\usepackage{amsmath}
+\usepackage[mathletters]{ucs}
+\usepackage[utf8x]{inputenc}
+\usepackage{listings}
+\lstnewenvironment{code}{\lstset{language=Haskell,basicstyle=\small\ttfamily}}{}
+\setlength{\parindent}{0pt}
+\setlength{\parskip}{6pt plus 2pt minus 1pt}
+
+
+\setcounter{secnumdepth}{0}
+\author{}
+\begin{document}
+
+\section{lhs test}
+
+\verb!unsplit! is an arrow that takes a pair of values and combines
+them to return a single value:
+
+\begin{verbatim}
+unsplit :: (Arrow a) => (b -> c -> d) -> a (b, c) d
+unsplit = arr . uncurry
+ -- arr (\op (x,y) -> x `op` y)
+\end{verbatim}
+\verb!(***)! combines two arrows into a new arrow by running the
+two arrows on a pair of values (one arrow on the first item of the
+pair and one arrow on the second item of the pair).
+
+\begin{verbatim}
+f *** g = first f >>> second g
+\end{verbatim}
+\begin{quote}
+Here is a block quote section.
+
+\end{quote}
+\end{document}
diff --git a/tests/lhs-test.latex+lhs b/tests/lhs-test.latex+lhs
new file mode 100644
index 000000000..203955d1a
--- /dev/null
+++ b/tests/lhs-test.latex+lhs
@@ -0,0 +1,36 @@
+\documentclass{article}
+\usepackage{amsmath}
+\usepackage[mathletters]{ucs}
+\usepackage[utf8x]{inputenc}
+\usepackage{listings}
+\lstnewenvironment{code}{\lstset{language=Haskell,basicstyle=\small\ttfamily}}{}
+\setlength{\parindent}{0pt}
+\setlength{\parskip}{6pt plus 2pt minus 1pt}
+
+
+\setcounter{secnumdepth}{0}
+\author{}
+\begin{document}
+
+\section{lhs test}
+
+\verb!unsplit! is an arrow that takes a pair of values and combines
+them to return a single value:
+
+\begin{code}
+unsplit :: (Arrow a) => (b -> c -> d) -> a (b, c) d
+unsplit = arr . uncurry
+ -- arr (\op (x,y) -> x `op` y)
+\end{code}
+\verb!(***)! combines two arrows into a new arrow by running the
+two arrows on a pair of values (one arrow on the first item of the
+pair and one arrow on the second item of the pair).
+
+\begin{verbatim}
+f *** g = first f >>> second g
+\end{verbatim}
+\begin{quote}
+Here is a block quote section.
+
+\end{quote}
+\end{document}
diff --git a/tests/lhs-test.markdown b/tests/lhs-test.markdown
new file mode 100644
index 000000000..2b3223493
--- /dev/null
+++ b/tests/lhs-test.markdown
@@ -0,0 +1,19 @@
+# lhs test
+
+`unsplit` is an arrow that takes a pair of values and combines them
+to return a single value:
+
+ unsplit :: (Arrow a) => (b -> c -> d) -> a (b, c) d
+ unsplit = arr . uncurry
+ -- arr (\op (x,y) -> x `op` y)
+
+`(***)` combines two arrows into a new arrow by running the two
+arrows on a pair of values (one arrow on the first item of the pair
+and one arrow on the second item of the pair).
+
+ f *** g = first f >>> second g
+
+> Here is a block quote section.
+
+
+
diff --git a/tests/lhs-test.markdown+lhs b/tests/lhs-test.markdown+lhs
new file mode 100644
index 000000000..9d6714e44
--- /dev/null
+++ b/tests/lhs-test.markdown+lhs
@@ -0,0 +1,20 @@
+lhs test
+========
+
+`unsplit` is an arrow that takes a pair of values and combines them
+to return a single value:
+
+> unsplit :: (Arrow a) => (b -> c -> d) -> a (b, c) d
+> unsplit = arr . uncurry
+> -- arr (\op (x,y) -> x `op` y)
+
+`(***)` combines two arrows into a new arrow by running the two
+arrows on a pair of values (one arrow on the first item of the pair
+and one arrow on the second item of the pair).
+
+ f *** g = first f >>> second g
+
+ > Here is a block quote section.
+
+
+
diff --git a/tests/lhs-test.native b/tests/lhs-test.native
new file mode 100644
index 000000000..6993d10de
--- /dev/null
+++ b/tests/lhs-test.native
@@ -0,0 +1,10 @@
+Pandoc (Meta [] [] "")
+[ Header 1 [Str "lhs",Space,Str "test"]
+, Para [Code "unsplit",Space,Str "is",Space,Str "an",Space,Str "arrow",Space,Str "that",Space,Str "takes",Space,Str "a",Space,Str "pair",Space,Str "of",Space,Str "values",Space,Str "and",Space,Str "combines",Space,Str "them",Space,Str "to",Space,Str "return",Space,Str "a",Space,Str "single",Space,Str "value:"]
+, CodeBlock ("",["sourceCode","haskell"],[]) "unsplit :: (Arrow a) => (b -> c -> d) -> a (b, c) d\nunsplit = arr . uncurry \n -- arr (\\op (x,y) -> x `op` y) "
+, Para [Code "(***)",Space,Str "combines",Space,Str "two",Space,Str "arrows",Space,Str "into",Space,Str "a",Space,Str "new",Space,Str "arrow",Space,Str "by",Space,Str "running",Space,Str "the",Space,Str "two",Space,Str "arrows",Space,Str "on",Space,Str "a",Space,Str "pair",Space,Str "of",Space,Str "values",Space,Str "(one",Space,Str "arrow",Space,Str "on",Space,Str "the",Space,Str "first",Space,Str "item",Space,Str "of",Space,Str "the",Space,Str "pair",Space,Str "and",Space,Str "one",Space,Str "arrow",Space,Str "on",Space,Str "the",Space,Str "second",Space,Str "item",Space,Str "of",Space,Str "the",Space,Str "pair)",Str "."]
+, CodeBlock ("",[],[]) "f *** g = first f >>> second g"
+, BlockQuote
+ [ Para [Str "Here",Space,Str "is",Space,Str "a",Space,Str "block",Space,Str "quote",Space,Str "section",Str "."] ]
+ ]
+
diff --git a/tests/lhs-test.rst b/tests/lhs-test.rst
new file mode 100644
index 000000000..0cde4237a
--- /dev/null
+++ b/tests/lhs-test.rst
@@ -0,0 +1,24 @@
+lhs test
+========
+
+``unsplit`` is an arrow that takes a pair of values and combines
+them to return a single value:
+
+::
+
+ unsplit :: (Arrow a) => (b -> c -> d) -> a (b, c) d
+ unsplit = arr . uncurry
+ -- arr (\op (x,y) -> x `op` y)
+
+``(***)`` combines two arrows into a new arrow by running the two
+arrows on a pair of values (one arrow on the first item of the pair
+and one arrow on the second item of the pair).
+
+::
+
+ f *** g = first f >>> second g
+
+ Here is a block quote section.
+
+
+
diff --git a/tests/lhs-test.rst+lhs b/tests/lhs-test.rst+lhs
new file mode 100644
index 000000000..9d2f1cbcb
--- /dev/null
+++ b/tests/lhs-test.rst+lhs
@@ -0,0 +1,22 @@
+lhs test
+========
+
+``unsplit`` is an arrow that takes a pair of values and combines
+them to return a single value:
+
+> unsplit :: (Arrow a) => (b -> c -> d) -> a (b, c) d
+> unsplit = arr . uncurry
+> -- arr (\op (x,y) -> x `op` y)
+
+``(***)`` combines two arrows into a new arrow by running the two
+arrows on a pair of values (one arrow on the first item of the pair
+and one arrow on the second item of the pair).
+
+::
+
+ f *** g = first f >>> second g
+
+ Here is a block quote section.
+
+
+