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}')
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"];'
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
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}')
def test_dotprint_depth(): text = dotprint(3*x+2, depth=1) assert dotnode(3*x+2) in text assert dotnode(x) not in text