def test_windowing_split_valid_subproblem(self): # Window so large that it gets recursively split self.min_length = 2 # Update versus prior test self.week_demand = [[1, 0, 0, 4], [1, 2, 1, 0], [1, 1, 1, 1]] s = Splitter(self.week_demand, self.min_length, self.max_length) s._generate_windows() expected_windows = [(3, 7), (8, 10), (10, 13)] assert s._windows == expected_windows
def test_windowing_short_subproblem(self): self.week_demand = [[1, 2, 0, 0], [1, 3, 1, 0], [0, 1, 1, 0]] s = Splitter(self.week_demand, self.min_length, self.max_length) s._generate_windows() expected_windows = [ (4, 7), ] assert s._windows == expected_windows
def test_windowing_split_invalid_subproblem(self): # Window that is so large that it gets recursively split . . . # BUT one of the split problems is less the min length, so # it shoudl abandon the search self.week_demand = [[1, 1, 0, 4], [1, 2, 1, 0], [0, 1, 1, 1]] s = Splitter(self.week_demand, self.min_length, self.max_length) s._generate_windows() expected_windows = [(3, 7), (9, 14)] assert s._windows == expected_windows
def test_windowing_circular(self): self.week_demand = [[1, 1, 0, 4], [1, 2, 1, 0], [0, 0, 1, 1]] s = Splitter(self.week_demand, self.min_length, self.max_length) s._generate_windows() expected_windows = [(3, 7), (10, 14)] assert s._windows == expected_windows
def test_windowing_always_open(self): self.week_demand = [[1, 2, 3, 4], [1, 3, 1, 8], [1, 1, 1, 2]] s = Splitter(self.week_demand, self.min_length, self.max_length) s._generate_windows() expected_windows = [(0, 4), (4, 8), (8, 12)] assert s._windows == expected_windows
def test_windowing_standard_again(self): self.week_demand = [[0, 2, 3, 4, 0, 3, 1, 8], [1, 2, 3, 0, 2, 3, 1, 8]] s = Splitter(self.week_demand, self.min_length, self.max_length) s._generate_windows() expected_windows = [(1, 4), (5, 11), (12, 16)] assert s._windows == expected_windows
def test_windowing_standard(self): s = Splitter(self.week_demand, self.min_length, self.max_length) s._generate_windows() expected_windows = [(0, 3), (4, 7), (8, 11)] assert s._windows == expected_windows