From 5bccc98dfe7cb0e7fa5031c9361675cdefd3e3a6 Mon Sep 17 00:00:00 2001 From: Mikael Salson Date: Thu, 30 Oct 2014 20:27:02 +0100 Subject: [PATCH] Tests: test getSequence() in AffectAnalyser A hard-coded sequence should not be given to the constructor, instead it must be stored into a variable. --- algo/tests/testAffectAnalyser.cpp | 21 ++++++++++++++++----- algo/tests/tests.h | 2 ++ 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/algo/tests/testAffectAnalyser.cpp b/algo/tests/testAffectAnalyser.cpp index 38e471b17..e1718a96b 100644 --- a/algo/tests/testAffectAnalyser.cpp +++ b/algo/tests/testAffectAnalyser.cpp @@ -9,14 +9,17 @@ void testAffectAnalyser1() { const bool revcomp = false; T *index = createIndex >(k, revcomp); - KmerAffectAnalyser kaa(*index, "AAAACCCCCGGGGG"); - CountKmerAffectAnalyser ckaa(*index, "AAAACCCCCGGGGG"); + string sequence = "AAAACCCCCGGGGG"; + KmerAffectAnalyser kaa(*index, sequence); + CountKmerAffectAnalyser ckaa(*index, sequence); ckaa.setAllowedOverlap(k-1); set forbidden; forbidden.insert(KAffect::getAmbiguous()); forbidden.insert(KAffect::getUnknown()); + TAP_TEST(ckaa.getSequence() == "AAAACCCCCGGGGG", TEST_AA_GET_SEQUENCE, "actual: " << ckaa.getSequence()); + for (int i = 2; i < nb_seq-1; i++) { // i starts at 2 because AAAA is not found: there is an ambiguity with // AAAA coming from AAAACAAAACAAAAC or AAAAAAAAAAAAAAA @@ -100,15 +103,18 @@ void testAffectAnalyser2() { const int k = 5; const bool revcomp = true; T *index = createIndex >(k, revcomp); - - KmerAffectAnalyser kaa(*index, "TTTTTGGGGG"); - CountKmerAffectAnalyser ckaa(*index, "TTTTTGGGGG"); + string sequence = "TTTTTGGGGG"; + KmerAffectAnalyser kaa(*index, sequence); + CountKmerAffectAnalyser ckaa(*index, sequence); ckaa.setAllowedOverlap(k-1); set forbidden; forbidden.insert(KAffect::getAmbiguous()); forbidden.insert(KAffect::getUnknown()); + TAP_TEST(kaa.getSequence() == "TTTTTGGGGG", TEST_AA_GET_SEQUENCE, "actual: "); + TAP_TEST(ckaa.getSequence() == "TTTTTGGGGG", TEST_AA_GET_SEQUENCE, "actual: " << ckaa.getSequence()); + TAP_TEST(kaa.getAffectation(1) == KAffect(seq[2*(nb_seq-1)+1], -1), TEST_AA_GET_AFFECT, ""); TAP_TEST(kaa.count(kaa.getAffectation(1)) == 1, TEST_AA_GET_AFFECT, ""); TAP_TEST(ckaa.count(kaa.getAffectation(1)) == 1, TEST_COUNT_AA_COUNT, ""); @@ -150,6 +156,8 @@ void testGetMaximum() { vector affectations(a, a+sizeof(a)/sizeof(KmerAffect)); KmerAffectAnalyser kaa(*index, "", affectations); + TAP_TEST(kaa.getSequence() == "", TEST_AA_GET_SEQUENCE, ""); + affect_infos results = kaa.getMaximum(AFFECT_J_BWD, AFFECT_V_BWD, 2., 0); TAP_TEST(! results.max_found, TEST_AA_GET_MAXIMUM_MAX_FOUND, "(" << results.first_pos_max @@ -272,6 +280,9 @@ void testBugAffectAnalyser() { int total = fwdAffect.count(); + TAP_TEST(fwdAffect.getSequence() == data.read(0).sequence, TEST_AA_GET_SEQUENCE, "actual: " << fwdAffect.getSequence() << ", expected: " << data.read(0).sequence); + TAP_TEST(bwdAffect.getSequence() == data.read(1).sequence, TEST_AA_GET_SEQUENCE, "actual: " << bwdAffect.getSequence() << ", expected: " << data.read(1).sequence); + TAP_TEST(fwdAffect.count() == bwdAffect.count(), TEST_AA_COUNT, "Both sequences should have the same amount of affectations. " diff --git a/algo/tests/tests.h b/algo/tests/tests.h index c6e57374e..47873e37a 100644 --- a/algo/tests/tests.h +++ b/algo/tests/tests.h @@ -41,6 +41,7 @@ enum { TEST_AA_GET_MAXIMUM_POSITIONS, TEST_AA_GET_MAXIMUM_COUNTS, TEST_AA_GET_MAXIMUM_VALUE, + TEST_AA_GET_SEQUENCE, TEST_COUNT_AA_COUNT, TEST_COUNT_AA_COUNT_BEFORE, TEST_COUNT_AA_COUNT_AFTER, @@ -133,6 +134,7 @@ inline void declare_tests() { RECORD_TAP_TEST(TEST_AA_GET_MAXIMUM_POSITIONS, "KmerAffectAnalyser: getMaximum() function, positions of maximum"); RECORD_TAP_TEST(TEST_AA_GET_MAXIMUM_COUNTS, "KmerAffectAnalyser: getMaximum() function, counts of affectations"); RECORD_TAP_TEST(TEST_AA_GET_MAXIMUM_VALUE, "KmerAffectAnalyser: getMaximum() function, maximum value"); + RECORD_TAP_TEST(TEST_AA_GET_SEQUENCE, "KmerAffectAnalyser: getSequence() function"); RECORD_TAP_TEST(TEST_COUNT_AA_COUNT, "CountKmerAffectAnalyser::count"); RECORD_TAP_TEST(TEST_COUNT_AA_COUNT_BEFORE, "CountKmerAffectAnalyser::countBefore"); RECORD_TAP_TEST(TEST_COUNT_AA_COUNT_AFTER, "CountKmerAffectAnalyser::countAfter"); -- GitLab