QVERIFY(sequences2[0]->motifs().size() == 1);
QVERIFY(sequences2[1]->motifs().size() == 0);
QVERIFY(cm->lookup("motif", "AAGG") == Color(0.0, 1.0, 0.0));
+ QVERIFY(m->colorMapper()->lookup("motif", "AAGG") == Color(0.0, 1.0, 0.0));
+
+ QVERIFY(editor->get_analysis() == m);
+ QVERIFY(editor->get_model() == model);
+ QVERIFY(m->colorMapper() == cm);
+ }
+
+ void testEditMotifApply() {
+ std::vector<Sequence> motifs;
+ motifs.push_back("AAGG");
+ std::vector<Color> colors;
+ colors.push_back(Color(0.0, 0.0, 1.0));
+
+ MussaRef m(new Mussa);
+ m->append_sequence("AAAAGGGG");
+ m->append_sequence("AAAACCCC");
+ m->set_motifs(motifs, colors);
+
+ // do the sequences have the right motifs?
+ std::vector<SequenceRef> sequences1(m->sequences());
+ QVERIFY(sequences1[0]->get_sequence() == "AAAAGGGG");
+ QVERIFY(sequences1[1]->get_sequence() == "AAAACCCC");
+ QVERIFY(sequences1[0]->motifs().size() == 1);
+ QVERIFY(sequences1[1]->motifs().size() == 0);
+
+ // get color
+ boost::shared_ptr<AnnotationColors> cm(m->colorMapper());
+ QVERIFY(cm->lookup("motif", "AAGG") == Color(0.0, 0.0, 1.0));
+
+ MotifEditor *editor(new MotifEditor(m));
+ MotifModel *model(editor->get_model());
+ // the AATT motif and the empty motif
+ QVERIFY(model->size() == 2);
+ QModelIndex row0_color(model->index(0, MotifModel::ColorCell));
+ QModelIndex row0_sequence(model->index(0, MotifModel::SequenceCell));
+ QVERIFY(model->data(row0_sequence) == "AAGG");
+
+ // change contents of cell
+ model->setData(row0_sequence, QVariant("AACC"));
+ // this is equivalent to pressing apply
+ editor->updateAnalysisMotifs();
+ QVERIFY(model->data(row0_sequence) == "AACC");
+
+ // does the mussa analysis have the right data?
+ std::vector<SequenceRef> sequences2(m->sequences());
+ QVERIFY(sequences2[0]->motifs().size() == 0);
+ QVERIFY(sequences2[1]->motifs().size() == 1);
+ QVERIFY(cm->lookup("motif", "AACC") == Color(0.0, 0.0, 1.0));
+ QVERIFY(m->colorMapper()->lookup("motif", "AACC") == Color(0.0, 0.0, 1.0));
+ QVERIFY(cm->lookup("motif", "AAGG") == Color(0.0, 0.0, 0.0));
+ QVERIFY(m->colorMapper()->lookup("motif", "AAGG") == Color(0.0, 0.0, 0.0));
QVERIFY(editor->get_analysis() == m);
QVERIFY(editor->get_model() == model);