You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
FreeDMR/tests/test_bridge_backports.py

33 lines
978 B

import ast
import pathlib
import unittest
ROOT = pathlib.Path(__file__).resolve().parents[1]
def load_bridge_helper(name):
source = (ROOT / "bridge.py").read_text()
module = ast.parse(source)
for node in module.body:
if isinstance(node, ast.FunctionDef) and node.name == name:
namespace = {}
exec(compile(ast.Module([node], []), "bridge.py", "exec"), namespace)
return namespace[name]
raise AssertionError(f"bridge.py helper not found: {name}")
class BridgeBackportTests(unittest.TestCase):
def test_dmrd_seq_delta_is_modulo_256(self):
dmrd_seq_delta = load_bridge_helper("dmrd_seq_delta")
self.assertIsNone(dmrd_seq_delta(1, False))
self.assertEqual(dmrd_seq_delta(2, 1), 1)
self.assertEqual(dmrd_seq_delta(0, 255), 1)
self.assertEqual(dmrd_seq_delta(2, 255), 3)
self.assertEqual(dmrd_seq_delta(250, 2), 248)
if __name__ == "__main__":
unittest.main()

Powered by TurnKey Linux.