mirror of
https://github.com/Textualize/textual.git
synced 2025-10-17 02:38:12 +03:00
44 lines
1.4 KiB
Python
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
|