Preserve animation key data, time steps, loop/ease behavior, bone hierarchy, transforms, scale propagation, skin weights, and event expectations.
Use an injected or paused clock for time-sensitive cases.
Retain original tolerances and regression descriptions.
Validation
All owned cases compile and have matching body hashes.
No arbitrary sleeps are introduced.
Placeholder panics cannot satisfy expected animation or transform errors.
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.
## Objective
Translate avatar manager, animations, animation track/player, skinning, skeleton, joint-pose, and attachment-rig tests.
## Deliverables
- Preserve animation key data, time steps, loop/ease behavior, bone hierarchy, transforms, scale propagation, skin weights, and event expectations.
- Use an injected or paused clock for time-sensitive cases.
- Retain original tolerances and regression descriptions.
## Validation
- All owned cases compile and have matching body hashes.
- No arbitrary sleeps are introduced.
- Placeholder panics cannot satisfy expected animation or transform errors.
## 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
Implemented in ffe559d. Translated all 60 owned C# cases as explicit Rust tests against the mapped library APIs: AnimationTrack 15, AnimeshPlayer 12, AnimeshSkinning 9, AvatarManager 4, and LindenSkeleton 20. Preserved exact inputs, ordering, identity checks, error variants, timing steps, loop/ease expectations, hierarchy, weights, and tolerances; no sleeps, dispatchers, generated source strings, or placeholder-success paths. Added only the required production API seams, all standardized as unimplemented, plus mapping corrections for mutability, nullable inputs/weights/children, mutable spans, UUID value semantics, and shared Joint identity. Isolated controlled-red result: 0 passed, 60 failed, 0 ignored at unimplemented library APIs. Verified format, regeneration drift, API coverage, parity, generator unit tests, workspace/all-target checks, locked API compile, test compilation, clippy with warnings denied, and docs. Re-audited prior live-grid cases: the three existing cases remain credential-aware and no additional prior live cases required changes.
Implemented in ffe559d. Translated all 60 owned C# cases as explicit Rust tests against the mapped library APIs: AnimationTrack 15, AnimeshPlayer 12, AnimeshSkinning 9, AvatarManager 4, and LindenSkeleton 20. Preserved exact inputs, ordering, identity checks, error variants, timing steps, loop/ease expectations, hierarchy, weights, and tolerances; no sleeps, dispatchers, generated source strings, or placeholder-success paths. Added only the required production API seams, all standardized as unimplemented, plus mapping corrections for mutability, nullable inputs/weights/children, mutable spans, UUID value semantics, and shared Joint identity. Isolated controlled-red result: 0 passed, 60 failed, 0 ignored at unimplemented library APIs. Verified format, regeneration drift, API coverage, parity, generator unit tests, workspace/all-target checks, locked API compile, test compilation, clippy with warnings denied, and docs. Re-audited prior live-grid cases: the three existing cases remain credential-aware and no additional prior live cases required changes.
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 avatar manager, animations, animation track/player, skinning, skeleton, joint-pose, and attachment-rig tests.
Deliverables
Validation
Prerequisite
Milestone 02 must provide the complete callable public API shim. Keep all production behavior standardized as unimplemented.
Project constraints
Implemented in
ffe559d. Translated all 60 owned C# cases as explicit Rust tests against the mapped library APIs: AnimationTrack 15, AnimeshPlayer 12, AnimeshSkinning 9, AvatarManager 4, and LindenSkeleton 20. Preserved exact inputs, ordering, identity checks, error variants, timing steps, loop/ease expectations, hierarchy, weights, and tolerances; no sleeps, dispatchers, generated source strings, or placeholder-success paths. Added only the required production API seams, all standardized as unimplemented, plus mapping corrections for mutability, nullable inputs/weights/children, mutable spans, UUID value semantics, and shared Joint identity. Isolated controlled-red result: 0 passed, 60 failed, 0 ignored at unimplemented library APIs. Verified format, regeneration drift, API coverage, parity, generator unit tests, workspace/all-target checks, locked API compile, test compilation, clippy with warnings denied, and docs. Re-audited prior live-grid cases: the three existing cases remain credential-aware and no additional prior live cases required changes.