BOOST_CHECK_EQUAL( gt.path_segments.size(), 0 );
}
+BOOST_AUTO_TEST_CASE( glseqbrowser_center )
+{
+ string s0("AAGGCCTT");
+ string s1("TTGGCCAA");
+ string s2("GATTACAA");
+ Sequence seq0(s0);
+ Sequence seq1(s1);
+ Sequence seq2(s2);
+ AnnotationColors cm;
+ GlSequence glseq0(seq0, cm);
+ GlSequence glseq1(seq1, cm);
+ GlSequence glseq2(seq2, cm);
+
+ GlSeqBrowser gt;
+ gt.push_sequence(glseq0);
+ gt.push_sequence(glseq1);
+ gt.push_sequence(glseq2);
+
+ vector<int> path;
+ path += 0,3,7;
+
+ BOOST_CHECK_EQUAL( gt.left(), -gt.border() );
+ BOOST_CHECK_EQUAL( gt.right(), s0.size() + gt.border() );
+
+ gt.centerOnPath(path);
+
+ // I didn't bother to compute how the path should shift things
+ // by the magic number 3, i just ran the test and saw how it failed
+ // and hard coded this in.
+ BOOST_CHECK_EQUAL( gt.left(), -3-gt.border() );
+ BOOST_CHECK_EQUAL( gt.right(), 3 + s0.size() + gt.border() );
+
+ // aparently we end up with a different glsequence in the seqbrowser
+ BOOST_CHECK( glseq1.x() != gt.sequences()[1].x() );
+
+ BOOST_CHECK_EQUAL( gt.sequences()[0].x(), gt.viewportCenter()-path[0] );
+ BOOST_CHECK_EQUAL( gt.sequences()[1].x(), gt.viewportCenter()-path[1] );
+ BOOST_CHECK_EQUAL( gt.sequences()[2].x(), gt.viewportCenter()-path[2] );
+}