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.