test: add immutable shell Jet baseline oracle

This commit is contained in:
KOKO\Mimi
2026-10-21 07:04:15 +09:00
parent 9ae7e6d414
commit c0f06e9f64
5 changed files with 647 additions and 0 deletions
@@ -0,0 +1,40 @@
# Nonlinear MITC4 Jet 기준 검사
`fesa_jet_baseline_tests`는 제품의 private 구현을 별도 번역 단위에 포함하고
일반 solver archive를 연결한다. 제품 source와 공개 API를 계측하지 않는다.
독립 다항식 지수 미분 및 미분 항등식과 원래 경로의 비트 snapshot은 별도 근거다.
VS x64 환경과 저장소의 승인된 dependency 환경변수에서 실행한다.
```bat
MSBuild msvc\fesa_jet_baseline_tests.vcxproj /m:2 /p:Configuration=Debug /p:Platform=x64
.build\native\Debug\tests\fesa_jet_baseline_tests.exe --verify
cmake --preset windows-msvc-ninja-debug
cmake --build --preset windows-msvc-ninja-debug --target fesa_jet_baseline_tests --parallel 2
ctest --preset windows-msvc-ninja-debug -R "^NonlinearMitc4Jet\.IndependentOracle$" --output-on-failure
```
Release는 Native의 `Configuration=Release` 또는 해당 CMake Release preset을 쓴다.
기존 unit/integration/reference 세 GTest 실행물의 발견 identity와 이 전용 검사의
선택 수는 구분한다. CTest의 `--verify`는 baseline 파일을 생성하지 않는다.
승인된 기준 revision에서만 새 경로에 `--write <snapshot>`을 한 번 실행한다.
기존 파일은 덮어쓰지 않는다. 이후에는 원래 파일과 hash를 보존하고 같은 빌드 경로와
구성끼리 비교한다. 일반 회귀나 후보 코드에서 `--write`로 기대값을 만들지 않는다.
```bat
.build\native\Debug\tests\fesa_jet_baseline_tests.exe --compare "<immutable-Debug-snapshot>"
.build\native\Release\tests\fesa_jet_baseline_tests.exe --compare "<immutable-Release-snapshot>"
.build\cmake-debug\tests\fesa_jet_baseline_tests.exe --compare "<immutable-CMake-Debug-snapshot>"
```
`--compare <snapshot> --mutate`와 `--corrupt-oracle`는 각각 snapshot 비교와 독립
oracle의 fixture 전용 오류 주입이며 exit 1이 기대값이다. `--bench`는 별도 micro
측정이다. 연산의 할당·해제와 교대 입력값 갱신을 포함하고 fixture 생성은 제외한다.
전체 채널을 읽는 noinline checksum과 volatile consume을 포함해 결과 제거를 막는다.
공식 모델 CLI의 시간과 혼합하지 않는다.
snapshot은 finite 값·signed zero·Inf 비트, NaN 분류, provenance와 implicit Hessian,
복원한 초기 FP 환경 및 연산 뒤 FE/rounding/control word/full MXCSR를 기록한다.
공개 반환의 방향 요청 유무·실패 진단·회복량 identity도 포함한다. 수식의 정확성은
독립 oracle로 검사하고, snapshot은 기준의 계산 순서와 관측 의미 보존을 검사한다.