コード例 #1
0
    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)
コード例 #2
0
    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)
コード例 #3
0
    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)
コード例 #4
0
    def test_seq_read_write_other(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 = VecBuf()

        b2.write_seq(b.read_seq(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)