Fix normalizer sidecar log and coverage test (#4)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
41
docs/history/2026-04-07_이슈4-normalizer-iteration2.md
Normal file
41
docs/history/2026-04-07_이슈4-normalizer-iteration2.md
Normal file
@@ -0,0 +1,41 @@
|
||||
# 2026-04-07 이슈 #4 — Normalizer Iteration 2 (Generator)
|
||||
|
||||
## 요약
|
||||
Evaluator가 fail 처리한 두 항목(DoD #6 sidecar 로그, DoD #7 suspected-field 커버리지)을 수정.
|
||||
|
||||
## 변경 사항
|
||||
- `src/Recordingtest.Normalizer/Normalizer.cs`
|
||||
- `Normalize(string input, string profileName, string? sidecarPath = null)` 오버로드 추가.
|
||||
- `sidecarPath`가 디렉터리면 `<dir>/normalization.log`, 아니면 해당 경로에 작성.
|
||||
- 포맷: `{RuleId}\tcount={Count}` 라인을 RuleId 사전순 정렬, 마지막 `total=<sum>` 라인.
|
||||
- `src/Recordingtest.Normalizer/Rules.cs`
|
||||
- `mask_volatile_settings` 규칙 추가. catalog에 등재된 휘발성 boolean/scalar 필드 (GridSnap, IsSidePanelVisible, GridColor.* 등)의 값을 `<VOLATILE>`로 마스킹.
|
||||
- `src/Recordingtest.Normalizer/profiles/default.yaml`
|
||||
- `mask_volatile_settings` 규칙을 sort_json_keys 직전에 추가.
|
||||
- `tests/Recordingtest.Normalizer.Tests/RuleTests.cs`
|
||||
- sidecar 파일/디렉터리 두 케이스 테스트 추가.
|
||||
- default 적용 규칙 수 5 → 6 갱신, `mask_volatile_settings` 포함 검증.
|
||||
- `tests/Recordingtest.Normalizer.Tests/CoverageTests.cs`
|
||||
- `|| true` 단락 제거. 명시적 `Dictionary<string,string>` 필드→규칙 매핑 도입.
|
||||
- 매핑된 규칙이 default 프로파일에 실제로 존재하는지 검증.
|
||||
- 매핑 없는 필드는 explicit 메시지로 fail.
|
||||
|
||||
## 매핑 (suspectedNondeterministicFields → 규칙)
|
||||
- `AutoSaveFilePath`, `AutoSave_RecentFileName` → `normalize_paths`
|
||||
- `CanOverrideWireColorWithFace`, `IsSidePanelVisible`, `OverrideFaceColor`, `Solar_IsLocalTime`, `VisibleGrid`, `GridSnap`, `MidpointOsnap`, `GridSpacing` → `mask_volatile_settings`
|
||||
- `GridColor.{ALPHA,BLUE,GREEN,RED}`, `MajorGridColor.{ALPHA,BLUE,GREEN,RED}` → `mask_volatile_settings`
|
||||
|
||||
## 결과
|
||||
- `dotnet build recordingtest.sln`: 경고 0, 오류 0
|
||||
- `dotnet test tests/Recordingtest.Normalizer.Tests`: 10/10 pass (기존 8 + sidecar 2)
|
||||
- 강화된 coverage 테스트가 명시적 매핑으로 실제 통과함 (단락 없음).
|
||||
- sidecar 파일 작성 verified (파일 존재 + 라인 포맷 + 정렬 + total 합계).
|
||||
|
||||
## 소요 시간
|
||||
약 15분
|
||||
|
||||
## Context 사용량
|
||||
약 35k tokens
|
||||
|
||||
## 관련 이슈
|
||||
#4
|
||||
Reference in New Issue
Block a user