# DocTest

### From HaskellWiki

SimonHengel (Talk | contribs) m (reordered sections, added "Installation") |
SimonHengel (Talk | contribs) (Update for 0.1.0) |
||

Line 19: | Line 19: | ||

module Fib where | module Fib where | ||

+ | -- | Compute Fibonacci numbers | ||

+ | -- | ||

-- Examples: | -- Examples: | ||

-- | -- | ||

− | -- > fib 10 | + | -- >>> fib 10 |

-- 55 | -- 55 | ||

− | + | -- | |

− | -- > fib 5 | + | -- >>> fib 5 |

-- 5 | -- 5 | ||

− | + | fib :: Int -> Int | |

fib 0 = 0 | fib 0 = 0 | ||

fib 1 = 1 | fib 1 = 1 | ||

Line 38: | Line 40: | ||

</pre> | </pre> | ||

− | + | Lines starting with <hask>>>></hask> denote ''expressions''. | |

− | Lines starting with <hask> | + | |

All comment lines following an expression denote the | 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] | ''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> | + | (e.g. ghci) prints to <hask>stdout</hask> and <hask>stderr</hask> when |

evaluating that expression. | evaluating that expression. | ||

==Hacking== | ==Hacking== | ||

− | DocTest | + | DocTest is still experimental. |

− | + | You can find a reference to the public source repository at | |

− | + | [http://hackage.haskell.org/cgi-bin/hackage-scripts/package/DocTest Hackage]. | |

− | http:// | + | |

Patches are gladly welcome! | Patches are gladly welcome! |

## Revision as of 07:31, 16 October 2010

## Contents |

## 1 What is DocTest

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

## 2 Installation

DocTest is available from Hackage. Install it by typing (on your Unix shell):

$ cabal install doctest

## 3 Usage

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 -- | 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)

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

$ doctest Fib.hsLines starting with

*expressions*.

All comment lines following an expression denote the
*result* of that expression. Result is defined by what an REPL

evaluating that expression.

## 4 Hacking

DocTest is still experimental. You can find a reference to the public source repository at Hackage.

Patches are gladly welcome!