min_quad_with_fixed.cpp 972 B

123456789101112131415161718
  1. #include <test_common.h>
  2. #include <igl/min_quad_with_fixed.h>
  3. #include <igl/EPS.h>
  4. TEST_CASE("min_quad_with_fixed: dense", "[igl]" )
  5. {
  6. const Eigen::Matrix<double,3,3> H = (Eigen::Matrix<double,3,3>(3,3)<<62,43,76,43,69,62,76,62,101).finished();
  7. const Eigen::Matrix<double,3,1> f = (Eigen::Matrix<double,3,1>(3,1)<<9,8,5).finished();
  8. const Eigen::Matrix<double,1,3> A = (Eigen::Matrix<double,1,3>(1,3)<<1,1,1).finished();
  9. const Eigen::Matrix<double,1,1> b = (Eigen::Matrix<double,1,1>(1,1)<<2).finished();
  10. const Eigen::Array<bool,3,1> k = (Eigen::Array<bool,3,1>()<<true,false,false).finished();
  11. const Eigen::Matrix<double,3,1> bc = (Eigen::Matrix<double,3,1>(3,1)<<1,0,0).finished();
  12. // Windows needs template args spelled out
  13. const Eigen::Matrix<double,3,1> x = igl::min_quad_with_fixed<double,3,1>(H,f,k,bc,A,b);
  14. REQUIRE(abs(x(0)- 1.0)<igl::EPS<double>());
  15. REQUIRE(abs(x(1)- 1.5)<igl::EPS<double>());
  16. REQUIRE(abs(x(2)- -.5)<igl::EPS<double>());
  17. }