aboutsummaryrefslogtreecommitdiffhomepage
path: root/test/geo_orthomethods.cpp
diff options
context:
space:
mode:
authorGravatar Gael Guennebaud <g.gael@free.fr>2009-02-17 09:57:32 +0000
committerGravatar Gael Guennebaud <g.gael@free.fr>2009-02-17 09:57:32 +0000
commitee04c5c8742baa5deb4fe9944da1b6d4319b4b6a (patch)
treece93e51af3d771b212ea9bb84b7bfb7f8ecc7caa /test/geo_orthomethods.cpp
parente6f1104b57f19dff773b4f22d26d6aacabd1bdb2 (diff)
add tests showing bug in unitOrthogonal such that we don't forget it!
Diffstat (limited to 'test/geo_orthomethods.cpp')
-rw-r--r--test/geo_orthomethods.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/test/geo_orthomethods.cpp b/test/geo_orthomethods.cpp
index 08110e6d8..1485877d0 100644
--- a/test/geo_orthomethods.cpp
+++ b/test/geo_orthomethods.cpp
@@ -76,6 +76,15 @@ template<typename Scalar, int Size> void orthomethods(int size=Size)
VERIFY_IS_MUCH_SMALLER_THAN(v0.unitOrthogonal().dot(v0), Scalar(1));
VERIFY_IS_APPROX(v0.unitOrthogonal().norm(), Scalar(1));
+ if (size>3)
+ {
+ v0.template start<3>().setZero();
+ v0.end(size-3).setRandom();
+
+ VERIFY_IS_MUCH_SMALLER_THAN(v0.unitOrthogonal().dot(v0), Scalar(1));
+ VERIFY_IS_APPROX(v0.unitOrthogonal().norm(), Scalar(1));
+ }
+
// colwise/rowwise cross product
Vector3 vec3 = Vector3::Random();
int i = ei_random<int>(0,size-1);
@@ -89,7 +98,6 @@ template<typename Scalar, int Size> void orthomethods(int size=Size)
matN3.setRandom();
mcrossN3 = matN3.rowwise().cross(vec3);
VERIFY_IS_APPROX(mcrossN3.row(i), matN3.row(i).cross(vec3));
-
}
void test_geo_orthomethods()