==========
Hypothesis
==========

Hypothesis is a library for testing your Python code against a much larger range
of examples than you would ever want to write by hand. It's based on the Haskell
library, Quickcheck, and is designed to integrate seamlessly into your existing
Python unit testing work flow.

Hypothesis is both extremely practical and also advances the state of the art of
unit testing by some way. It's easy to use, stable, and extremely powerful. If
you're not using Hypothesis to test your project then you're missing out.

Hypothesis works with most widely used versions of Python. It supports implementations
compatible with 2.6, 2.7 and 3.3+, and is known to work on CPython and PyPy (but not
PyPy3 until they support a 3.3 compatible version of the language). It does *not* currently
work on Jython or on Python 3.0 through 3.2.

-----------------
Links of interest
-----------------

To learn more about how to use Hypothesis, extensive documentation and
examples of usage are `available at readthedocs <https://hypothesis.readthedocs.org/en/master/>`_.

If you want to talk to people about using Hypothesis, `we have both an IRC channel
and a mailing list <https://hypothesis.readthedocs.org/en/latest/community.html>`_.

If you want to contribute to Hypothesis, `instructions are here <https://github.com/DRMacIver/hypothesis/blob/master/CONTRIBUTING.rst>`_.

If you're looking for inspiration for writing your own QuickCheck clone,
`here's a list of ideas you might want to borrow <https://hypothesis.readthedocs.org/en/latest/internals.html>`_.

If you want to hear from people who are already using Hypothesis, some of them `have written
about it <https://hypothesis.readthedocs.org/en/latest/endorsements.html>`_.


-------------------
Ongoing Development
-------------------

Development on Hypothesis is a mix of community provided and sponsored. If you wish to contribute,
either financially or through code, `you can read more about the process in the documentation 
<http://hypothesis.readthedocs.org/en/latest/development.html>`_.
