from dataset.problem_18.math_utils import clamp def moving_average(nums: list[int], window: int) -> list[float]: """Simple moving average over a fixed window.""" if window <= 0: raise ValueError("window must be positive") window = clamp(window, 1, len(nums)) out = [] # BUG: end index is off-by-one; misses final valid window. for i in range(0, len(nums) - window): out.append(sum(nums[i : i + window]) / window) return out