Mussa m1;
m1.append_sequence("AAAAGGGGTTTT");
m1.append_sequence("GGGCCCCTTGGTT");
- m1.add_motifs(motifs, colors);
+ m1.set_motifs(motifs, colors);
int first_size = m1.motifs().size();
BOOST_CHECK_EQUAL( first_size, 1 );
- m1.add_motifs(motifs, colors);
+ BOOST_REQUIRE(first_size > 0);
+ BOOST_CHECK_EQUAL(*(m1.motifs().begin()), motifs.front());
+ // make sure that our sequences have the right number of motifs
+ BOOST_CHECK_EQUAL(m1.sequences()[0]->motifs().size(), 1);
+ BOOST_CHECK_EQUAL(m1.sequences()[1]->motifs().size(), 1); // because of rc
+
+ // verify that setting the motif clears the arrays
+ m1.set_motifs(motifs, colors);
BOOST_CHECK_EQUAL( first_size, m1.motifs().size() );
+ // make sure that our sequences have the right number of motifs
+ BOOST_CHECK_EQUAL(m1.sequences()[0]->motifs().size(), 1);
+ BOOST_CHECK_EQUAL(m1.sequences()[1]->motifs().size(), 1);
+
+ // add a different motif
+ motifs.clear();
+ motifs.push_back("CCTTGG");
+ BOOST_CHECK_EQUAL(motifs.size(), 1);
+ m1.set_motifs(motifs, colors);
+ BOOST_CHECK_EQUAL(m1.motifs().size(), 1);
+ BOOST_REQUIRE(m1.motifs().size() > 0);
+ BOOST_CHECK_EQUAL(*(m1.motifs().begin()), motifs.front());
+ BOOST_CHECK_EQUAL(m1.sequences()[0]->motifs().size(), 0);
+ BOOST_CHECK_EQUAL(m1.sequences()[1]->motifs().size(), 1);
+
+ // try a motif that doesn't exist
+ motifs.clear();
+ motifs.push_back("CCTTGG");
+ BOOST_CHECK_EQUAL(motifs.size(), 1);
+ m1.set_motifs(motifs, colors);
+ BOOST_CHECK_EQUAL(m1.motifs().size(), 1);
+ BOOST_CHECK_EQUAL(m1.sequences()[0]->motifs().size(), 0);
+ BOOST_CHECK_EQUAL(m1.sequences()[1]->motifs().size(), 1);
+
}
static void