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