import unittest import subprocess from comsdk.graph import * from comsdk.parser import Parser path_to_comsdk = "/home/lbstr/bmstu/comsdk" path_to_pycomsdk = "/home/lbstr/bmstu/pycomsdk" class ParserGoodCheck(unittest.TestCase): def test_trivial_graph(self): parsr = Parser() gr = parsr.parse_file("./tests/adot/trivial.adot") data = {"a": 1} gr.run(data) self.assertEqual(data["a"], 4) def test_branching_graph(self): parsr = Parser() gr = parsr.parse_file("./tests/adot/branching.adot") data = {"a": 1, "b": 1} gr.run(data) self.assertEqual(data["a"], 4) self.assertEqual(data["b"], 4) def test_cycled_graph(self): parsr = Parser() gr = parsr.parse_file("./tests/adot/cycled.adot") data = {"a": 10} gr.run(data) self.assertEqual(data["a"], 0) def test_complex_graph(self): parsr = Parser() gr = parsr.parse_file("./tests/adot/complex.adot") data = {"a": 1, "b": 1} gr.run(data) self.assertEqual(data["a"], 4) self.assertEqual(data["b"], 4) def test_cpp_trivial_graph(self): parsr = Parser(tocpp=True) gr = parsr.parse_file("./tests/adot/cpptrivial.adot") parsr.generate_cpp(path_to_comsdk+"res.cpp") command = "cd "+path_to_comsdk+"; "+path_to_pycomsdk+"/cpp/run.sh "+path_to_comsdk+"res.cpp" subprocess.check_output(["bash", "-c", command]) def test_cpp_branching_graph(self): parsr = Parser(tocpp=True) gr = parsr.parse_file("./tests/adot/cppbranching.adot") parsr.generate_cpp(path_to_comsdk+"res.cpp") command = "cd "+path_to_comsdk+"; "+path_to_pycomsdk+"/cpp/run.sh "+path_to_comsdk+"res.cpp" subprocess.check_output(["bash", "-c", command]) def test_cpp_cycled_graph(self): parsr = Parser(tocpp=True) gr = parsr.parse_file("./tests/adot/cppcycled.adot") parsr.generate_cpp(path_to_comsdk+"res.cpp") command = "cd "+path_to_comsdk+"; "+path_to_pycomsdk+"/cpp/run.sh "+path_to_comsdk+"res.cpp" subprocess.check_output(["bash", "-c", command]) def test_cpp_complex_graph(self): parsr = Parser(tocpp=True) gr = parsr.parse_file("./tests/adot/cppcomplex.adot") parsr.generate_cpp(path_to_comsdk+"res.cpp") command = "cd "+path_to_comsdk+"; "+path_to_pycomsdk+"/cpp/run.sh "+path_to_comsdk+"res.cpp" subprocess.check_output(["bash", "-c", command]) if __name__ == '__main__': unittest.main()