| Test |
Method name |
Duration |
Result |
| tous les candidats hors rayon de vote (15-30 m vide) → null |
all beyond vote radius returns null() |
0.001s |
passed |
| exactement 15.0 m n'est PAS < 15 m (seuil strict) → bascule sur le vote majoritaire |
boundary 15m goes to majority vote() |
0s |
passed |
| les candidats au-delà de 30 m sont exclus du vote |
candidates beyond radius excluded() |
0.001s |
passed |
| échec DB → null, aucune exception propagée (contrat dégradation gracieuse) |
db failure returns null() |
0.005s |
passed |
| une vente multi-lots (N lignes, 1 mutation_id) ne compte que pour UNE voix |
multi lot sale counts once() |
0.001s |
passed |
| transaction la plus proche < 15 m → son id_parcelle, même contre une majorité ailleurs |
nearest under threshold wins() |
0.001s |
passed |
| aucune donnée → null |
no data returns null() |
0s |
passed |
| majorité non stricte (3 voix sur 6) → null |
non strict majority returns null() |
0.001s |
passed |
| majorité d'UNE seule mutation (minimum 2 non atteint) → null |
single mutation majority returns null() |
0s |
passed |
| pas de plus proche < 15 m → id_parcelle strictement majoritaire en mutations distinctes |
strict majority within radius() |
0s |
passed |
| égalité de voix (2-2) → null, jamais de tirage au sort |
tie returns null() |
0s |
passed |