BoxTests.c 2.5 KB

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