1 #define BOOST_AUTO_TEST_MAIN
2 #include <boost/test/auto_unit_test.hpp>
4 #include <boost/shared_ptr.hpp>
6 #include "drawable.hpp"
8 BOOST_AUTO_TEST_CASE( drawable_empty_constructors )
11 BOOST_CHECK_EQUAL(a.x(), 0);
12 BOOST_CHECK_EQUAL(a.y(), 0);
13 BOOST_CHECK_EQUAL(a.z(), 0);
14 BOOST_CHECK_EQUAL(a.height(), 0);
16 DrawableRef asp(new Drawable);
17 BOOST_CHECK_EQUAL(asp->x(), 0);
18 BOOST_CHECK_EQUAL(asp->y(), 0);
19 BOOST_CHECK_EQUAL(asp->z(), 0);
20 BOOST_CHECK_EQUAL(asp->height(), 0);
23 BOOST_AUTO_TEST_CASE( drawable_filled_constructors )
25 ColorRef white(new Color(1.0, 1.0, 1.0));
27 Drawable a(1.0,2.0,3.0,4.0, white);
28 BOOST_CHECK_EQUAL(a.x(), 1.0);
29 BOOST_CHECK_EQUAL(a.y(), 2.0);
30 BOOST_CHECK_EQUAL(a.z(), 3.0);
31 BOOST_CHECK_EQUAL(a.height(), 4.0);
32 BOOST_CHECK_EQUAL(*(a.color()), *white);
34 DrawableRef asp(new Drawable(1.0,2.0,3.0,4.0, white));
35 BOOST_CHECK_EQUAL(asp->x(), 1.0);
36 BOOST_CHECK_EQUAL(asp->y(), 2.0);
37 BOOST_CHECK_EQUAL(asp->z(), 3.0);
38 BOOST_CHECK_EQUAL(asp->height(), 4.0);
39 BOOST_CHECK_EQUAL(*(asp->color()), *white);
42 BOOST_AUTO_TEST_CASE( drawable_copyref_constructor )
44 ColorRef white(new Color(1.0, 1.0, 1.0));
45 ColorRef grey(new Color(0.5, 0.5, 0.5));
46 ColorRef black(new Color(0.0, 0.0, 0.0));
48 DrawableRef asp(new Drawable(1.0,1.0,1.0,1.0, white));
50 DrawableRef csp(new Drawable(asp));
54 BOOST_CHECK_EQUAL(asp->x(), bsp->x());
55 BOOST_CHECK_EQUAL(asp->x(), 2.0);
56 BOOST_CHECK_EQUAL(*asp->color(), grey);
58 // csp shouldn't have changed
59 BOOST_CHECK_EQUAL(csp->x(), 1.0);
60 BOOST_CHECK_EQUAL(*csp->color(), white);
62 // changes to csp should only affect csp
64 BOOST_CHECK_EQUAL(*asp->color(), *grey);
65 BOOST_CHECK_EQUAL(*bsp->color(), *grey);
66 BOOST_CHECK_EQUAL(*csp->color(), *black);