test_collision_tube.py 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. from panda3d import core
  2. def test_collision_tube_alias():
  3. assert hasattr(core, 'CollisionCapsule')
  4. assert hasattr(core, 'CollisionTube')
  5. assert core.CollisionTube is core.CollisionCapsule
  6. def test_collision_tube_write_old():
  7. buffer = core.DatagramBuffer()
  8. writer = core.BamWriter(buffer)
  9. assert writer.get_file_major_ver() == 6
  10. writer.set_file_minor_ver(43)
  11. capsule = core.CollisionCapsule((0, 0, -1), (0, 0, 1), 0.5)
  12. writer.init()
  13. writer.write_object(capsule)
  14. writer.flush()
  15. data = buffer.data
  16. assert b'CollisionTube' in data
  17. assert b'CollisionCapsule' not in data
  18. def test_collision_tube_write_new():
  19. buffer = core.DatagramBuffer()
  20. writer = core.BamWriter(buffer)
  21. assert writer.get_file_major_ver() == 6
  22. writer.set_file_minor_ver(44)
  23. capsule = core.CollisionCapsule((0, 0, -1), (0, 0, 1), 0.5)
  24. writer.init()
  25. writer.write_object(capsule)
  26. writer.flush()
  27. data = buffer.data
  28. assert b'CollisionTube' not in data
  29. assert b'CollisionCapsule' in data
  30. def test_collision_tube_read_old():
  31. # Make sure we can read an older file that contains CollisionTube.
  32. buffer = core.DatagramBuffer(b'\x06\x00\x00\x00\x06\x00+\x00\x01\x00\xd6\x00\x00\x00\x00j\x01\r\x00CollisionTube\x01h\x01\x0e\x00CollisionSolid\x01B\x00\x11\x00CopyOnWriteObject\x01A\x00!\x00CachedTypedWritableReferenceCount\x01=\x00\x1b\x00TypedWritableReferenceCount\x02<\x00\r\x00TypedWritable\x01\x03\x00\x0b\x00TypedObject\x00\x07\x00\x0e\x00ReferenceCount\x00\x01\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80?\x00\x00\x00?\x01\x00\x00\x00\x01')
  33. reader = core.BamReader(buffer)
  34. reader.init()
  35. assert reader.file_version == (6, 43)
  36. capsule = reader.read_object()
  37. reader.resolve()
  38. assert isinstance(capsule, core.CollisionCapsule)
  39. def test_collision_tube_read_new():
  40. # Make sure we can read a newer file that contains CollisionCapsule.
  41. buffer = core.DatagramBuffer(b'\x06\x00\x00\x00\x06\x00,\x00\x01\x00\xd9\x00\x00\x00\x00j\x01\x10\x00CollisionCapsule\x01h\x01\x0e\x00CollisionSolid\x01B\x00\x11\x00CopyOnWriteObject\x01A\x00!\x00CachedTypedWritableReferenceCount\x01=\x00\x1b\x00TypedWritableReferenceCount\x02<\x00\r\x00TypedWritable\x01\x03\x00\x0b\x00TypedObject\x00\x07\x00\x0e\x00ReferenceCount\x00\x01\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\xbf\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80?\x00\x00\x00?\x01\x00\x00\x00\x01')
  42. reader = core.BamReader(buffer)
  43. reader.init()
  44. assert reader.file_version == (6, 44)
  45. capsule = reader.read_object()
  46. reader.resolve()
  47. assert isinstance(capsule, core.CollisionCapsule)