starting to write a better version of bigtext

This commit is contained in:
2024-05-29 19:17:30 +02:00
parent 329775fb26
commit d561facb7e
3 changed files with 326 additions and 0 deletions

View 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()