From 3f47436073f4b2e4919067a810fd3b8afdf636f1 Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 20 Oct 2026 13:40:34 +0000 Subject: [PATCH] test: follow the recursive _advance in three-level feed checks baba5e0 replaced _advance_child with _advance(index, parent_buffer) driven from _hop; the two feed-order tests still patched the removed method. Patch _advance and record only index 2 (L1 hop feeding L2); assertions, expected order and the stale-feed negative control are unchanged. Co-Authored-By: Claude Opus 5.5 --- .../multigrid/test_refinement_three_level.py | 28 ++++++++++--------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/tests/validation/multigrid/test_refinement_three_level.py b/tests/validation/multigrid/test_refinement_three_level.py index ecc91c2..549a5c4 100644 --- a/tests/validation/multigrid/test_refinement_three_level.py +++ b/tests/validation/multigrid/test_refinement_three_level.py @@ -80,11 +80,12 @@ class ThreeLevelCPU(unittest.TestCase): f, g = run._levels[1:] b = g.boundary events, feeds = [], [] - advance, gather = run._advance_child, run._gather_halo - def record_feed(buffer, **kw): - self.assertIs(buffer, (f.current, f.spare)[len(feeds)]) - feeds.append(buffer) - advance(buffer, **kw) + advance, gather = run._advance, run._gather_halo + def record_feed(index, buffer, **kw): # index 2: L1 hop feeds L2 + if index == 2: + self.assertIs(buffer, (f.current, f.spare)[len(feeds)]) + feeds.append(buffer) + advance(index, buffer, **kw) def record_halo(level, buffer, **kw): if level is g: events.append(("halo", buffer)) @@ -95,7 +96,7 @@ class ThreeLevelCPU(unittest.TestCase): self.assertIs(kind, g.kind) events.append(("step", src)) g.kernel.side_effect = record_step - with patch.object(run, "_advance_child", side_effect=record_feed), \ + with patch.object(run, "_advance", side_effect=record_feed), \ patch.object(run, "_gather_halo", side_effect=record_halo): run.step() self.assertEqual(feeds, [f.current, f.spare]) @@ -105,8 +106,8 @@ class ThreeLevelCPU(unittest.TestCase): self.assertGreater(len(np.unique(b.tables["block"])), 1) # Negative control: reusing L1's old source at the midpoint must fail. feeds.clear() - with patch.object(run, "_advance_child", side_effect=lambda buffer, **kw: - record_feed(f.current, **kw)): + with patch.object(run, "_advance", side_effect=lambda index, buffer, **kw: + record_feed(index, f.current if index == 2 else buffer, **kw)): with self.assertRaises(AssertionError): run.step() run.close() @@ -172,11 +173,12 @@ class ThreeLevelGPU(unittest.TestCase): p1, p2 = run.patch, run.child_patch run.initialize(state(16, 16, 1), state(*p1.fine_shape, 2), state(*p2.fine_shape, 3)) f = run._levels[1] - feeds, original = [], run._advance_child - def record(buffer, **kw): - feeds.append(int(buffer)) - original(buffer, **kw) - with patch.object(run, "_advance_child", side_effect=record): + feeds, original = [], run._advance + def record(index, buffer, **kw): # index 2: L1 hop feeds L2 + if index == 2: + feeds.append(int(buffer)) + original(index, buffer, **kw) + with patch.object(run, "_advance", side_effect=record): cur, spare = int(f.current), int(f.spare) run.step(1) self.assertEqual(feeds, [cur, spare]) # current G, then the new G of hop 1