Beispiel #1
0
def test_print_oob_left_wide():
    buffer = Buffer(10, 1)
    buffer.print("你好,世界", -1, 0)
    assert_buffer_matches(
        buffer,
        " 好 , 世 界  "  # extra spaces are shadowed by two-wide chars in terminal
    )
Beispiel #2
0
def test_blit_blittable():
    blittable = SimpleNamespace()
    blittable.blit_to = Mock()
    blittable.w = 1
    blittable.h = 1
    buffer = Buffer(1, 1)
    buffer.blit(blittable)
    assert blittable.blit_to.called
Beispiel #3
0
def test_print_fullwidth_shadowing():
    buffer = Buffer(4, 1)
    buffer.clear(char="X")
    buffer.print("你好", 0, 0)
    assert buffer.at(0, 0).char == "你"
    assert buffer.at(1, 0).char == " "
    assert buffer.at(2, 0).char == "好"
    assert buffer.at(3, 0).char == " "
def test_drawing_draw_box_negative_dim():
    buffer = Buffer(3, 3)
    draw_box(buffer, 1, 1, -1, 1, chars=_BOX_CHARS_TEST)
    assert_buffer_matches(
        buffer,
        "   ",
        "   ",
        "   "
    )
def test_drawing_draw_box_one_tall():
    buffer = Buffer(5, 3)
    draw_box(buffer, 1, 1, 3, 1, chars=_BOX_CHARS_TEST)
    assert_buffer_matches(
        buffer,
        "     ",
        " ttt ",
        "     "
    )
def test_drawing_draw_vline():
    buffer = Buffer(3, 3)
    draw_vline(buffer, 1, char="X")
    assert_buffer_matches(
        buffer,
        " X ",
        " X ",
        " X "
    )
def test_drawing_draw_box_one_wide():
    buffer = Buffer(3, 5)
    draw_box(buffer, 1, 1, 1, 3, chars=_BOX_CHARS_TEST)
    assert_buffer_matches(
        buffer,
        "   ",
        " l ",
        " l ",
        " l ",
        "   "
    )
def test_drawing_draw_box():
    buffer = Buffer(5, 5)
    draw_box(buffer, 1, 1, 3, 3, chars=_BOX_CHARS_TEST)
    assert_buffer_matches(
        buffer,
        "     ",
        " AtB ",
        " l r ",
        " CbD ",
        "     "
    )
Beispiel #9
0
def test_buffer_fill_char_none():
    buffer = Buffer(2, 1)
    buffer.at(0, 0).char = "X"
    buffer.at(1, 0).char = "Y"
    buffer.fill(0, 0, buffer.w, buffer.h, char=None)
    assert buffer.at(0, 0).char == "X"
    assert buffer.at(1, 0).char == "Y"
Beispiel #10
0
def test_drawing_draw_progress_too_small():
    buffer = Buffer(2, 1)
    draw_progress(
        buffer, 0, 0,
        w=2,
        progress=1/3,
        start="[[",
        end="]"
    )
    assert_buffer_matches(
        buffer,
        "  "
    ) 
Beispiel #11
0
def test_drawing_draw_progress():
    buffer = Buffer(5, 1)
    draw_progress(
        buffer, 0, 0,
        w=5,
        progress=1/3,
        start="[",
        end="]",
        bar_char="=",
        empty_char="x",
        head_chars=">"
    )
    assert_buffer_matches(
        buffer,
        "[=>x]"
    ) 
Beispiel #12
0
def test_drawing_draw_progress_multi_head():
    buffer = Buffer(7, 1)
    draw_progress(
        buffer, 0, 0,
        w=7,
        progress=3.35/5,
        start="[",
        end="]",
        bar_char="=",
        empty_char="x",
        head_chars="0123456789"
    )
    assert_buffer_matches(
        buffer,
        "[===3x]"
    ) 
Beispiel #13
0
def test_drawing_draw_progress_big_caps():
    buffer = Buffer(11, 1)
    draw_progress(
        buffer, 0, 0,
        w=11,
        progress=1/3,
        start="start",
        end="end",
        bar_char="=",
        empty_char="x",
        head_chars=">"
    )
    assert_buffer_matches(
        buffer,
        "start=>xend"
    ) 
Beispiel #14
0
def test_drawing_draw_spinner():
    buffer = Buffer(1, 1)

    draw_spinner(buffer, 0, 0, t=0, freq=1/4, frames="0123")
    assert buffer.at(0, 0).char == "0"

    draw_spinner(buffer, 0, 0, t=1, freq=1/4, frames="0123")
    assert buffer.at(0, 0).char == "1"

    draw_spinner(buffer, 0, 0, t=5, freq=1/4, frames="0123")
    assert buffer.at(0, 0).char == "1"

    draw_spinner(buffer, 0, 0, t=7, freq=1/4, frames="0123")
    assert buffer.at(0, 0).char == "3"
Beispiel #15
0
def test_buffer_clear_char():
    buffer = Buffer(2, 1)
    buffer.clear(char="X")
    assert buffer.at(0, 0).char == "X"
    assert buffer.at(1, 0).char == "X"
Beispiel #16
0
def test_buffer_fill_char():
    buffer = Buffer(2, 1)
    buffer.fill(0, 0, buffer.w, buffer.h, char="X")
    assert buffer.at(0, 0).char == "X"
    assert buffer.at(1, 0).char == "X"
Beispiel #17
0
def test_buffer_fill_char_oob():
    buffer = Buffer(2, 1)
    buffer.fill(-1, -1, buffer.w + 1, buffer.h + 1, char="X")
    assert buffer.at(0, 0).char == "X"
    assert buffer.at(1, 0).char == "X"
Beispiel #18
0
def test_buffer_at_oob_raises():
    buffer = Buffer(2, 1)
    with pytest.raises(Exception, match="bounds"):
        buffer.at(3, 1)
Beispiel #19
0
def test_buffer_at_clip():
    buffer = Buffer(2, 2)
    assert buffer.at(2, 1, clip=True) is buffer.at(1, 1)
    assert buffer.at(-1, 0, clip=True) is buffer.at(0, 0)
Beispiel #20
0
def test_buffer_at():
    buffer = Buffer(2, 2)
    assert isinstance(buffer.at(0, 0), PixelData)
Beispiel #21
0
def test_buffer_at_distinct():
    buffer = Buffer(2, 1)
    assert buffer.at(0, 0) is not buffer.at(1, 0)
Beispiel #22
0
def test_buffer_in_bounds():
    buffer = Buffer(3, 2)
    assert buffer.in_bounds(0, 0)
    assert buffer.in_bounds(2, 1)
Beispiel #23
0
def test_buffer_in_bounds_not():
    buffer = Buffer(3, 2)
    assert not buffer.in_bounds(3, 1)
    assert not buffer.in_bounds(0, -1)
Beispiel #24
0
def test_print_newline_line_start():
    buffer = Buffer(3, 3)
    buffer.print("X\nY", 1, 1, line_start=0)
    assert buffer.at(1, 1).char == "X"
    assert buffer.at(1, 2).char == " "
    assert buffer.at(0, 2).char == "Y"
Beispiel #25
0
def source_target_sample_1():
    source = Buffer(3, 2)
    target = Buffer(2, 2)
    source.fill(1, 1, 2, 1, char="S")
    target.clear(char="T")
    return source, target
Beispiel #26
0
def test_print_fullwidth_spacing():
    buffer = Buffer(4, 1)
    buffer.print("你好", 0, 0)
    assert buffer.at(0, 0).char == "你"
    assert buffer.at(2, 0).char == "好"
Beispiel #27
0
def test_put_char():
    buffer = Buffer(2, 2)
    buffer.put_char("X", 1, 1)
    assert_buffer_matches(buffer, "  ", " X")
Beispiel #28
0
def test_buffer_resize():
    buffer = Buffer(2, 2)
    buffer.resize(4, 3)
    assert buffer.w == 4
    assert buffer.h == 3
Beispiel #29
0
def test_put_char_fullwidth():
    buffer = Buffer(2, 1)
    buffer.put_char("人", 0, 0)
    assert_buffer_matches(buffer, "人 ")
Beispiel #30
0
def test_blit_buffer():
    source = Buffer(2, 1)
    target = Buffer(2, 2)
    target.clear(char="T")
    source.at(0, 0).char = "X"
    source.at(1, 0).char = "Y"

    target.blit(source, y=1)
    assert target.at(0, 0).char == "T"
    assert target.at(1, 0).char == "T"
    assert target.at(0, 1).char == "X"
    assert target.at(1, 1).char == "Y"