def test_overlapping(self): self.assert_iter_equal(windowed(range(6), 3, 2), [(0, 1, 2), (2, 3, 4)]) self.assert_iter_equal(windowed(range(7), 3, 2), [(0, 1, 2), (2, 3, 4), (4, 5, 6)]) self.assert_iter_equal(windowed(range(7), 3, 4), [(0, 1, 2), (4, 5, 6)]) self.assert_iter_equal(windowed(range(8), 3, 4), [(0, 1, 2), (4, 5, 6)]) self.assert_iter_equal(windowed(range(11), 3, 4), [(0, 1, 2), (4, 5, 6), (8, 9, 10)])
def test_partial(self): self.assert_iter_equal(windowed(range(4), 3, partial=True), [(0, 1, 2), (1, 2, 3), (2, 3), (3, )]) self.assert_iter_equal(windowed(range(4), 3, 2, partial=True), [(0, 1, 2), (2, 3)]) self.assert_iter_equal(windowed(range(4), 3, 3, partial=True), [(0, 1, 2), (3, )]) self.assert_iter_equal(windowed(range(7), 3, 5, partial=True), [(0, 1, 2), (5, 6)])
def test_chop_partial(self): size = 3 self.assert_iter_equal( chopped(windowed(range(4), size, 1, partial=True), size), [(0, 1, 2), (1, 2, 3)]) self.assert_iter_equal( chopped(chunked(range(7), size, partial=True), size), [(0, 1, 2), (3, 4, 5)])
def test_empty(self): for size in [0, 1, 234]: for null in [0, None, -1]: windows = [windowed(range(size), null), windowed(range(size), null, null), windowed(range(size), null, 1), windowed(range(size), 1, null)] for window in windows: self.assert_iter_equal(window, []) windows = [windowed(range(0), 1), windowed(range(0), 3, 2), windowed(range(0), 30000, 2312)] for window in windows: self.assert_iter_equal(window, [])
def test_empty(self): for size in [0, 1, 234]: for null in [0, None, -1]: windows = [ windowed(range(size), null), windowed(range(size), null, null), windowed(range(size), null, 1), windowed(range(size), 1, null) ] for window in windows: self.assert_iter_equal(window, []) windows = [ windowed(range(0), 1), windowed(range(0), 3, 2), windowed(range(0), 30000, 2312) ] for window in windows: self.assert_iter_equal(window, [])
def test_not_evenly_divisible(self): correct = [(0, 1, 2), (3, 4, 5)] self.assert_iter_equal(windowed(range(7), 3, 3), correct) self.assert_iter_equal(windowed(range(8), 3, 3), correct)
def test_evenly_divisible(self): self.assert_iter_equal(windowed(range(6), 3, 3), [(0, 1, 2), (3, 4, 5)]) self.assert_iter_equal(windowed(range(9), 3, 3), [(0, 1, 2), (3, 4, 5), (6, 7, 8)])
def test_windows_of_one(self): self.assert_iter_equal(windowed(range(6), 1), [(0, ), (1, ), (2, ), (3, ), (4, ), (5, )])
def test_single(self): self.assert_iter_equal(windowed(range(1), 1), [(0, )]) self.assert_iter_equal(windowed(range(1), 2), []) self.assert_iter_equal(windowed(range(1), 1, 2), [(0, )])
def test_chop_partial(self): size = 3 self.assert_iter_equal(chopped(windowed(range(4), size, 1, partial=True), size), [(0, 1, 2), (1, 2, 3)]) self.assert_iter_equal(chopped(chunked(range(7), size, partial=True), size), [(0, 1, 2), (3, 4, 5)])
def test_partial(self): self.assert_iter_equal(windowed(range(4), 3, partial=True), [(0, 1, 2), (1, 2, 3), (2, 3), (3,)]) self.assert_iter_equal(windowed(range(4), 3, 2, partial=True), [(0, 1, 2), (2, 3)]) self.assert_iter_equal(windowed(range(4), 3, 3, partial=True), [(0, 1, 2), (3,)]) self.assert_iter_equal(windowed(range(7), 3, 5, partial=True), [(0, 1, 2), (5, 6)])
def test_windows_of_one(self): self.assert_iter_equal(windowed(range(6), 1), [(0,), (1,), (2,), (3,), (4,), (5,)])
def test_single(self): self.assert_iter_equal(windowed(range(1), 1), [(0,)]) self.assert_iter_equal(windowed(range(1), 2), []) self.assert_iter_equal(windowed(range(1), 1, 2), [(0,)])