Barre 440x52 -> 330x40. Les proportions internes (bouton stop, micro, marges, ecarts) etaient en dur dans le dessin : les laisser telles quelles aurait donne une grosse pastille dans une barre retrecie. Elles derivent desormais de la hauteur de la barre via core.bar_metrics, donc une seule valeur commande toute l'echelle — diviser bar_height par deux divise tout par deux (teste). Rendu verifie par capture d'ecran apres reduction. 50 tests passent. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
42 lines
1.3 KiB
Python
42 lines
1.3 KiB
Python
"""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"
|