Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.
 
 
 

66 wiersze
2.7 KiB

  1. //
  2. // Lol Engine — Unit tests for trigonometric functions
  3. //
  4. // Copyright © 2010—2020 Sam Hocevar <sam@hocevar.net>
  5. //
  6. // Lol Engine is free software. It comes without any warranty, to
  7. // the extent permitted by applicable law. You can redistribute it
  8. // and/or modify it under the terms of the Do What the Fuck You Want
  9. // to Public License, Version 2, as published by the WTFPL Task Force.
  10. // See http://www.wtfpl.net/ for more details.
  11. //
  12. #include <lol/engine-internal.h>
  13. #include <lol/base/lolunit.h>
  14. #include <cmath>
  15. namespace lol
  16. {
  17. lolunit_declare_fixture(trig_test)
  18. {
  19. lolunit_declare_test(angle_conversions)
  20. {
  21. lolunit_assert_doubles_equal(D_PI, radians(180.0), 1e-5);
  22. lolunit_assert_doubles_equal(D_PI_2, radians(90.0), 1e-5);
  23. lolunit_assert_doubles_equal(F_PI, radians(180.0f), 1e-5f);
  24. lolunit_assert_doubles_equal(F_PI_2, radians(90.0f), 1e-5f);
  25. lolunit_assert_doubles_equal(180.0, degrees(D_PI), 1e-5);
  26. lolunit_assert_doubles_equal(90.0, degrees(D_PI_2), 1e-5);
  27. lolunit_assert_doubles_equal(180.0f, degrees(F_PI), 1e-5f);
  28. lolunit_assert_doubles_equal(90.0f, degrees(F_PI_2), 1e-5f);
  29. }
  30. lolunit_declare_test(integer_angle_conversions)
  31. {
  32. lolunit_assert_doubles_equal(radians(90), radians(90.0), 1e-5);
  33. lolunit_assert_doubles_equal(radians((uint8_t)90), radians(90.0), 1e-5);
  34. lolunit_assert_doubles_equal(radians((int8_t)90), radians(90.0), 1e-5);
  35. lolunit_assert_doubles_equal(radians((uint16_t)90), radians(90.0), 1e-5);
  36. lolunit_assert_doubles_equal(radians((int16_t)90), radians(90.0), 1e-5);
  37. lolunit_assert_doubles_equal(radians((uint32_t)90), radians(90.0), 1e-5);
  38. lolunit_assert_doubles_equal(radians((int32_t)90), radians(90.0), 1e-5);
  39. lolunit_assert_doubles_equal(radians((uint64_t)90), radians(90.0), 1e-5);
  40. lolunit_assert_doubles_equal(radians((int64_t)90), radians(90.0), 1e-5);
  41. lolunit_assert_doubles_equal(degrees(1), degrees(1.0), 1e-5);
  42. lolunit_assert_doubles_equal(degrees((uint8_t)1), degrees(1.0), 1e-5);
  43. lolunit_assert_doubles_equal(degrees((int8_t)1), degrees(1.0), 1e-5);
  44. lolunit_assert_doubles_equal(degrees((uint16_t)1), degrees(1.0), 1e-5);
  45. lolunit_assert_doubles_equal(degrees((int16_t)1), degrees(1.0), 1e-5);
  46. lolunit_assert_doubles_equal(degrees((uint32_t)1), degrees(1.0), 1e-5);
  47. lolunit_assert_doubles_equal(degrees((int32_t)1), degrees(1.0), 1e-5);
  48. lolunit_assert_doubles_equal(degrees((uint64_t)1), degrees(1.0), 1e-5);
  49. lolunit_assert_doubles_equal(degrees((int64_t)1), degrees(1.0), 1e-5);
  50. }
  51. };
  52. } /* namespace lol */