1
#include <cxxtest/TestSuite.h>
3
#include <libnr/point-ops.h>
4
#include <libnr/matrix.h>
5
#include <libnr/matrix-fns.h>
6
#include <libnr/matrix-ops.h>
7
#include <libnr/point-matrix-ops.h>
8
#include <libnr/translate.h>
9
#include <libnr/translate-ops.h>
13
class NrTranslateTest : public CxxTest::TestSuite
23
m_id( Geom::identity() )
26
virtual ~NrTranslateTest() {}
28
// createSuite and destroySuite get us per-suite setup and teardown
29
// without us having to worry about static initialization order, etc.
30
static NrTranslateTest *createSuite() { return new NrTranslateTest(); }
31
static void destroySuite( NrTranslateTest *suite ) { delete suite; }
34
Geom::translate const tb;
35
Geom::translate const tc;
36
Geom::translate const tbc;
37
Geom::translate const t_id;
38
Geom::Matrix const m_id;
41
void testCtorsArrayOperator(void)
43
TS_ASSERT_EQUALS( tc[X], -3.0 );
44
TS_ASSERT_EQUALS( tc[Y], -2.0 );
46
TS_ASSERT_EQUALS( tb[0], b[X] );
47
TS_ASSERT_EQUALS( tb[1], b[Y] );
50
void testAssignmentOperator(void)
52
Geom::translate tb_eq(tc);
54
TS_ASSERT_EQUALS( tb, tb_eq );
55
TS_ASSERT_DIFFERS( tb_eq, tc );
58
void testOpStarTranslateTranslate(void)
60
TS_ASSERT_EQUALS( tbc.offset, Geom::Point(-5.0, 1.0) );
61
TS_ASSERT_EQUALS( tbc.offset, ( tc * tb ).offset );
62
TS_ASSERT_EQUALS( Geom::Matrix(tbc), Geom::Matrix(tb) * Geom::Matrix(tc) );
65
void testOpStarPointTranslate(void)
67
TS_ASSERT_EQUALS( tbc.offset, b * tc );
68
TS_ASSERT_EQUALS( b * tc, b * Geom::Matrix(tc) );
71
void testIdentity(void)
73
TS_ASSERT_EQUALS( b * t_id, b );
74
TS_ASSERT_EQUALS( Geom::Matrix(t_id), m_id );
81
c-file-style:"stroustrup"
82
c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
87
// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=99 :