test_dcpacker.py 1.1 KB

123456789101112131415161718192021222324252627282930313233343536
  1. import pytest
  2. direct = pytest.importorskip("panda3d.direct")
  3. def test_pack_int8():
  4. for num in range(-128, 128):
  5. packer = direct.DCPacker()
  6. packer.raw_pack_int8(num)
  7. packer.set_unpack_data(packer.get_bytes())
  8. assert packer.raw_unpack_int8() == num
  9. def test_pack_uint8():
  10. for num in range(256):
  11. packer = direct.DCPacker()
  12. packer.raw_pack_uint8(num)
  13. packer.set_unpack_data(packer.get_bytes())
  14. assert packer.raw_unpack_uint8() == num
  15. def test_pack_int64():
  16. for num in (0, -1, 0x7fffffff, -0x80000000, 0x7fffffffffffffff, 0x7ffffffffffffffe, -0x8000000000000000, -0x7fffffffffffffff):
  17. packer = direct.DCPacker()
  18. packer.raw_pack_int64(num)
  19. packer.set_unpack_data(packer.get_bytes())
  20. assert packer.raw_unpack_int64() == num
  21. def test_pack_uint64():
  22. for num in (0, 1, 0x7fffffff, 0xffffffff, 0x7fffffffffffffff, 0xfffffffffffffffe, 0xffffffffffffffff):
  23. packer = direct.DCPacker()
  24. packer.raw_pack_uint64(num)
  25. packer.set_unpack_data(packer.get_bytes())
  26. assert packer.raw_unpack_uint64() == num