def test_historybuf(self): lb = filled_line_buf() hb = HistoryBuf(5, 5) hb.push(lb.line(1)) hb.push(lb.line(2)) self.ae(hb.count, 2) self.ae(hb.line(0), lb.line(2)) self.ae(hb.line(1), lb.line(1)) hb = filled_history_buf() self.ae(str(hb.line(0)), '4' * hb.xnum) self.ae(str(hb.line(4)), '0' * hb.xnum) hb.push(lb.line(2)) self.ae(str(hb.line(0)), '2' * hb.xnum) self.ae(str(hb.line(4)), '1' * hb.xnum) hb = large_hb = HistoryBuf(3000, 5) c = filled_cursor() for i in range(3000): line = lb.line(1) t = str(i).ljust(5) line.set_text(t, 0, 5, c) hb.push(line) for i in range(3000): self.ae(str(hb.line(i)).rstrip(), str(3000 - 1 - i)) # rewrap hb = filled_history_buf(5, 5) hb2 = HistoryBuf(hb.ynum, hb.xnum) hb.rewrap(hb2) for i in range(hb.ynum): self.ae(hb2.line(i), hb.line(i)) hb2 = HistoryBuf(8, 5) hb.rewrap(hb2) for i in range(hb.ynum): self.ae(hb2.line(i), hb.line(i)) for i in range(hb.ynum, hb2.ynum): with self.assertRaises(IndexError): hb2.line(i) hb2 = HistoryBuf(3, 5) hb.rewrap(hb2) for i in range(hb2.ynum): self.ae(hb2.line(i), hb.line(i)) self.ae(hb2.dirty_lines(), list(range(hb2.ynum))) hb = filled_history_buf(5, 5) hb2 = HistoryBuf(hb.ynum, hb.xnum * 2) hb.rewrap(hb2) hb3 = HistoryBuf(hb.ynum, hb.xnum) hb2.rewrap(hb3) for i in range(hb.ynum): self.ae(hb.line(i), hb3.line(i)) hb2 = HistoryBuf(hb.ynum, hb.xnum) large_hb.rewrap(hb2) hb2 = HistoryBuf(large_hb.ynum, large_hb.xnum) large_hb.rewrap(hb2)
def test_historybuf(self): lb = filled_line_buf() hb = HistoryBuf(5, 5) hb.push(lb.line(1)) hb.push(lb.line(2)) self.ae(hb.count, 2) self.ae(hb.line(0), lb.line(2)) self.ae(hb.line(1), lb.line(1)) hb = filled_history_buf() self.ae(str(hb.line(0)), '4' * hb.xnum) self.ae(str(hb.line(4)), '0' * hb.xnum) hb.push(lb.line(2)) self.ae(str(hb.line(0)), '2' * hb.xnum) self.ae(str(hb.line(4)), '1' * hb.xnum) # rewrap hb = filled_history_buf(5, 5) hb2 = HistoryBuf(hb.ynum, hb.xnum) hb.rewrap(hb2) for i in range(hb.ynum): self.ae(hb2.line(i), hb.line(i)) hb2 = HistoryBuf(8, 5) hb.rewrap(hb2) for i in range(hb.ynum): self.ae(hb2.line(i), hb.line(i)) for i in range(hb.ynum, hb2.ynum): with self.assertRaises(IndexError): hb2.line(i) hb2 = HistoryBuf(3, 5) hb.rewrap(hb2) for i in range(hb2.ynum): self.ae(hb2.line(i), hb.line(i)) self.ae(hb2.dirty_lines(), list(range(hb2.ynum))) hb = filled_history_buf(5, 5) hb2 = HistoryBuf(hb.ynum, hb.xnum * 2) hb.rewrap(hb2) hb3 = HistoryBuf(hb.ynum, hb.xnum) hb2.rewrap(hb3) for i in range(hb.ynum): self.ae(hb.line(i), hb3.line(i))