sign.cpp 642 B

12345678910111213141516171819202122232425262728
  1. #include <test_common.h>
  2. #include <igl/sign.h>
  3. template <typename T>
  4. void test()
  5. {
  6. REQUIRE (igl::sign(T( 0)) == 0);
  7. REQUIRE (igl::sign(T( -0)) == 0);
  8. REQUIRE (igl::sign(T( 1)) == 1);
  9. REQUIRE (igl::sign(T( -1)) == -1);
  10. if constexpr (std::is_floating_point<T>::value)
  11. {
  12. REQUIRE (igl::sign(T( 0.0)) == 0);
  13. REQUIRE (igl::sign(T( -0.0)) == 0);
  14. REQUIRE (igl::sign(T(0.5)) == 1);
  15. REQUIRE (igl::sign(T(-0.5)) == -1);
  16. REQUIRE (igl::sign(T(0.00000000000001)) == 1);
  17. REQUIRE (igl::sign(T(-0.00000000000001)) == -1);
  18. }
  19. }
  20. TEST_CASE("sign: cases", "[igl]" )
  21. {
  22. test<float>();
  23. test<double>();
  24. test<int>();
  25. }