ModernUO/Projects/UOContent.Tests/Tests/Engines/Pathing
Kamron Batman c265bcbb5e
feat(pathfinding): .swb format v7 per-chunk compression (#3a) (#2470)
## Summary
Phase #3a, stacked on #2469. Compresses each chunk record independently with libdeflate (random access preserved).

Trammel: 124.7 MB → 19.2 MB (−85%).

## Details
- Whole-record framing `[u32 UncompressedLen][payload]`; records that don't shrink (tiny Uniform) are stored raw, detected as payload length == UncompressedLen.
- Codec chosen by full-Trammel spike: libdeflate VeryHigh (16.5 MB, 1.83 µs/chunk decompress) over zstd L19/22 (17.4 MB) and managed Brotli q11 (16.4 MB) — best native ratio, fastest decompress, already the repo's packet codec (no new dependency).
- Reuses cached thread-static bindings: `Deflate.Maximum` for bake, `Deflate.Standard` for reads.
- Compression is bake-time only; decompression is one-time per chunk (LRU-cached).
- Format v7; v6 files rejected and re-baked once.

## Tests
v7 unit tests + the v6 suite run through the compression path; full pathfinding suite green; Release build clean.
2026-06-07 00:22:11 -07:00
..
BitmapAStarAlgorithmTests.cs feat(pathfinding): non-eager TryGetMask + second-touch promotion (#2451) 2026-06-06 13:11:53 -07:00
PathfindRecorderTests.cs feat(pathfinding): JSONL recorder + public bake helpers (#2449) 2026-05-06 13:06:28 -07:00
StepCacheFileTests.cs feat(pathfinding): non-eager TryGetMask + second-touch promotion (#2451) 2026-06-06 13:11:53 -07:00
StepCacheFileV6Tests.cs feat(pathfinding): .swb format v6 predictive-Z residuals (#2469) 2026-06-07 00:12:08 -07:00
StepCacheFileV7Tests.cs feat(pathfinding): .swb format v7 per-chunk compression (#3a) (#2470) 2026-06-07 00:22:11 -07:00
StepCacheLifecycleTests.cs feat(pathfinding): non-eager TryGetMask + second-touch promotion (#2451) 2026-06-06 13:11:53 -07:00
StepCacheParityTests.cs feat(pathfinding): non-eager TryGetMask + second-touch promotion (#2451) 2026-06-06 13:11:53 -07:00
StepCacheStaticSurfaceParityTests.cs feat(pathfinding): non-eager TryGetMask + second-touch promotion (#2451) 2026-06-06 13:11:53 -07:00
StepProbeParityTests.cs feat: expand cache to nearly all mobiles + dynamic-obstacle pass (#2447) 2026-05-06 00:14:08 -07:00
StepProbeTests.cs feat: expand cache to nearly all mobiles + dynamic-obstacle pass (#2447) 2026-05-06 00:14:08 -07:00