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.
33 lines
978 B
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()
|