zonza/tests/test_geometrie.py
Ralph Mayola f8c30e0402 Overlay reduit d'un quart, et sa geometrie devient proportionnelle
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>
2026-08-21 00:49:38 +02:00

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"