From d511f657395af57f504216c936d7f45778da26e7 Mon Sep 17 00:00:00 2001 From: Hans-Christian Ebke Date: Thu, 19 Nov 2015 10:27:11 +0100 Subject: [PATCH] Added some more basic linear algebra unit tests for VectorT. --- src/Unittests/unittests_vector_type.cc | 27 ++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/src/Unittests/unittests_vector_type.cc b/src/Unittests/unittests_vector_type.cc index 82e7793b..1986ce22 100644 --- a/src/Unittests/unittests_vector_type.cc +++ b/src/Unittests/unittests_vector_type.cc @@ -127,4 +127,31 @@ TEST_F(OpenMeshVectorTest, cpp11_htmlColorLiteral) { } #endif + +TEST_F(OpenMeshVectorTest, BasicLinearAlgebra) { + OpenMesh::Vec3d v(1, 2, 3); + EXPECT_EQ(v[0], 1.0); + EXPECT_EQ(v[1], 2.0); + EXPECT_EQ(v[2], 3.0); + + EXPECT_EQ(OpenMesh::Vec3d(-1, -2, -3), -v); + EXPECT_EQ(3, OpenMesh::Vec3d(1, 3, 2).max()); + EXPECT_EQ(3, OpenMesh::Vec3d(1, 2, 3).max()); + EXPECT_EQ(3, OpenMesh::Vec3d(1, 3, -4).max()); + EXPECT_EQ(3, OpenMesh::Vec3d(-4, 2, 3).max()); + EXPECT_EQ(4, OpenMesh::Vec3d(1, 3, -4).max_abs()); + EXPECT_EQ(4, OpenMesh::Vec3d(-4, 2, 3).max_abs()); + + EXPECT_EQ(1, OpenMesh::Vec3d(1, 3, 2).min()); + EXPECT_EQ(1, OpenMesh::Vec3d(1, 2, 3).min()); + EXPECT_EQ(-4, OpenMesh::Vec3d(1, 3, -4).min()); + EXPECT_EQ(-4, OpenMesh::Vec3d(-4, 2, 3).min()); + EXPECT_EQ(1, OpenMesh::Vec3d(1, 3, -4).min_abs()); + EXPECT_EQ(2, OpenMesh::Vec3d(-4, 2, 3).min_abs()); + + EXPECT_NEAR(14, OpenMesh::Vec3d(1, 2, 3) | OpenMesh::Vec3d(1, 2, 3), 1e-6); + EXPECT_NEAR(-14, OpenMesh::Vec3d(1, 2, 3) | OpenMesh::Vec3d(-1, -2, -3), 1e-6); + EXPECT_NEAR(14, OpenMesh::Vec3d(-1, -2, -3) | OpenMesh::Vec3d(-1, -2, -3), 1e-6); +} + }