From 48f0bbb58624e3a65dc989d6e4b24ed58c4465e4 Mon Sep 17 00:00:00 2001 From: Gael Guennebaud Date: Fri, 30 Mar 2012 23:22:29 +0200 Subject: fix bug #362 and add missing specialization for affine-compact * projective --- test/geo_transformations.cpp | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'test/geo_transformations.cpp') diff --git a/test/geo_transformations.cpp b/test/geo_transformations.cpp index 9156954a2..e9f05cfb6 100644 --- a/test/geo_transformations.cpp +++ b/test/geo_transformations.cpp @@ -446,6 +446,29 @@ template void transform_alignment() #endif } +template void transform_products() +{ + typedef Matrix Mat; + typedef Transform Proj; + typedef Transform Aff; + typedef Transform AffC; + + Proj p; p.matrix().setRandom(); + Aff a; a.linear().setRandom(); a.translation().setRandom(); + AffC ac = a; + + Mat p_m(p.matrix()), a_m(a.matrix()); + + VERIFY_IS_APPROX((p*p).matrix(), p_m*p_m); + VERIFY_IS_APPROX((a*a).matrix(), a_m*a_m); + VERIFY_IS_APPROX((p*a).matrix(), p_m*a_m); + VERIFY_IS_APPROX((a*p).matrix(), a_m*p_m); + VERIFY_IS_APPROX((ac*a).matrix(), a_m*a_m); + VERIFY_IS_APPROX((a*ac).matrix(), a_m*a_m); + VERIFY_IS_APPROX((p*ac).matrix(), p_m*a_m); + VERIFY_IS_APPROX((ac*p).matrix(), a_m*p_m); +} + void test_geo_transformations() { for(int i = 0; i < g_repeat; i++) { @@ -468,5 +491,9 @@ void test_geo_transformations() CALL_SUBTEST_6(( transformations() )); CALL_SUBTEST_6(( transformations() )); + + + CALL_SUBTEST_7(( transform_products() )); + CALL_SUBTEST_7(( transform_products() )); } } -- cgit v1.2.3