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)]