Files
textual/tests/test_wrap.py

44 lines
1.4 KiB
Python

import pytest
from textual._wrap import chunks, compute_wrap_offsets
@pytest.mark.parametrize(
"input_text, expected_output",
[
("", []),
(" ", [(0, 4, " ")]),
("\t", [(0, 1, "\t")]),
("foo", [(0, 3, "foo")]),
(" foo ", [(0, 2, " "), (2, 7, "foo ")]),
("foo bar", [(0, 4, "foo "), (4, 7, "bar")]),
("\tfoo bar", [(0, 1, "\t"), (1, 5, "foo "), (5, 8, "bar")]),
(" foo bar", [(0, 1, " "), (1, 5, "foo "), (5, 8, "bar")]),
("foo bar ", [(0, 4, "foo "), (4, 10, "bar ")]),
("foo\t bar ", [(0, 6, "foo\t "), (6, 12, "bar ")]),
("\t", [(0, 4, "\t "), (4, 8, "")]),
],
)
def test_chunks(input_text, expected_output):
assert list(chunks(input_text)) == expected_output
@pytest.mark.parametrize(
"text, width, tab_size, expected_output",
[
("", 6, 4, []),
("\t", 6, 4, []),
(" ", 6, 4, []),
("foo bar baz", 6, 4, [4, 8]),
("\tfoo bar baz", 6, 4, [1, 5, 9]),
("\tfo bar baz", 6, 4, [1, 4, 8]),
("\tfo bar baz", 6, 8, [1, 4, 8]),
("\tfo bar baz\t", 6, 8, [1, 4, 8]),
("\t\t\tfo bar baz\t", 20, 4, [10]),
("\t\t\t\t\t\t\t\tfo bar bar", 19, 4, [4, 11]),
("\t\t\t\t\t", 19, 4, [4]),
],
)
def test_compute_wrap_offsets(text, width, tab_size, expected_output):
assert compute_wrap_offsets(text, width, tab_size) == expected_output