unique_simplices.cpp 807 B

123456789101112131415161718192021222324252627282930313233
  1. #include <test_common.h>
  2. #include <igl/unique_simplices.h>
  3. TEST_CASE("igl_unique_simplices: duplicate_triangles", "[igl]")
  4. {
  5. const Eigen::MatrixXi F = (Eigen::MatrixXi(2,3)<<0,1,2,0,1,2).finished();
  6. // All possible permutations of the same triangle
  7. for(int di = -1;di<2;di+=2)
  8. {
  9. for(int dj = -1;dj<2;dj+=2)
  10. {
  11. for(int i = 0;i<3;i++)
  12. {
  13. for(int j = 0;j<3;j++)
  14. {
  15. Eigen::MatrixXi Fij = F;
  16. for(int c = 0;c<3;c++)
  17. {
  18. Fij(0,c) = (Fij(0,c)+3+di*i)%3;
  19. Fij(1,c) = (Fij(1,c)+3+dj*j)%3;
  20. }
  21. Eigen::MatrixXi Fu;
  22. Eigen::VectorXi IA,IC;
  23. igl::unique_simplices(Fij,Fu,IA,IC);
  24. // There's only one unique simplex
  25. REQUIRE (1 == Fu.rows());
  26. }
  27. }
  28. }
  29. }
  30. }