A pythonic assertion library.
poetry add conjecture
pip install conjecture
A basic assertion.
>>> import conjecture
>>> assert 5 == conjecture.has(lambda v: v < 10)
>>> assert 5 == conjecture.has(lambda v: v > 10)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AssertionErrorMatching all conditions.
>>> import conjecture
>>> assert 5 == conjecture.has(lambda v: v <= 5) & conjecture.has(lambda v: v => 5)
>>> assert 6 == conjecture.has(lambda v: v <= 5) & conjecture.has(lambda v: v => 5)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AssertionError
>>> assert 5 == conjecture.all_of(
... conjecture.has(lambda v: v <= 5),
... conjecture.has(lambda v: v => 5)
... )
>>> assert 6 == conjecture.all_of(
... conjecture.has(lambda v: v <= 5),
... conjecture.has(lambda v: v => 5)
... )
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AssertionErrorMatching any conditions.
>>> import conjecture
>>> assert 0 == conjecture.has(lambda v: v == 5) | conjecture.has(lambda v: v == 0)
>>> assert 5 == conjecture.has(lambda v: v == 5) | conjecture.has(lambda v: v == 0)
>>> assert 6 == conjecture.has(lambda v: v == 5) | conjecture.has(lambda v: v == 0)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AssertionError
>>> assert 5 == conjecture.any_of(
... conjecture.has(lambda v: v == 5),
... conjecture.has(lambda v: v == 0)
... )
>>> assert 6 == conjecture.any_of(
... conjecture.has(lambda v: v == 5),
... conjecture.has(lambda v: v == 0)
... )
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AssertionErrorA negative assertion.
>>> import conjecture
>>> assert 5 != conjecture.has(lambda v: v == 10)
>>> assert 5 == ~conjecture.has(lambda v: v == 10)
>>> assert 10 == ~conjecture.has(lambda v: v == 10)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AssertionErrorThis project is licensed under the MIT licence.
All documentation and images are licenced under the Creative Commons Attribution-ShareAlike 4.0 International License.
This project uses Semantic Versioning.