mirror of
https://github.com/Textualize/textual.git
synced 2025-10-17 02:38:12 +03:00
optimized line_crop
This commit is contained in:
55
tests/test_segment_tools.py
Normal file
55
tests/test_segment_tools.py
Normal file
@@ -0,0 +1,55 @@
|
||||
from rich.segment import Segment
|
||||
from rich.style import Style
|
||||
|
||||
|
||||
from textual._segment_tools import line_crop
|
||||
|
||||
|
||||
def test_line_crop():
|
||||
bold = Style(bold=True)
|
||||
italic = Style(italic=True)
|
||||
segments = [
|
||||
Segment("Hello", bold),
|
||||
Segment(" World!", italic),
|
||||
]
|
||||
|
||||
assert line_crop(segments, 1, 2) == [Segment("e", bold)]
|
||||
assert line_crop(segments, 4, 20) == [
|
||||
Segment("o", bold),
|
||||
Segment(" World!", italic),
|
||||
]
|
||||
|
||||
|
||||
def test_line_crop_emoji():
|
||||
bold = Style(bold=True)
|
||||
italic = Style(italic=True)
|
||||
segments = [
|
||||
Segment("Hello", bold),
|
||||
Segment("💩💩💩", italic),
|
||||
]
|
||||
assert line_crop(segments, 8, 11) == [Segment(" 💩", italic)]
|
||||
assert line_crop(segments, 9, 11) == [Segment("💩", italic)]
|
||||
|
||||
|
||||
def test_line_crop_edge():
|
||||
segments = [Segment("foo"), Segment("bar"), Segment("baz")]
|
||||
assert line_crop(segments, 2, 9) == [Segment("o"), Segment("bar"), Segment("baz")]
|
||||
assert line_crop(segments, 3, 9) == [Segment("bar"), Segment("baz")]
|
||||
assert line_crop(segments, 4, 9) == [Segment("ar"), Segment("baz")]
|
||||
assert line_crop(segments, 4, 8) == [Segment("ar"), Segment("ba")]
|
||||
|
||||
|
||||
def test_line_crop_edge_2():
|
||||
segments = [
|
||||
Segment("╭─"),
|
||||
Segment(
|
||||
"────── Placeholder ───────",
|
||||
),
|
||||
Segment(
|
||||
"─╮",
|
||||
),
|
||||
]
|
||||
result = line_crop(segments, 30, 60)
|
||||
expected = []
|
||||
print(repr(result))
|
||||
assert result == expected
|
||||
Reference in New Issue
Block a user