diff --git a/comsdk/__pycache__/__init__.cpython-37.pyc b/comsdk/__pycache__/__init__.cpython-37.pyc index 96476a13055c55d719c8c31d35daf1711a85dd9c..f9404d7651af084fa1904c30f3f2177d136df94d 100644 Binary files a/comsdk/__pycache__/__init__.cpython-37.pyc and b/comsdk/__pycache__/__init__.cpython-37.pyc differ diff --git a/comsdk/__pycache__/comaux.cpython-37.pyc b/comsdk/__pycache__/comaux.cpython-37.pyc index 0c6775c195a6cce1053443d0442fcdaa1f49b837..4542f51de64a0b77ce8e354a8bd8e1474687a982 100644 Binary files a/comsdk/__pycache__/comaux.cpython-37.pyc and b/comsdk/__pycache__/comaux.cpython-37.pyc differ diff --git a/comsdk/__pycache__/communication.cpython-37.pyc b/comsdk/__pycache__/communication.cpython-37.pyc index c03ec2656593016cdc752838fcee87e63f2e99b2..4d27064eec3908f8312c68db10e8c3e042a0505e 100644 Binary files a/comsdk/__pycache__/communication.cpython-37.pyc and b/comsdk/__pycache__/communication.cpython-37.pyc differ diff --git a/comsdk/__pycache__/edge.cpython-37.pyc b/comsdk/__pycache__/edge.cpython-37.pyc index 5ef6f8e54f5a9de2851a1e4170c2b62b58ac2f70..9fc9d7bc448ba0ff4d69489503373000e4f03660 100644 Binary files a/comsdk/__pycache__/edge.cpython-37.pyc and b/comsdk/__pycache__/edge.cpython-37.pyc differ diff --git a/comsdk/__pycache__/graph.cpython-37.pyc b/comsdk/__pycache__/graph.cpython-37.pyc index 2441707a68e91ef56b30367f30a1cb038ad97157..d26ff4d7ad63377bfc86d9c384514df6ae83d68d 100644 Binary files a/comsdk/__pycache__/graph.cpython-37.pyc and b/comsdk/__pycache__/graph.cpython-37.pyc differ diff --git a/comsdk/__pycache__/parser.cpython-37.pyc b/comsdk/__pycache__/parser.cpython-37.pyc index eed4fd4745737b0d02925f701e79609309e2e0dd..2af755407ceeea4d4b4325fc67d619ef32e898c6 100644 Binary files a/comsdk/__pycache__/parser.cpython-37.pyc and b/comsdk/__pycache__/parser.cpython-37.pyc differ diff --git a/comsdk/parser.py b/comsdk/parser.py index 8a90bdcd4f77505bda689bbc026f704d5cc742f6..f264ac0cfa19d097e9cbae3440504c26f124a2ab 100644 --- a/comsdk/parser.py +++ b/comsdk/parser.py @@ -361,7 +361,7 @@ def print_graph(cur_state, entities, bushes): # print(cur_state.name, cur_state.selector) if cur_state.selector not in toloadsel: toloadsel.append(cur_state.selector) - body+="else {\n"+ "\tSEL_{} = {}();//{}\n".format(cur_state.name, cur_state.selector, cur_state.selector.comment )+"}\n" + body+="else {\n"+ "\tSEL_{} = {}(&data);//{}\n".format(cur_state.name, cur_state.selector, cur_state.selector.comment )+"}\n" else: body+="else {\n\tfor (int seli = 0;"+" seli < {};".format(len(cur_state.transfers))+" seli++)\n"+"\t\tSEL_{}[seli]=true;".format(cur_state.name)+"\n}\n" for i, br in enumerate(cur_b.branches): @@ -441,12 +441,12 @@ class _Bush(): if edge.pred_f.name != "": if edge.pred_f not in toloadpred: toloadpred.append(edge.pred_f) - res+="\tcheck_pred({}(data), \"{}\");".format(edge.pred_f, edge.pred_f) + res+="\tcheck_pred({}(&data), \"{}\");".format(edge.pred_f, edge.pred_f) res+="//{}\n".format(edge.pred_f.comment) if edge.pred_f.comment != "" else "\n" if edge.morph_f.name != "": if edge.morph_f not in toloadmorph: toloadmorph.append(edge.morph_f) - res+="\t{}(data);".format(edge.morph_f) + res+="\t{}(&data);".format(edge.morph_f) res+="//{}\n".format(edge.morph_f.comment) if edge.morph_f.comment != "" else "\n" return res, toloadpred, toloadmorph diff --git a/cpp/run.sh b/cpp/run.sh index 727e0f22eb360ed1dcba6afd460462b3f1791dda..f7d40f63826e8e5463530cdc240ed4dec5c50d38 100755 --- a/cpp/run.sh +++ b/cpp/run.sh @@ -1,6 +1,9 @@ -g++ -c -fPIC printers.cpp -o printers.o -I./dev ; g++ printers.o -shared -o libprinters.so; -if g++ ./template.cpp -o template.out -I./dev ./dev/core/anymap.cpp -ldl; then -./template.out; +g++ -c -fPIC ./dev/core/anymap.cpp -o anymap.o -I./dev; +g++ -c -fPIC tests.cpp -o tests.o -I./dev; +# g++ -c -fPIC ./dev/iniparser/iniparser.cpp -o iniparser.o -I./dev; +g++ tests.o anymap.o -shared -o libtest.so; rm tests.o anymap.o; +if g++ $1 -o graph.out -I./dev ./dev/core/anymap.cpp -ldl; then +./graph.out; else echo "Not Compiled!"; fi; \ No newline at end of file diff --git a/cpp/template.cpp b/cpp/template.cpp index a2f4e6ccd77a4a6ae38898036392f0853a5961cd..9aa7bba0e17baef44092c3cbd0a008521d8c7b75 100644 --- a/cpp/template.cpp +++ b/cpp/template.cpp @@ -2,23 +2,23 @@ #include <anymap.h> #include <iniparser.h> -typedef std::function<int(com::Anymap)> IntFunc; -typedef std::function<bool(com::Anymap)> BoolFunc; -typedef std::function<bool*(com::Anymap)> BoolArrFunc; +typedef std::function<int(com::Anymap*)> IntFunc; +typedef std::function<bool(com::Anymap*)> BoolFunc; +typedef std::function<bool*(com::Anymap*)> BoolArrFunc; IntFunc LoadEntry(std::string lib, std::string func) { DllHandle handler; - return com::lib::loadFunction<int (com::Anymap), DllHandle>(lib.c_str(), func.c_str(), handler); + return com::lib::loadFunction<int (com::Anymap*), DllHandle>(lib.c_str(), func.c_str(), handler); } BoolFunc LoadPred(std::string lib, std::string func) { DllHandle handler; - return com::lib::loadFunction<int (com::Anymap), DllHandle>(lib.c_str(), func.c_str(), handler); + return com::lib::loadFunction<int (com::Anymap*), DllHandle>(lib.c_str(), func.c_str(), handler); } BoolArrFunc LoadSelector(std::string lib, std::string func){ DllHandle handler; - return com::lib::loadFunction<bool* (com::Anymap), DllHandle>(lib.c_str(), func.c_str(), handler); + return com::lib::loadFunction<bool* (com::Anymap*), DllHandle>(lib.c_str(), func.c_str(), handler); } void check_pred(bool predval, std::string predname) { @@ -30,13 +30,7 @@ void check_pred(bool predval, std::string predname) { int main(int argc, char const *argv[]) { - com::ini::INIParser parser(argv[1]); - if(!parser.isLoaded()){ - std::cerr<<"Cannot find file:"<<argv[1]<<std::endl; - return -1; - } auto data = com::Anymap(); - parser.loadINIDataToAnyMap(data, {"sld", "tsl", "bc"}, enu_LoadMode::lmRecursive); //Predicates % for pred in preds: auto ${pred} = LoadPred("${pred.module}", "${pred.name}"); diff --git a/main.py b/main.py deleted file mode 100644 index ce2c84780e68fc0748bb4cfa45e56a1f1fb9c796..0000000000000000000000000000000000000000 --- a/main.py +++ /dev/null @@ -1,23 +0,0 @@ -from comsdk.graph import * -from comsdk.edge import * -from comsdk.communication import * -from test_funcs.simplest import * - - -data= {"a":1} - -pred = Func(func=dummy_predicate) -morph = Func(func=increment_a_edge) -s_1 = State('s_1') -s_2 = State('s_2') -s_3 = State('s_3') -s_1.connect_to(s_2, edge=Edge(pred, morph)) -s_2.connect_to(s_3, edge=Edge(pred, morph)) -sub_s_1 = State('sub_s_1') -sub_s_2 = State('sub_s_2') -sub_s_1.connect_to(sub_s_2, edge=Edge(pred, morph)) -s_2.replace_with_graph(Graph(sub_s_1, sub_s_2)) -gr = Graph(s_1, s_3) - -gr.init_graph() -gr.run(data) \ No newline at end of file diff --git a/output.cpp b/output.cpp deleted file mode 100644 index 18236ae9ae9aff8a4a41c1b7e61e3700b4ee22ed..0000000000000000000000000000000000000000 --- a/output.cpp +++ /dev/null @@ -1,141 +0,0 @@ -#include <libtools.h> -#include <anymap.h> -#include <iniparser.h> - -typedef std::function<int(com::Anymap)> IntFunc; -typedef std::function<bool(com::Anymap)> BoolFunc; -typedef std::function<bool*(com::Anymap)> BoolArrFunc; - -IntFunc LoadEntry(std::string lib, std::string func) { - DllHandle handler; - return com::lib::loadFunction<int (com::Anymap), DllHandle>(lib.c_str(), func.c_str(), handler); -} - -BoolFunc LoadPred(std::string lib, std::string func) { - DllHandle handler; - return com::lib::loadFunction<int (com::Anymap), DllHandle>(lib.c_str(), func.c_str(), handler); -} - -BoolArrFunc LoadSelector(std::string lib, std::string func){ - DllHandle handler; - return com::lib::loadFunction<bool* (com::Anymap), DllHandle>(lib.c_str(), func.c_str(), handler); -} - -void check_pred(bool predval, std::string predname) { - if predval{ - std::cout<<"Predicate"<<predname<<"returned FALSE!"<<std::endl; - exit(-1) - } -} - -int main(int argc, char const *argv[]) -{ - com::ini::INIParser parser(argv[1]); - if(!parser.isLoaded()){ - std::cerr<<"Cannot find file:"<<argv[1]<<std::endl; - return -1; - } - com::Anymap data(); - parser.loadINIDataToAnyMap(data); - //Predicates - auto test_funcs.simplest_positiveness_predicate = LoadPred("test_funcs.simplest", "positiveness_predicate"); - auto libcomsdk_pass_predicate = LoadPred("libcomsdk", "pass_predicate"); - //Entry functions - auto test_funcs.simplest_increment_a_edge = LoadEntry("test_funcs.simplest", "increment_a_edge"); - auto libgcdfes_pso_swarm_init = LoadEntry("libgcdfes", "pso_swarm_init"); - auto libgcdfes_pso_agent_init = LoadEntry("libgcdfes", "pso_agent_init"); - auto libgcdfes_pso_task_data_reinit = LoadEntry("libgcdfes", "pso_task_data_reinit"); - auto libgcdfes_pso_hom_agent_postproc = LoadEntry("libgcdfes", "pso_hom_agent_postproc"); - auto libgcdfes_pso_agent_reinit = LoadEntry("libgcdfes", "pso_agent_reinit"); - auto libgcdfes_pso_swarm_analysing = LoadEntry("libgcdfes", "pso_swarm_analysing"); - auto libgcdfes_pso_swarm_reinit = LoadEntry("libgcdfes", "pso_swarm_reinit"); - auto libcomsdk_pass_processor = LoadEntry("libcomsdk", "pass_processor"); - //Selectors - auto libgcdfes_check_pso_agent_reinit = LoadSelector("libgcdfes", "check_pso_agent_reinit"); - auto libgcdfes_check_pso_swarm_reinit = LoadSelector("libgcdfes", "check_pso_swarm_reinit"); - //Branch tokens - bool* SEL___BEGIN__ = new bool[1]; - std::fill_n(SEL___BEGIN__, 1, true); - bool* SEL_gcdhom_inverted_model_pso1_S_4 = new bool[1]; - std::fill_n(SEL_gcdhom_inverted_model_pso1_S_4, 1, false); - bool* SEL_gcdhom_inverted_model_pso1_S_6 = new bool[2]; - std::fill_n(SEL_gcdhom_inverted_model_pso1_S_6, 2, false); - bool* SEL_gcdhom_inverted_model_pso1_S_7 = new bool[2]; - std::fill_n(SEL_gcdhom_inverted_model_pso1_S_7, 2, false); - bool* SEL___END__ = new bool[0]; - std::fill_n(SEL___END__, 0, false); - -if (SEL___BEGIN__[0]){ - //root graph - check_pred(test_funcs.simplest_positiveness_predicate(data), "test_funcs.simplest_positiveness_predicate"); - test_funcs.simplest_increment_a_edge(data); - check_pred(libcomsdk_pass_predicate(data), "libcomsdk_pass_predicate"); - libgcdfes_pso_swarm_init(data);//Инициализация метода роя частиц. - check_pred(libcomsdk_pass_predicate(data), "libcomsdk_pass_predicate"); - libgcdfes_pso_swarm_init(data);//Инициализация роя частиц. - check_pred(libcomsdk_pass_predicate(data), "libcomsdk_pass_predicate"); - libgcdfes_pso_agent_init(data);//Инициализация отдельной частицы в рамках метода роя частиц. -} -gcdhom_inverted_model_pso1_S_4: -if (!(false || SEL___BEGIN__[0] || SEL_gcdhom_inverted_model_pso1_S_6[0] || SEL_gcdhom_inverted_model_pso1_S_7[0] )){ - for (int seli = 0; seli < 1; seli++) - SEL_gcdhom_inverted_model_pso1_S_4[seli]=false; -}else { - for (int seli = 0; seli < 1; seli++) - SEL_gcdhom_inverted_model_pso1_S_4[seli]=true; -} -if (SEL_gcdhom_inverted_model_pso1_S_4[0]){ - check_pred(libcomsdk_pass_predicate(data), "libcomsdk_pass_predicate"); - libgcdfes_pso_task_data_reinit(data);//Реинициализация постановки задачи анализа эффективных характеристик КМ методом асимптотического осреднения. - check_pred(libcomsdk_pass_predicate(data), "libcomsdk_pass_predicate"); - libgcdfes_pso_hom_agent_postproc(data);//Постпроцессинг после решения отдельной задачи методом асимптотического осреднения. -} -gcdhom_inverted_model_pso1_S_6: -if (!(false || SEL_gcdhom_inverted_model_pso1_S_4[0] )){ - for (int seli = 0; seli < 2; seli++) - SEL_gcdhom_inverted_model_pso1_S_6[seli]=false; -}else { - SEL_gcdhom_inverted_model_pso1_S_6 = libgcdfes_check_pso_agent_reinit();// -} -if (SEL_gcdhom_inverted_model_pso1_S_6[0]){ - check_pred(libcomsdk_pass_predicate(data), "libcomsdk_pass_predicate"); - libgcdfes_pso_agent_reinit(data);//Реинициализация отдельной частицы (смещение частицы) в рое в рамках метода роя частиц. - goto gcdhom_inverted_model_pso1_S_4; -} -if (SEL_gcdhom_inverted_model_pso1_S_6[1]){ - check_pred(libcomsdk_pass_predicate(data), "libcomsdk_pass_predicate"); - libgcdfes_pso_swarm_analysing(data);//Анализ всего роя частиц в рамках метода роя частиц. -} -gcdhom_inverted_model_pso1_S_7: -if (!(false || SEL_gcdhom_inverted_model_pso1_S_6[1] )){ - for (int seli = 0; seli < 2; seli++) - SEL_gcdhom_inverted_model_pso1_S_7[seli]=false; -}else { - SEL_gcdhom_inverted_model_pso1_S_7 = libgcdfes_check_pso_swarm_reinit();// -} -if (SEL_gcdhom_inverted_model_pso1_S_7[0]){ - check_pred(libcomsdk_pass_predicate(data), "libcomsdk_pass_predicate"); - libgcdfes_pso_swarm_reinit(data);//Реинициализация всего роя частиц в рамках метода роя частиц. - goto gcdhom_inverted_model_pso1_S_4; -} -if (SEL_gcdhom_inverted_model_pso1_S_7[1]){ - //ПАСС, морфизм. - check_pred(libcomsdk_pass_predicate(data), "libcomsdk_pass_predicate"); - libcomsdk_pass_processor(data); - //root graph - check_pred(test_funcs.simplest_positiveness_predicate(data), "test_funcs.simplest_positiveness_predicate"); - test_funcs.simplest_increment_a_edge(data); -} -if (!(false || SEL_gcdhom_inverted_model_pso1_S_7[1] )){ - for (int seli = 0; seli < 0; seli++) - SEL___END__[seli]=false; -}else { - for (int seli = 0; seli < 0; seli++) - SEL___END__[seli]=true; -} - - -TERM: - std::cout<<"Termination!\n"; - return 0; -} diff --git a/res b/res deleted file mode 100644 index eaebf0ef30fe16a096912798bfa8869bc0f8d37f..0000000000000000000000000000000000000000 --- a/res +++ /dev/null @@ -1,11 +0,0 @@ -__BEGIN__ --.()-.()--> INPUT_READY -INPUT_READY --predicate_funcs.predicate_x()-case_gen_funcs.function_1()--> TEPMLATE_COPIED -TEPMLATE_COPIED --predicate_funcs.predicate_y()-case_gen_funcs.function_2()--> NAMES_SUBSTITUTED -NAMES_SUBSTITUTED --predicate_funcs.predicate_x()-case_gen_funcs.function_3()--> CONTENT_SUBSTITUTED -CONTENT_SUBSTITUTED --.()-case_gen_funcs.create_dump()--> DUMP_CREATED -CONTENT_SUBSTITUTED --predicate_funcs.predicate_y()-case_gen_funcs.save_to_db()--> RESULT_SAVED -CONTENT_SUBSTITUTED --predicate_funcs.predicate_x()-case_gen_funcs.save_to_file()--> RESULT_SAVED -RESULT_SAVED --predicate_funcs.predicate_y()-case_gen_funcs.repeat()--> INPUT_READY -RESULT_SAVED --predicate_funcs.predicate_x()-case_gen_funcs.exit()--> __END__ -RESULT_SAVED --.()-case_gen_funcs.exit()--> __END__ -DUMP_CREATED --case_gen_funcs.check_dump()-case_gen_funcs.exit()--> __END__ diff --git a/result.cpp b/result.cpp deleted file mode 100644 index 91525736249b0c1c5399d3b2ffc60974cb3e05e5..0000000000000000000000000000000000000000 --- a/result.cpp +++ /dev/null @@ -1,130 +0,0 @@ -#include <libtools.h> -#include <anymap.h> - -typedef std::function<int(com::Anymap)> IntFunc; -typedef std::function<bool(com::Anymap)> BoolFunc; -typedef std::function<bool*(com::Anymap)> BoolArrFunc; - -IntFunc LoadEntry(std::string lib, std::string func) { - DllHandle handler; - return com::lib::loadFunction<int (com::Anymap), DllHandle>(lib.c_str(), func.c_str(), handler); -} - -BoolFunc LoadPred(std::string lib, std::string func) { - DllHandle handler; - return com::lib::loadFunction<int (com::Anymap), DllHandle>(lib.c_str(), func.c_str(), handler); -} - -BoolArrFunc LoadSelector(std::string lib, std::string func){ - DllHandle handler; - return com::lib::loadFunction<bool* (com::Anymap), DllHandle>(lib.c_str(), func.c_str(), handler); -} - -void check_pred(bool predval, std::string predname) { - if predval{ - std::cout<<"Predicate"<<predname<<"returned FALSE!"<<std::endl; - exit(-1) - } -} - -int main(int argc, char const *argv[]) -{ - auto data = com::Anymap(); - //Predicates - auto test_funcs.simplest_positiveness_predicate = LoadPred("test_funcs.simplest", "positiveness_predicate"); - auto libcomsdk_pass_predicate = LoadPred("libcomsdk", "pass_predicate"); - //Entry functions - auto test_funcs.simplest_increment_a_edge = LoadEntry("test_funcs.simplest", "increment_a_edge"); - auto libgcdfes_pso_swarm_init = LoadEntry("libgcdfes", "pso_swarm_init"); - auto libgcdfes_pso_agent_init = LoadEntry("libgcdfes", "pso_agent_init"); - auto libgcdfes_pso_task_data_reinit = LoadEntry("libgcdfes", "pso_task_data_reinit"); - auto libgcdfes_pso_hom_agent_postproc = LoadEntry("libgcdfes", "pso_hom_agent_postproc"); - auto libgcdfes_pso_agent_reinit = LoadEntry("libgcdfes", "pso_agent_reinit"); - auto libgcdfes_pso_swarm_analysing = LoadEntry("libgcdfes", "pso_swarm_analysing"); - auto libgcdfes_pso_swarm_reinit = LoadEntry("libgcdfes", "pso_swarm_reinit"); - auto libcomsdk_pass_processor = LoadEntry("libcomsdk", "pass_processor"); - //Selectors - //Branch tokens - bool* SEL___BEGIN__ = new bool[1]; - std::fill_n(SEL___BEGIN__, 1, true); - bool* SEL_gcdhom_inverted_model_pso1_S_4 = new bool[1]; - std::fill_n(SEL_gcdhom_inverted_model_pso1_S_4, 1, false); - bool* SEL_gcdhom_inverted_model_pso1_S_6 = new bool[2]; - std::fill_n(SEL_gcdhom_inverted_model_pso1_S_6, 2, false); - bool* SEL_gcdhom_inverted_model_pso1_S_7 = new bool[2]; - std::fill_n(SEL_gcdhom_inverted_model_pso1_S_7, 2, false); - bool* SEL___END__ = new bool[0]; - std::fill_n(SEL___END__, 0, false); - -if (SEL___BEGIN__[0]){ - check_pred(test_funcs.simplest_positiveness_predicate(data), "test_funcs.simplest_positiveness_predicate"); - test_funcs.simplest_increment_a_edge(data); - check_pred(libcomsdk_pass_predicate(data), "libcomsdk_pass_predicate"); - libgcdfes_pso_swarm_init(data);//Инициализация метода роя частиц. - check_pred(libcomsdk_pass_predicate(data), "libcomsdk_pass_predicate"); - libgcdfes_pso_swarm_init(data);//Инициализация роя частиц. - check_pred(libcomsdk_pass_predicate(data), "libcomsdk_pass_predicate"); - libgcdfes_pso_agent_init(data);//Инициализация отдельной частицы в рамках метода роя частиц. -} -gcdhom_inverted_model_pso1_S_4: -if (!(false || SEL___BEGIN__[0] || SEL_gcdhom_inverted_model_pso1_S_6[0] || SEL_gcdhom_inverted_model_pso1_S_7[0] )){ - for (int seli = 0; seli < 1; seli++) - SEL_gcdhom_inverted_model_pso1_S_4[seli]=false; -}else { - for (int seli = 0; seli < 1; seli++) - SEL_gcdhom_inverted_model_pso1_S_4[seli]=true; -} -if (SEL_gcdhom_inverted_model_pso1_S_4[0]){ - check_pred(libcomsdk_pass_predicate(data), "libcomsdk_pass_predicate"); - libgcdfes_pso_task_data_reinit(data);//Реинициализация постановки задачи анализа эффективных характеристик КМ методом асимптотического осреднения. - check_pred(libcomsdk_pass_predicate(data), "libcomsdk_pass_predicate"); - libgcdfes_pso_hom_agent_postproc(data);//Постпроцессинг после решения отдельной задачи методом асимптотического осреднения. -} -gcdhom_inverted_model_pso1_S_6: -if (!(false || SEL_gcdhom_inverted_model_pso1_S_4[0] )){ - for (int seli = 0; seli < 2; seli++) - SEL_gcdhom_inverted_model_pso1_S_6[seli]=false; -}else { - for (int seli = 0; seli < 2; seli++) - SEL_gcdhom_inverted_model_pso1_S_6[seli]=true; -} -if (SEL_gcdhom_inverted_model_pso1_S_6[0]){ - check_pred(libcomsdk_pass_predicate(data), "libcomsdk_pass_predicate"); - libgcdfes_pso_agent_reinit(data);//Реинициализация отдельной частицы (смещение частицы) в рое в рамках метода роя частиц. - goto gcdhom_inverted_model_pso1_S_4; -} -if (SEL_gcdhom_inverted_model_pso1_S_6[1]){ - check_pred(libcomsdk_pass_predicate(data), "libcomsdk_pass_predicate"); - libgcdfes_pso_swarm_analysing(data);//Анализ всего роя частиц в рамках метода роя частиц. -} -gcdhom_inverted_model_pso1_S_7: -if (!(false || SEL_gcdhom_inverted_model_pso1_S_6[1] )){ - for (int seli = 0; seli < 2; seli++) - SEL_gcdhom_inverted_model_pso1_S_7[seli]=false; -}else { - for (int seli = 0; seli < 2; seli++) - SEL_gcdhom_inverted_model_pso1_S_7[seli]=true; -} -if (SEL_gcdhom_inverted_model_pso1_S_7[0]){ - check_pred(libcomsdk_pass_predicate(data), "libcomsdk_pass_predicate"); - libgcdfes_pso_swarm_reinit(data);//Реинициализация всего роя частиц в рамках метода роя частиц. - goto gcdhom_inverted_model_pso1_S_4; -} -if (SEL_gcdhom_inverted_model_pso1_S_7[1]){ - //ПАСС, морфизм. - check_pred(libcomsdk_pass_predicate(data), "libcomsdk_pass_predicate"); - libcomsdk_pass_processor(data); -} -if (!(false || SEL_gcdhom_inverted_model_pso1_S_7[1] )){ - for (int seli = 0; seli < 0; seli++) - SEL___END__[seli]=false; -}else { - for (int seli = 0; seli < 0; seli++) - SEL___END__[seli]=true; -} - - -TERM: - std::cout<<"Termination!\n"; - return 0; -} diff --git a/templates/.gitignore b/templates/.gitignore deleted file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000 diff --git a/templates/adot/add.adot b/templates/adot/add.adot deleted file mode 100644 index e12c29ededc85084b136af109d2796fe67211c07..0000000000000000000000000000000000000000 --- a/templates/adot/add.adot +++ /dev/null @@ -1,8 +0,0 @@ -digraph ADD { - FUNC [module=test_funcs.simplest, entry_func=increment_b_edge] - PRED [module=test_funcs.simplest, entry_func=positiveness_predicate] - MORPH [predicate=PRED, function=FUNC, comment="ADD"] - - __BEGIN__ -> ST [morphism = MORPH] - ST -> __END__ -} \ No newline at end of file diff --git a/templates/adot/file.adot b/templates/adot/file.adot deleted file mode 100644 index 7b0961425c04ee468f31e4dfe2a5d4a350f0ac7b..0000000000000000000000000000000000000000 --- a/templates/adot/file.adot +++ /dev/null @@ -1,54 +0,0 @@ -digraph gcdhom_inverted_model_pso -{ -// Определение функций-обработчиков - PASS_PROCESSOR [module=libcomsdk, entry_func=pass_processor] - CHECK_PSO_AGENT_REINIT [module=libgcdfes, entry_func=check_pso_agent_reinit, comment="Проверка о необходимости реинициализации отдельной частицы (смещение частицы) в рое в рамках метода роя частиц."] - CHECK_PSO_SWARM_REINIT [module=libgcdfes, entry_func=check_pso_swarm_reinit, comment="Проверка о необходимости реинициализации всего роя частиц в рамках метода роя частиц."] - - PSO_AGENT_REINIT [module=libgcdfes, entry_func=pso_agent_reinit, comment="Реинициализация отдельной частицы (смещение частицы) в рое в рамках метода роя частиц."] - PSO_SWARM_REINIT [module=libgcdfes, entry_func=pso_swarm_reinit, comment="Реинициализация всего роя частиц в рамках метода роя частиц."] - - PSO_SWARM_ANALYSING [module=libgcdfes, entry_func=pso_swarm_analysing, comment="Анализ всего роя частиц в рамках метода роя частиц."] - - PSO_HOM_AGENT_POSTPROC [module=libgcdfes, entry_func=pso_hom_agent_postproc, comment="Постпроцессинг после решения отдельной задачи методом асимптотического осреднения."] - - PSO_TASK_DATA_REINIT [module=libgcdfes, entry_func=pso_task_data_reinit, comment="Реинициализация постановки задачи анализа эффективных характеристик КМ методом асимптотического осреднения."] - - PSO_AGENT_INIT [module=libgcdfes, entry_func=pso_agent_init, comment="Инициализация отдельной частицы в рамках метода роя частиц."] - - PSO_SWARM_INIT [module=libgcdfes, entry_func=pso_swarm_init, comment="Инициализация роя частиц."] - - PSO_INIT [module=libgcdfes, entry_func=pso_swarm_init, comment="Инициализация метода роя частиц."] - -// Определение функций-предикатов - PASS_PREDICATE [module=libcomsdk, entry_func=pass_predicate] - -// Определение морфизмов - PASS_MORPHISM [predicate=PASS_PREDICATE, function=PASS_PROCESSOR, comment="ПАСС, морфизм."] - - PSO_AGENT_REINIT_MORPHISM [predicate=PASS_PREDICATE, function=PSO_AGENT_REINIT] - PSO_SWARM_REINIT_MORPHISM [predicate=PASS_PREDICATE, function=PSO_SWARM_REINIT] - PSO_SWARM_ANALYSING_MORPHISM [predicate=PASS_PREDICATE, function=PSO_SWARM_ANALYSING] - PSO_HOM_AGENT_POSTPROC_MORPHISM [predicate=PASS_PREDICATE, function=PSO_HOM_AGENT_POSTPROC] - PSO_TASK_DATA_REINIT_MORPHISM [predicate=PASS_PREDICATE, function=PSO_TASK_DATA_REINIT] - PSO_AGENT_INIT_MORPHISM [predicate=PASS_PREDICATE, function=PSO_AGENT_INIT] - PSO_SWARM_INIT_MORPHISM [predicate=PASS_PREDICATE, function=PSO_SWARM_INIT] - PSO_INIT_MORPHISM [predicate=PASS_PREDICATE, function=PSO_INIT] - -// Определение атрибутов узлов - //S_1 [subgraph=gcdhom_preprocessor.adot] - //S_5 [subgraph=gcdhom_processor.adot] - S_6 [selector=CHECK_PSO_AGENT_REINIT] - S_7 [selector=CHECK_PSO_SWARM_REINIT] - -// Определение топологии графовой модели метода конечных элементов - __BEGIN__ -> S_1 - S_1 -> S_2 [morphism=PSO_INIT_MORPHISM] - S_2 -> S_3 [morphism=PSO_SWARM_INIT_MORPHISM] - S_3 -> S_4 [morphism=PSO_AGENT_INIT_MORPHISM] - S_4 -> S_5 [morphism=PSO_TASK_DATA_REINIT_MORPHISM] - S_5 -> S_6 [morphism=PSO_HOM_AGENT_POSTPROC_MORPHISM] - S_6 -> S_4, S_7 [morphism=(PSO_AGENT_REINIT_MORPHISM, PSO_SWARM_ANALYSING_MORPHISM), order=(10,20)] - S_7 -> S_4, S_8 [morphism=(PSO_SWARM_REINIT_MORPHISM, PASS_MORPHISM), order=(30,40)] - S_8 -> __END__ [comment = "Расчет завершён."] -} diff --git a/templates/adot/testcycl.adot b/templates/adot/testcycl.adot deleted file mode 100644 index 14da22fe89130b466b02e40f3dc99fb55ba99b4d..0000000000000000000000000000000000000000 --- a/templates/adot/testcycl.adot +++ /dev/null @@ -1,14 +0,0 @@ -digraph CYCLED { - FUNC [module=test_funcs.simplest, entry_func=decrement_a_edge] - PRED [module=test_funcs.simplest, entry_func=positiveness_predicate] - MORPH [predicate=PRED, function=FUNC] - - SEL [module = test_funcs.simplest, entry_func = selector_a_nonpositive] - - ST2 [selector = SEL] - - __BEGIN__ -> ST1 - ST1 -> ST2 [morphism=MORPH] - ST2 -> ST1 - ST2 -> __END__ -} \ No newline at end of file diff --git a/templates/adot/testparal.adot b/templates/adot/testparal.adot deleted file mode 100644 index 4f275f0e79fceeac99b50037343e96bd51a17088..0000000000000000000000000000000000000000 --- a/templates/adot/testparal.adot +++ /dev/null @@ -1,17 +0,0 @@ -digraph SIMPLEST { - FUNCA [module=test_funcs.simplest, entry_func=increment_a_edge] - FUNCB [module=test_funcs.simplest, entry_func=increment_b_edge] - PRED [module=test_funcs.simplest, entry_func=positiveness_predicate] - INCR_A [predicate=PRED, function=FUNCA] - INCR_B [predicate=PRED, function=FUNCB] - - - __BEGIN__ -> ROOT - ROOT -> BR1, BR2, BR3 [morphism=(INCR_A, INCR_A, INCR_A)] - //BR3 -> SIBL3_BR1, SIBL3_BR2 [morphism=(INCR_A, INCR_A)] - //BR2 -> SIBL2_BR1, SIBL2_BR2 [morphism=(INCR_A, INCR_A)] - //SIBL3_BR1 -> SIBL3_BR1_1, SIBL3_BR1_2 [morphism=(INCR_A, INCR_A)] - //SIBL3_BR1_1, SIBL3_BR1_2 -> TERM [morphism=(INCR_A, INCR_A)] - //BR1, SIBL2_BR1, SIBL2_BR2, TERM, SIBL3_BR2 -> __END__ [morphism=(INCR_A, INCR_A, INCR_A, INCR_A, INCR_A)] - BR1, BR2, BR3 -> __END__ [morphism=(INCR_A, INCR_A, INCR_A)] -} \ No newline at end of file diff --git a/templates/adot/testsimple.adot b/templates/adot/testsimple.adot deleted file mode 100644 index d8857948ec546f6b0f8bb07abaad1e0e5fc1d45e..0000000000000000000000000000000000000000 --- a/templates/adot/testsimple.adot +++ /dev/null @@ -1,22 +0,0 @@ -digraph SIMPLE { - FUNC [module=libprinters, entry_func=PrintHello] - PRED [module=libprinters, entry_func=ReturnTrue] - MORPH [predicate=PRED, function=FUNC] - - FUNC1 [module=libprinters, entry_func=PrintHello1] - PRED1 [module=libprinters, entry_func=ReturnTrue1] - MORPH1 [predicate=PRED1, function=FUNC1] - - FUNC2 [module=libprinters, entry_func=PrintHello2] - PRED2 [module=libprinters, entry_func=ReturnTrue2] - MORPH2 [predicate=PRED2, function=FUNC2] - - __BEGIN__ -> ST1 [morphism = MORPH] - ST1 -> ST2, ST3, ST4 [morphism = (MORPH, MORPH1, MORPH2)] - ST2 -> ST3, ST5 [morphism = (MORPH1,MORPH2)] - ST4 -> ST5 [morphism = MORPH] - ST3 -> ST5 [morphism = MORPH] - //ST21 -> ST31, ST312[morphism =(MORPH1,MORPH2)] - //ST3, ST31, ST312 -> ST4[morphism = (MORPH,MORPH1,MORPH2) ] - ST5 -> __END__ -} \ No newline at end of file diff --git a/templates/adot/testsub.adot b/templates/adot/testsub.adot deleted file mode 100644 index bb2c6ae7bcec621a77cd7a1a7311ee86d679b4b1..0000000000000000000000000000000000000000 --- a/templates/adot/testsub.adot +++ /dev/null @@ -1,14 +0,0 @@ -digraph TEST_SUB { - FUNC [module=test_funcs.simplest, entry_func=increment_a_edge] - PRED [module=test_funcs.simplest, entry_func=positiveness_predicate] - MORPH [predicate=PRED, function=FUNC, comment="root graph"] -// SEL [module=test_funcs.simplest, entry_func=selector_a_nonpositive] - - ST2 [subgraph = templates/adot/file.adot] -// ST3 [selector = SEL] - - __BEGIN__ -> ST1 [morphism = MORPH] - ST1 -> ST2 - ST2 -> ST3 - ST3 -> __END__ [morphism = MORPH] -} \ No newline at end of file diff --git a/test.adot b/test.adot deleted file mode 100644 index 36db12df0e2adaecd8d70c1c8a455e006bea6385..0000000000000000000000000000000000000000 --- a/test.adot +++ /dev/null @@ -1,42 +0,0 @@ -digraph CODEOBJECT_GENERATOR -{ -// Определения функций-обработчиков - FUNC_1 [module=case_gen_funcs, entry_func=function_1] - FUNC_2 [module=case_gen_funcs, entry_func=function_2] - FUNC_3 [module=case_gen_funcs, entry_func=function_3] - SAVE_TO_DB [module=case_gen_funcs, entry_func=save_to_db] - SAVE_TO_FILE [module=case_gen_funcs, entry_func=save_to_file] - REPEAT [module=case_gen_funcs, entry_func=repeat] - EXIT [module=case_gen_funcs, entry_func=exit] - CREATE_DUMP [module=case_gen_funcs, entry_func=create_dump] - CHECK_DUMP [module=case_gen_funcs, entry_func=check_dump] -// Определения функций-предикатов - PREDICATE_X [module=predicate_funcs, entry_func=predicate_x] - PREDICATE_Y [module=predicate_funcs, entry_func=predicate_y] - SELECTOR [module=predicate_funcs, entry_func=selector] -// Определения функций перехода - EDGE_1 [predicate=PREDICATE_X, function=FUNC_1] - EDGE_2 [predicate=PREDICATE_Y, function=FUNC_2] - EDGE_3 [predicate=PREDICATE_X, function=FUNC_3] - EDGE_4 [predicate=PREDICATE_Y, function=SAVE_TO_DB] - EDGE_5 [predicate=PREDICATE_X, function=SAVE_TO_FILE] - EDGE_6 [predicate=PREDICATE_Y, function=REPEAT] - EDGE_7 [predicate=PREDICATE_X, function=EXIT] - EDGE_8 [function=EXIT] - EDGE_9 [predicate=CHECK_DUMP, function=EXIT] - EDGE_10 [function=CREATE_DUMP] -// В узле указана стратегия распараллеливания - CONTENT_SUBSTITUTED [parallelism=threading] -// Определение графовой модели - __BEGIN__ -> INPUT_READY - INPUT_READY -> TEPMLATE_COPIED [morphism=EDGE_1] - TEPMLATE_COPIED -> NAMES_SUBSTITUTED [morphism=EDGE_2] - NAMES_SUBSTITUTED -> CONTENT_SUBSTITUTED [morphism=EDGE_3] - CONTENT_SUBSTITUTED -> DUMP_CREATED [morphism=EDGE_10, order=3] - CONTENT_SUBSTITUTED -> RESULT_SAVED [morphism=EDGE_4, order=2] - CONTENT_SUBSTITUTED -> RESULT_SAVED [morphism=EDGE_5,order=1,comment="test comment to cpp"] -// В зависимости от результата вычисления функции-SELECTOR осуществляется переход по -//первому или второму ребру - RESULT_SAVED -> __END__ [morphism=EDGE_8, order=(40)] - RESULT_SAVED -> INPUT_READY,FAKE,__END__ [selector=SELECTOR, morphism=(EDGE_6,EDGE_1,EDGE_7), order=(30,20,10)] -} diff --git a/test_funcs/__pycache__/simplest.cpython-37.pyc b/test_funcs/__pycache__/simplest.cpython-37.pyc index b618002d1e5e3e0a1c52694b762b88c7d1dd756c..9325caa8e4bb079839e61965e3f86352010caf45 100644 Binary files a/test_funcs/__pycache__/simplest.cpython-37.pyc and b/test_funcs/__pycache__/simplest.cpython-37.pyc differ diff --git a/test_funcs/simplest.py b/test_funcs/simplest.py index 8fe98f8badec61d287a859087f06ed45b8e68684..2d357c28fa3f6c2f0641985e35cc082534a4e71e 100644 --- a/test_funcs/simplest.py +++ b/test_funcs/simplest.py @@ -27,7 +27,7 @@ def copy_to_c(data): data['c'] = data['a'] def selector_a_nonpositive(data): - res = data['a'] < 0 + res = data['a'] <= 0 return [res, not res] def true_predicate(data): diff --git a/test_parser.py b/test_parser.py deleted file mode 100644 index f2881a75e180a8a2819b8f828b6c00ae41b7ba24..0000000000000000000000000000000000000000 --- a/test_parser.py +++ /dev/null @@ -1,15 +0,0 @@ -import unittest -from copy import deepcopy -import subprocess -import os -import random -import sys -from test_funcs.simplest import * -import comsdk.parser as pars -from comsdk.graph import * -from comsdk.edge import Edge - -prsr = pars.Parser(tocpp=True) -data = {"a":10, "b":0} -gr = prsr.parse_file(sys.argv[1]) -prsr.generate_cpp(sys.argv[2]) diff --git a/tests/__pycache__/test_parser.cpython-37.pyc b/tests/__pycache__/test_parser.cpython-37.pyc index 8488132e769aac87e15851fd3e04e98d55b4818a..6507451d786bb069e2d5db775d48ded878be3a21 100644 Binary files a/tests/__pycache__/test_parser.cpython-37.pyc and b/tests/__pycache__/test_parser.cpython-37.pyc differ diff --git a/tests/adot/branching.adot b/tests/adot/branching.adot index eea77b55e0035f1cedf531fe067adfd8acfe7566..e8c14dea2182d4a8629053871a326872f4fddb07 100644 --- a/tests/adot/branching.adot +++ b/tests/adot/branching.adot @@ -1,7 +1,7 @@ digraph SIMPLEST { FUNCA [module=test_funcs.simplest, entry_func=increment_a_edge] FUNCB [module=test_funcs.simplest, entry_func=increment_b_edge] - PRED [module=test_funcs.simplest, entry_func=positiveness_predicate] + PRED [module=test_funcs.simplest, entry_func=true_predicate] INCR_A [predicate=PRED, function=FUNCA] INCR_B [predicate=PRED, function=FUNCB] diff --git a/tests/adot/cppbranching.adot b/tests/adot/cppbranching.adot new file mode 100644 index 0000000000000000000000000000000000000000..3b5a0a549585628c591168103da43e93cb0c7772 --- /dev/null +++ b/tests/adot/cppbranching.adot @@ -0,0 +1,28 @@ +digraph SIMPLEST { + FUNCA [module=libtest, entry_func=IncA] + FUNCB [module=libtest, entry_func=IncB] + + CHECKA [module=libtest, entry_func=CheckAEq4] + CHECKB [module=libtest, entry_func=CheckBEq4] + + SETA [module=libtest, entry_func=SetAEq1] + SETB [module=libtest, entry_func=SetBEq1] + + PASS [module=libtest, entry_func=PassFunc] + PRED [module=libtest, entry_func=PassPred] + + INCR_A [predicate=PRED, function=FUNCA] + INCR_B [predicate=PRED, function=FUNCB] + CH_A [predicate=CHECKA, function = PASS] + SET_A [predicate=PRED, function=SETA] + SET_B [predicate=PRED, function=SETB] + CH_B [predicate=CHECKB, function = PASS] + + __BEGIN__ -> ROT [morphism=SET_A] + ROT -> ROOT[morphism=SET_B] + ROOT -> BR1, BR2 [morphism=(INCR_A, INCR_B)] + BR1 -> BR1_ST [morphism=INCR_A] + BR2 -> BR2_ST [morphism=INCR_B] + BR1_ST, BR2_ST -> MERGE [morphism=(INCR_A, INCR_B)] + MERGE -> __END__, __END__ [morphism=(CH_A, CH_B)] +} \ No newline at end of file diff --git a/tests/adot/cppcomplex.adot b/tests/adot/cppcomplex.adot new file mode 100644 index 0000000000000000000000000000000000000000..c93c09ec2a9aacd7abde6c5f23a2072437f16839 --- /dev/null +++ b/tests/adot/cppcomplex.adot @@ -0,0 +1,15 @@ +digraph SIMPLEST { + FUNCA [module=test_funcs.simplest, entry_func=increment_a_edge] + PRED [module=test_funcs.simplest, entry_func=true_predicate] + + INCR_A [predicate=PRED, function=FUNCA] + + ST1 [subgraph=tests/adot/cpptrivial.adot] + ST2 [subgraph=tests/adot/cppcycled.adot] + ST3 [subgraph=tests/adot/cppbranching.adot] + + __BEGIN__ -> ST1 + ST1 -> ST2 + ST2 -> ST3 + ST3 -> __END__ +} \ No newline at end of file diff --git a/tests/adot/cppcycled.adot b/tests/adot/cppcycled.adot new file mode 100644 index 0000000000000000000000000000000000000000..ed3209bc780cf9eaa2b7ffef94c5bbde7ab83120 --- /dev/null +++ b/tests/adot/cppcycled.adot @@ -0,0 +1,18 @@ +digraph CYCLED { + + SETA [module=libtest, entry_func=SetAEq10] + FUNC [module=libtest, entry_func=DecA] + PRED [module=libtest, entry_func=PassPred] + + SET [predicate=PRED, function=SETA] + MORPH [predicate=PRED, function=FUNC] + + SEL [module = libtest, entry_func=SelectorA] + + ST2 [selector = SEL] + + __BEGIN__ -> ST1 [morphism=SET] + ST1 -> ST2 [morphism=MORPH] + ST2 -> ST1 [order=1] + ST2 -> __END__ [order = 2] +} \ No newline at end of file diff --git a/tests/adot/trivialcpp.adot b/tests/adot/cpptrivial.adot similarity index 81% rename from tests/adot/trivialcpp.adot rename to tests/adot/cpptrivial.adot index cfa515fbd92e660a3f42c93b5401f5cbb0c11b49..c37cb9c1fe8393522e05dc62288d8b052f7424b0 100644 --- a/tests/adot/trivialcpp.adot +++ b/tests/adot/cpptrivial.adot @@ -1,6 +1,6 @@ digraph SIMPLE { FUNC [module=libtest, entry_func=IncA] - PRED [module=libtest, entry_func=ReturnTrue] + PRED [module=libtest, entry_func=PassPred] MORPH [predicate=PRED, function=FUNC] __BEGIN__ -> ST1 [morphism = MORPH] diff --git a/tests/adot/cycled.adot b/tests/adot/cycled.adot index 542f21099cd9695553b71eeaf2cee92bedc1d509..4b37cbcb3a5306edae2c41a651252f0e05627d4d 100644 --- a/tests/adot/cycled.adot +++ b/tests/adot/cycled.adot @@ -1,6 +1,6 @@ digraph CYCLED { FUNC [module=test_funcs.simplest, entry_func=decrement_a_edge] - PRED [module=test_funcs.simplest, entry_func=positiveness_predicate] + PRED [module=test_funcs.simplest, entry_func=true_predicate] MORPH [predicate=PRED, function=FUNC] SEL [module = test_funcs.simplest, entry_func = selector_a_nonpositive] diff --git a/tests/adot/trivial.adot b/tests/adot/trivial.adot index eae6d277a74aec81b4d0fc1dd3eb32e6d452fb81..26a06b741eefec6c26dc5d8a6ec048c4d384f324 100644 --- a/tests/adot/trivial.adot +++ b/tests/adot/trivial.adot @@ -1,6 +1,6 @@ -digraph trivial { +digraph TRIVIAL { FUNC [module=test_funcs.simplest, entry_func=increment_a_edge] - PRED [module=test_funcs.simplest, entry_func=positiveness_predicate] + PRED [module=test_funcs.simplest, entry_func=true_predicate] MORPH [predicate=PRED, function=FUNC, comment="ADD"] __BEGIN__ -> ST1 [morphism = MORPH] diff --git a/tests/test_parser.py b/tests/test_parser.py index ae7b2a100b94a752ba36205a96429174897d56aa..cadf7ad55faa1d80d09f1362660772746ec308f8 100644 --- a/tests/test_parser.py +++ b/tests/test_parser.py @@ -1,9 +1,11 @@ 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): @@ -38,18 +40,32 @@ class ParserGoodCheck(unittest.TestCase): self.assertEqual(data["b"], 4) def test_cpp_trivial_graph(self): - pass + 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): - pass + 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): - pass + 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): - pass - - + 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()