def test_peek(self): b = VecBuf() fl = flatten self.assertMatches(b.peek(0), '') self.assertRaises(VecBufEOB, b.peek, 1) self.assertRaises(VecBufEOB, b.peek_seq, 1) self.assertRaises(VecBufEOB, b.read, 1) b.write('ab') b.write_seq(['cd', '', 'ef']) self.assertMatches(b.peek(3), 'abc') self.assertMatches(b.peek(3), 'abc') self.assertMatches(fl(b.peek_seq(3)), 'abc') self.assertMatches(b.read(1), 'a') self.assertMatches(b.read(2), 'bc') b.write_seq(['gh', 'ij']) self.assertMatches(fl(b.peek_seq(7)), 'defghij') self.assertMatches(b.peek(7), 'defghij') self.assertMatches(fl(b.peek_seq(7)), 'defghij') self.assertMatches(b.peek(7), 'defghij') self.assertMatches(fl(b.read_seq(7)), 'defghij') self.assertMatches(b.peek(0), '') self.assertRaises(VecBufEOB, b.peek, 1) self.assertRaises(VecBufEOB, b.peek_seq, 1) self.assertRaises(VecBufEOB, b.read, 1)
def test_seq_read_write(self): b = VecBuf() fl = flatten b.write_seq(['ab', 'cd', '', 'ef', 'gh', 'ij']) self.assertMatches(b.read(0), '') self.assertMatches(b.read(1), 'a') self.assertMatches(b.read(2), 'bc') self.assertMatches(b.read(4), 'defg') self.assertMatches(b.read(0), '') self.assertMatches(b.read(2), 'hi') self.assertRaises(VecBufEOB, b.read, 2) self.assertMatches(b.read(0), '') self.assertMatches(b.read(1), 'j') self.assertRaises(VecBufEOB, b.read, 1) b.write_seq(['', 'abcd', 'efgh', 'ijkl', 'mnop']) self.assertMatches(b.read(2), 'ab') self.assertMatches(fl(b.read_seq(8)), 'cdefghij') self.assertMatches(b.read(4), 'klmn') self.assertRaises(VecBufEOB, b.read_seq, 3) self.assertMatches(fl(b.read_seq(2)), 'op') self.assertRaises(VecBufEOB, b.read, 1)
def test_a_scenario(self): b = VecBuf() b.write('abcde') b.write_seq(['fgh', 'ijkl']) b.write('mnopqr') self.assertMatches(b.read(1), 'a') self.assertMatches(b.read(1), 'b') self.assertMatches(b.read(4), 'cdef') self.assertMatches(b.read(10), 'ghijklmnop') self.assertMatches(b.read(1), 'q') self.assertMatches(b.read(1), 'r') self.assertRaises(VecBufEOB, b.read, 1)
def test_clone(self): b = VecBuf() fl = flatten b.write_seq(['ab', 'cd', '', 'ef', 'gh', 'ij']) self.assertMatches(b.read(0), '') self.assertMatches(b.read(1), 'a') self.assertMatches(b.read(2), 'bc') b2 = b.read_clone(6) self.assertMatches(b.read(1), 'j') self.assertRaises(VecBufEOB, b.read, 1) self.assertMatches(b2.read(6), 'defghi') self.assertRaises(VecBufEOB, b2.read, 1)
def test_seq_read_empty(self): b = VecBuf() fl = flatten self.assertMatches(fl(b.read_seq(0)), '') self.assertRaises(VecBufEOB, b.read_seq, 1) b.write('') self.assertMatches(fl(b.read_seq(0)), '') self.assertRaises(VecBufEOB, b.read_seq, 1) b.write_seq(['']) self.assertMatches(fl(b.read_seq(0)), '') self.assertRaises(VecBufEOB, b.read_seq, 1) b.write_seq(['', '']) self.assertMatches(fl(b.read_seq(0)), '') self.assertRaises(VecBufEOB, b.read_seq, 1)