BoxTests.c 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. #include "../Tests.h"
  2. #include "core/Box.h"
  3. static void testInit() {
  4. Box box = BOX;
  5. setBox(&box, &V(1.0f, 2.0f, 3.0f));
  6. char buffer[128];
  7. toStringBox(&box, buffer, sizeof(buffer));
  8. TEST_STRING("Box([0.000, 0.000, 0.000], [1.000, 2.000, 3.000])", buffer);
  9. setBox(&box, &V(-1.0f, -2.0f, -3.0f));
  10. toStringBox(&box, buffer, sizeof(buffer));
  11. TEST_STRING("Box([-1.000, -2.000, -3.000], [0.000, 0.000, 0.000])", buffer);
  12. }
  13. static void testOffset() {
  14. Box box = BOX;
  15. setBox(&box, &V(1.0f, 2.0f, 3.0f));
  16. offsetBox(&box, &V(7.0f, -4.0f, 6.0f));
  17. char buffer[128];
  18. toStringBox(&box, buffer, sizeof(buffer));
  19. TEST_STRING("Box([7.000, -4.000, 6.000], [8.000, -2.000, 9.000])", buffer);
  20. }
  21. static void testCollidesWith() {
  22. Box boxA = BOX;
  23. setBox(&boxA, &V(1.0f, 2.0f, 3.0f));
  24. Box boxB = BOX;
  25. setBox(&boxB, &V(-1.0f, -2.0f, -3.0f));
  26. Box boxC = BOX;
  27. setBox(&boxC, &V(2.0f, 2.0f, 2.0f));
  28. offsetBox(&boxC, &V(-1.0f, -1.0f, -1.0f));
  29. TEST_TRUE(collidesWithBox(&boxC, &boxA));
  30. TEST_TRUE(collidesWithBox(&boxC, &boxB));
  31. TEST_TRUE(collidesWithBox(&boxA, &boxC));
  32. TEST_TRUE(collidesWithBox(&boxB, &boxC));
  33. TEST_FALSE(collidesWithBox(&boxA, &boxB));
  34. TEST_FALSE(collidesWithBox(&boxB, &boxA));
  35. }
  36. static void testExpand() {
  37. Box box = BOX;
  38. setBox(&box, &V(1.0f, 2.0f, 3.0f));
  39. expandBox(&box, &V(7.0f, -4.0f, 6.0f));
  40. char buffer[128];
  41. toStringBox(&box, buffer, sizeof(buffer));
  42. TEST_STRING("Box([0.000, -4.000, 0.000], [8.000, 2.000, 9.000])", buffer);
  43. setBox(&box, &V(1.0f, 2.0f, 3.0f));
  44. expandBox(&box, &V(-7.0f, 4.0f, -6.0f));
  45. toStringBox(&box, buffer, sizeof(buffer));
  46. TEST_STRING("Box([-7.000, 0.000, -6.000], [1.000, 6.000, 3.000])", buffer);
  47. }
  48. static void testGrow() {
  49. Box box = BOX;
  50. setBox(&box, &V(1.0f, 2.0f, 3.0f));
  51. growBox(&box, &V(4.0f, 2.0f, 6.0f));
  52. char buffer[128];
  53. toStringBox(&box, buffer, sizeof(buffer));
  54. TEST_STRING("Box([-2.000, -1.000, -3.000], [3.000, 3.000, 6.000])", buffer);
  55. setBox(&box, &V(1.0f, 2.0f, 3.0f));
  56. growBox(&box, &V(-4.0f, -2.0f, -6.0f));
  57. toStringBox(&box, buffer, sizeof(buffer));
  58. TEST_STRING("Box([0.500, 1.000, 1.500], [0.500, 1.000, 1.500])", buffer);
  59. setBox(&box, &V(1.0f, 2.0f, 3.0f));
  60. growBox(&box, &V(-0.1f, -4.0f, -1.0f));
  61. toStringBox(&box, buffer, sizeof(buffer));
  62. TEST_STRING("Box([0.050, 1.000, 0.500], [0.950, 1.000, 2.500])", buffer);
  63. }
  64. void testBox() {
  65. testInit();
  66. testOffset();
  67. testCollidesWith();
  68. testExpand();
  69. testGrow();
  70. }