feat: engine-state normalizer profile + sort_array_elements rule (#10)
- Rules.SortArrayElements: sort JSON arrays lexicographically (post-mask_guids order-independence) - Normalizer output: UnsafeRelaxedJsonEscaping to preserve <GUID>/<TS>/<VOLATILE> tokens - profiles/engine-state.yaml: normalize_paths + mask_guids + sort_array_elements + round_floats(2dp) + sort_json_keys - RunnerOptions.SidecarProfile: default "engine-state", overridable via --sidecar-profile - TestRunner.CaptureAndDiffSidecar: uses SidecarProfile instead of main Profile - 4 new normalizer tests (136 total) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
16
src/Recordingtest.Normalizer/profiles/engine-state.yaml
Normal file
16
src/Recordingtest.Normalizer/profiles/engine-state.yaml
Normal file
@@ -0,0 +1,16 @@
|
||||
name: engine-state
|
||||
# Sidecar JSON profile: {"scene":{...}, "camera":{...}, "selection":{...}}
|
||||
#
|
||||
# Rules applied in order:
|
||||
# 1. normalize_paths — mask document_path (user/temp dirs)
|
||||
# 2. mask_guids — selected_ids GUIDs → <GUID> (order becomes irrelevant)
|
||||
# 3. sort_array_elements — sort selected_ids after masking
|
||||
# 4. round_floats — camera eye/target/up coords with 2 decimal places
|
||||
# 5. sort_json_keys — deterministic key order for clean diff
|
||||
float_decimals: 2
|
||||
rules:
|
||||
- normalize_paths
|
||||
- mask_guids
|
||||
- sort_array_elements
|
||||
- round_floats
|
||||
- sort_json_keys
|
||||
Reference in New Issue
Block a user