File: testphylotree.cpp

package info (click to toggle)
mothur 1.48.1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 13,692 kB
  • sloc: cpp: 161,866; makefile: 122; sh: 31
file content (131 lines) | stat: -rw-r--r-- 7,100 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
//
//  testphylotree.cpp
//  Mothur
//
//  Created by Sarah Westcott on 8/29/16.
//  Copyright © 2016 Schloss Lab. All rights reserved.
//


#include "testphylotree.hpp"

/**************************************************************************************************/
TestPhyloTree::TestPhyloTree() {  //setup
    m = MothurOut::getInstance();
    
    string tax1WithSpaces = "Bacteria(100);Bacteroidetes 7(100);Bacteroidia(100);Bacteroidales(100);S24-7(100);";
    string tax2WithSpaces = "Bacteria(100);Bacteroidetes 7(100);Bacteroidia(98);Bacteroidales(98);Bacteroidaceae(98);Bacteroides(98);";
    string tax3WithSpaces = "Bacteria(100);Firmicutes(100);Clostridia B(100);Clostridiales(100);Lachnospiraceae(100);Blautia(92);";
    string tax4WithSpaces = "Bacteria(100);Firmicutes(100);Clostridia B(100);Clostridiales(100);Ruminococcaceae(100);Anaerotruncus(100);";
    string tax5WithSpaces = "Bacteria(100);Firmicutes(100);Clostridia B(100);Clostridiales(100);Lachnospiraceae(100);Incertae_Sedis(97);";
    
    string tax1WithOutSpaces = "Bacteria(100);Bacteroidetes(100);Bacteroidia(100);Bacteroidales(100);S24-7(100);";
    string tax2WithOutSpaces = "Bacteria(100);Bacteroidetes(100);Bacteroidia(98);Bacteroidales(98);Bacteroidaceae(98);Bacteroides(98);";
    string tax3WithOutSpaces = "Bacteria(100);Firmicutes(100);Clostridia(100);Clostridiales(100);Lachnospiraceae(100);Blautia(92);";
    string tax4WithOutSpaces = "Bacteria(100);Firmicutes(100);Clostridia(100);Clostridiales(100);Ruminococcaceae(100);Anaerotruncus(100);";
    string tax5WithOutSpaces = "Bacteria(100);Firmicutes(100);Clostridia(100);Clostridiales(100);Lachnospiraceae(100);Incertae_Sedis(97);";
    
    phylo.addSeqToTree("seq1", tax1WithSpaces);
    phylo.addSeqToTree("seq2", tax2WithSpaces);
    phylo.addSeqToTree("seq3", tax3WithSpaces);
    phylo.addSeqToTree("seq4", tax4WithSpaces);
    phylo.addSeqToTree("seq5", tax5WithSpaces);
    phylo.addSeqToTree("seq6", tax1WithOutSpaces);
    phylo.addSeqToTree("seq7", tax2WithOutSpaces);
    phylo.addSeqToTree("seq8", tax3WithOutSpaces);
    phylo.addSeqToTree("seq9", tax4WithOutSpaces);
    phylo.addSeqToTree("seq10", tax5WithOutSpaces);
}
/**************************************************************************************************/
TestPhyloTree::~TestPhyloTree() {}
/**************************************************************************************************

TEST_CASE("Testing PhyloTree Class") {
    TestPhyloTree testPTree;
    
    string tax1WithSpaces = "Bacteria(100);Bacteroidetes 7(100);Bacteroidia(100);Bacteroidales(100);S24-7(100);";
    string tax2WithSpaces = "Bacteria(100);Bacteroidetes 7(100);Bacteroidia(98);Bacteroidales(98);Bacteroidaceae(98);Bacteroides(98);";
    string tax3WithSpaces = "Bacteria(100);Firmicutes(100);Clostridia B(100);Clostridiales(100);Lachnospiraceae(100);Blautia(92);";
    string tax4WithSpaces = "Bacteria(100);Firmicutes(100);Clostridia B(100);Clostridiales(100);Ruminococcaceae(100);Anaerotruncus(100);";
    string tax5WithSpaces = "Bacteria(100);Firmicutes(100);Clostridia B(100);Clostridiales(100);Lachnospiraceae(100);Incertae_Sedis(97);";
    
    string tax1WithOutSpaces = "Bacteria(100);Bacteroidetes(100);Bacteroidia(100);Bacteroidales(100);S24-7(100);";
    string tax2WithOutSpaces = "Bacteria(100);Bacteroidetes(100);Bacteroidia(98);Bacteroidales(98);Bacteroidaceae(98);Bacteroides(98);";
    string tax3WithOutSpaces = "Bacteria(100);Firmicutes(100);Clostridia(100);Clostridiales(100);Lachnospiraceae(100);Blautia(92);";
    string tax4WithOutSpaces = "Bacteria(100);Firmicutes(100);Clostridia(100);Clostridiales(100);Ruminococcaceae(100);Anaerotruncus(100);";
    string tax5WithOutSpaces = "Bacteria(100);Firmicutes(100);Clostridia(100);Clostridiales(100);Lachnospiraceae(100);Incertae_Sedis(97);";
    
    SECTION("Add Sequences to Tree") {
        INFO("Using taxonomies with and without spaces") // Only appears on a FAIL
        
        CAPTURE(testPTree.addSeqToTree("seq1", tax1WithSpaces));
        CHECK(testPTree.addSeqToTree("seq1", tax1WithSpaces) == 5);
        
        CAPTURE(testPTree.addSeqToTree("seq2", tax2WithSpaces));
        CHECK(testPTree.addSeqToTree("seq2", tax2WithSpaces) == 6);
        
        CAPTURE(testPTree.addSeqToTree("seq3", tax3WithSpaces));
        CHECK(testPTree.addSeqToTree("seq3", tax3WithSpaces) == 6);
        
        CAPTURE(testPTree.addSeqToTree("seq4", tax4WithSpaces));
        CHECK(testPTree.addSeqToTree("seq4", tax4WithSpaces) == 6);
        
        CAPTURE(testPTree.addSeqToTree("seq5", tax5WithSpaces));
        CHECK(testPTree.addSeqToTree("seq5", tax5WithSpaces) == 6);
        
        CAPTURE(testPTree.addSeqToTree("seq6", tax1WithOutSpaces));
        CHECK(testPTree.addSeqToTree("seq6", tax1WithOutSpaces) == 5);
        
        CAPTURE(testPTree.addSeqToTree("seq7", tax2WithOutSpaces));
        CHECK(testPTree.addSeqToTree("seq7", tax2WithOutSpaces) == 6);
        
        CAPTURE(testPTree.addSeqToTree("seq8", tax3WithOutSpaces));
        CHECK(testPTree.addSeqToTree("seq8", tax3WithOutSpaces) == 6);
        
        CAPTURE(testPTree.addSeqToTree("seq9", tax4WithOutSpaces));
        CHECK(testPTree.addSeqToTree("seq9", tax4WithOutSpaces) == 6);
        
        CAPTURE(testPTree.addSeqToTree("seq10", tax5WithOutSpaces));
        CHECK(testPTree.addSeqToTree("seq10", tax5WithOutSpaces) == 6);
    }
    
    SECTION("Get Seqs") {
        INFO("Using taxonomies with and without spaces") // Only appears on a FAIL
               
        CAPTURE(testPTree.phylo.getSeqs("Bacteroidetes 7").size());
        CHECK((testPTree.phylo.getSeqs("Bacteroidetes 7").size()) == 2);
        
        vector<string> Bacteroidetes_7 = testPTree.phylo.getSeqs("Bacteroidetes 7");
        CHECK(Bacteroidetes_7[0] == "seq1");
        CHECK(Bacteroidetes_7[1] == "seq2");
        
        CAPTURE(testPTree.phylo.getSeqs("Clostridia").size());
        CHECK((testPTree.phylo.getSeqs("Clostridia").size()) == 3);
        
        vector<string> Clostridia = testPTree.phylo.getSeqs("Clostridia");
        CHECK(Clostridia[0] == "seq8");
        CHECK(Clostridia[1] == "seq9");
        CHECK(Clostridia[2] == "seq10");
    }
   
    SECTION("Get Genus Totals") {
        INFO("Using taxonomies with and without spaces") // Only appears on a FAIL
        
        CAPTURE(testPTree.phylo.getGenusTotals().size());
        CHECK(testPTree.phylo.getGenusTotals().size() == 10);
    }

    SECTION("Get Full Taxonomy") {
        INFO("Using taxonomies with and without spaces") // Only appears on a FAIL
        
        CAPTURE(testPTree.phylo.getFullTaxonomy("seq1"));
        CHECK(testPTree.phylo.getFullTaxonomy("seq1") == "Bacteria;Bacteroidetes 7;Bacteroidia;Bacteroidales;S24-7;");
        
        CAPTURE(testPTree.phylo.getFullTaxonomy("seq10"));
        CHECK(testPTree.phylo.getFullTaxonomy("seq1") == "Bacteria;Firmicutes;Clostridia;Clostridiales;Lachnospiraceae;Incertae_Sedis;");
    }
    
}
**************************************************************************************************/