Commit 5ca9734
test(cliffs): capture the cliff fields at [0,0] - not the fields either (#76)
PR #75 exposed that "substituting the game's own fields moves nothing"
had only ever been measured on the corner-fields fixture's regions -
[1500,1500], [1100,2600], [-1700,1900] - which were chosen for issue #24
and are all calcite-dominated. Only one of them is a region the cliff
port is scored on, and it is the one the port already handles best (8.1%
orientation error). [0,0], at 29.8%, had never had its fields checked.
This captures both fields at every corner of all three cliff-entity
regions (12,675 corners) and scores the substitution on ORIENTATION -
four bits per cell against the game's own cliff_orientation, where PR
#57 scored placement at one bit.
[1500,1500] is deliberately in both fixtures. The overlap is the check
on this capture's corner indexing, since an off-by-one there would look
exactly like a field error at [0,0]; the two agree bit-for-bit on all
4225 shared corners.
Result: the game's own values reproduce ours to the unit in every
region, including [0,0] - same cells placed, same matched, same wrong
(335/228/68, 1065/830/67, 375/342/40). The +3 bias arm moves both
placement and orientation in all three, so the substitution is live
everywhere it is claimed to be.
So the entire residual is in the rule as ported, with no input left to
suspect: crossingsForChunk's sampling geometry, the cliff_smoothing knot
model, or crossesCliff. crossingsForChunk (0x10160c9cc, 2244 bytes) is
the one never decompiled whole.
Also corrects the older fixture's comment, which claimed
vulcanus_elevation was sampled only at the smoothing knots. It never
was: the corner set is a full nested loop over each region and both
samples take all of it, which 3 x 65 x 65 = 12675 confirms.
Claude-Session: https://claude.ai/code/session_013eczw9uoWDfN6Wc6kA7UBY
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>1 parent 8e2599f commit 5ca9734
5 files changed
Lines changed: 38356 additions & 8 deletions
File tree
- docs/noise
- test
- fixtures
- oracle
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
296 | 296 | | |
297 | 297 | | |
298 | 298 | | |
299 | | - | |
300 | | - | |
| 299 | + | |
| 300 | + | |
| 301 | + | |
301 | 302 | | |
302 | | - | |
303 | | - | |
| 303 | + | |
| 304 | + | |
| 305 | + | |
| 306 | + | |
| 307 | + | |
| 308 | + | |
| 309 | + | |
| 310 | + | |
| 311 | + | |
| 312 | + | |
| 313 | + | |
| 314 | + | |
| 315 | + | |
| 316 | + | |
| 317 | + | |
| 318 | + | |
| 319 | + | |
| 320 | + | |
| 321 | + | |
| 322 | + | |
| 323 | + | |
| 324 | + | |
| 325 | + | |
| 326 | + | |
| 327 | + | |
| 328 | + | |
| 329 | + | |
304 | 330 | | |
305 | 331 | | |
306 | 332 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
263 | 263 | | |
264 | 264 | | |
265 | 265 | | |
| 266 | + | |
| 267 | + | |
| 268 | + | |
| 269 | + | |
266 | 270 | | |
267 | 271 | | |
268 | 272 | | |
0 commit comments