summaryrefslogtreecommitdiff
path: root/bin
diff options
context:
space:
mode:
authorDaniel Friesel <derf@finalrewind.org>2019-02-21 16:42:16 +0100
committerDaniel Friesel <derf@finalrewind.org>2019-02-21 16:42:16 +0100
commit6e72c1b2b53e2290dc5cb7aa218c620a0ee979d4 (patch)
tree086ffd7f5833f74dde206c925b7ec17186388ad0 /bin
parent115274b46b61180ca1fea79511482fc704b552ca (diff)
PTA trace: Return transition objects, not just names
Diffstat (limited to 'bin')
-rwxr-xr-xbin/test_automata.py23
1 files changed, 14 insertions, 9 deletions
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))],