"""Geometrie de l'overlay : tout derive de la hauteur de la barre. Sinon, reduire la barre laisse le bouton stop, le micro et les marges a leur taille d'origine, et la composition se deseequilibre. Une seule valeur commande l'echelle. """ import pytest from core import CONFIG, bar_metrics def test_toutes_les_mesures_sont_fournies(): m = bar_metrics(52.0) for cle in ("stop_diametre", "mic_largeur", "marge_laterale", "mic_corps_hauteur", "mic_arceau_rayon", "ecart_interne"): assert cle in m def test_les_mesures_tiennent_dans_la_barre(): h = 52.0 m = bar_metrics(h) assert m["stop_diametre"] < h assert m["mic_corps_hauteur"] < h assert 2 * m["marge_laterale"] < CONFIG["bar_width"] def test_diviser_la_hauteur_par_deux_divise_tout_par_deux(): grand, petit = bar_metrics(52.0), bar_metrics(26.0) for cle, valeur in grand.items(): assert petit[cle] == pytest.approx(valeur / 2.0) def test_une_hauteur_absurde_est_refusee(): with pytest.raises(ValueError): bar_metrics(0) def test_la_config_reste_coherente_avec_ses_mesures(): m = bar_metrics(CONFIG["bar_height"]) largeur_occupee = 2 * m["marge_laterale"] + m["stop_diametre"] + m["mic_largeur"] assert largeur_occupee < CONFIG["bar_width"], "plus de place pour la forme d'onde"