Difference between revisions of "DocTest"

From HaskellWiki
Jump to navigation Jump to search
 
Line 4: Line 4:
 
[http://docs.python.org/library/doctest.html doctest for Python].
 
[http://docs.python.org/library/doctest.html doctest for Python].
   
==Usage==
+
==Tutorial==
Bellow is a small Haskell module with DocTest examples:
+
Bellow is a small Haskell module. The module contains source code comments.
  +
Those comments are examples from an interactive Haskell session and demonstrate how the module is used.
   
 
<haskell>
 
<haskell>
Line 23: Line 24:
 
</haskell>
 
</haskell>
   
DocTest checks if the implementation of <hask>fib</hask>
+
With DocTest you may checks if the implementation satisfies the given examples, by typing (on your Unix shell):
satisfies the given examples:
 
   
 
<pre>
 
<pre>
Line 33: Line 33:
 
Lines starting with <hask>-- ></hask> denote ''expressions''.
 
Lines starting with <hask>-- ></hask> denote ''expressions''.
 
All comment lines following an expression denote the
 
All comment lines following an expression denote the
''result'' of that expression, where result is defined by what a
+
''result'' of that expression. Result is defined by what a [http://en.wikipedia.org/wiki/Read-eval-print_loop REPL]
  +
(e.g. ghci) prints to <hask>stdout</hask> and <hask>stderror</hask> when
REPL prints to standard output when evaluating that expression.
+
evaluating that expression.
   
 
==DocTest on Hackage==
 
==DocTest on Hackage==

Revision as of 12:00, 22 March 2009

What is DocTest

DocTest is a small program, that checks examples in Haskell comments. It is modeled after doctest for Python.

Tutorial

Bellow is a small Haskell module. The module contains source code comments. Those comments are examples from an interactive Haskell session and demonstrate how the module is used.

module Fib where

-- Examples:
--
-- > fib 10
-- 55

-- > fib 5
-- 5

fib 0 = 0
fib 1 = 1
fib n = fib (n - 1) + fib (n - 2)

With DocTest you may checks if the implementation satisfies the given examples, by typing (on your Unix shell):

$ doctest Fib.hs


Lines starting with -- > denote expressions. All comment lines following an expression denote the result of that expression. Result is defined by what a REPL (e.g. ghci) prints to stdout and stderror when evaluating that expression.

DocTest on Hackage

http://hackage.haskell.org/cgi-bin/hackage-scripts/package/DocTest

Branches

http://code.haskell.org/~sih/code/DocTest.git/