starting to write a better version of bigtext
This commit is contained in:
53
src/new_big_text/test_file_model.py
Normal file
53
src/new_big_text/test_file_model.py
Normal file
@@ -0,0 +1,53 @@
|
||||
import unittest
|
||||
|
||||
from src.new_big_text.bigger_text import FileModel, Line, LineType
|
||||
|
||||
|
||||
class FileModelTestCase(unittest.TestCase):
|
||||
def test_read_lines_with_offset_0(self):
|
||||
fm = FileModel("testdata/readlines.txt")
|
||||
actual_lines = fm.read(file_offset=0, lines_to_read=5, max_line_length=16, encoding="utf8")
|
||||
self.assertEqual([
|
||||
Line(0, 1, '1\n'),
|
||||
Line(2, 4, '12\n'),
|
||||
Line(5, 8, '123\n'),
|
||||
Line(9, 13, '1234\n'),
|
||||
Line(14, 19, '12345\n')
|
||||
],
|
||||
actual_lines)
|
||||
|
||||
def test_read_lines_with_offset_in_middle_of_line(self):
|
||||
fm = FileModel("testdata/readlines.txt")
|
||||
file_offset = "1\n12\n123\n".find("123") + 1
|
||||
actual_lines = fm.read(
|
||||
file_offset=file_offset, # at char 2 in line 3
|
||||
lines_to_read=5,
|
||||
max_line_length=16,
|
||||
encoding="utf8")
|
||||
self.assertEqual([
|
||||
Line(5, 8, '123\n'),
|
||||
Line(9, 13, '1234\n'),
|
||||
Line(14, 19, '12345\n'),
|
||||
Line(20, 26, '123456\n'),
|
||||
Line(27, 34, '1234567\n')
|
||||
],
|
||||
actual_lines)
|
||||
|
||||
def test_read_long_line__buffer_larger_than_line(self):
|
||||
fm = FileModel("testdata/longLines.txt")
|
||||
fm.BUFFER_SIZE = 512
|
||||
actual_lines = fm.read(
|
||||
file_offset=0,
|
||||
lines_to_read=3,
|
||||
max_line_length=10,
|
||||
encoding="utf8"
|
||||
)
|
||||
self.assertEqual([
|
||||
Line(0, 9, "1aaaaaaaa-", LineType.Begin),
|
||||
Line(10, 19, "bbbbbbbbb-", LineType.Middle),
|
||||
Line(20, 27, "ccccccc\n", LineType.End),
|
||||
], actual_lines)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
Reference in New Issue
Block a user