← mined_oracle

rich_2736

failed WRONG_FIX UNSUBMITTED wrong_fix_unsubmitted(None) · None tool calls · 0 s · Textualize/rich

Task input

(not found in data/tasks.jsonl)

Tool calls (0)

#ToolArgumentsResult
No trace captured.

Patch

--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -5,6 +5,12 @@ All notable changes to this project will be documented in this file.
 The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
 and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
 
+## [13.0.1] - 2022-01-06
+
+### Fixed
+
+- Fixed issue with Segment.split_cells for mixed single and double cell widths
+
 ## [13.0.0] - 2022-12-30
 
 ### Fixed
--- a/rich/segment.py
+++ b/rich/segment.py
@@ -119,7 +119,7 @@ class Segment(NamedTuple):
 
         cell_size = get_character_cell_size
 
-        pos = int((cut / cell_length) * len(text))
+        pos = int((cut / cell_length) * (len(text) - 1))
 
         before = text[:pos]
         cell_pos = cell_len(before)

Test output

show
.................F
=================================== FAILURES ===================================
_____________________________ test_divide_complex ______________________________

    def test_divide_complex():
        MAP = (
            "[on orange4]          [on green]XX[on orange4]          \n"
            "                        \n"
            "                        \n"
            "                        \n"
            "              [bright_red on black]Y[on orange4]        \n"
            "[on green]X[on orange4]                  [on green]X[on orange4]  \n"
            " [on green]X[on orange4]                   [on green]X\n"
            "[on orange4]                        \n"
            "          [on green]XX[on orange4]          \n"
        )
        from rich.console import Console
        from rich.text import Text
    
        text = Text.from_markup(MAP)
        console = Console(
            color_system="truecolor", width=30, force_terminal=True, file=StringIO()
        )
        console.print(text)
        result = console.file.getvalue()
    
        print(repr(result))
        expected = "\x1b[48;5;94m          \x1b[0m\x1b[42mXX\x1b[0m\x1b[48;5;94m          \x1b[0m\n\x1b[48;5;94m                        \x1b[0m\n\x1b[48;5;94m                        \x1b[0m\n\x1b[48;5;94m                        \x1b[0m\n\x1b[48;5;94m              \x1b[0m\x1b[91;40mY\x1b[0m\x1b[91;48;5;94m        \x1b[0m\n\x1b[91;42mX\x1b[0m\x1b[91;48;5;94m                  \x1b[0m\x1b[91;42mX\x1b[0m\x1b[91;48;5;94m  \x1b[0m\n\x1b[91;48;5;94m \x1b[0m\x1b[91;42mX\x1b[0m\x1b[91;48;5;94m                   \x1b[0m\x1b[91;42mX\x1b[0m\n\x1b[91;48;5;94m                        \x1b[0m\n\x1b[91;48;5;94m          \x1b[0m\x1b[91;42mXX\x1b[0m\x1b[91;48;5;94m          \x1b[0m\n\n"
>       assert result == expected
E       AssertionError: assert '          XX...         \n\n' == '\x1b[48;5;94...  \x1b[0m\n\n'
E         
E         -           XX          
E         -                         
E         -                         
E         -                         
E         -               Y        
E         - X                  X  ...
E         
E         ...Full output truncated (13 lines hidden), use '-vv' to show

tests/test_segment.py:193: AssertionError
----------------------------- Captured stdout call -----------------------------
'          XX          \n                        \n                        \n                        \n              Y        \nX                  X  \n X                   X\n                        \n          XX          \n\n'
!!!!!!!!!!!!!!!!!!!!!!!!!! stopping after 1 failures !!!!!!!!!!!!!!!!!!!!!!!!!!!
1 failed, 17 passed in 0.14s