diff --git a/tests/logique_hcsr04.py b/tests/logique_hcsr04.py new file mode 100644 index 0000000..2100a0f --- /dev/null +++ b/tests/logique_hcsr04.py @@ -0,0 +1,38 @@ +# Objectif : compléter la fonction de calcul de distance du HC-SR04. +# Le capteur renvoie un temps d'écho en microsecondes. +# Vous devez convertir ce temps en distance en centimètres. +# +# Zones à compléter : ____ ou "TODO". + + +def calcul_distance_cm(temps_echo_us): + + """ + temps_echo_us : durée du signal echo en microsecondes + Retour : + - distance en centimètres (float) + - ou None si le temps est invalide + """ + + # 1) Gérer les cas invalides : + # - temps_echo_us est None + # - temps_echo_us <= 0 + # TODO : compléter la condition + + if ____ or ____: + return ____ + + # 2) Convertir le temps en secondes : + # 1 seconde = 1 000 000 microsecondes + # TODO : compléter la conversion + + temps_s = temps_echo_us / ____ + + # 3) Calculer la distance : + # distance(cm) = (temps_s * vitesse_du_son_cm_par_s) / 2 + # vitesse du son ≈ 34300 cm/s + # TODO : compléter la formule + + distance_cm = (____ * ____) / ____ + + return distance_cm diff --git a/tests/test_logique_hcsr04.py b/tests/test_logique_hcsr04.py new file mode 100644 index 0000000..f0f47de --- /dev/null +++ b/tests/test_logique_hcsr04.py @@ -0,0 +1,37 @@ +# Objectif : écrire des tests unitaires pour vérifier calcul_distance_cm(). +# Aucune réponse n'est fournie. Les valeurs exactes doivent être déduites +# de la formule vue en cours. + +from logique_hcsr04_eleve import calcul_distance_cm + + +def test(): + + # Test 1 : temps invalide = 0 + dist = calcul_distance_cm(0) + assert dist is ____ , "Test temps 0 : incorrect" + + # Test 2 : temps négatif + dist = calcul_distance_cm(-100) + assert dist is ____ , "Test temps négatif : incorrect" + + # Test 3 : temps None + dist = calcul_distance_cm(None) + assert dist is ____ , "Test None : incorrect" + + # Test 4 : temps court (quelques centaines de microsecondes) + # Compléter avec une plage de valeurs acceptables. + dist = calcul_distance_cm(1000) + assert dist > ____ , "Test 1000us : trop petit" + assert dist < ____ , "Test 1000us : trop grand" + + # Test 5 : temps plus long + dist = calcul_distance_cm(3000) + assert dist > ____ , "Test 3000us : trop petit" + assert dist < ____ , "Test 3000us : trop grand" + + print("Tests HC-SR04 réussis si vous voyez ce message.") + + +if __name__ == "__main__": + test() diff --git a/tests/test_logique_moteur.py b/tests/test_logique_moteur.py index cf9cd23..8cca49f 100644 --- a/tests/test_logique_moteur.py +++ b/tests/test_logique_moteur.py @@ -54,4 +54,4 @@ def test(): if __name__ == "__main__": - lancer_tests() + test()