1 #include "canvas/types.h"
5 using namespace ArdourCanvas;
7 CPPUNIT_TEST_SUITE_REGISTRATION (TypesTest);
10 TypesTest::intersect ()
13 Rect a (0, 0, 1024, 1024);
14 Rect b (0, 0, 512, 512);
15 boost::optional<Rect> c = a.intersection (b);
17 CPPUNIT_ASSERT (c.is_initialized ());
18 CPPUNIT_ASSERT (c->x0 == 0);
19 CPPUNIT_ASSERT (c->x1 == 512);
20 CPPUNIT_ASSERT (c->y0 == 0);
21 CPPUNIT_ASSERT (c->y1 == 512);
25 Rect a (0, 0, 512, 512);
26 Rect b (513, 513, 1024, 1024);
27 boost::optional<Rect> c = a.intersection (b);
29 CPPUNIT_ASSERT (!c.is_initialized ());
37 Rect a (50, 60, 70, 80);
38 Rect b (100, 110, 120, 130);
39 Rect c = a.extend (b);
41 CPPUNIT_ASSERT (c.x0 == 50);
42 CPPUNIT_ASSERT (c.y0 == 60);
43 CPPUNIT_ASSERT (c.x1 == 120);
44 CPPUNIT_ASSERT (c.y1 == 130);
49 TypesTest::test_safe_add ()
51 CPPUNIT_ASSERT (safe_add (4, 9) == 13);
52 CPPUNIT_ASSERT (safe_add (4, COORD_MAX) == COORD_MAX);
53 CPPUNIT_ASSERT (safe_add (COORD_MAX, 4) == COORD_MAX);