ModernUO/Projects/UOContent
Kamron Batman 64643dbc7e
test(pathing): consolidate the parity and lifecycle tests
Three files tested "parity" and none of them said which parity. They were in fact
three different layers, and the seams between them were the useful part, so they are
now one StepCacheParityTests that names them:

  ProbeMatchesSlowPath        StepProbe vs MovementImpl - is the bake right?
  CacheMatchesProbe           StepCache vs StepProbe    - is it stored and returned intact?
  CacheServesReachableWalkStates  StepCache vs MovementImpl - end to end, over the states A* visits

Merging them removed a duplicated stub Mobile, duplicated region seeds, and a
filename/class mismatch (StepProbeParityTests.cs declared StaticWalkabilityParityTests).
SwimBake_ProducesWetCells moved with it: it lived in the cache parity file but never
touched the cache - it is a probe test.

The layering is load-bearing, not cosmetic. Offsetting the cache's cell index by one
fails 7 of the 10 parity cases, and the 3 that stay green are exactly the ones that
don't touch the cache - so a failure localizes the fault instead of just reporting one.

Reflection: tests reached into StepCache._chunks via GetField in 9 places to inspect
or inject chunk state, each rebuilding the key and the cell-index arithmetic by hand.
StepCache now exposes GetResidentChunk and ResidentIndexInSync alongside the existing
internal test hooks (LazyReaderHasChunk, CurrentFindGeneration), and the shared
arithmetic moved to PathingTestSupport. All 9 reflection blocks are gone.

StepCacheLifecycleTests is regrouped by what it actually covers - promotion gate,
fallthrough routes, strata, swim layer, eviction - with the Tier4* names dropped
(same internal jargon already removed from the comments) and the repeated
offsets/strata byte-array construction replaced by builders.

Dropped Singleton_IsAvailable: it asserted that an inline-initialized static property
was not null, which it cannot be.

Test count 123 -> 122, entirely from that one removal; every parity case and every
behavioral assertion is preserved.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-12 19:48:57 -07:00
..
Accounting feat: add young_player_system feature flag to disable Young player system (#2445) 2026-05-05 20:09:49 -07:00
Assistants chore: Use var everywhere (#2294) 2025-12-27 16:47:28 -08:00
Commands fix: AddonGenerator produces broken/incomplete addon output (#2517) 2026-07-12 10:15:25 -07:00
Compression feat: Implements new robust/pluggable backup/archive system. (#2388) 2026-03-22 19:51:20 -07:00
Configuration feat: Pre-Publish 14 Crafting (supersedes #2181, #2381) (#2476) 2026-06-07 20:27:22 -07:00
Console feat: Adds console commands (#1714) 2024-03-30 09:40:43 -07:00
Context Menus fix: Moves ContextMenu out of core, streamlines code, fixes bugs (#1873) 2024-07-20 21:33:23 -07:00
Engines test(pathing): consolidate the parity and lifecycle tests 2026-07-12 19:48:57 -07:00
Gumps feat: Pre-Publish 14 Crafting (supersedes #2181, #2381) (#2476) 2026-06-07 20:27:22 -07:00
Holiday Stuff perf: Migrate Veteran Reward gumps to DynamicGump/StaticGump (#2415) 2026-04-25 20:09:27 -07:00
Items feat(throwing): add remaining SA throwing artifacts (add-only) (#2516) 2026-07-03 08:50:16 -07:00
Migrations feat(throwing): add remaining SA throwing artifacts (add-only) (#2516) 2026-07-03 08:50:16 -07:00
Misc fix(ci): run test projects on CI; remove brittle OPL attribute tests (#2513) 2026-07-02 22:35:37 -07:00
Mobiles feat(throwing): add Ter Mur reptiles (Raptor + slith family) and their SA claws (#2515) 2026-07-02 23:58:29 -07:00
Multis fix(housing): allow non-staff to place classic house pieces in customization (#2500) 2026-06-22 08:47:10 -07:00
Network feat: Pre-Publish 14 Crafting (supersedes #2181, #2381) (#2476) 2026-06-07 20:27:22 -07:00
Regions fix: Fixes criminals having guards called on them (#2348) 2026-03-13 17:35:47 -07:00
Skills feat: Pre-Publish 14 Crafting (supersedes #2181, #2381) (#2476) 2026-06-07 20:27:22 -07:00
Special Systems feat: Add zero-alloc interpolation handler to ValueStringBuilder, replace all StringBuilder usage (#2387) 2026-03-22 14:23:44 -07:00
Spells fix(necromancy): correct Blood Oath duration, reflection, and expiry timing (#1690) (#2480) 2026-06-08 23:42:28 -07:00
Systems/JailSystem fix: Bumps deps. Updates copyrights (#2353) 2026-03-05 19:36:54 -08:00
Targets chore: Use var everywhere (#2294) 2025-12-27 16:47:28 -08:00
Text fix: Bumps deps. Updates copyrights (#2353) 2026-03-05 19:36:54 -08:00
Utilities chore: Use var everywhere (#2294) 2025-12-27 16:47:28 -08:00
World Saves perf(messages): mechanical interpolation cleanups (#2436) 2026-05-03 18:26:49 -07:00
Module.cs fix: Fixes sending packets and sidesteps a major issue with stackalloc and PGO in .NET 8 (#1607) 2023-11-21 12:18:20 -08:00
UOContent.csproj fix: Bumps dependencies. Adds Server 2012/2016 support. (#2509) 2026-07-02 19:29:34 -07:00