31 lines
1.8 KiB
Markdown
31 lines
1.8 KiB
Markdown
# Unit Tests
|
|
|
|
브라우저에서 실행되는 결정론적 수치·계약 테스트입니다. 별도 Node.js test runner가 필요하지
|
|
않습니다.
|
|
|
|
## 실행
|
|
|
|
가장 간단한 자동 실행은 저장소 루트의 `test.cmd`입니다. 임시 local server와 headless Edge/Chrome을
|
|
실행하고 결과에 맞는 process exit code를 반환합니다.
|
|
|
|
수동 확인은 `start.cmd`를 실행한 뒤 최신 Edge 또는 Chrome에서
|
|
<http://127.0.0.1:4173/tests/>을 열어 페이지 상단의 통과/실패 합계와 각 결과를 확인합니다.
|
|
|
|
Unit과 integration module은 같은 browser runner에서 순서대로 실행됩니다. 다시 실행하려면 페이지를
|
|
새로 고치세요. 다른 포트를 사용했다면 URL의 포트도 바꾸며, `tests/index.html`을 파일로 직접 열면
|
|
안 됩니다.
|
|
|
|
## 범위
|
|
|
|
- `contracts.test.js`: Array·Scene·Experiment·Result schema, 관계 검증, 안전한 asset 경로와 이동 fixture
|
|
- `acoustics.test.js`: seed 재현성, 자유음장 전파, trajectory 보간, sample 정렬 시간창과
|
|
tone/noise/asset 절대 시간 연속성, calibration, STFT와 CPU DAS
|
|
- `builder.test.js`: Builder scene model, source/asset·trajectory 조작, 오디오 크기와 WAV 사전 검증
|
|
- `evaluation.test.js`: local peak와 검출 감도, truth matching, energy/sidelobe/main-lobe 및 비확률적
|
|
beam-spread covariance ellipse
|
|
- `camera.test.js`: canonical input hash, workload 추정, 이동 timeline 계획·재생 보간, Result schema 검증
|
|
- `webgpu.test.js`: WGSL buffer packing, bin/point batching, 장치 한계와 typed CPU fallback 정책
|
|
|
|
WebGPU unit test 대부분은 실제 GPU 없이 planner와 binary layout을 검증합니다. 실제 GPU 수치 일치는
|
|
integration test에서 adapter가 있을 때 수행합니다.
|