| 404 | |
| 405 | |
| 406 | def test_divide(): |
| 407 | lines = Text(class="st">"foo").divide([]) |
| 408 | assert len(lines) == 1 |
| 409 | assert lines[0] == Text(class="st">"foo") |
| 410 | |
| 411 | text = Text() |
| 412 | text.append(class="st">"foo", class="st">"bold") |
| 413 | lines = text.divide([1, 2]) |
| 414 | assert len(lines) == 3 |
| 415 | assert str(lines[0]) == class="st">"f" |
| 416 | assert str(lines[1]) == class="st">"o" |
| 417 | assert str(lines[2]) == class="st">"o" |
| 418 | assert lines[0]._spans == [Span(0, 1, class="st">"bold")] |
| 419 | assert lines[1]._spans == [Span(0, 1, class="st">"bold")] |
| 420 | assert lines[2]._spans == [Span(0, 1, class="st">"bold")] |
| 421 | |
| 422 | text = Text() |
| 423 | text.append(class="st">"foo", class="st">"red") |
| 424 | text.append(class="st">"bar", class="st">"green") |
| 425 | text.append(class="st">"baz", class="st">"blue") |
| 426 | lines = text.divide([8]) |
| 427 | assert len(lines) == 2 |
| 428 | assert str(lines[0]) == class="st">"foobarba" |
| 429 | assert str(lines[1]) == class="st">"z" |
| 430 | assert lines[0]._spans == [ |
| 431 | Span(0, 3, class="st">"red"), |
| 432 | Span(3, 6, class="st">"green"), |
| 433 | Span(6, 8, class="st">"blue"), |
| 434 | ] |
| 435 | assert lines[1]._spans == [Span(0, 1, class="st">"blue")] |
| 436 | |
| 437 | lines = text.divide([1]) |
| 438 | assert len(lines) == 2 |
| 439 | assert str(lines[0]) == class="st">"f" |
| 440 | assert str(lines[1]) == class="st">"oobarbaz" |
| 441 | assert lines[0]._spans == [Span(0, 1, class="st">"red")] |
| 442 | assert lines[1]._spans == [ |
| 443 | Span(0, 2, class="st">"red"), |
| 444 | Span(2, 5, class="st">"green"), |
| 445 | Span(5, 8, class="st">"blue"), |
| 446 | ] |
| 447 | |
| 448 | |
| 449 | def test_right_crop(): |