import sys from pathlib import Path sys.path.insert(0, str(Path(__file__).resolve().parent)) from sliding_window_max import sliding_window_max as f def test_basic(): assert f([1,3,-1,-3,5,3,6,7], 3) == [3,3,5,5,6,7] def test_k1(): assert f([5,4,3], 1) == [5,4,3] def test_k_large(): assert f([1,2,3], 5) == [3] def test_empty(): assert f([], 3) == [] assert f([1,2,3], 0) == [] def test_all_equal(): assert f([7,7,7,7], 2) == [7,7,7] def test_negatives(): assert f([-1,-2,-3,-4], 2) == [-1,-2,-3] def test_single(): assert f([42], 1) == [42] assert f([42], 5) == [42] # brute fuzz import random rng = random.Random(99) for _ in range(3000): n = rng.randint(0, 25) nums = [rng.randint(-10, 10) for _ in range(n)] k = rng.randint(0, n + 2) if n else rng.randint(0, 4) got = f(nums, k) if not nums or k <= 0: exp = [] elif k == 1: exp = list(nums) elif k >= len(nums): exp = [max(nums)] else: exp = [max(nums[i:i+k]) for i in range(len(nums)-k+1)] assert got == exp, (nums, k, got, exp) print("ALL TESTS PASSED")