ColorTests.cpp 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. #include "../Tests.hpp"
  2. #include "core/utils/Color.hpp"
  3. template class Core::Color<1>;
  4. template class Core::Color<2>;
  5. template class Core::Color<3>;
  6. template class Core::Color<4>;
  7. const float eps = 0.0001f;
  8. static void testColor1() {
  9. Core::Color1 c(36);
  10. CORE_TEST_EQUAL(36, c[0]);
  11. CORE_TEST_FLOAT(36.0f / 255.0f, c.asFloat(0), eps);
  12. }
  13. static void testColor2() {
  14. Core::Color2 c(36 + 256, 100.0);
  15. CORE_TEST_EQUAL(36, c[0]);
  16. CORE_TEST_EQUAL(100, c[1]);
  17. CORE_TEST_FLOAT(36.0f / 255.0f, c.asFloat(0), eps);
  18. CORE_TEST_FLOAT(100.0f / 255.0f, c.asFloat(1), eps);
  19. }
  20. static void testColor3() {
  21. Core::Color3 c(36, 100.0f, 200);
  22. CORE_TEST_EQUAL(36, c[0]);
  23. CORE_TEST_EQUAL(100, c[1]);
  24. CORE_TEST_EQUAL(200, c[2]);
  25. CORE_TEST_FLOAT(36.0f / 255.0f, c.asFloat(0), eps);
  26. CORE_TEST_FLOAT(100.0f / 255.0f, c.asFloat(1), eps);
  27. CORE_TEST_FLOAT(200.0f / 255.0f, c.asFloat(2), eps);
  28. }
  29. template<typename T>
  30. static void testColor4() {
  31. T c(36, 100, 200, 142);
  32. CORE_TEST_EQUAL(36, c[0]);
  33. CORE_TEST_EQUAL(100, c[1]);
  34. CORE_TEST_EQUAL(200, c[2]);
  35. CORE_TEST_EQUAL(142, c[3]);
  36. CORE_TEST_FLOAT(36.0f / 255.0f, c.asFloat(0), eps);
  37. CORE_TEST_FLOAT(100.0f / 255.0f, c.asFloat(1), eps);
  38. CORE_TEST_FLOAT(200.0f / 255.0f, c.asFloat(2), eps);
  39. CORE_TEST_FLOAT(142.0f / 255.0f, c.asFloat(3), eps);
  40. }
  41. static void testColor4Empty() {
  42. Core::Color4 c;
  43. CORE_TEST_EQUAL(0, c[0]);
  44. CORE_TEST_EQUAL(0, c[1]);
  45. CORE_TEST_EQUAL(0, c[2]);
  46. CORE_TEST_EQUAL(0, c[3]);
  47. }
  48. void Core::testColor() {
  49. testColor1();
  50. testColor2();
  51. testColor3();
  52. testColor4<Core::Color4>();
  53. testColor4<const Core::Color4>();
  54. testColor4Empty();
  55. }