Commit 64bf7d4
authored
`normalize_to_site_local`'s guard is a three-way conjunction, but only the
`tx` conjunct was pinned. Two thirds of it could be deleted outright with the
whole suite still green.
Mutation table, whole rust/ffi suite, before this change:
tx: `<` -> `<=` KILLED by the bracketing test
ty: `<` -> `<=` SURVIVED, 11/11 green
tz: `<` -> `<=` SURVIVED, 11/11 green
ty conjunct neutralised SURVIVED, 11/11 green
tz conjunct neutralised SURVIVED, 11/11 green
After, every one of the five FAILS (10 passed, 1 failed) -- including the tx
control, which was already killed and must stay killed. Review reproduced the
whole table independently, both directions.
Two axis-swap mutations are also newly killed, which was not the goal but is
the sharper proof that the tuples do real work:
read (st[12], st[14], st[13]) ty<->tz swap survived before, fails now
subtract chunk[1] -= site_tz swap in the loop survived before, fails now
Those die via the per-component expectation on the `should_shift == true`
cases. The `false` cases assert only "nothing changed", and a no-op has no
axis, so they cannot observe a wrong read on their own.
The failure the missing pins allowed is silent, not loud: a site far from the
origin on y or z would skip site-local normalisation entirely, leaving the
consumer to do its transform and render math on coordinates at georeferenced
magnitude. `positions` is already `f32` by this point, so this is not where
the first quantization happens -- what the normalisation prevents is the
further collapse downstream. Wrong geometry, no crash, no error. This is the
FFI surface, where the consumer count makes a quiet wrong answer expensive.
One axis proves nothing about the other two in a conjunction. The x cases were
correct and complete for x, and the test read as though it covered the guard.
Also updates the doc comment, which said "ty and tz are held at 0.0 and are not
independently exercised here". That was true when written and this commit makes
it false, so it goes in the same change rather than becoming the next stale
safety comment.
Assertion messages now print the whole translation triple. The old `tx={tx}`
would have printed `tx=0` on the six new cases -- a useless value rather than
a wrong one, but it named the one axis those cases hold at zero.
1 parent 54735f9 commit 64bf7d4
1 file changed
Lines changed: 19 additions & 9 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
120 | 120 | | |
121 | 121 | | |
122 | 122 | | |
123 | | - | |
124 | | - | |
125 | | - | |
126 | | - | |
127 | | - | |
128 | | - | |
129 | | - | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
130 | 132 | | |
131 | 133 | | |
132 | 134 | | |
| |||
151 | 153 | | |
152 | 154 | | |
153 | 155 | | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
154 | 164 | | |
155 | 165 | | |
156 | 166 | | |
| |||
166 | 176 | | |
167 | 177 | | |
168 | 178 | | |
169 | | - | |
| 179 | + | |
170 | 180 | | |
171 | 181 | | |
172 | 182 | | |
| |||
183 | 193 | | |
184 | 194 | | |
185 | 195 | | |
186 | | - | |
| 196 | + | |
187 | 197 | | |
188 | 198 | | |
189 | 199 | | |
| |||
0 commit comments