Dokumentace
Centrum nápovědyTestováníDeterministický výpočet
docs/cs/06-testing/deterministic-calculation.md
Deterministická omezení výpočtu
Tento dokument definuje, co “deterministický” znamená pro doménový engine OPORA a jaká omezení je nutné udržet pro zachování auditovatelnosti.
Definice
Pro pevně danou verzi enginu:
Pokud jsou dva vstupy po normalizaci ekvivalentní, engine musí vrátit identické výstupy (včetně ordering a rounding pravidel).
Požadavky (invarianty)
- Čisté funkce: doménové výpočty nemají vedlejší efekty.
- Bez závislosti na čase: žádné použití aktuálního času jako implicitního vstupu.
- Bez náhody: žádná nezaseedovaná náhoda; ideálně žádná náhoda vůbec.
- Stabilní pořadí: pořadí BOM a varování je stabilní pro identické vstupy.
- Explicitní rounding pravidla: přesnost/zaokrouhlování je definované a konzistentní.
- Verzované chování: změny ovlivňující výstupy vyžadují inkrement verze enginu.
Normalizační pravidla (konceptuálně)
- Kanonické jednotky (např. metry vs milimetry) před výpočtem.
- “Range clamping” jen pokud je explicitně definovaný; jinak odmítnout nevalidní rozsahy.
- Konzistentní zacházení s “ekvivalentními” vstupy (např. prázdné vs null vs vynechané) pomocí normalizace.
Co se smí měnit
- Formát výstupu se může vyvíjet, pokud historické výsledky zůstávají interpretovatelné (policy rozhodnutí).
- Nová varování/metriky lze přidat, pokud:
- jsou deterministické
- jsou jasně verzované
Očekávání testovací strategie
- Snapshot testy pro reprezentativní vstupy per typ scaffold systému.
- Property testy tam, kde to dává smysl (monotonicita, bounds).
- Golden test vektory pro compliance-kritické konfigurace.