Translate avatar and animesh tests exactly #20

Closed
opened 2026-08-08 08:13:47 +00:00 by hugo · 1 comment
Owner

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.
## 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
hugo added the enhancement label 2026-08-08 08:13:47 +00:00
Author
Owner

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.
hugo closed this issue 2026-08-08 17:44:42 +00:00
Sign in to join this conversation.