import { calcularRatio } from "@/lib/propuesta/economia"; let fallas = 0; function check(n: string, ok: boolean, d = "") { console.log(`${ok ? " OK " : " FALLA"} | ${n}${d ? " -> " + d : ""}`); if (!ok) fallas++; } check("sin valor anual no hay ratio", calcularRatio(100000, null) === null); check("valor anual cero no divide entre cero", calcularRatio(100000, 0) === null); check("valor anual negativo no produce ratio", calcularRatio(100000, -5) === null); check("ratio 5% = subcotizado", calcularRatio(50000, 1000000)?.lectura === "subcotizado"); check("ratio 20% = en rango", calcularRatio(200000, 1000000)?.lectura === "en_rango"); check("ratio 35% = alto", calcularRatio(350000, 1000000)?.lectura === "alto"); check("ratio 60% = objecion probable", calcularRatio(600000, 1000000)?.lectura === "objecion_probable"); // Los cortes exactos: 0.10 entra en rango, 0.25 sigue en rango, 0.40 sigue alto. check("corte 10% cae en rango", calcularRatio(100000, 1000000)?.lectura === "en_rango"); check("corte 25% cae en rango", calcularRatio(250000, 1000000)?.lectura === "en_rango"); check("corte 40% cae en alto", calcularRatio(400000, 1000000)?.lectura === "alto"); check("ratio redondeado a 3 decimales", calcularRatio(123456, 1000000)?.ratio === 0.123); console.log(fallas === 0 ? "\ntodo paso\n" : `\n${fallas} fallas\n`); process.exit(fallas === 0 ? 0 : 1);