diff --git a/tests/dcparser/test_dcpacker.py b/tests/dcparser/test_dcpacker.py new file mode 100644 index 0000000000..9bf8e5252e --- /dev/null +++ b/tests/dcparser/test_dcpacker.py @@ -0,0 +1,36 @@ +import pytest + +direct = pytest.importorskip("panda3d.direct") + + +def test_pack_int8(): + for num in range(-128, 128): + packer = direct.DCPacker() + packer.raw_pack_int8(num) + packer.set_unpack_data(packer.get_bytes()) + assert packer.raw_unpack_int8() == num + + +def test_pack_uint8(): + for num in range(256): + packer = direct.DCPacker() + packer.raw_pack_uint8(num) + packer.set_unpack_data(packer.get_bytes()) + assert packer.raw_unpack_uint8() == num + + +def test_pack_int64(): + for num in (0, -1, 0x7fffffff, -0x80000000, 0x7fffffffffffffff, 0x7ffffffffffffffe, -0x8000000000000000, -0x7fffffffffffffff): + packer = direct.DCPacker() + packer.raw_pack_int64(num) + packer.set_unpack_data(packer.get_bytes()) + assert packer.raw_unpack_int64() == num + + +def test_pack_uint64(): + for num in (0, 1, 0x7fffffff, 0xffffffff, 0x7fffffffffffffff, 0xfffffffffffffffe, 0xffffffffffffffff): + packer = direct.DCPacker() + packer.raw_pack_uint64(num) + packer.set_unpack_data(packer.get_bytes()) + assert packer.raw_unpack_uint64() == num +