test
Prompt
# PRUEBA PESADA — Motor de liquidación de nómina multi-jurisdicción Actúa como ingeniero senior. Entrega el resultado completo, sin preguntas ni aclaraciones. CONTEXTO Nómina mensual de una empresa con empleados en 3 jurisdicciones (ES, MX, PT). Reglas: salario base + bono (% del base) + horas extra (1,75x hora ordinaria) − retención IRPF por tramos + cotización social (tope máximo mensual) − anticipos. Redondeo half-up a 2 decimales EN CADA PASO. Los tramos y topes se leen de una tabla de configuración. REQUISITOS (todos obligatorios) 1. Modelo de dominio con 6 entidades e invariantes explícitas. 2. Motor de cálculo con 14 reglas, incluidos tramos progresivos y topes. 3. Idempotencia: recalcular el mismo periodo no duplica asientos. Reversión exacta. 4. Multi-moneda con tipos de cambio históricos por fecha; error si falta la tasa. 5. API REST con 4 endpoints + validación de entrada y códigos de error. 6. Persistencia SQLite con migración versionada y transacciones. 7. 25 tests, de los cuales 8 son casos límite (tope exacto, tramo frontera, bono 0, empleado sin jurisdicción, tasa ausente, redondeo .005, reversión doble, periodo cerrado). 8. CLI de ejemplo con un caso real ejecutable. 9. Análisis de complejidad temporal/espacial y 3 trade-offs descartados. 10. Al final: autoevaluación 1-10 en 5 ejes (corrección, robustez, claridad, tests, rendimiento) + tu estimación de tokens de salida usados. RESTRICCIONES Python 3.12, solo stdlib, sin dependencias, ≤700 líneas totales, un archivo por capa. Prohibido usar "..." o omitir bloques. Sin explicaciones previas: empieza por el código. DATOS DE PRUEBA (resuélvelos numéricamente, paso a paso) A) ES: base 4.250,00; bono 12%; 40 h extra a 22,00/h; 3 dependientes; anticipo 300,00. B) MX: base 38.500,00; bono 8%; sin extra; tope de cotización alcanzado. C) PT: base 2.100,00; bono 0%; 6 h extra; tasa de cambio del día ausente. FORMATO DE SALIDA 1) Un bloque por archivo, con su ruta. 2) Tabla de los 25 tests (nombre / entrada / esperado). 3) Desarrollo numérico de A, B y C. 4) Complejidad y trade-offs. 5) Autoevaluación.
Response not available
Response not available