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(): 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_labelfunc(): text = dotprint(x + 2, labelfunc=repr) assert "Symbol('x')" in text assert "Integer(2)" in text
def test_Matrix_and_non_basics(): from diofant import MatrixSymbol n = Symbol('n') assert dotprint(MatrixSymbol('X', 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
def test_Matrix_and_non_basics(): n = Symbol('n') assert dotprint(MatrixSymbol('X', n, n))