sort.cpp 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. #include <test_common.h>
  2. #include <igl/sort.h>
  3. #include <igl/STR.h>
  4. #include <tuple>
  5. // namespace sort
  6. // {
  7. // typedef std::tuple<int/*n*/,int/*m*/,int/*dim*/,bool/*ascending*/>
  8. // NMDimAscending;
  9. // inline std::string NMDimAscending_test_name(
  10. // const ::testing::TestParamInfo<NMDimAscending>& info)
  11. // {
  12. // return STR(
  13. // std::get<0>(info.param)<<"x"<<
  14. // std::get<1>(info.param)<<"_"<<
  15. // "dim_"<<std::get<2>(info.param)<<"_"<<
  16. // "ascending_"<<(std::get<3>(info.param)?"true":"false"));
  17. // };
  18. // }
  19. // class SortTest : public ::testing::TestWithParam<sort::NMDimAscending> {};
  20. // TEST_P(SortTest,random)
  21. // {
  22. // const int n = std::get<0>(GetParam());
  23. // const int m = std::get<1>(GetParam());
  24. // const int dim = std::get<2>(GetParam());
  25. // const bool ascending = std::get<3>(GetParam());
  26. // Eigen::MatrixXd X = Eigen::MatrixXd::Random(n,m);
  27. // // sort ascending
  28. // Eigen::MatrixXd Y;
  29. // Eigen::MatrixXi IX;
  30. // igl::sort(X,dim,ascending,Y,IX);
  31. // REQUIRE (Y.rows() == X.rows());
  32. // REQUIRE (Y.cols() == X.cols());
  33. // REQUIRE (IX.rows() == X.rows());
  34. // REQUIRE (IX.cols() == X.cols());
  35. // for(int i = 0;i<n;i++)
  36. // {
  37. // for(int j = 0;j<m;j++)
  38. // {
  39. // REQUIRE (X(dim==1?IX(i,j):i,dim==2?IX(i,j):j) == Y(i,j));
  40. // }
  41. // }
  42. // for(int i = (dim==1?1:0);i<n;i++)
  43. // {
  44. // for(int j = (dim==2?1:0);j<m;j++)
  45. // {
  46. // if(ascending)
  47. // {
  48. // REQUIRE (Y(i,j) >= Y(i-(dim==1?1:0),j-(dim==2?1:0)));
  49. // }else
  50. // {
  51. // REQUIRE (Y(i,j) <= Y(i-(dim==1?1:0),j-(dim==2?1:0)));
  52. // }
  53. // }
  54. // }
  55. // }
  56. // INSTANTIATE_TEST_CASE_P
  57. // (
  58. // suite,
  59. // SortTest,
  60. // ::testing::ValuesIn<std::vector<sort::NMDimAscending> >(
  61. // std::vector<sort::NMDimAscending> {
  62. // sort::NMDimAscending{100,3,1,true},
  63. // sort::NMDimAscending{100,3,2,true},
  64. // sort::NMDimAscending{100,3,1,false},
  65. // sort::NMDimAscending{100,3,2,false},
  66. // sort::NMDimAscending{3,100,1,true},
  67. // sort::NMDimAscending{3,100,2,true},
  68. // sort::NMDimAscending{3,100,1,false},
  69. // sort::NMDimAscending{3,100,2,false},
  70. // sort::NMDimAscending{100,2,1,true},
  71. // sort::NMDimAscending{100,2,2,true},
  72. // sort::NMDimAscending{100,2,1,false},
  73. // sort::NMDimAscending{100,2,2,false},
  74. // sort::NMDimAscending{2,100,1,true},
  75. // sort::NMDimAscending{2,100,2,true},
  76. // sort::NMDimAscending{2,100,1,false},
  77. // sort::NMDimAscending{2,100,2,false},
  78. // sort::NMDimAscending{100,4,1,true},
  79. // sort::NMDimAscending{100,4,2,true},
  80. // sort::NMDimAscending{100,4,1,false},
  81. // sort::NMDimAscending{100,4,2,false},
  82. // sort::NMDimAscending{4,100,1,true},
  83. // sort::NMDimAscending{4,100,2,true},
  84. // sort::NMDimAscending{4,100,1,false},
  85. // sort::NMDimAscending{4,100,2,false},
  86. // }),
  87. // sort::NMDimAscending_test_name
  88. // );