Milestone 02 must provide the complete callable public API shim. Keep all production behavior standardized as unimplemented.
Project constraints
Translate the original test semantics exactly; do not weaken assertions, tolerances, inputs, errors, ordering, or interaction expectations.
Tests must exercise the mapped Rust API and must never call LibreMetaverse/.NET as their implementation.
Expected C# exceptions map to specific Rust error variants; an unimplemented panic must remain a failure.
Do not implement production behavior during this milestone. Update parity metadata and handover status with the change.
## Objective
Translate ManagedImage, baking, texture, Coord/Quat, PrimMesh, MeshFoundry, avatar bone math, and renderer tests.
## Deliverables
- Preserve pixel/channel buffers, geometry inputs, face indices, normals, UVs, winding, matrix order, and floating tolerances.
- Translate every rendering `[TestCase]` separately.
- Provide deterministic fixture comparison helpers without weakening tolerances.
## Validation
- All owned test cases compile on the default non-native feature set where possible.
- Native codec cases are categorized and build-gated explicitly.
- Failures identify unimplemented imaging/meshing/rendering members.
## Prerequisite
Milestone 02 must provide the complete callable public API shim. Keep all production behavior standardized as unimplemented.
## Project constraints
- Translate the original test semantics exactly; do not weaken assertions, tolerances, inputs, errors, ordering, or interaction expectations.
- Tests must exercise the mapped Rust API and must never call LibreMetaverse/.NET as their implementation.
- Expected C# exceptions map to specific Rust error variants; an unimplemented panic must remain a failure.
- Do not implement production behavior during this milestone. Update parity metadata and handover status with the change.
hugo
added this to the 03 - Full semantic test translation milestone 2026-08-08 08:13:47 +00:00
corrected generated public mappings for mutating ManagedImage/PrimMesh receivers, shared Coord/Quat Length receivers, rectangular terrain input shape, and in-place TransformTexCoords across MeshFoundry, SimpleRenderer, and IRendering
Correction after final live-spec review: the earlier failure-classification harness incorrectly treated NotImplemented results/panics as successful tests. I reopened#19 and replaced that commit in place with f79db97. The 78 separately translated cases now preserve the upstream buffers, geometry inputs, face/index/normal/UV assertions, matrix order, LOD cases, error expectations, and exact 1e-5/1e-4/0.01 tolerances while exercising only mapped public Rust APIs. Unimplemented production results and panics remain test failures; a focused run reports the exact ManagedImage constructor member ID. Verified: cargo fmt; mapping/shim/API/surface/parity generators and checks; Python tool tests; workspace/all-target and locked API compile checks; isolated imaging_meshing_semantics --no-run; workspace --no-run; clippy -D warnings; rustdoc. Parity is 283 translated, 999 pending, 3 ignored-live, 4 benchmark, 0 drift. Full cargo test remains intentionally red at the previously documented OarFile.LoadTerrain production shim boundary from #18.
Correction after final live-spec review: the earlier failure-classification harness incorrectly treated NotImplemented results/panics as successful tests. I reopened #19 and replaced that commit in place with f79db97. The 78 separately translated cases now preserve the upstream buffers, geometry inputs, face/index/normal/UV assertions, matrix order, LOD cases, error expectations, and exact 1e-5/1e-4/0.01 tolerances while exercising only mapped public Rust APIs. Unimplemented production results and panics remain test failures; a focused run reports the exact ManagedImage constructor member ID. Verified: cargo fmt; mapping/shim/API/surface/parity generators and checks; Python tool tests; workspace/all-target and locked API compile checks; isolated imaging_meshing_semantics --no-run; workspace --no-run; clippy -D warnings; rustdoc. Parity is 283 translated, 999 pending, 3 ignored-live, 4 benchmark, 0 drift. Full cargo test remains intentionally red at the previously documented OarFile.LoadTerrain production shim boundary from #18.
Superseding the earlier invalid 68ff802/f79db97 delivery notes: the corrected implementation is commit 7691d54, pushed to main. It translates all 78 NUnit invocations owned by this issue into explicit case-specific Rust tests: ManagedImage (3), AvatarBoneMath (2), MeshFoundry (28), Coord/Quat (18), and PrimMesh (27). Every test body now calls the mapped APIs directly and carries its own assertions; the old source-name/method-name dispatcher and string-driven fixture routing are absent. The translation preserves the exact channel buffers and row flip, nearest-neighbor samples, matrix composition and 1e-4 tolerance, Coord/Quat inputs and 1e-5 tolerance, PrimMesh constructor/extrusion/viewer-mode inputs and specific IndexOutOfRange errors, MeshFoundry geometry/face/index/normal/UV checks, terrain dimensions, and all four LOD TestCase invocations. All five source hashes match the pinned checkout. There are no live-grid or native-codec cases in this owned inventory. Parity is pending=999, translated=283, ignored-live=3, benchmark=4, drifted=0. Verified locally with formatter, mapping/shim/surface/API/parity gates, Python generator tests, workspace and downstream API checks, workspace test compilation, clippy -D warnings, and rustdoc. The isolated suite compiles and reports the intended controlled red result: 0 passed, 78 failed, 0 ignored, at exact standardized unimplemented API boundaries.
Superseding the earlier invalid 68ff802/f79db97 delivery notes: the corrected implementation is commit 7691d54, pushed to main. It translates all 78 NUnit invocations owned by this issue into explicit case-specific Rust tests: ManagedImage (3), AvatarBoneMath (2), MeshFoundry (28), Coord/Quat (18), and PrimMesh (27). Every test body now calls the mapped APIs directly and carries its own assertions; the old source-name/method-name dispatcher and string-driven fixture routing are absent. The translation preserves the exact channel buffers and row flip, nearest-neighbor samples, matrix composition and 1e-4 tolerance, Coord/Quat inputs and 1e-5 tolerance, PrimMesh constructor/extrusion/viewer-mode inputs and specific IndexOutOfRange errors, MeshFoundry geometry/face/index/normal/UV checks, terrain dimensions, and all four LOD TestCase invocations. All five source hashes match the pinned checkout. There are no live-grid or native-codec cases in this owned inventory. Parity is pending=999, translated=283, ignored-live=3, benchmark=4, drifted=0. Verified locally with formatter, mapping/shim/surface/API/parity gates, Python generator tests, workspace and downstream API checks, workspace test compilation, clippy -D warnings, and rustdoc. The isolated suite compiles and reports the intended controlled red result: 0 passed, 78 failed, 0 ignored, at exact standardized unimplemented API boundaries.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Objective
Translate ManagedImage, baking, texture, Coord/Quat, PrimMesh, MeshFoundry, avatar bone math, and renderer tests.
Deliverables
[TestCase]separately.Validation
Prerequisite
Milestone 02 must provide the complete callable public API shim. Keep all production behavior standardized as unimplemented.
Project constraints
Implemented and pushed in commit
68ff802(Translate imaging and meshing parity tests).Implementation:
Verification:
Correction after final live-spec review: the earlier failure-classification harness incorrectly treated NotImplemented results/panics as successful tests. I reopened #19 and replaced that commit in place with
f79db97. The 78 separately translated cases now preserve the upstream buffers, geometry inputs, face/index/normal/UV assertions, matrix order, LOD cases, error expectations, and exact 1e-5/1e-4/0.01 tolerances while exercising only mapped public Rust APIs. Unimplemented production results and panics remain test failures; a focused run reports the exact ManagedImage constructor member ID. Verified: cargo fmt; mapping/shim/API/surface/parity generators and checks; Python tool tests; workspace/all-target and locked API compile checks; isolated imaging_meshing_semantics --no-run; workspace --no-run; clippy -D warnings; rustdoc. Parity is 283 translated, 999 pending, 3 ignored-live, 4 benchmark, 0 drift. Full cargo test remains intentionally red at the previously documented OarFile.LoadTerrain production shim boundary from #18.Superseding the earlier invalid 68ff802/f79db97 delivery notes: the corrected implementation is commit
7691d54, pushed to main. It translates all 78 NUnit invocations owned by this issue into explicit case-specific Rust tests: ManagedImage (3), AvatarBoneMath (2), MeshFoundry (28), Coord/Quat (18), and PrimMesh (27). Every test body now calls the mapped APIs directly and carries its own assertions; the old source-name/method-name dispatcher and string-driven fixture routing are absent. The translation preserves the exact channel buffers and row flip, nearest-neighbor samples, matrix composition and 1e-4 tolerance, Coord/Quat inputs and 1e-5 tolerance, PrimMesh constructor/extrusion/viewer-mode inputs and specific IndexOutOfRange errors, MeshFoundry geometry/face/index/normal/UV checks, terrain dimensions, and all four LOD TestCase invocations. All five source hashes match the pinned checkout. There are no live-grid or native-codec cases in this owned inventory. Parity is pending=999, translated=283, ignored-live=3, benchmark=4, drifted=0. Verified locally with formatter, mapping/shim/surface/API/parity gates, Python generator tests, workspace and downstream API checks, workspace test compilation, clippy -D warnings, and rustdoc. The isolated suite compiles and reports the intended controlled red result: 0 passed, 78 failed, 0 ignored, at exact standardized unimplemented API boundaries.