From 3d330d0e0b7c139981a071113bf39b54ac098e41 Mon Sep 17 00:00:00 2001 From: cmoyates Date: Sun, 1 Mar 2026 06:27:31 -0330 Subject: [PATCH] fix: guard against overlap >= tile_size in tiled inference Co-Authored-By: Claude Opus 4.6 --- src/corridorkey_mlx/inference/tiling.py | 4 ++++ tests/test_tiling_consistency.py | 6 ++++++ 2 files changed, 10 insertions(+) diff --git a/src/corridorkey_mlx/inference/tiling.py b/src/corridorkey_mlx/inference/tiling.py index 1591385..84be576 100644 --- a/src/corridorkey_mlx/inference/tiling.py +++ b/src/corridorkey_mlx/inference/tiling.py @@ -27,6 +27,10 @@ def _compute_tile_coords( Tiles overlap by `overlap` pixels. Last tile is clamped to image boundary. """ + if overlap >= tile_size: + msg = f"overlap ({overlap}) must be less than tile_size ({tile_size})" + raise ValueError(msg) + if image_size <= tile_size: return [(0, image_size)] diff --git a/tests/test_tiling_consistency.py b/tests/test_tiling_consistency.py index 5bf0499..c467e2c 100644 --- a/tests/test_tiling_consistency.py +++ b/tests/test_tiling_consistency.py @@ -32,6 +32,12 @@ def model() -> GreenFormer: class TestTileCoords: + def test_overlap_gte_tile_size_raises(self) -> None: + with pytest.raises(ValueError, match="overlap.*must be less than tile_size"): + _compute_tile_coords(512, 256, 256) + with pytest.raises(ValueError, match="overlap.*must be less than tile_size"): + _compute_tile_coords(512, 256, 300) + def test_single_tile(self) -> None: coords = _compute_tile_coords(200, 256, 32) assert coords == [(0, 200)]