)
-#ADD_SUBDIRECTORY( test )
+ADD_SUBDIRECTORY( test )
FIND_PACKAGE(PythonLibs)
SET(libs
- mussa_core
mussa_qui
+ mussa_core
${QT_LIBRARIES}
${OPENGL_gl_LIBRARY}
${BOOST_PROGRAM_OPTIONS_LIBRARY}
)
MACRO(MAKE_UNITTEST basename)
- QT4_WRAP_CPP(${basename}_MOC_CXX ${basename}.cpp)
+ QT4_WRAP_CPP(${basename}_MOC_CXX ${basename}.hpp)
GET_FILENAME_COMPONENT(${basename}_MOC_DIR ${${basename}_MOC_CXX} PATH)
SET(${basename}_SRC ${basename}.cpp)
INCLUDE_DIRECTORIES(${${basename}_MOC_DIR})
SET_SOURCE_FILES_PROPERTIES(${${basename}_SRC}
PROPERTIES COMPILE_FLAGS "-fPIC"
)
- ADD_EXECUTABLE(${basename} ${${basename}_SRC})
+ ADD_EXECUTABLE(${basename} ${${basename}_MOC_CXX} ${${basename}_SRC})
SET_TARGET_PROPERTIES(${basename} PROPERTIES COMPILE_FLAGS "-fPIC")
TARGET_LINK_LIBRARIES(${basename} ${libs})
ADD_TEST(${basename} ${basename})
--- /dev/null
+#ifndef _TEST_COLOR_SHARING_HPP_
+#define _TEST_COLOR_SHARING_HPP_
+
+#include <QtGui>
+#include <QtTest/QtTest>
+
+#include "alg/mussa.hpp"
+#include "alg/color.hpp"
+#include "qui/MussaWindow.hpp"
+
+//! do our colors get shared correctly between different windows?
+class TestColorSharing : public QObject
+{
+ Q_OBJECT
+
+private slots:
+
+ void simple2sequence() {
+ Color green(0.0, 1.0, 0.0);
+ Mussa m;
+ m.append_sequence("AAGGCCTT");
+ m.append_sequence("GGTTCCAA");
+ m.set_window(2);
+ m.set_threshold(2);
+ m.analyze();
+
+ //MussaWindow mw(&m);
+ m.add_motif("GG", green);
+ }
+};
+#endif
--- /dev/null
+#ifndef _TEST_SEQUENCE_BROWSER_HPP_
+#define _TEST_SEQUENCE_BROWSER_HPP_
+
+#include <QtGui>
+#include <QtTest/QtTest>
+
+#include "alg/sequence.hpp"
+#include "qui/seqbrowser/SequenceBrowser.hpp"
+
+#include <iostream>
+#include <string>
+#include <vector>
+
+#include <boost/assign.hpp>
+#include <boost/shared_ptr.hpp>
+using namespace boost::assign;
+
+
+class TestSequenceBrowser : public QObject
+{
+ Q_OBJECT
+
+private slots:
+
+ void testSimplePushSequence() {
+ boost::shared_ptr<Sequence> seq1(new Sequence("AAGGCCTT"));
+ boost::shared_ptr<Sequence> seq2(new Sequence("GGCCTTAA"));
+
+ SequenceBrowser browser;
+ QVERIFY(browser.sequences().size() == 0);
+ browser.push_sequence(seq1);
+ browser.push_sequence(seq2);
+ QVERIFY(browser.sequences().size() == 2);
+ browser.clear();
+ QVERIFY(browser.sequences().size() == 0);
+ }
+
+ void testSelect() {
+ boost::shared_ptr<Sequence> seq1(new Sequence("AAGGCCTT"));
+ boost::shared_ptr<Sequence> seq2(new Sequence("GGCCTTAA"));
+
+ SequenceBrowser browser;
+ browser.push_sequence(seq1);
+ browser.push_sequence(seq2);
+ std::vector<int> path; path += 1,1;
+ std::vector<bool> rc; rc += false, false;
+ browser.link(path, rc, 2);
+ }
+};
+#endif
--- /dev/null
+#ifndef _TEST_SEQUENCE_DESCRIPTION_HPP_
+#define _TEST_SEQUENCE_DESCRIPTION_HPP_
+
+#include <QtGui>
+#include <QtTest/QtTest>
+
+#include "alg/sequence.hpp"
+#include "alg/glsequence.hpp"
+#include "alg/annotation_colors.hpp"
+#include "qui/seqbrowser/SequenceDescription.hpp"
+
+#include <iostream>
+#include <string>
+#include <vector>
+
+class TestSequenceDescription : public QObject
+{
+ Q_OBJECT
+
+private slots:
+ void testSimple() {
+ boost::shared_ptr<Sequence> seq1(new Sequence("AAGGCCTT"));
+ seq1->set_species("foo");
+ boost::shared_ptr<AnnotationColors> cm(new AnnotationColors);
+ boost::shared_ptr<GlSequence> glseq1(new GlSequence(seq1, cm));
+
+ SequenceDescription sd(glseq1, 0);
+ QVERIFY(sd.glsequence() == glseq1);
+ QVERIFY(sd.glsequence()->sequence()->get_species() == seq1->get_species());
+ sd.setName(std::string("bar"));
+ QVERIFY(sd.glsequence()->sequence()->get_species() == seq1->get_species());
+ QVERIFY(seq1->get_species() == "bar");
+ }
+ void testDeletedPointer() {
+ SequenceDescription sd;
+
+ {
+ boost::shared_ptr<Sequence> seq1(new Sequence("AAGGCCTT"));
+ Sequence m("AAGG");
+ seq1->find_motif(m);
+ seq1->set_species("foo");
+ boost::shared_ptr<AnnotationColors> cm(new AnnotationColors);
+ boost::shared_ptr<GlSequence> glseq1(new GlSequence(seq1, cm));
+ sd.setGlSequence(glseq1);
+ }
+
+ QVERIFY(sd.name() == "foo");
+ }
+};
+#endif
--- /dev/null
+#ifndef _TEST_SEQUENCE_LOCATION_MODEL_HPP_
+#define _TEST_SEQUENCE_LOCATION_MODEL_HPP_
+#include "qui/SequenceLocationModel.hpp"
+#include "alg/sequence_location.hpp"
+#include "alg/sequence.hpp"
+
+#include <QtTest/QtTest>
+
+class TestSequenceLocationModel : public QObject
+{
+ Q_OBJECT
+
+private slots:
+
+ void testAddSequences() {
+ Sequence seq1("AAGGCCTT");
+ Sequence seq2("GGCCTTAA");
+
+ SequenceLocation loc1(seq1, 0, 2);
+ SequenceLocation loc2(seq2, 3, 3);
+
+ SequenceLocationModel slm;
+ QVERIFY(slm.size() == 0);
+ slm.push_back(loc1);
+ slm.push_back(loc2);
+
+ QVERIFY(slm.rowCount() == 2);
+ QVERIFY(slm.rowCount() == slm.size());
+
+ }
+
+ void testColumn() {
+ SequenceLocationModel slm;
+ QVERIFY(slm.columnCount() == 3);
+ }
+};
+#endif