Update mussa to build on ubuntu 10.04 with qt 4.6.2 +boost 1.40.0.1
[mussa.git] / alg / test / test_annotation_color.cpp
1 #define BOOST_TEST_DYN_LINK
2 #define BOOST_TEST_MODULE test_annotation_color
3 #include <boost/test/unit_test.hpp>
4
5 #include "alg/annotation_colors.hpp"
6 #include "alg/color.hpp"
7
8 BOOST_AUTO_TEST_CASE( simple_annot_colors )
9 {
10   Color black(0.0, 0.0, 0.0);
11   Color white(1.0, 1.0, 1.0);
12   Color red(1.0, 0.0, 0.0);
13
14   AnnotationColors ac;
15
16   ac.setColor(white);
17   BOOST_CHECK_EQUAL( ac.color(), white);
18
19   ac.appendTypeColor("bleem", black);
20   BOOST_CHECK_EQUAL( ac.typeColor("bleem"), black );
21   // FIXME: it'd be nice if something like this worked?
22   //BOOST_CHECK_RAISES( ac.typeColor("not found"), not_found );
23   ac.appendInstanceColor("bleem", "a", red);
24   BOOST_CHECK_EQUAL( ac.instanceColor("bleem", "a"), red);
25  
26   BOOST_CHECK_EQUAL( ac.lookup("bleem", "a"), red );
27   BOOST_CHECK_EQUAL( ac.lookup("bleem", "foo"), black );
28   BOOST_CHECK_EQUAL( ac.lookup("venchent", "a"), white );
29
30   /*
31   // Removed as we're phasing out the annot and annotation colors classes
32   annot a;
33   a.begin = 30;
34   a.end = 45;
35   a.type = "bleem";
36   a.name = "a";
37   
38   BOOST_CHECK_EQUAL( ac.lookup(a), red );
39   a.name = "b";
40   BOOST_CHECK_EQUAL( ac.lookup(a), black );
41   a.type = "venchent";
42   BOOST_CHECK_EQUAL( ac.lookup(a), white );
43   */
44   
45   ac.clear();
46   BOOST_CHECK_EQUAL( ac.lookup("bleem", "a"), black);
47 }
48
49 // can we assign a color?
50 BOOST_AUTO_TEST_CASE( annotation_color_assignment )
51 {
52   Color black(0.0, 0.0, 0.0);
53   Color white(1.0, 1.0, 1.0);
54   Color red(1.0, 0.0, 0.0);
55
56   AnnotationColors ac1;
57   ac1.setColor(white);
58   ac1.appendTypeColor("bleem", black);
59   ac1.appendInstanceColor("bleem", "a", red);
60
61   AnnotationColors ac2;
62   BOOST_CHECK_EQUAL( ac2.color(), black );
63   ac2 = ac1;
64   BOOST_CHECK_EQUAL( ac2.color(), white );
65   BOOST_CHECK_EQUAL( ac2.typeColor("bleem"), ac1.typeColor("bleem") );
66   BOOST_CHECK_EQUAL( ac2.lookup("bleem","a"), ac1.lookup("bleem","a") );
67 }