#include #include #include TEST(unique,matrix) { Eigen::VectorXi A(12); A = (Eigen::VectorXd::Random(A.size(),1).array().abs()*9).cast(); Eigen::VectorXi C,IA,IC; igl::unique_rows(A,C,IA,IC); std::vector inA(A.maxCoeff()+1,false); for(int i = 0;i inC(inA.size(),false); // Expect a column vector ASSERT_EQ(1,C.cols()); for(int i = 0;i(); Eigen::MatrixXi C; Eigen::VectorXi IA,IC; igl::unique_rows(A,C,IA,IC); ASSERT_EQ(A.cols(),C.cols()); ASSERT_EQ(A.rows(),IC.size()); ASSERT_EQ(C.rows(),IA.size()); std::map,bool> inA; for(int i = 0;i vAi; igl::matrix_to_list(Ai,vAi); inA[vAi] = true; for(int j = 0;j,bool> inC; for(int i = 0;i vCi; igl::matrix_to_list(Ci,vCi); // Should be the first time finding this ASSERT_FALSE(inC[vCi]); // Mark as found inC[vCi] = true; // Should be something also found in A ASSERT_TRUE(inA[vCi]); for(int j = 0;j