index 476852890560a4099f5c1cdc0693976d8bd8007e..6477523fcb1dd386cefb7de888d07ecdd9e2ea3b 100644 (file)
#include <libnr/nr-translate.h>
#include <libnr/nr-translate-ops.h>
#include <libnr/nr-translate-scale-ops.h>
-using NR::Matrix;
-using NR::X;
-using NR::Y;
inline bool point_equalp(NR::Point const &a, NR::Point const &b)
{
- return ( NR_DF_TEST_CLOSE(a[X], b[X], 1e-5) &&
- NR_DF_TEST_CLOSE(a[Y], b[Y], 1e-5) );
+ return ( NR_DF_TEST_CLOSE(a[NR::X], b[NR::X], 1e-5) &&
+ NR_DF_TEST_CLOSE(a[NR::Y], b[NR::Y], 1e-5) );
}
class NrMatrixTest : public CxxTest::TestSuite
static NrMatrixTest *createSuite() { return new NrMatrixTest(); }
static void destroySuite( NrMatrixTest *suite ) { delete suite; }
- Matrix const m_id;
+ NR::Matrix const m_id;
NR::rotate const r_id;
NR::translate const t_id;
- Matrix const c16;
+ NR::Matrix const c16;
NR::rotate const r86;
NR::Matrix const mr86;
NR::translate const t23;
void testCtorsAssignmentOp(void)
{
- Matrix const c16_copy(c16);
- Matrix c16_eq(m_id);
+ NR::Matrix const c16_copy(c16);
+ NR::Matrix c16_eq(m_id);
c16_eq = c16;
for(unsigned i = 0; i < 6; ++i) {
TS_ASSERT_EQUALS( c16[i], 1.0 + i );
TS_ASSERT_EQUALS( p0 * mr86, NR::Point(.8, .6) );
TS_ASSERT_EQUALS( p90 * r86, NR::Point(-.6, .8) );
TS_ASSERT_EQUALS( p90 * mr86, NR::Point(-.6, .8) );
- TS_ASSERT( matrix_equalp(Matrix( r86 * r86 ),
+ TS_ASSERT( matrix_equalp(NR::Matrix( r86 * r86 ),
mr86 * mr86,
1e-14) );
}
void testIdentity(void)
{
TS_ASSERT( m_id.test_identity() );
- TS_ASSERT( Matrix(t_id).test_identity() );
- TS_ASSERT( !(Matrix(NR::translate(-2, 3)).test_identity()) );
- TS_ASSERT( Matrix(r_id).test_identity() );
+ TS_ASSERT( NR::Matrix(t_id).test_identity() );
+ TS_ASSERT( !(NR::Matrix(NR::translate(-2, 3)).test_identity()) );
+ TS_ASSERT( NR::Matrix(r_id).test_identity() );
NR::rotate const rot180(NR::Point(-1, 0));
- TS_ASSERT( !(Matrix(rot180).test_identity()) );
- TS_ASSERT( Matrix(s_id).test_identity() );
- TS_ASSERT( !(Matrix(NR::scale(1.0, 0.0)).test_identity()) );
- TS_ASSERT( !(Matrix(NR::scale(0.0, 1.0)).test_identity()) );
- TS_ASSERT( !(Matrix(NR::scale(1.0, -1.0)).test_identity()) );
- TS_ASSERT( !(Matrix(NR::scale(-1.0, -1.0)).test_identity()) );
+ TS_ASSERT( !(NR::Matrix(rot180).test_identity()) );
+ TS_ASSERT( NR::Matrix(s_id).test_identity() );
+ TS_ASSERT( !(NR::Matrix(NR::scale(1.0, 0.0)).test_identity()) );
+ TS_ASSERT( !(NR::Matrix(NR::scale(0.0, 1.0)).test_identity()) );
+ TS_ASSERT( !(NR::Matrix(NR::scale(1.0, -1.0)).test_identity()) );
+ TS_ASSERT( !(NR::Matrix(NR::scale(-1.0, -1.0)).test_identity()) );
}
void testInverse(void)
{
TS_ASSERT_EQUALS( m_id.inverse(), m_id );
- TS_ASSERT_EQUALS( Matrix(t23).inverse(), Matrix(NR::translate(-2.0, -3.0)) );
+ TS_ASSERT_EQUALS( NR::Matrix(t23).inverse(), NR::Matrix(NR::translate(-2.0, -3.0)) );
NR::scale const s2(-4.0, 2.0);
NR::scale const sp5(-.25, .5);
- TS_ASSERT_EQUALS( Matrix(s2).inverse(), Matrix(sp5) );
- }
-
- void testNrMatrixInvert(void)
- {
- NRMatrix const nr_m_id(m_id);
- Matrix const m_s2(NR::scale(-4.0, 2.0));
- NRMatrix const nr_s2(m_s2);
- Matrix const m_sp5(NR::scale(-.25, .5));
- NRMatrix const nr_sp5(m_sp5);
- Matrix const m_t23(t23);
- NRMatrix const nr_t23(m_t23);
- NRMatrix inv;
- nr_matrix_invert(&inv, &nr_m_id);
- TS_ASSERT_EQUALS( Matrix(inv), m_id );
- nr_matrix_invert(&inv, &nr_t23);
- TS_ASSERT_EQUALS( Matrix(inv), Matrix(NR::translate(-2.0, -3.0)) );
- nr_matrix_invert(&inv, &nr_s2);
- TS_ASSERT_EQUALS( Matrix(inv), Matrix(nr_sp5) );
- nr_matrix_invert(&inv, &nr_sp5);
- TS_ASSERT_EQUALS( Matrix(inv), Matrix(nr_s2) );
-
- /* Test that nr_matrix_invert handles src == dest. */
- inv = nr_s2;
- nr_matrix_invert(&inv, &inv);
- TS_ASSERT_EQUALS( Matrix(inv), Matrix(nr_sp5) );
- inv = nr_t23;
- nr_matrix_invert(&inv, &inv);
- TS_ASSERT_EQUALS( Matrix(inv), Matrix(NR::translate(-2.0, -3.0)) );
+ TS_ASSERT_EQUALS( NR::Matrix(s2).inverse(), NR::Matrix(sp5) );
+ TS_ASSERT_EQUALS( NR::Matrix(sp5).inverse(), NR::Matrix(s2) );
}
void testEllipticQuadraticForm(void)
5.0, 6.0);
NR::Matrix const invaff = aff.inverse();
TS_ASSERT_EQUALS( invaff[1], -1.0 );
-
+
NR::Matrix const ef(elliptic_quadratic_form(invaff));
NR::Matrix const exp_ef(2, -1,
-1, 1,
fill-column:99
End:
*/
-// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=99 :
+// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 :