def test_user_marking(self): s = self.create_screen() s.draw('abaa') s.carriage_return(), s.linefeed() s.draw('xyxyx') s.set_marker(marker_from_regex('a', 3)) self.ae(s.marked_cells(), [(0, 0, 3), (2, 0, 3), (3, 0, 3)]) s.set_marker() self.ae(s.marked_cells(), []) def mark_x(text): col = 0 for i, c in enumerate(text): if c == 'x': col += 1 yield i, i, col s.set_marker(marker_from_function(mark_x)) self.ae(s.marked_cells(), [(0, 1, 1), (2, 1, 2), (4, 1, 3)]) s = self.create_screen(lines=5, scrollback=10) for i in range(15): s.draw(str(i)) if i != 14: s.carriage_return(), s.linefeed() s.set_marker(marker_from_regex(r'\d+', 3)) for i in range(10): self.assertTrue(s.scroll_to_next_mark()) self.ae(s.scrolled_by, i + 1) self.ae(s.scrolled_by, 10) for i in range(10): self.assertTrue(s.scroll_to_next_mark(0, False)) self.ae(s.scrolled_by, 10 - i - 1) self.ae(s.scrolled_by, 0)
def test_user_marking(self): def cells(*a, y=0, mark=3): return [(x, y, mark) for x in a] s = self.create_screen() s.draw('abaa') s.carriage_return(), s.linefeed() s.draw('xyxyx') s.set_marker(marker_from_regex('a', 3)) self.ae(s.marked_cells(), cells(0, 2, 3)) s.set_marker() self.ae(s.marked_cells(), []) def mark_x(text): col = 0 for i, c in enumerate(text): if c == 'x': col += 1 yield i, i, col s.set_marker(marker_from_function(mark_x)) self.ae(s.marked_cells(), [(0, 1, 1), (2, 1, 2), (4, 1, 3)]) s = self.create_screen(lines=5, scrollback=10) for i in range(15): s.draw(str(i)) if i != 14: s.carriage_return(), s.linefeed() s.set_marker(marker_from_regex(r'\d+', 3)) for i in range(10): self.assertTrue(s.scroll_to_next_mark()) self.ae(s.scrolled_by, i + 1) self.ae(s.scrolled_by, 10) for i in range(10): self.assertTrue(s.scroll_to_next_mark(0, False)) self.ae(s.scrolled_by, 10 - i - 1) self.ae(s.scrolled_by, 0) s = self.create_screen() s.draw('🐈ab') s.set_marker(marker_from_regex('🐈', 3)) self.ae(s.marked_cells(), cells(0, 1)) s.set_marker(marker_from_regex('🐈a', 3)) self.ae(s.marked_cells(), cells(0, 1, 2)) s.set_marker(marker_from_regex('a', 3)) self.ae(s.marked_cells(), cells(2)) s = self.create_screen(cols=20) s.tab() s.draw('ab') s.set_marker(marker_from_regex('a', 3)) self.ae(s.marked_cells(), cells(8)) s.set_marker(marker_from_regex('\t', 3)) self.ae(s.marked_cells(), cells(*range(8))) s = self.create_screen() s.cursor.x = 2 s.draw('x') s.cursor.x += 1 s.draw('x') s.set_marker(marker_from_function(mark_x)) self.ae(s.marked_cells(), [(2, 0, 1), (4, 0, 2)])
def test_user_marking(self): s = self.create_screen() s.draw('abaa') s.carriage_return(), s.linefeed() s.draw('xyxyx') s.set_marker(marker_from_regex('a', 3)) self.ae(s.marked_cells(), [(0, 0, 3), (2, 0, 3), (3, 0, 3)]) s.set_marker() self.ae(s.marked_cells(), []) def mark_x(text): col = 0 for i, c in enumerate(text): if c == 'x': col += 1 yield i, i, col s.set_marker(marker_from_function(mark_x)) self.ae(s.marked_cells(), [(0, 1, 1), (2, 1, 2), (4, 1, 3)])