# Difference between revisions of "DocTest"

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

## What is DocTest

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

## Installation

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

$ cabal install doctest

## 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.hs

Lines starting with `>>>`

denote *expressions*.
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.

## Hacking

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

Patches are gladly welcome!