Applica una soglia minima di campione a Media voto e MVP in home (DD-028)
Rimuove l'hint statico "+2 questo mese" dalla StatTile Presenze. La StatTile Media voto usa ora la stessa soglia minima di voti del badge Pagellone (VOTI_MINIMI_PAGELLA), tramite la nuova funzione pura testabile mediaVotoColpoDOcchio(). L'MVP di partita richiede un quorum minimo di 2 voti totali (VOTI_MINIMI_MVP) oltre al margine netto già richiesto: un solo voto non assegna più la vittoria, con effetto anche sui conteggi già mostrati. Aggiorna test unitari e di integrazione, e documenta la decisione in DESIGN_DECISIONS.md, pagelle.md, mvp.md e CHANGELOG.md. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -127,13 +127,20 @@ if (!locale) {
|
||||
const badgeVg2 = statoBadge(mvpDef, giocatoreAzzerato(vinti["vg2"] ?? 0));
|
||||
assert.equal(badgeVg2.grado, null, "zero vittorie nette: nessun badge sbloccato");
|
||||
|
||||
// Una terza vittoria netta porta vg1 da bronzo ad argento (soglia 3).
|
||||
// Una terza vittoria netta porta vg1 da bronzo ad argento (soglia 3). Due voti,
|
||||
// non uno solo: sotto il quorum minimo (VOTI_MINIMI_MVP) nessuna vittoria conterebbe.
|
||||
await upsert({
|
||||
match_id: `${PREFISSO}-m4`,
|
||||
votante_id: "va",
|
||||
votato_id: "vg1",
|
||||
votato_nome: "Uno",
|
||||
});
|
||||
await upsert({
|
||||
match_id: `${PREFISSO}-m4`,
|
||||
votante_id: "vb",
|
||||
votato_id: "vg1",
|
||||
votato_nome: "Uno",
|
||||
});
|
||||
const vintiDopo = mvpVintiPerGiocatore(await leggiVoti());
|
||||
assert.equal(vintiDopo["vg1"], 3);
|
||||
assert.equal(
|
||||
|
||||
@@ -89,20 +89,33 @@ if (!locale) {
|
||||
await prova(
|
||||
"sotto la soglia minima di voti pagella, 2 MVP e media alta non bastano",
|
||||
async () => {
|
||||
// "tb1" vince nettamente m1 e m2 (2 MVP), e riceve un solo voto pagella da 9 (media
|
||||
// alta ma su un campione troppo piccolo): il segreto deve restare bloccato.
|
||||
// "tb1" vince nettamente m1 e m2 (2 MVP, due voti a testa per rispettare il quorum
|
||||
// minimo), e riceve un solo voto pagella da 9 (media alta ma su un campione troppo
|
||||
// piccolo): il segreto deve restare bloccato.
|
||||
await votaMvp({
|
||||
match_id: `${PREFISSO}-m1`,
|
||||
votante_id: "va",
|
||||
votato_id: "tb1",
|
||||
votato_nome: "Uno",
|
||||
});
|
||||
await votaMvp({
|
||||
match_id: `${PREFISSO}-m1`,
|
||||
votante_id: "vf",
|
||||
votato_id: "tb1",
|
||||
votato_nome: "Uno",
|
||||
});
|
||||
await votaMvp({
|
||||
match_id: `${PREFISSO}-m2`,
|
||||
votante_id: "va",
|
||||
votato_id: "tb1",
|
||||
votato_nome: "Uno",
|
||||
});
|
||||
await votaMvp({
|
||||
match_id: `${PREFISSO}-m2`,
|
||||
votante_id: "vf",
|
||||
votato_id: "tb1",
|
||||
votato_nome: "Uno",
|
||||
});
|
||||
await votaPagella({
|
||||
match_id: `${PREFISSO}-m1`,
|
||||
votante_id: "va",
|
||||
|
||||
Reference in New Issue
Block a user