Exemplo n.º 1
0
def test_gradient_transformer_with_repeat_truncate_generates_wrapper_receiving_propper_channel(
):
    from inspect import signature

    sc, sh, sp, gr = screen_shape_sprite()
    tr = GradientTransformer(gr, size=10, repeat="truncate", channel="char")
    assert "char" in signature(tr.char).parameters
Exemplo n.º 2
0
def test_gradient_transformer_works_on_vertical_direction():
    sc, sh, sp, gr = screen_shape_sprite()
    tr = GradientTransformer(gr, direction=TM.Directions.DOWN)
    sp.transformers.append(tr)
    sh.draw.line((12, 0), (12, 10))
    sc.update()
    yield None
    assert sc.data[12, 0].foreground == Color((0, 0, 0))
    assert sc.data[12, 5].foreground.isclose(Color((.5, .5, .5)), abs_tol=15)
    assert sc.data[12, 9].foreground == Color((255, 255, 255))
Exemplo n.º 3
0
def test_gradient_transformer_works():
    sc, sh, sp, gr = screen_shape_sprite()
    tr = GradientTransformer(gr)
    sp.transformers.append(tr)
    sh.draw.line((0, 5), (26, 5))
    sc.update()
    yield None
    assert sc.data[0, 5].foreground == Color((0, 0, 0))
    assert sc.data[12, 5].foreground.isclose(Color((.5, .5, .5)), abs_tol=10)
    assert sc.data[25, 5].foreground == Color((255, 255, 255))
Exemplo n.º 4
0
def test_gradient_transformer_with_horizontal_size_and_direction_left():
    sc, sh, sp, gr = screen_shape_sprite()
    tr = GradientTransformer(gr, direction=TM.Directions.LEFT, size=10)
    sp.transformers.append(tr)
    sh.draw.line((0, 5), (26, 5))
    sc.update()
    yield None
    assert sc.data[0, 5].foreground == Color((255, 255, 255))
    assert sc.data[5, 5].foreground.isclose(Color((.5, .5, .5)), abs_tol=15)
    assert sc.data[9, 5].foreground == Color((0, 0, 0))
    assert sc.data[10, 5].foreground == Color((255, 255, 255))
Exemplo n.º 5
0
def test_gradient_transformer_with_horizontal_size_with_repeat_none_and_offset():
    sc, sh, sp, gr = screen_shape_sprite()
    tr = GradientTransformer(gr, size=10, repeat="none", offset=5)
    sp.transformers.append(tr)
    sh.draw.line((0,5), (26, 5))
    sc.update()
    yield None
    assert sc.data[0, 5].foreground == Color((0, 0, 0))
    assert sc.data[4, 5].foreground == Color((0, 0, 0))
    assert sc.data[14,5].foreground == Color((255, 255, 255))
    assert sc.data[19, 5].foreground == Color((255, 255, 255))
Exemplo n.º 6
0
def test_gradient_transformer_with_horizontal_size_and_repeat_triangle():
    sc, sh, sp, gr = screen_shape_sprite()
    tr = GradientTransformer(gr, size=10, repeat="triangle")
    sp.transformers.append(tr)
    sh.draw.line((0, 5), (26, 5))
    sc.update()
    yield None
    assert sc.data[0, 5].foreground == Color((0, 0, 0))
    assert sc.data[5, 5].foreground.isclose(Color((.5, .5, .5)), abs_tol=15)
    assert sc.data[9, 5].foreground == Color((255, 255, 255))
    assert sc.data[10, 5].foreground == Color((255, 255, 255))
    assert sc.data[19, 5].foreground == Color((0, 0, 0))
    assert sc.data[25, 5].foreground.isclose(Color((.5, .5, .5)), abs_tol=15)
Exemplo n.º 7
0
def test_gradient_transformer_works_with_text_channel():
    sc, sh, sp, gr = screen_shape_sprite()

    class CharGradient:
        def __getitem__(self, pos):
            pos = int(pos * 25)
            return string.ascii_uppercase[pos]

    tr = GradientTransformer(CharGradient(), channel="char")

    sp.transformers.append(tr)
    sh.draw.line((0, 5), (26, 5), char="*", color=(255, 0, 0))
    sc.update()
    yield None
    assert sc.data[0, 5].foreground == Color((255, 0, 0))
    assert sc.data[0, 5].value == "A"
    assert sc.data[12, 5].value == "M"
    assert sc.data[25, 5].value == "Z"
import terminedia as TM
from terminedia.transformers import GradientTransformer

sc = TM.Screen()
a = TM.shape((40, 4))
a.text[4].at((0, 0), "terminedia")
b = TM.Sprite(a)
b.active = True
sc.data.sprites.append(b)
b.pos = (5, 5)
a.context.transformers.append(
    GradientTransformer(
        TM.Gradient([(0, "blue"), (0.5, "white"), (1, "blue")]),
        TM.Directions.LEFT))
sc.update()