예제 #1
0
 def test_inserting_with_split(self):
     buffer = FileBuffer()
     buffer.insert(0, b'abcd')
     buffer.insert(4, b'efgh')
     buffer.insert(3, b'!')
     self.assertEqual(buffer.windows, [
         BufferContentWindow(0, b'abc'),
         BufferContentWindow(3, b'!'),
         BufferContentWindow(4, b'd'),
         BufferContentWindow(5, b'efgh'),
     ])
예제 #2
0
 def test_inserting_at_edges(self):
     buffer = FileBuffer()
     buffer.insert(0, b'4')
     buffer.insert(0, b'2')
     buffer.insert(1, b'3')
     buffer.insert(0, b'1')
     self.assertEqual(buffer.windows, [
         BufferContentWindow(0, b'1'),
         BufferContentWindow(1, b'2'),
         BufferContentWindow(2, b'3'),
         BufferContentWindow(3, b'4'),
     ])
예제 #3
0
 def test_invalid_cloning(self):
     window = BufferContentWindow(1, b'abcd')
     with self.assertRaises(AssertionError):
         window.clone(1, 5)
     with self.assertRaises(AssertionError):
         window.clone(0, 1)
     with self.assertRaises(AssertionError):
         window.clone(5, 1)
예제 #4
0
 def test_invalid_sizes_or_offsets(self):
     window = BufferContentWindow(1, b'abcd')
     with self.assertRaises(AssertionError):
         window.get(1, 5)
     with self.assertRaises(AssertionError):
         window.get(0, 1)
     with self.assertRaises(AssertionError):
         window.get(5, 1)
예제 #5
0
 def do_test(self, spec):
     window, input_texts, texts_wo_hash, _ = parse_spec(spec)
     buffer = FileBuffer()
     input_offset = 0
     for text in input_texts:
         buffer.insert(input_offset, text)
         input_offset += len(text)
     buffer.delete(window.start_offset, window.size)
     output_offset = 0
     output_windows = [BufferContentWindow(0, text) for text in texts_wo_hash]
     for output_range in output_windows:
         output_range.start_offset = output_offset
         output_offset += output_range.size
     self.assertEqual(buffer.windows, output_windows)
예제 #6
0
 def test_simple_inserting(self):
     buffer = FileBuffer()
     buffer.insert(0, b'test')
     self.assertEqual(buffer.windows, [BufferContentWindow(0, b'test')])
예제 #7
0
 def test_cloning(self):
     window1 = BufferContentWindow(1, b'abcd')
     window2 = window1.clone(2, 3)
     self.assertEqual(window2.get(2, 3), b'bcd')
예제 #8
0
 def test_nonzero_position(self):
     window = BufferContentWindow(1, b'abc')
     self.assertEqual(window.get(1, 3), b'abc')
     self.assertEqual(window.get(2, 2), b'bc')
예제 #9
0
 def test_zero_position(self):
     window = BufferContentWindow(0, b'xyyy')
     self.assertEqual(window.get(1, 3), b'yyy')