Propuesta IA: modelo PropuestaIA y capa de datos economicos
La capa de economia existe para que el dinero viva en un solo sitio y nunca cruce hacia el prompt. El pipeline recibe de ahi solo refPartida y nombre. Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
This commit is contained in:
co-authored by
Claude Opus 5
parent
20f535d485
commit
4e103beb27
@@ -0,0 +1,26 @@
|
||||
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);
|
||||
Reference in New Issue
Block a user