Code

Use subdirectories with icon sizes.
[inkscape.git] / src / libnr / nr-scale-test.h
1 #include <cxxtest/TestSuite.h>
3 #include <libnr/nr-scale.h>
4 #include <libnr/nr-scale-ops.h>
6 class NrScaleTest : public CxxTest::TestSuite
7 {
8 public:
10     NrScaleTest() :
11         sa( 1.5, 2.0 ),
12         b( -2.0, 3.0 ),
13         sb( b )
14     {
15     }
16     virtual ~NrScaleTest() {}
18 // createSuite and destroySuite get us per-suite setup and teardown
19 // without us having to worry about static initialization order, etc.
20     static NrScaleTest *createSuite() { return new NrScaleTest(); }
21     static void destroySuite( NrScaleTest *suite ) { delete suite; }
23     NR::scale const sa;
24     NR::Point const b;
25     NR::scale const sb;
29     void testXY_CtorArrayOperator(void)
30     {
31         TS_ASSERT_EQUALS( sa[NR::X], 1.5 );
32         TS_ASSERT_EQUALS( sa[NR::Y], 2.0 );
33         TS_ASSERT_EQUALS( sa[0u], 1.5 );
34         TS_ASSERT_EQUALS( sa[1u], 2.0 );
35     }
38     void testCopyCtor_AssignmentOp_NotEquals(void)
39     {
40         NR::scale const sa_copy(sa);
41         TS_ASSERT_EQUALS( sa, sa_copy );
42         TS_ASSERT(!( sa != sa_copy ));
43         TS_ASSERT( sa != sb );
44     }
46     void testAssignmentOp(void)
47     {
48         NR::scale sa_eq(sb);
49         sa_eq = sa;
50         TS_ASSERT_EQUALS( sa, sa_eq );
51     }
53     void testPointCtor(void)
54     {
55         TS_ASSERT_EQUALS( sb[NR::X], b[NR::X] );
56         TS_ASSERT_EQUALS( sb[NR::Y], b[NR::Y] );
57     }
59     void testOpStarPointScale(void)
60     {
61         NR::Point const ab( b * sa );
62         TS_ASSERT_EQUALS( ab, NR::Point(-3.0, 6.0) );
63     }
65     void testOpStarScaleScale(void)
66     {
67         NR::scale const sab( sa * sb );
68         TS_ASSERT_EQUALS( sab, NR::scale(-3.0, 6.0) );
69     }
71     void testOpDivScaleScale(void)
72     {
73         NR::scale const sa_b( sa / sb );
74         NR::scale const exp_sa_b(-0.75, 2./3.);
75         TS_ASSERT_EQUALS( sa_b[0], exp_sa_b[0] );
76 //      TS_ASSERT_EQUALS( fabs( sa_b[1] - exp_sa_b[1] ) < 1e-10 );
77         TS_ASSERT_DELTA( sa_b[1], exp_sa_b[1], 1e-10 );
78     }
79 };
81 /*
82   Local Variables:
83   mode:c++
84   c-file-style:"stroustrup"
85   c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
86   indent-tabs-mode:nil
87   fill-column:99
88   End:
89 */
90 // vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 :