from tp_multiprocessing.process import calculate_new_height import pytest # ## Tests des cas de succès et des cas limites ## @pytest.mark.parametrize("orig_width, orig_height, new_width, expected_height", [ # Cas 1: Réduction standard (ratio 16:9) (1920, 1080, 960, 540), # Cas 2: Format portrait (800, 1200, 400, 600), # Cas 3: Pas de redimensionnement (la nouvelle largeur est identique) (1024, 768, 1024, 768), # Cas 4: Le calcul du ratio produit un flottant (test de la conversion en int) (300, 200, 100, 66), # 200 * (100/300) = 66.66... -> 66 # Cas 5: Agrandissement (upscaling) (100, 100, 250, 250), # Cas 6: Hauteur d'origine nulle (1000, 0, 500, 0) ]) def test_calculate_new_height_various_scenarios(orig_width, orig_height, new_width, expected_height): """ Vérifie le calcul de la nouvelle hauteur pour plusieurs scénarios valides. """ assert calculate_new_height(orig_width, orig_height, new_width) == expected_height # ## Tests des cas d'erreur ## @pytest.mark.parametrize("invalid_width", [0, -1, -100]) def test_calculate_new_height_with_invalid_width_raises_error(invalid_width): """ Vérifie qu'une ValueError est levée si la largeur d'origine est nulle ou négative. """ # Le contexte `pytest.raises` vérifie qu'une exception est bien levée. # L'argument `match` vérifie que le message d'erreur contient le texte attendu. with pytest.raises(ValueError, match="La largeur d'origine doit être positive"): calculate_new_height(invalid_width, 1080, 500)