Personal tools

DocTest

From HaskellWiki

(Difference between revisions)
Jump to: navigation, 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 23:
 
</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 32: Line 32:
 
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]
REPL prints to standard output when evaluating that expression.
+
(e.g. ghci) prints to <hask>stdout</hask> and <hask>stderror</hask> when
  +
evaluating that expression.
   
 
==DocTest on Hackage==
 
==DocTest on Hackage==

Revision as of 12:00, 22 March 2009

Contents

1 What is DocTest

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

2 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.

3 DocTest on Hackage

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

4 Branches

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