increment_ulp.cpp 657 B

123456789101112131415
  1. #include <test_common.h>
  2. #include <igl/increment_ulp.h>
  3. #include <limits>
  4. TEST_CASE("increment_ulp: dense", "[igl]" )
  5. {
  6. Eigen::RowVectorXf v(5), ref(5);
  7. v << std::numeric_limits<float>::lowest(), 0.f, std::numeric_limits<float>::max(), std::numeric_limits<float>::infinity(), std::numeric_limits<float>::quiet_NaN();
  8. ref << -std::numeric_limits<float>::infinity(), std::numeric_limits<float>::denorm_min(), std::numeric_limits<float>::infinity(), std::numeric_limits<float>::infinity(), std::numeric_limits<float>::quiet_NaN();
  9. igl::increment_ulp(v, 1);
  10. REQUIRE(v.head(4) == ref.head(4));
  11. REQUIRE((std::isnan(v(4)) && std::isnan(ref(4))));
  12. }