from unittest import TestCase
from hypothesis import given
+from hypothesis.strategies import integers
from pyac import DecodeError
from pyac import dumps
encoded: bytes = b"\x0c\x01\x7b"
loads(encoded)
self.assertEqual(str(err.exception), "non-BIN in INT")
+
+ @given(integers())
+ def test_symmetric(self, i: int) -> None:
+ decoded, _ = loads(dumps(i))
+ self.assertEqual(decoded, i)
from unittest import TestCase
from hypothesis import given
+from hypothesis.strategies import binary
from hypothesis.strategies import integers
from pyac import DecodeError
from pyac import loads
from pyac import NotEnoughData
from tests.strategies import junk_st
+from tests.strategies import unicode_allowed
TagStr: int = 0x80
loads(encoded)
self.assertEqual(err.exception.n, 3)
+ @given(unicode_allowed)
+ def test_symmetric(self, s: str):
+ decoded, _ = loads(dumps(s))
+ self.assertEqual(decoded, s)
+
class TestBin(TestCase):
@given(junk_st)
with self.assertRaises(NotEnoughData) as err:
loads(encoded)
self.assertEqual(err.exception.n, 3)
+
+ @given(binary())
+ def test_symmetric(self, s: bytes):
+ decoded, _ = loads(dumps(s))
+ self.assertEqual(decoded, s)
from uuid import UUID
from hypothesis import given
+from hypothesis.strategies import uuids
from pyac import dumps
from pyac import loads
with self.assertRaises(NotEnoughData) as err:
loads(encoded[:-4])
self.assertEqual(err.exception.n, 1+16)
+
+ @given(uuids())
+ def test_symmetric(self, u: UUID) -> None:
+ decoded, _ = loads(dumps(u))
+ self.assertEqual(decoded, u)