+
+BOOST_AUTO_TEST_CASE ( extended_conserved_normalized )
+{
+ vector<int> path;
+ path += 3,-14,5,-19; // magic from boost assign
+ vector<int> normalized_path;
+ normalized_path += 3,4, 5,9;
+
+ ConservedPath ecp1;
+ ecp1.window_size = 10;
+ ecp1.score = 18;
+ ecp1.track_indexes = path;
+ BOOST_CHECK_EQUAL ( ecp1.size(), path.size() );
+
+ vector<ConservedPath::path_element> normalized_index(ecp1.normalizedIndexes());
+
+ for(int i=0; i != ecp1.size(); ++i)
+ {
+ BOOST_CHECK_EQUAL(normalized_index[i], normalized_path[i]);
+ }
+}
+
+BOOST_AUTO_TEST_CASE( conserved_path_less_than )
+{
+ vector<int> p111;
+ p111 += 1,1,1;
+ vector<int> p112;
+ p112 += 1,1,2;
+ vector<int> p115;
+ p115 += 1,1,5;
+ vector<int> p112a;
+ p112a += 1,1,1;
+ vector<int> p1111;
+ p1111 += 1,1,1,1;
+
+ ConservedPath cp111(10, 1.0, p111);
+ ConservedPath cp112(10, 1.0, p112);
+ ConservedPath cp112a(10, 1.0, p112a);
+ ConservedPath cp115(10, 1.0, p115);
+ ConservedPath cp1111(10, 1.0, p1111);
+
+ BOOST_CHECK_EQUAL( cp111 < cp112, true );
+ BOOST_CHECK_EQUAL( cp111 < cp1111, true );
+ BOOST_CHECK_EQUAL( cp1111 < cp111, false );
+ BOOST_CHECK_EQUAL( cp112 < cp112, false );
+ BOOST_CHECK_EQUAL( cp112 == cp112, true );
+ BOOST_CHECK_EQUAL( cp112 < cp115, true );
+}
+
+BOOST_AUTO_TEST_CASE( conserved_path_sort )
+{
+ vector<int> p111;
+ p111 += 1,1,1;
+ vector<int> p112;
+ p112 += 1,1,2;
+ vector<int> p115;
+ p115 += 1,1,5;
+ vector<int> p121;
+ p121 += 1,2,1;
+
+ ConservedPath cp111(10, 1.0, p111);
+ ConservedPath cp112(10, 1.0, p112);
+ ConservedPath cp115(10, 1.0, p115);
+ ConservedPath cp121(10, 1.0, p121);
+
+ list<ConservedPath> paths;
+ paths.push_back(cp115);
+ paths.push_back(cp121);
+ paths.push_back(cp112);
+ paths.push_back(cp111);
+
+ paths.sort();
+ BOOST_REQUIRE_EQUAL( paths.size(), 4 );
+ list<ConservedPath>::const_iterator path_i = paths.begin();
+
+ BOOST_CHECK_EQUAL( *path_i, cp111 ); ++path_i;
+ BOOST_CHECK_EQUAL( *path_i, cp112 ); ++path_i;
+ BOOST_CHECK_EQUAL( *path_i, cp115 ); ++path_i;
+ BOOST_CHECK_EQUAL( *path_i, cp121 );
+}