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