From 6e72c1b2b53e2290dc5cb7aa218c620a0ee979d4 Mon Sep 17 00:00:00 2001 From: Daniel Friesel Date: Thu, 21 Feb 2019 16:42:16 +0100 Subject: PTA trace: Return transition objects, not just names --- bin/test_automata.py | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) (limited to 'bin') diff --git a/bin/test_automata.py b/bin/test_automata.py index 2b6b3d4..aafc50b 100755 --- a/bin/test_automata.py +++ b/bin/test_automata.py @@ -85,24 +85,29 @@ example_json_1 = { ], } +def dfs_tran_to_name(runs: list, with_args: bool) -> list: + if with_args: + return list(map(lambda run: list(map(lambda x: (x[0].name, x[1]), run)), runs)) + return list(map(lambda run: list(map(lambda transition: transition.name, run)), runs)) + class TestPTA(unittest.TestCase): def test_dfs(self): pta = PTA(['IDLE', 'TX']) pta.add_transition('UNINITIALIZED', 'IDLE', 'init') pta.add_transition('IDLE', 'TX', 'send') pta.add_transition('TX', 'IDLE', 'txComplete') - self.assertEqual(list(pta.dfs(0)), [['init']]) - self.assertEqual(list(pta.dfs(1)), [['init', 'send']]) - self.assertEqual(list(pta.dfs(2)), [['init', 'send', 'txComplete']]) - self.assertEqual(list(pta.dfs(3)), [['init', 'send', 'txComplete', 'send']]) + self.assertEqual(dfs_tran_to_name(pta.dfs(0), False), [['init']]) + self.assertEqual(dfs_tran_to_name(pta.dfs(1), False), [['init', 'send']]) + self.assertEqual(dfs_tran_to_name(pta.dfs(2), False), [['init', 'send', 'txComplete']]) + self.assertEqual(dfs_tran_to_name(pta.dfs(3), False), [['init', 'send', 'txComplete', 'send']]) pta = PTA(['IDLE']) pta.add_transition('UNINITIALIZED', 'IDLE', 'init') pta.add_transition('IDLE', 'IDLE', 'set1') pta.add_transition('IDLE', 'IDLE', 'set2') - self.assertEqual(list(pta.dfs(0)), [['init']]) - self.assertEqual(sorted(pta.dfs(1)), [['init', 'set1'], ['init', 'set2']]) - self.assertEqual(sorted(pta.dfs(2)), [['init', 'set1', 'set1'], + self.assertEqual(list(map(lambda x: list(map(lambda y: y.name, x)), pta.dfs(0))), [['init']]) + self.assertEqual(sorted(map(lambda x: list(map(lambda y: y.name, x)), pta.dfs(1))), [['init', 'set1'], ['init', 'set2']]) + self.assertEqual(sorted(map(lambda x: list(map(lambda y: y.name, x)), pta.dfs(2))), [['init', 'set1', 'set1'], ['init', 'set1', 'set2'], ['init', 'set2', 'set1'], ['init', 'set2', 'set2']]) @@ -122,8 +127,8 @@ class TestPTA(unittest.TestCase): def test_from_json_dfs(self): pta = PTA.from_json(example_json_1) - self.assertEqual(sorted(pta.dfs(1)), [['init', 'init'], ['init', 'send'], ['init', 'setTxPower']]) - self.assertEqual(sorted(pta.dfs(1, with_arguments = True)), + self.assertEqual(sorted(dfs_tran_to_name(pta.dfs(1), False)), [['init', 'init'], ['init', 'send'], ['init', 'setTxPower']]) + self.assertEqual(sorted(dfs_tran_to_name(pta.dfs(1, with_arguments = True), True)), [ [('init', ()), ('init', ())], [('init', ()), ('send', ('"foo"', 3))], -- cgit v1.2.3