triangle_triangle_adjacency.cpp 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. #include <test_common.h>
  2. #include <igl/triangle_triangle_adjacency.h>
  3. #include <Eigen/Geometry>
  4. class triangle_triangle_adjacency : public ::testing::TestWithParam<std::string> {};
  5. TEST_P(triangle_triangle_adjacency, dot)
  6. {
  7. Eigen::MatrixXd V;
  8. Eigen::MatrixXi F,TT,TTi;
  9. // Load example mesh: GetParam() will be name of mesh file
  10. test_common::load_mesh(GetParam(), V, F);
  11. igl::triangle_triangle_adjacency(F,TT,TTi);
  12. ASSERT_EQ(F.rows(),TT.rows());
  13. ASSERT_EQ(F.rows(),TTi.rows());
  14. ASSERT_EQ(F.cols(),TT.cols());
  15. ASSERT_EQ(F.cols(),TTi.cols());
  16. for(int f = 0;f<F.rows();f++)
  17. {
  18. for(int c = 0;c<3;c++)
  19. {
  20. if(TT(f,c) >= 0)
  21. {
  22. ASSERT_LT(TT(f,c) , F.rows());
  23. ASSERT_GE(TTi(f,c) , 0);
  24. ASSERT_LT(TTi(f,c) , 3);
  25. ASSERT_EQ( TT(TT(f,c),TTi(f,c)) , f);
  26. }
  27. }
  28. }
  29. // ASSERT_EQ(a,b);
  30. // ASSERT_TRUE(a==b);
  31. // ASSERT_NEAR(a,b,1e-15)
  32. // ASSERT_LT(a,1e-12);
  33. }
  34. INSTANTIATE_TEST_CASE_P
  35. (
  36. manifold_meshes,
  37. triangle_triangle_adjacency,
  38. ::testing::ValuesIn(test_common::manifold_meshes()),
  39. test_common::string_test_name
  40. );