spatialStreaming test suite
Covers the spatialStreaming package on both halves of what it is.
The rule, as pure functions — cellKeyAt / cellCoords / cellBounds
agreeing on one square, cellDistance running to the nearest edge (the case
that separates it from a centre-based measure, which would release the ground a
source is standing on the corner of), decide returning resident / released /
hold across the hysteresis band, proxyDecide doing the same over the far-field
radii, and the refusal of a radius pair with no band between it.
The store, against a live scene — a capture taking roots, counting the
branches it was handed and refusing a root it already holds; content past the
unload radius leaving entity.findAll entirely and returning with the tint,
position and attribute written while it was resident; a subtree coming back
parented; a 201-entity group — more than one frame's drain admits — coming back
whole and releasing with every entity it started with; a group whose root
gameplay destroyed leaving the store instead of lingering as a slot that names
nothing, with the steps that follow completing; a root that moved streaming from
where it ended up; a step spending the budget it was given; a transition the
budget cut short finishing even inside the hold band; a cell standing while any
one source holds it; a disabled layer releasing its own content and nothing
else; a file-backed cell reporting zero resident bytes while it is away and
reading them back on a visit; and a second tick inside one frame changing
nothing.
The far field — a proxy pair left alone following the content radii, so a configure and a setLayer that name only a wide unload radius are accepted and report a far field past it, while a pinned radius inside the unload radius is refused and changes nothing (the layer it was aimed at can still be switched off) and a zero hands a pin back to the derivation; a derived silhouette containing every record it stands for, including a group whose root stands rotated and scaled, where the raw offsets name a place the content is not; a walk over a store whose budget cannot move a cell in one step never taking a cell in the proxy band from covered to uncovered, with both representations exercised; a stand-in coming down once the content it covered has landed, so the two overlap for the handover and no longer; a proxy costing a fraction of the content it stands in for; clearing one taking down what it had standing and its now-empty cell with it; a disabled layer holding no stand-in either; a proxy despawned out from under the store being raised again from its records; and a store that was never given a proxy streaming exactly as it did.
Each live case resets the store, restores the world-wide configuration and
despawns its own __stream_* entities on the way out; the file-backed case
writes under Test.tmpPath and removes the tree it wrote. The suite leaves the
engine as it found it.
Scoped to this part · feeds back into the world's score.