colour_test.cpp 1016 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. /*
  2. * DoRayMe - a quick and dirty Raytracer
  3. * Colour unit tests
  4. *
  5. * Created by Manoël Trapier
  6. * Copyright (c) 2020 986-Studio.
  7. *
  8. */
  9. #include <colour.h>
  10. #include <math.h>
  11. #include <gtest/gtest.h>
  12. TEST(ColourTest, Color_is_tuple)
  13. {
  14. Colour c = Colour(-0.5, 0.4, 1.7);
  15. ASSERT_EQ(c.red(), -0.5);
  16. ASSERT_EQ(c.green(), 0.4);
  17. ASSERT_EQ(c.blue(), 1.7);
  18. }
  19. TEST(ColourTest, Adding_colours)
  20. {
  21. Colour c1 = Colour(0.9, 0.6, 0.75);
  22. Colour c2 = Colour(0.7, 0.1, 0.25);
  23. ASSERT_EQ(c1 + c2, Colour(1.6, 0.7, 1.0));
  24. }
  25. TEST(ColourTest, Substracting_colours)
  26. {
  27. Colour c1 = Colour(0.9, 0.6, 0.75);
  28. Colour c2 = Colour(0.7, 0.1, 0.25);
  29. ASSERT_EQ(c1 - c2, Colour(0.2, 0.5, 0.5));
  30. }
  31. TEST(ColourTest, Multiplying_colour_by_a_scalar)
  32. {
  33. Colour c = Colour(0.2, 0.3, 0.4);
  34. ASSERT_EQ(c * 2, Colour(0.4, 0.6, 0.8));
  35. }
  36. TEST(ColourTest, Multiplying_colours)
  37. {
  38. Colour c1 = Colour(1, 0.2, 0.4);
  39. Colour c2 = Colour(0.9, 1, 0.1);
  40. ASSERT_EQ(c1 * c2, Colour(0.9, 0.2, 0.04));
  41. }