The scene tests so far checked the descriptor and the arithmetic. Neither
would have noticed if `rasterise` put the sky along the bottom of the frame,
because both build their own weights and never ask where those weights land.
Three that do:
- **Weight stays on the side it came from.** Fill the top half of the grid,
read the top and bottom quarters of the image. A flipped y axis is the
mistake this code is actually prone to — it is a letterbox inverse, and the
numbers stay perfectly plausible when it is wrong.
- **No transpose.** The vertical check alone passes under a transpose, which
maps a top band onto a left band. A horizontal split is what distinguishes
them, and neither test is worth much without the other.
- **Coverage is a fraction.** A quarter of the cells must read 0.25. The
scene tab hides a category below half a percent, so an error of a factor of
the grid size would hide everything or nothing — and both look like the
model failing rather than the arithmetic.
`Scene::from_weights` is test-only and exists because the property under test
needs weights whose correct destination is known in advance, which no real
inference can provide. It uses a square window so the letterbox is the
identity: any offset these find is the mapping's own rather than the
padding's.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>