Source code for chempy.util.tests.test_graph

# -*- coding: utf-8 -*-
from __future__ import (absolute_import, division, print_function)


import os
import shutil
import tempfile
from chempy.chemistry import Reaction, ReactionSystem, Substance
from ..graph import rsys2dot, rsys2graph
from ..testing import requires


def _get_rsys():
    r1 = Reaction({'A': 2}, {'B': 1}, param=3.0)
    A = Substance('A', latex_name='\\boldsymbol{A}')
    B = Substance('B', latex_name='\\boldsymbol{B}')
    rsys = ReactionSystem([r1], [A, B])
    return rsys


@requires('numpy')
[docs]def test_rsys2dot(): rsys = _get_rsys() assert list(map(str.strip, rsys2dot(rsys))) == [ 'digraph None{', '{', 'node [label="r1" shape=diamond]', 'r1', '}', '"A" -> "r1" [label ="2",color=maroon,fontcolor=maroon];', '"r1" -> "B" [label ="",color=darkgreen,fontcolor=darkgreen];', '}' ]
@requires('numpy')
[docs]def test_rsys2graph(): rsys = _get_rsys() tempdir = tempfile.mkdtemp() try: rsys2graph(rsys, os.path.join(tempdir, 'out.png')) rsys2graph(rsys, os.path.join(tempdir, 'out.ps')) # rsys2graph(rsys, os.path.join(tempdir, 'out.tex')) # https://github.com/kjellmf/dot2tex/issues/48 finally: shutil.rmtree(tempdir)