Το Hypothesis είναι μια βιβλιοθήκη ανοικτού κώδικα η οποία επιτρέπει το έλεγχο προγραμμάτων μέσω ιδιοτήτων των συναρτήσεων του. Με απλά λόγια, μπορούμε να πούμε ότι στο τέλος μια συνάρτησης, πρέπει να ισχύει μια συγκεκριμένη συνθήκη (πχ, η κωδικοποίηση και μετέπειτα αποκωδικοποίηση ενός αντικειμένου πρέπει να επιστρέφουν την αρχική τιμή του αντικειμένου). Τότε, το hypothesis αναλαμβάνει τον έλεγχο αυτής της συνθήκης δημιουργώντας πολλά παραδείγματα στα οποία θα έπρεπε να τρέχει σωστά η συνάρτηση και στη συνέχεια, αν βρει κάποιο στο οποίο δεν ισχύει η συνθήκη, τότε το απλοποιεί όσο περισσότερο μπορεί και μας επιστρέφει το παράδειγμα που δεν δουλεύει όπως θα θέλαμε.
Μερικά απλά παραδείγματα του πως θα μπορούσαμε να χρησιμοποιήσουμε το Hypothesis, τα οποία μπορούμε να δούμε και στην επίσημη σελίδα που περιέχει πολλές περισσότερες λεπτομέρειες:
from hypothesis import given @given(int, int) def test_ints_are_commutative(x, y): assert x + y == y + x @given(x=int, y=int) def test_ints_cancel(x, y): assert (x + y) - y == y @given([int]) def test_reversing_twice_gives_same_list(xs): assert xs == list(reversed(reversed(xs))) @given((int, int)) def test_look_tuples_work_too(t): assert len(t) == 2 assert isinstance(t[0], int) assert isinstance(t[1], int)
Για να το εγκαταστήσει κάποιος, αρκεί να πληκτρολογήσει:
pip install hypothesis