Exemple #1
0
    def test_read_empty(self):
        b = VecBuf()

        self.assertMatches(b.read(0), '')
        self.assertRaises(VecBufEOB, b.read, 1)

        b.write('a')
        self.assertMatches(b.read(0), '')
        self.assertMatches(b.read(1), 'a')
        self.assertRaises(VecBufEOB, b.read, 1)
Exemple #2
0
    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)
Exemple #3
0
    def test_read_write_mixed(self):
        b = VecBuf()

        b.write('abcd')
        self.assertMatches(b.read(4), 'abcd')

        self.assertRaises(VecBufEOB, b.read, 1)
Exemple #4
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)
Exemple #5
0
    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)
Exemple #6
0
    def test_read_write_not_aligned(self):
        b = VecBuf()

        b.write('ab')
        b.write('cd')
        b.write('')
        b.write('ef')
        b.write('gh')
        b.write('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('')
        b.write('abcd')
        b.write('efgh')
        b.write('ijkl')
        b.write('mnop')

        self.assertMatches(b.read(2), 'ab')
        self.assertMatches(b.read(8), 'cdefghij')
        self.assertMatches(b.read(4), 'klmn')

        self.assertRaises(VecBufEOB, b.read, 3)
        self.assertMatches(b.read(2), 'op')
        self.assertMatches(b.read(0), '')
        self.assertRaises(VecBufEOB, b.read, 1)
Exemple #7
0
    def test_read_write_empty_something(self):
        b = VecBuf()

        b.write('')
        b.write('')
        b.write('abcd')

        self.assertMatches(b.read(4), 'abcd')
        self.assertRaises(VecBufEOB, b.read, 1)
Exemple #8
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)