#include #include #include #include #include TEST_CASE("writeMSH","[igl]") { Eigen::MatrixXd X; Eigen::MatrixXi Tri; Eigen::MatrixXi Tet; Eigen::VectorXi TriTag; Eigen::VectorXi TetTag; std::vector XFields; std::vector EFields; std::vector XF; std::vector TriF; std::vector TetF; // load source data REQUIRE(igl::readMSH(test_common::data_path("sphere_lowres_TMS_1-0001_Magstim_70mm_Fig8_nii_scalar.msh"), X, Tri, Tet, TriTag, TetTag, XFields, XF, EFields, TriF, TetF)); // save check data REQUIRE(igl::writeMSH("test_binary_sphere_2.msh", X, Tri, Tet, TriTag, TetTag, XFields, XF, EFields, TriF, TetF)); // load again Eigen::MatrixXd _X; Eigen::MatrixXi _Tri; Eigen::MatrixXi _Tet; Eigen::VectorXi _TriTag; Eigen::VectorXi _TetTag; std::vector _XFields; std::vector _EFields; std::vector _XF; std::vector _TriF; std::vector _TetF; REQUIRE(igl::readMSH("test_binary_sphere_2.msh", _X, _Tri, _Tet, _TriTag, _TetTag, _XFields, _XF, _EFields, _TriF, _TetF)); REQUIRE(_X.size() == X.size()); REQUIRE(_Tri.size() == Tri.size()); REQUIRE(_Tet.size() == Tet.size()); REQUIRE(_TriTag.size() == TriTag.size()); REQUIRE(_TetTag.size() == TetTag.size()); REQUIRE(_XFields.size() == XFields.size()); REQUIRE(_XF.size() == XF.size()); REQUIRE(_EFields.size() == EFields.size()); REQUIRE(_TriF.size() == TriF.size()); REQUIRE(_TetF.size() == TetF.size()); REQUIRE(_X.cols() == 3); REQUIRE(_X.rows() == (398+4506)); REQUIRE(_Tri.cols() == 3); REQUIRE(_Tri.rows() == 8988); REQUIRE(_TriTag.rows() == 8988); REQUIRE(_Tet.cols() == 4); REQUIRE(_Tet.rows() == 25937); REQUIRE(_TetTag.rows() == 25937); //make sure field sizes are correct REQUIRE(_XF.size()==0); REQUIRE(_TriF.size()==1); REQUIRE(_TetF.size()==1); // normE , scalar field REQUIRE(_TriF[0].cols()==1); REQUIRE(_TriF[0].rows()==8988); REQUIRE(_TetF[0].cols()==1); REQUIRE(_TetF[0].rows()==25937); // check the contents too for(size_t i=0;i