Alec Jacobson %!s(int64=6) %!d(string=hai) anos
pai
achega
e5c78841a8
Modificáronse 1 ficheiros con 27 adicións e 0 borrados
  1. 27 0
      tests/include/igl/grad.cpp

+ 27 - 0
tests/include/igl/grad.cpp

@@ -0,0 +1,27 @@
+#include <test_common.h>
+#include <igl/grad.h>
+#include <igl/triangulated_grid.h>
+#include <igl/edge_lengths.h>
+#include <igl/cotmatrix.h>
+#include <igl/doublearea.h>
+#include <igl/EPS.h>
+
+TEST(grad,laplace_grid)
+{
+  Eigen::MatrixXd V2;
+  Eigen::MatrixXi F;
+  igl::triangulated_grid(3,3,V2,F);
+  Eigen::MatrixXd V = Eigen::MatrixXd::Zero(V2.rows(),3);
+  V.topLeftCorner(V2.rows(),2) = V2;
+  Eigen::SparseMatrix<double> L;
+  igl::cotmatrix(V,F,L);
+  Eigen::SparseMatrix<double> G;
+  igl::grad(V,F,G);
+  Eigen::VectorXd dblA;
+  igl::doublearea(V,F,dblA);
+  Eigen::SparseMatrix<double> GTAG = 
+    G.transpose() * (dblA.replicate(3,1).asDiagonal()) * G;
+  test_common::assert_near(
+    Eigen::MatrixXd(L),Eigen::MatrixXd(-0.5*GTAG),igl::EPS<double>());
+}
+