Files
InsanityLab-web/apps/sito/tests/longevity/riferimento
AdrianoDev 510d7ca4ec Struttura: il sito esistente si sposta sotto apps/sito
Primo passo della separazione sito / piattaforme decisa da Adriano il 03/09:
due applicazioni autosufficienti, senza workspace di root, cosi' che ognuna
resti un progetto Astro completo ed estraibile.

Qui non cambia niente del codice: solo la radice. I pattern del .gitignore
che avevano una barra erano ancorati alla radice e dopo lo spostamento non
avrebbero piu' coperto niente (data/*.db*, uploads/*): resi validi a
qualunque profondita'.

Suite: 45 file, 347 test verdi prima e dopo lo spostamento.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EndnceRA5WnA6rvA5iV9WL
2026-09-03 11:05:54 +00:00
..

L'oracolo del motore di calcolo

isl_scoring_engine.py è il motore di punteggio scritto dal cliente (In-Sanity Lab), ricevuto il 2026-08-21. Non è codice nostro e non va modificato: sta qui perché è l'oracolo contro cui verifichiamo il porting in TypeScript.

Il porting delle curve è la parte più delicata della piattaforma: un coefficiente trascritto male produce un punteggio sanitario sbagliato che sembra plausibile e che nessun test funzionale intercetterebbe, perché diventerebbe il valore "atteso" di tutto ciò che viene dopo. La fedeltà non è garantita dalla trascrizione, ma dal confronto numerico: genera-riferimento.py esegue questo motore su una griglia di casi e scrive riferimento.json, che il test TypeScript rilegge per confrontare i due risultati.

Serve python3 (solo libreria standard: il motore importa unicamente dataclasses e typing).

Rigenerare il riferimento

python3 tests/longevity/riferimento/genera-riferimento.py

Va rifatto solo se il cliente manda una versione nuova del motore. In quel caso il confronto dirà da sé quali curve sono cambiate.