==================================================== TDD — ScoreCalculator (fórmulas §9) ==================================================== --- 1. assertividade() --- [PASS] itensTotal=0 → null (sem dados) [PASS] 100/100 → 100% [PASS] 0/100 → 0% [PASS] 95/100 → 95% [PASS] 88/100 → 88% [PASS] 1/3 → ~33.33% --- 2. scoreSeparador() --- [PASS] itens=0 → score=0 [PASS] itens=0 com assert=100 → score=0 [PASS] Perfil perfeito → score~100 (got 100) [PASS] Assert=0, vel=ref, 200 itens → 60 (got 60) [PASS] Separador lento (vel=2x ref) → ~80 (got 80) [PASS] tempoRef=0 → compVel=0, score~60 (got 60) [PASS] 10 itens → compVol=1.0, score~81 (got 81) [PASS] assertividade=null tratada como 0 (got 50) --- 3. scoreConferente() --- [PASS] cargas=0 → score=0 [PASS] Conferente perfeito (0 erros, 0 retrab) → 100 (got 100) [PASS] Todos erros, 0 retrab → score=40 (got 40) [PASS] 0 erros, retrabalho=100% → score=60 (got 60) [PASS] 5 erros em 10 cargas, retrab=20% → score=62 (got 62) [PASS] erros > cargas: taxaErro clampeia a 1, score=40 (got 40) --- 4. semaforoScore() --- [PASS] score=100 → success [PASS] score=70 (limiar) → success [PASS] score=69.9 → warning [PASS] score=45 (limiar) → warning [PASS] score=44.9 → danger [PASS] score=0 → danger --- 5. semaforoAssertividade() --- [PASS] assert=100 → success [PASS] assert=95 (limiar) → success [PASS] assert=94.9 → warning [PASS] assert=88 (limiar) → warning [PASS] assert=87.9 → danger [PASS] assert=0 → danger --- 6. semaforoRetrabalho() --- [PASS] retrab=0% → acerto=100 → success [PASS] retrab=5% → acerto=95 (limiar) → success [PASS] retrab=5.1% → acerto=94.9 → warning [PASS] retrab=15% → acerto=85 (limiar) → warning [PASS] retrab=15.1% → acerto=84.9 → danger [PASS] retrab=100% → danger ==================================================== RESULTADO: PASS=38 FAIL=0 TODOS OS TESTES PASSARAM