Difference between revisions of "DocTest"
SimonHengel (talk | contribs) m |
SimonHengel (talk | contribs) (fix formatting issue) |
||
Line 33: | Line 33: | ||
</haskell> |
</haskell> |
||
+ | (A line starting with <hask>>>></hask> denotes an ''expression''. All comment lines following an expression denote the ''result'' of that expression. Result is defined by what an [http://en.wikipedia.org/wiki/Read-eval-print_loop REPL] (e.g. ghci) prints to <hask>stdout</hask> and <hask>stderr</hask> when evaluating that expression.) |
||
− | (A line starting with <hask>>>></hask> denotes an ''expression''. |
||
− | All comment lines following an expression denote the |
||
− | ''result'' of that expression. Result is defined by what an [http://en.wikipedia.org/wiki/Read-eval-print_loop REPL] |
||
− | (e.g. ghci) prints to <hask>stdout</hask> and <hask>stderr</hask> when |
||
− | evaluating that expression.) |
||
With DocTest you may check whether the implementation satisfies the given examples, by typing: |
With DocTest you may check whether the implementation satisfies the given examples, by typing: |
Revision as of 15:55, 25 January 2011
What is DocTest
DocTest is a small program, that checks examples in Haddock comments. It is modeled after doctest for Python.
Installation
DocTest is available from Hackage. Install it, by typing:
$ cabal install doctest
Usage
Below is a small Haskell module. The module contains a Haddock comment with some examples of interaction. The examples demonstrate how the module is supposed to be used.
module Fib where
-- | Compute Fibonacci numbers
--
-- Examples:
--
-- >>> fib 10
-- 55
--
-- >>> fib 5
-- 5
fib :: Int -> Int
fib 0 = 0
fib 1 = 1
fib n = fib (n - 1) + fib (n - 2)
(A line starting with >>>
denotes an expression. All comment lines following an expression denote the result of that expression. Result is defined by what an REPL (e.g. ghci) prints to stdout
and stderr
when evaluating that expression.)
With DocTest you may check whether the implementation satisfies the given examples, by typing:
$ doctest Fib.hs
You may produce Haddock documentation for that module with:
$ haddock -h Fib.hs -o doc/
Hacking
DocTest is still experimental. You can find a reference to the public source repository at Hackage.
Patches are gladly welcome!