acdream/tests/AcDream.Runtime.Tests
Erik 9910838fa4 test(physics): #265/#166 - Runtime-level walk-speed and landing-survival pins
Two new PlayerMovementController-level tests, exercising the real
production controller (not just the Core-level composed model in the
prior commit):

- Update_AnimationRootMotion_WalkSpeedUnaffectedByResidualVelocityFix:
  ordinary root-motion walking (no fall/collision in flight) advances by
  exactly the authored per-tick delta for 30 ticks with BodyVelocity
  staying exactly zero throughout - the fix is a complete no-op for the
  common case, pinning the L.3c hazard
  (claude-memory/project_physics_collision_digest.md's DO-NOT-RETRY
  table) at the Runtime level alongside the existing Core-level
  GroundedRootMotion_FrictionThreshold_DoesNotHammerLocomotionTests pin
  (unmodified, still green).

- Update_RunningJumpLandsOnFlatGround_ResidualVelocitySurvivesAndDecays_NotFrozen:
  a real charged running jump lands on flat ground and its residual
  horizontal speed survives the first post-landing tick, then measurably
  decays (dot(velocity, (0,0,1)) ~ 0 < 0.25, so friction engages here,
  unlike the sloped roof capture where it doesn't).

Building the second test surfaced two genuinely separate, already-
correctly-scoped mechanisms unrelated to #265/#166, requiring no
production change: MotionInterpreter.LeaveGround (CMotionInterp::
LeaveGround 0x00528b00, R3-W4/J7/J8) recomputes velocity from the
CURRENT interpreted command on the grounded->airborne edge tick, so the
test holds Forward for one extra tick before releasing it; and
MotionInterpreter.ApplyCurrentMovementInterpreted's AP-77 "animation-less
/headless movement fallback" (already correctly scoped in the
divergence register) independently rewrites grounded velocity when no
DefaultSink is wired, so the test wires a minimal
FakeAnimationDispatchSink to match production's always-wired sink.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-30 19:28:28 +02:00
..
Entities feat(render): Campaign V slice V11 commit 1 - delete ImGui, Studio, and the DevTools frontend 2026-07-28 23:56:04 +02:00
Gameplay test(physics): #265/#166 - Runtime-level walk-speed and landing-survival pins 2026-07-30 19:28:28 +02:00
Physics feat(physics): P5 commit 2 - arm the ConstraintManager leash on accepted positions (#167) 2026-07-30 12:05:19 +02:00
Platform feat(linux): add graphical platform services 2026-07-27 11:54:59 +02:00
Session feat(physics): Campaign P P1 - stat-coupled movement (burden/stamina/vitae) 2026-07-30 08:18:06 +02:00
Support refactor(runtime): unify generation reset for direct hosts 2026-07-27 00:43:26 +02:00
World refactor(runtime): acknowledge exact world host projections 2026-07-26 18:27:41 +02:00
AcDream.Runtime.Tests.csproj arch(runtime): establish presentation-independent boundary 2026-07-25 17:33:11 +02:00
GameRuntimeContractTests.cs refactor(runtime): acknowledge exact world host projections 2026-07-26 18:27:41 +02:00
GameRuntimeTests.cs feat(headless): complete deterministic bot command parity 2026-07-27 08:23:36 +02:00
NoWindowGameRuntimeHostTests.cs feat(headless): complete deterministic bot command parity 2026-07-27 08:23:36 +02:00
RuntimeDependencyBoundaryTests.cs feat(headless): establish portable Linux host boundary 2026-07-27 01:10:45 +02:00
RuntimeGenerationResetTests.cs feat(headless): complete deterministic bot command parity 2026-07-27 08:23:36 +02:00
RuntimeSimulationFixtureHostTests.cs refactor(runtime): unify generation reset for direct hosts 2026-07-27 00:43:26 +02:00