test_orientation.c 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. #include "common.h"
  2. #include <assert.h>
  3. #include "options.h"
  4. static void test_transforms(void) {
  5. #define O(X) SC_ORIENTATION_ ## X
  6. #define ASSERT_TRANSFORM(SRC, TR, RES) \
  7. assert(sc_orientation_apply(O(SRC), O(TR)) == O(RES));
  8. ASSERT_TRANSFORM(0, 0, 0);
  9. ASSERT_TRANSFORM(0, 90, 90);
  10. ASSERT_TRANSFORM(0, 180, 180);
  11. ASSERT_TRANSFORM(0, 270, 270);
  12. ASSERT_TRANSFORM(0, FLIP_0, FLIP_0);
  13. ASSERT_TRANSFORM(0, FLIP_90, FLIP_90);
  14. ASSERT_TRANSFORM(0, FLIP_180, FLIP_180);
  15. ASSERT_TRANSFORM(0, FLIP_270, FLIP_270);
  16. ASSERT_TRANSFORM(90, 0, 90);
  17. ASSERT_TRANSFORM(90, 90, 180);
  18. ASSERT_TRANSFORM(90, 180, 270);
  19. ASSERT_TRANSFORM(90, 270, 0);
  20. ASSERT_TRANSFORM(90, FLIP_0, FLIP_270);
  21. ASSERT_TRANSFORM(90, FLIP_90, FLIP_0);
  22. ASSERT_TRANSFORM(90, FLIP_180, FLIP_90);
  23. ASSERT_TRANSFORM(90, FLIP_270, FLIP_180);
  24. ASSERT_TRANSFORM(180, 0, 180);
  25. ASSERT_TRANSFORM(180, 90, 270);
  26. ASSERT_TRANSFORM(180, 180, 0);
  27. ASSERT_TRANSFORM(180, 270, 90);
  28. ASSERT_TRANSFORM(180, FLIP_0, FLIP_180);
  29. ASSERT_TRANSFORM(180, FLIP_90, FLIP_270);
  30. ASSERT_TRANSFORM(180, FLIP_180, FLIP_0);
  31. ASSERT_TRANSFORM(180, FLIP_270, FLIP_90);
  32. ASSERT_TRANSFORM(270, 0, 270);
  33. ASSERT_TRANSFORM(270, 90, 0);
  34. ASSERT_TRANSFORM(270, 180, 90);
  35. ASSERT_TRANSFORM(270, 270, 180);
  36. ASSERT_TRANSFORM(270, FLIP_0, FLIP_90);
  37. ASSERT_TRANSFORM(270, FLIP_90, FLIP_180);
  38. ASSERT_TRANSFORM(270, FLIP_180, FLIP_270);
  39. ASSERT_TRANSFORM(270, FLIP_270, FLIP_0);
  40. ASSERT_TRANSFORM(FLIP_0, 0, FLIP_0);
  41. ASSERT_TRANSFORM(FLIP_0, 90, FLIP_90);
  42. ASSERT_TRANSFORM(FLIP_0, 180, FLIP_180);
  43. ASSERT_TRANSFORM(FLIP_0, 270, FLIP_270);
  44. ASSERT_TRANSFORM(FLIP_0, FLIP_0, 0);
  45. ASSERT_TRANSFORM(FLIP_0, FLIP_90, 90);
  46. ASSERT_TRANSFORM(FLIP_0, FLIP_180, 180);
  47. ASSERT_TRANSFORM(FLIP_0, FLIP_270, 270);
  48. ASSERT_TRANSFORM(FLIP_90, 0, FLIP_90);
  49. ASSERT_TRANSFORM(FLIP_90, 90, FLIP_180);
  50. ASSERT_TRANSFORM(FLIP_90, 180, FLIP_270);
  51. ASSERT_TRANSFORM(FLIP_90, 270, FLIP_0);
  52. ASSERT_TRANSFORM(FLIP_90, FLIP_0, 270);
  53. ASSERT_TRANSFORM(FLIP_90, FLIP_90, 0);
  54. ASSERT_TRANSFORM(FLIP_90, FLIP_180, 90);
  55. ASSERT_TRANSFORM(FLIP_90, FLIP_270, 180);
  56. ASSERT_TRANSFORM(FLIP_180, 0, FLIP_180);
  57. ASSERT_TRANSFORM(FLIP_180, 90, FLIP_270);
  58. ASSERT_TRANSFORM(FLIP_180, 180, FLIP_0);
  59. ASSERT_TRANSFORM(FLIP_180, 270, FLIP_90);
  60. ASSERT_TRANSFORM(FLIP_180, FLIP_0, 180);
  61. ASSERT_TRANSFORM(FLIP_180, FLIP_90, 270);
  62. ASSERT_TRANSFORM(FLIP_180, FLIP_180, 0);
  63. ASSERT_TRANSFORM(FLIP_180, FLIP_270, 90);
  64. ASSERT_TRANSFORM(FLIP_270, 0, FLIP_270);
  65. ASSERT_TRANSFORM(FLIP_270, 90, FLIP_0);
  66. ASSERT_TRANSFORM(FLIP_270, 180, FLIP_90);
  67. ASSERT_TRANSFORM(FLIP_270, 270, FLIP_180);
  68. ASSERT_TRANSFORM(FLIP_270, FLIP_0, 90);
  69. ASSERT_TRANSFORM(FLIP_270, FLIP_90, 180);
  70. ASSERT_TRANSFORM(FLIP_270, FLIP_180, 270);
  71. ASSERT_TRANSFORM(FLIP_270, FLIP_270, 0);
  72. }
  73. int main(int argc, char *argv[]) {
  74. (void) argc;
  75. (void) argv;
  76. test_transforms();
  77. return 0;
  78. }