Commit d151f725 authored by Sergey Bobrov's avatar Sergey Bobrov

Added verification of a trivial graph for reuse

parent 4a819403
......@@ -2,3 +2,4 @@
config_research.json
*.log
__pycache__
/venv/
......@@ -7,18 +7,14 @@ from comsdk.edge import Edge
class Params():
__slots__=(
'module',
'entry_func',
'predicate',
'selector',
'function',
'morphism',
'parallelism',
'comment',
'order',
'subgraph'
__slots__ = (
'module', 'entry_func', 'predicate', 'selector', 'function',
'morphism', 'parallelism', 'comment', 'order', 'subgraph',
'keys_mapping', 'executable_parameters', 'connection_data',
'preprocessor', 'postprocessor', 'edge_index', 'config_section'
)
def __init__(self):
for slot in self.__slots__:
setattr(self, slot, None)
......
digraph CYCLIC {
// Функции и предикаты
INC [module="math_ops", entry_func="increment"]
CHECK [module="checks", entry_func="less_than_3"]
MORPH_LOOP [predicate=CHECK, function=INC]
MORPH_EXIT [function=INC]
// Топология с циклом
__BEGIN__ -> LOOP [edge_index=0]
LOOP -> LOOP [morphism=MORPH_LOOP, edge_index=1]
LOOP -> __END__ [morphism=MORPH_EXIT, edge_index=2]
}
\ No newline at end of file
digraph TRIVIAL {
// Объявление функций
FUNC [module=test_funcs.simplest, entry_func=increment_a_edge]
PRED [module=test_funcs.simplest, entry_func="always_true"]
MORPH [predicate=PRED, function=FUNC, comment="Basic increment"]
// Топология
__BEGIN__ -> STEP1 [morphism=MORPH, edge_index=0]
STEP1 -> STEP2 [morphism=MORPH, edge_index=1]
STEP2 -> __END__ [morphism=MORPH, edge_index=2]
}
\ No newline at end of file
......@@ -13,18 +13,24 @@ class ParserGoodCheck(unittest.TestCase):
def test_trivial_graph(self):
parsr = Parser()
gr = parsr.parse_file("./adot/trivial.adot")
# Проверка загрузки файла
self.assertTrue(os.path.exists("./adot/trivial_v2.adot"))
gr = parsr.parse_file("./adot/trivial_v2.adot")
# Основной сценарий
data = {"a": 1}
try:
gr.run(data)
finally:
# Явный вызов сборщика мусора для очистки ресурсов
gc.collect()
self.assertEqual(data["a"], 4)
# Проверка повторного использования
data = {"a": 4}
gr.run(data)
self.assertEqual(data["a"], 7)
def test_branching_graph(self):
parsr = Parser()
gr = parsr.parse_file("./tests/adot/branching.adot")
gr = parsr.parse_file("./adot/branching.adot")
data = {"a": 1, "b": 1}
gr.run(data)
self.assertEqual(data["a"], 4)
......@@ -32,7 +38,7 @@ class ParserGoodCheck(unittest.TestCase):
def test_cycled_graph(self):
parsr = Parser()
gr = parsr.parse_file("./tests/adot/cycled.adot")
gr = parsr.parse_file("./adot/cycled.adot")
data = {"a": 10}
gr.run(data)
self.assertEqual(data["a"], 0)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment