jpmschweitzer and Claude Opus 5
49812e3127
test(client): the chaining test outlived the chaining (T-1237)
...
4e503c356 deleted the client's _chain_runs() when the join moved to the
server, but left the test that pinned it. It asserted that three end-to-end
edges chain into one river, which is now precisely what must NOT happen, so
the gdUnit4 suite went red on main. Caught by the push gate; the parse sweep
I did run cannot see a behavioural assertion.
Replaced with the two properties that actually hold now, rather than dropped:
- A river's length is measured WHOLE. One course of four collinear points,
each 1,500 m segment 5.9 px and under the 15 px floor, total 17.6 px and
over it. That is the invariant the old test was really protecting — long
rivers must not vanish because their pieces are individually small — and it
survives the move to the server.
- Separate courses meeting end-to-end are NOT rejoined. This is the deleted
chaining's headstone. Water splits a course, and D-261 is explicit that a
river crossing a lake is two visible strokes, so a client that helpfully
reconnected them would draw a line across the lake. Three touching
sub-threshold courses must all be culled; a resurrected chaining pass would
report one.
1837 tests, 0 failed.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com >
2026-08-07 12:35:54 +02:00
..
2026-07-25 18:51:45 +02:00
2026-08-06 16:33:57 +02:00
2026-07-06 21:53:35 +02:00
2026-07-27 00:32:42 +02:00
2026-07-25 19:30:29 +02:00
2026-04-05 09:59:56 +02:00
2026-02-18 11:51:41 +01:00
2026-02-25 11:45:34 +01:00
2026-02-28 12:20:02 +01:00
2026-06-12 16:22:01 +02:00
2026-04-22 09:06:51 +02:00
2026-02-18 11:51:41 +01:00
2026-07-25 19:14:02 +02:00
2026-07-25 19:14:02 +02:00
2026-07-25 16:10:27 +02:00
2026-07-22 19:51:12 +02:00
2026-07-25 16:10:27 +02:00
2026-07-25 09:32:52 +02:00
2026-04-05 09:59:56 +02:00
2026-02-21 13:43:43 +01:00
2026-06-12 16:22:01 +02:00
2026-02-21 13:43:43 +01:00
2026-07-17 10:24:39 +02:00
2026-04-21 17:29:49 +02:00
2026-02-21 13:43:43 +01:00
2026-04-05 09:59:56 +02:00
2026-02-18 11:51:41 +01:00
2026-04-21 14:30:38 +02:00
2026-03-20 07:48:47 +01:00
2026-07-27 00:57:15 +02:00
2026-04-05 09:59:56 +02:00
2026-02-21 13:43:43 +01:00
2026-05-02 10:19:11 +02:00
2026-02-18 11:51:41 +01:00
2026-06-12 16:22:01 +02:00
2026-02-18 11:51:41 +01:00
2026-04-19 21:58:24 +02:00
2026-02-18 11:51:41 +01:00
2026-02-23 21:01:30 +01:00
2026-02-21 13:43:43 +01:00
2026-02-19 12:05:36 +01:00
2026-02-18 11:51:41 +01:00
2026-03-04 09:50:02 +01:00
2026-06-12 16:22:01 +02:00
2026-02-28 12:20:02 +01:00
2026-06-12 16:22:01 +02:00
2026-02-28 12:20:02 +01:00
2026-06-12 16:22:01 +02:00
2026-02-12 23:43:37 +01:00
2026-06-12 16:22:01 +02:00
2026-02-28 12:20:02 +01:00
2026-05-02 22:50:17 +02:00
2026-02-28 12:20:02 +01:00
2026-07-26 15:17:51 +02:00
2026-02-18 11:51:41 +01:00
2026-05-02 22:50:17 +02:00
2026-05-02 18:03:06 +02:00
2026-05-02 22:50:17 +02:00
2026-02-28 12:20:02 +01:00
2026-04-05 09:59:34 +02:00
2026-02-28 12:20:02 +01:00
2026-07-07 00:35:20 +02:00
2026-04-21 17:29:49 +02:00
2026-02-21 13:43:43 +01:00
2026-07-14 15:44:56 +02:00
2026-04-19 15:36:04 +02:00
2026-04-19 15:36:04 +02:00
2026-04-19 15:36:04 +02:00
2026-07-21 20:00:18 +02:00
2026-02-18 18:28:37 +01:00
2026-02-21 13:43:43 +01:00
2026-07-21 20:00:18 +02:00
2026-07-16 21:30:52 +02:00
2026-02-14 09:49:41 +01:00
2026-04-05 09:59:56 +02:00
2026-02-21 13:43:43 +01:00
2026-04-21 17:29:49 +02:00
2026-02-18 11:51:41 +01:00
2026-04-21 17:29:49 +02:00
2026-02-12 23:43:37 +01:00
2026-04-21 17:29:49 +02:00
2026-02-28 12:20:02 +01:00
2026-04-21 17:29:49 +02:00
2026-02-11 20:59:46 +01:00
2026-04-05 09:59:34 +02:00
2026-02-11 16:52:27 +01:00
2026-04-22 10:06:39 +02:00
2026-06-12 16:22:01 +02:00
2026-02-21 13:43:43 +01:00
2026-02-18 02:14:29 +01:00
2026-02-18 11:51:41 +01:00
2026-04-22 10:06:39 +02:00
2026-02-18 11:51:41 +01:00
2026-04-22 10:06:39 +02:00
2026-02-18 11:51:41 +01:00
2026-04-21 17:29:49 +02:00
2026-02-18 11:51:41 +01:00
2026-07-25 16:10:27 +02:00
2026-02-11 19:16:56 +01:00
2026-05-02 10:19:11 +02:00
2026-02-12 23:43:37 +01:00
2026-02-27 18:06:16 +01:00
2026-02-28 12:20:02 +01:00
2026-05-02 10:19:11 +02:00
2026-03-05 11:44:12 +01:00
2026-04-05 09:59:56 +02:00
2026-02-21 14:10:06 +01:00
2026-02-25 21:59:56 +01:00
2026-02-28 12:20:02 +01:00
2026-02-13 02:07:43 +01:00
2026-02-11 19:16:56 +01:00
2026-02-23 21:01:22 +01:00
2026-02-28 12:20:02 +01:00
2026-02-19 14:59:50 +01:00
2026-02-21 13:43:43 +01:00
2026-07-06 21:15:32 +02:00
2026-02-12 23:43:37 +01:00
2026-08-07 12:35:54 +02:00
2026-07-27 20:52:54 +02:00
2026-07-25 08:53:48 +02:00
2026-07-27 20:52:54 +02:00
2026-07-26 15:13:11 +02:00
2026-07-25 09:32:52 +02:00
2026-07-25 11:08:48 +02:00
2026-07-27 21:24:21 +02:00
2026-07-27 21:36:32 +02:00
2026-07-14 17:31:15 +02:00
2026-05-02 10:19:11 +02:00
2026-02-28 12:20:02 +01:00
2026-04-19 21:58:24 +02:00
2026-02-21 14:10:06 +01:00
2026-02-13 18:07:15 +01:00
2026-02-14 09:49:41 +01:00
2026-04-05 09:59:56 +02:00
2026-02-28 12:20:02 +01:00
2026-08-06 16:33:57 +02:00
2026-03-05 08:41:09 +01:00
2026-08-06 16:33:57 +02:00
2026-03-05 08:41:09 +01:00