test: add immutable shell Jet baseline oracle
This commit is contained in:
@@ -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은 기준의 계산 순서와 관측 의미 보존을 검사한다.
|
||||
Reference in New Issue
Block a user