#include #include #include #include namespace sort { typedef std::tuple NMDimAscending; inline std::string NMDimAscending_test_name( const ::testing::TestParamInfo& info) { return STR( std::get<0>(info.param)<<"x"<< std::get<1>(info.param)<<"_"<< "dim_"<(info.param)<<"_"<< "ascending_"<<(std::get<3>(info.param)?"true":"false")); }; } class SortTest : public ::testing::TestWithParam {}; TEST_P(SortTest,random) { const int n = std::get<0>(GetParam()); const int m = std::get<1>(GetParam()); const int dim = std::get<2>(GetParam()); const bool ascending = std::get<3>(GetParam()); Eigen::MatrixXd X = Eigen::MatrixXd::Random(n,m); // sort ascending Eigen::MatrixXd Y; Eigen::MatrixXi IX; igl::sort(X,dim,ascending,Y,IX); ASSERT_EQ(X.rows(),Y.rows()); ASSERT_EQ(X.cols(),Y.cols()); ASSERT_EQ(X.rows(),IX.rows()); ASSERT_EQ(X.cols(),IX.cols()); for(int i = 0;i >( std::vector { sort::NMDimAscending{100,3,1,true}, sort::NMDimAscending{100,3,2,true}, sort::NMDimAscending{100,3,1,false}, sort::NMDimAscending{100,3,2,false}, sort::NMDimAscending{3,100,1,true}, sort::NMDimAscending{3,100,2,true}, sort::NMDimAscending{3,100,1,false}, sort::NMDimAscending{3,100,2,false}, sort::NMDimAscending{100,2,1,true}, sort::NMDimAscending{100,2,2,true}, sort::NMDimAscending{100,2,1,false}, sort::NMDimAscending{100,2,2,false}, sort::NMDimAscending{2,100,1,true}, sort::NMDimAscending{2,100,2,true}, sort::NMDimAscending{2,100,1,false}, sort::NMDimAscending{2,100,2,false}, sort::NMDimAscending{100,4,1,true}, sort::NMDimAscending{100,4,2,true}, sort::NMDimAscending{100,4,1,false}, sort::NMDimAscending{100,4,2,false}, sort::NMDimAscending{4,100,1,true}, sort::NMDimAscending{4,100,2,true}, sort::NMDimAscending{4,100,1,false}, sort::NMDimAscending{4,100,2,false}, }), sort::NMDimAscending_test_name );