예제 #1
0
def test_dotprint():
    text = dotprint(x + 2, repeat=False)
    assert all(e in text for e in dotedges(x + 2, repeat=False))
    assert all(
        n in text for n in
        [dotnode(expr, repeat=False) for expr in (x, Integer(2), x + 2)])
    assert 'digraph' in text
    text = dotprint(x + x**2, repeat=False)
    assert all(e in text for e in dotedges(x + x**2, repeat=False))
    assert all(n in text for n in
               [dotnode(expr, repeat=False) for expr in (x, Integer(2), x**2)])
    assert 'digraph' in text
    text = dotprint(x + x**2, repeat=True)
    assert all(e in text for e in dotedges(x + x**2, repeat=True))
    assert all(n in text
               for n in [dotnode(expr, pos=()) for expr in [x + x**2]])
    text = dotprint(x**x, repeat=True)
    assert all(e in text for e in dotedges(x**x, repeat=True))
    assert all(n in text
               for n in [dotnode(x, pos=(
                   0, )), dotnode(x, pos=(1, ))])
    assert 'digraph' in text

    assert dotprint(x**x**x) != dotprint(x**x**x, maxdepth=1)
    assert (dotprint(x**x**x, maxdepth=-1) ==
            'digraph{\n\n# Graph style\n"bgcolor"="transparent"\n"ordering"'
            '="out"\n"rankdir"="TD"\n\n#########\n# Nodes #\n#########\n\n"'
            'Pow(Symbol(\'x\'), Pow(Symbol(\'x\'), Symbol(\'x\')))_()" '
            '["color"="black", "label"="Pow", "shape"="ellipse"];\n\n'
            '#########\n# Edges #\n#########\n\n\n}')
예제 #2
0
def test_dotnode():
    assert dotnode(x, repeat=False) ==\
        '"Symbol(\'x\')" ["color"="black", "label"="x", "shape"="ellipse"];'
    assert dotnode(x + 2, repeat=False) == \
        '"Add(Symbol(\'x\'), Integer(2))" ["color"="black", "label"="Add", "shape"="ellipse"];'
    assert dotnode(x + x**2, repeat=False) == \
        '"Add(Pow(Symbol(\'x\'), Integer(2)), Symbol(\'x\'))" ["color"="black", "label"="Add", "shape"="ellipse"];'
    assert dotnode(x + x**2, repeat=True) == \
        '"Add(Pow(Symbol(\'x\'), Integer(2)), Symbol(\'x\'))_()" ["color"="black", "label"="Add", "shape"="ellipse"];'
예제 #3
0
def test_dotnode():
    assert dotnode(x, repeat=False) ==\
        '"Symbol(\'x\')" ["color"="black", "label"="x", "shape"="ellipse"];'
    assert dotnode(x + 2, repeat=False) == \
        '"Add(Symbol(\'x\'), Integer(2))" ["color"="black", "label"="Add", "shape"="ellipse"];'
    assert dotnode(x + x**2, repeat=False) == \
        '"Add(Pow(Symbol(\'x\'), Integer(2)), Symbol(\'x\'))" ["color"="black", "label"="Add", "shape"="ellipse"];'
    assert dotnode(x + x**2, repeat=True) == \
        '"Add(Pow(Symbol(\'x\'), Integer(2)), Symbol(\'x\'))_()" ["color"="black", "label"="Add", "shape"="ellipse"];'
예제 #4
0
def test_dotprint():
    text = dotprint(x+2, repeat=False)
    assert all(e in text for e in dotedges(x+2, repeat=False))
    assert all(n in text for n in [dotnode(expr, repeat=False) for expr in (x, Integer(2), x+2)])
    assert 'digraph' in text
    text = dotprint(x+x**2, repeat=False)
    assert all(e in text for e in dotedges(x+x**2, repeat=False))
    assert all(n in text for n in [dotnode(expr, repeat=False) for expr in (x, Integer(2), x**2)])
    assert 'digraph' in text
    text = dotprint(x+x**2, repeat=True)
    assert all(e in text for e in dotedges(x+x**2, repeat=True))
    assert all(n in text for n in [dotnode(expr, pos=()) for expr in [x + x**2]])
    text = dotprint(x**x, repeat=True)
    assert all(e in text for e in dotedges(x**x, repeat=True))
    assert all(n in text for n in [dotnode(x, pos=(0,)), dotnode(x, pos=(1,))])
    assert 'digraph' in text
예제 #5
0
def test_dotprint():
    text = dotprint(x+2, repeat=False)
    assert all(e in text for e in dotedges(x+2, repeat=False))
    assert all(n in text for n in [dotnode(expr, repeat=False) for expr in (x, Integer(2), x+2)])
    assert 'digraph' in text
    text = dotprint(x+x**2, repeat=False)
    assert all(e in text for e in dotedges(x+x**2, repeat=False))
    assert all(n in text for n in [dotnode(expr, repeat=False) for expr in (x, Integer(2), x**2)])
    assert 'digraph' in text
    text = dotprint(x+x**2, repeat=True)
    assert all(e in text for e in dotedges(x+x**2, repeat=True))
    assert all(n in text for n in [dotnode(expr, pos=()) for expr in [x + x**2]])
    text = dotprint(x**x, repeat=True)
    assert all(e in text for e in dotedges(x**x, repeat=True))
    assert all(n in text for n in [dotnode(x, pos=(0,)), dotnode(x, pos=(1,))])
    assert 'digraph' in text

    assert dotprint(x**x**x) != dotprint(x**x**x, maxdepth=1)
    assert (dotprint(x**x**x, maxdepth=-1) ==
            'digraph{\n\n# Graph style\n"bgcolor"="transparent"\n"ordering"'
            '="out"\n"rankdir"="TD"\n\n#########\n# Nodes #\n#########\n\n"'
            'Pow(Symbol(\'x\'), Pow(Symbol(\'x\'), Symbol(\'x\')))_()" '
            '["color"="black", "label"="Pow", "shape"="ellipse"];\n\n'
            '#########\n# Edges #\n#########\n\n\n}')
예제 #6
0
def test_dotprint_depth():
    text = dotprint(3*x+2, depth=1)
    assert dotnode(3*x+2) in text
    assert dotnode(x) not in text
예제 #7
0
def test_dotprint_depth():
    text = dotprint(3*x+2, depth=1)
    assert dotnode(3*x+2) in text
    assert dotnode(x) not in text