test_into_capsule.py 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. from collisions import *
  2. def test_box_into_capsule():
  3. capsule = CollisionCapsule((1, 0, 0), (-1, 0, 0), .5)
  4. # colliding just on the capsule's cylinder
  5. box = CollisionBox((0, 1, 0), .5, .5, .5)
  6. entry = make_collision(box, capsule)[0]
  7. assert entry is not None
  8. # no longer colliding
  9. box = CollisionBox((0, 1.1, 0), .5, .5, .5)
  10. entry = make_collision(box, capsule)[0]
  11. assert entry is None
  12. # box is inside the capsule's cylinder
  13. box = CollisionBox((0, .8, 0), .5, .5, .5)
  14. entry = make_collision(box, capsule)[0]
  15. assert entry is not None
  16. # colliding with the first endcap
  17. box = CollisionBox((2, 0, 0), .5, .5, .5)
  18. entry = make_collision(box, capsule)[0]
  19. assert entry is not None
  20. # almost colliding with first endcap
  21. box = CollisionBox((2.01, 0, 0), .5, .5, .5)
  22. entry = make_collision(box, capsule)[0]
  23. assert entry is None
  24. # colliding with the second endcap
  25. box = CollisionBox((-2, 0, 0), .5, .5, .5)
  26. entry = make_collision(box, capsule)[0]
  27. assert entry is not None
  28. # almost colliding with second endcap
  29. box = CollisionBox((-2.01, 0, 0), .5, .5, .5)
  30. entry = make_collision(box, capsule)[0]
  31. assert entry is None