On peut réaliser des tests automatisés grace à une bibilothèque python qui s'appelle doctest. Il faut préciser le test par trois chevrons >>> ainsi que la valeur de sortie

Exemple

In [1]:
import doctest # Module à importer
In [ ]:
help(doctest)
In [2]:
def est_pair(a) :
    """ Teste si un nombre entier est pair par le reste de la division entière entre le nombre et 2.
    :paramètre a: entier (int)
    :return :un booléen (boolean) , True si a est pair, False sinon

    CU : a >= 0

    Exemples
    >>> est_pair(6)
    True
    >>> est_pair(0)
    True
    >>> est_pair(1)
    False
    >>> est_pair(-4)
    Traceback (most recent call last):
    ...
    AssertionError: l'argument doit être un entier positif
    """
    assert(a>=0 and type(a)==int), "l'argument doit être un entier positif"

    if a % 2 == 0 : test = True
    else : test = False

    return test
In [3]:
# Commande à utiliser pour faire des tests

doctest.testmod() # Sans compte rendu
Out[3]:
TestResults(failed=0, attempted=4)
In [4]:
doctest.testmod(verbose=True) # Pour avoir le compte rendu
Trying:
    est_pair(6)
Expecting:
    True
ok
Trying:
    est_pair(0)
Expecting:
    True
ok
Trying:
    est_pair(1)
Expecting:
    False
ok
Trying:
    est_pair(-4)
Expecting:
    Traceback (most recent call last):
    ...
    AssertionError: l'argument doit être un entier positif
ok
1 items had no tests:
    __main__
1 items passed all tests:
   4 tests in __main__.est_pair
4 tests in 2 items.
4 passed and 0 failed.
Test passed.
Out[4]:
TestResults(failed=0, attempted=4)
In [5]:
est_pair(-4)
---------------------------------------------------------------------------
AssertionError                            Traceback (most recent call last)
<ipython-input-5-cdf08a4a0bb1> in <module>
----> 1 est_pair(-4)

<ipython-input-2-620d1e6ce38b> in est_pair(a)
     18     AssertionError: l'argument doit être un entier positif
     19     """
---> 20     assert(a>=0 and type(a)==int), "l'argument doit être un entier positif"
     21 
     22     if a % 2 == 0 : test = True

AssertionError: l'argument doit être un entier positif
In [6]:
# Commande à indiquer à la fin du fichier pour que le test se fasse automatiquement

if __name__ == '__main__':
    import doctest
    doctest.testmod()

Exemple à traiter

Inventer un ensemble de fonctions qui permettent de tester si un nombre :

  • est divisible par 2
  • est divisible par 3
  • est divisible par 5
  • est divisible par 9
  • est divisible par 10
Vous documenterez et vous inventerez des tests pour chaque fonction

Il faudra tester votre fichier en ligne de commande et appelez votre enseignant pour ne vérification.

In [ ]:
# divisible par 2

def est_divisible_par_2 (a) :
    """
    Votre ducumentation et vos tests ici
    
    
    """
    
    return test
In [ ]:
# divisible par 3
In [ ]:
# divisible par 5
In [ ]:
# divisible par 9
In [ ]:
# divisible par 10
In [ ]: