You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
34 lines
931 B
34 lines
931 B
#include "medusa/bits/domains/compute_normal_fwd.hpp"
|
|
|
|
#include "gtest/gtest.h"
|
|
|
|
#include <Eigen/Geometry>
|
|
|
|
namespace mm {
|
|
|
|
TEST(Domains, NormalTest3D) {
|
|
Eigen::Matrix<double, 3, 2> J;
|
|
J.col(1) = Vec3d(0.5, 0.5, 0);
|
|
J.col(0) = Vec3d(1, 0.5, 0);
|
|
Vec3d normal = -J.col(0).cross(J.col(1));
|
|
normal.normalize();
|
|
Vec3d normal2 = surface_fill_internal::compute_normal(J);
|
|
EXPECT_LT((normal - normal2).norm(), 1e-15);
|
|
}
|
|
|
|
TEST(Domains, NormalTest1Dto3D) {
|
|
Eigen::Matrix<double, 3, 1> J;
|
|
J.col(0) = Vec3d(0.5, 0.5, 0);
|
|
Vec3d normal = surface_fill_internal::compute_normal(J);
|
|
EXPECT_LT(std::abs(normal.dot(J.col(0))), 1e-15);
|
|
}
|
|
|
|
TEST(Domains, NormalTest2D) {
|
|
Eigen::Matrix<double, 2, 1> J;
|
|
J << 0.1, 2.3;
|
|
Vec2d normal(J(1), -J(0)); normal.normalize();
|
|
Vec2d normal2 = surface_fill_internal::compute_normal(J);
|
|
EXPECT_LT((normal - normal2).norm(), 1e-15);
|
|
}
|
|
|
|
} // namespace mm
|
|
|