Commit 9518540b authored by Sergey Bobrov's avatar Sergey Bobrov

Unit тест графа c разными типами ребер проведен и отлажен

parent cc6402f6
digraph EDGE_TYPES_TEST {
// Определение функций
FUNC_A [module=test_funcs.simplest, entry_func=increment_a_edge]
FUNC_B [module=test_funcs.simplest, entry_func=increment_b_edge]
TRUE_PRED [module=test_funcs.simplest, entry_func=true_predicate]
// Определение разных типов ребер
EDGE_SIMPLE [predicate=TRUE_PRED, function=FUNC_A, comment="Обычное ребро (->)"]
EDGE_PARALLEL [predicate=TRUE_PRED, function=FUNC_B, comment="Параллельное ребро (=>)"]
// Определение узлов
__BEGIN__ -> NODE_START
NODE_START -> NODE_MIDDLE [morphism=EDGE_SIMPLE, order=0]
NODE_START => NODE_MIDDLE [morphism=EDGE_PARALLEL, order=1]
NODE_MIDDLE -> __END__
}
\ No newline at end of file
...@@ -83,9 +83,16 @@ class TestADOTParser(unittest.TestCase): ...@@ -83,9 +83,16 @@ class TestADOTParser(unittest.TestCase):
graph = self.parser.parse_file(os.path.join(self.test_files_dir, "edge_types.adot")) graph = self.parser.parse_file(os.path.join(self.test_files_dir, "edge_types.adot"))
self.assertIsInstance(graph, Graph) self.assertIsInstance(graph, Graph)
transfers = graph.init_state.transfers # Проверка структуры графа
self.assertEqual(transfers[0].edge.order, 0) # -> start_node = graph.init_state.transfers[0].output_state
self.assertEqual(transfers[1].edge.order, 1) # => self.assertEqual(len(start_node.transfers), 2, "Должно быть 2 исходящих ребра")
# Проверка типов ребер
edge_simple = start_node.transfers[0].edge
edge_parallel = start_node.transfers[1].edge
self.assertEqual(edge_simple.order, 0, "Обычное ребро должно иметь order=0")
self.assertEqual(edge_parallel.order, 1, "Параллельное ребро должно иметь order=1")
def test_attributes_parsing(self): def test_attributes_parsing(self):
"""Тест парсинга атрибутов узлов и ребер""" """Тест парсинга атрибутов узлов и ребер"""
...@@ -105,7 +112,7 @@ class TestADOTParser(unittest.TestCase): ...@@ -105,7 +112,7 @@ class TestADOTParser(unittest.TestCase):
class TestGraphExecution(unittest.TestCase): class TestGraphExecution(unittest.TestCase):
def test_parallel_execution(self): def test_parallel_execution(self):
"""Тест параллельного выполнения""" """Тест параллельного выполнения"""
# Здесь должны быть тесты реального параллельного выполнения # Здесь будут тесты реального параллельного выполнения
# с использованием threading/multiprocessing # с использованием threading/multiprocessing
pass pass
......
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