Revise testing.md for whitebox geometry correctness and snapping helpers

This commit is contained in:
2026-04-04 19:14:37 +02:00
parent c8fd1a6f94
commit 2e16851ac2

View File

@@ -33,7 +33,7 @@ Highest-priority confidence areas:
1. document validity and migrations 1. document validity and migrations
2. undo/redo correctness 2. undo/redo correctness
3. brush generation correctness 3. whitebox geometry generation correctness
4. per-face material/UV persistence 4. per-face material/UV persistence
5. runtime build correctness 5. runtime build correctness
6. asset import survival 6. asset import survival
@@ -95,7 +95,7 @@ Purpose:
Scope: Scope:
- math helpers - math helpers
- grid snapping - snapping helpers
- ID utilities - ID utilities
- small schema defaults - small schema defaults
- validation helpers - validation helpers
@@ -115,6 +115,7 @@ Examples:
- `snapValue(1.23, 0.5) -> 1.0` - `snapValue(1.23, 0.5) -> 1.0`
- UV rotate/flip calculations - UV rotate/flip calculations
- axis/local transform constraint calculations
- entity schema default application - entity schema default application
- command label generation if logic matters - command label generation if logic matters
@@ -137,7 +138,7 @@ Scope:
Examples: Examples:
- create brush command adds valid brush - create whitebox-solid command adds valid geometry
- undo removes it cleanly - undo removes it cleanly
- redo restores the same result - redo restores the same result
- invalid entity reference is detected - invalid entity reference is detected
@@ -151,12 +152,13 @@ These tests should not need a browser renderer.
Purpose: Purpose:
- verify brush/kernel correctness - verify whitebox geometry/kernel correctness
Scope: Scope:
- primitive generation - primitive generation
- face generation - face generation
- edge/vertex derivation where canonical
- topology expectations - topology expectations
- collision mesh generation - collision mesh generation
- imported-model collider generation - imported-model collider generation
@@ -167,12 +169,14 @@ Scope:
Examples: Examples:
- box brush creates expected face count - box-based whitebox solid creates expected face count
- stairs generator creates expected step count - stairs generator creates expected step count
- fit-to-face UV produces finite values - fit-to-face UV produces finite values
- clipping yields valid child brushes - edited solids triangulate without NaNs or invalid indices
- generated geometry contains no NaNs - generated geometry contains no NaNs
- rebuild is deterministic for the same input - rebuild is deterministic for the same input
- non-planar quad faces triangulate deterministically
- non-convex whitebox solids either derive valid output or fail clearly when unsupported
- imported model collider generation produces finite valid data for the selected mode - imported model collider generation produces finite valid data for the selected mode
- imported-model collider generation honors the authored mode semantics: - imported-model collider generation honors the authored mode semantics:
- terrain -> heightfield - terrain -> heightfield
@@ -186,7 +190,7 @@ Examples:
- assert invariants, not fragile exact arrays unless necessary - assert invariants, not fragile exact arrays unless necessary
- prefer bounded numeric comparisons - prefer bounded numeric comparisons
- verify no degenerate triangles where required - verify no degenerate triangles where required
- test edge cases: tiny sizes, rejected zero-like values, unsupported cases failing clearly - test edge cases: tiny sizes, float transforms, component edits, unsupported cases failing clearly
Geometry is a high-risk area and deserves dense testing. Geometry is a high-risk area and deserves dense testing.
@@ -210,6 +214,7 @@ Examples:
- scene round-trips without losing face materials - scene round-trips without losing face materials
- UV state survives save/load - UV state survives save/load
- floating point transforms survive save/load without accidental snapping
- imported asset refs survive save/load - imported asset refs survive save/load
- project package export/import preserves asset-backed scenes - project package export/import preserves asset-backed scenes
- unsupported version throws an understandable error - unsupported version throws an understandable error