Permalink
Browse files

Adds testing units for phylotree

  • Loading branch information...
1 parent f82ae5a commit 19caf05a80d154bbcb2291ce99be6726c3fc0e7f @mothur-westcott mothur-westcott committed Sep 7, 2016
@@ -12,7 +12,6 @@
219C1DE41559BCCF004209F9 /* getcoremicrobiomecommand.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 219C1DE31559BCCD004209F9 /* getcoremicrobiomecommand.cpp */; };
480E8DB11CAB12ED00A0D137 /* testfastqread.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 480E8DAF1CAB12ED00A0D137 /* testfastqread.cpp */; };
480E8DB21CAB1F5E00A0D137 /* vsearchfileparser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 489B55701BCD7F0100FB7DC8 /* vsearchfileparser.cpp */; };
- 480E8DB31CAB1F7900A0D137 /* averagelinkage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2114A7671C654D7400D3D8D9 /* averagelinkage.cpp */; };
481623E21B56A2DB004C60B7 /* pcrseqscommand.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 481623E11B56A2DB004C60B7 /* pcrseqscommand.cpp */; };
481FB51C1AC0A63E0076CFF3 /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 481FB51B1AC0A63E0076CFF3 /* main.cpp */; };
481FB5261AC0ADA00076CFF3 /* sequence.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A7E9B7DB12D37EC400DA6239 /* sequence.cpp */; };
@@ -373,7 +372,6 @@
48705AC619BE32C50075E977 /* mergesfffilecommand.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 48705ABF19BE32C50075E977 /* mergesfffilecommand.cpp */; };
48705AC719BE32C50075E977 /* sharedrjsd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 48705AC119BE32C50075E977 /* sharedrjsd.cpp */; };
487C5A871AB88B93002AF48A /* mimarksattributescommand.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 487C5A851AB88B93002AF48A /* mimarksattributescommand.cpp */; };
- 487D09EB1CB2CEF3007039BF /* vsearchfileparser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 489B55701BCD7F0100FB7DC8 /* vsearchfileparser.cpp */; };
487D09EC1CB2CEFE007039BF /* averagelinkage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2114A7671C654D7400D3D8D9 /* averagelinkage.cpp */; };
488841611CC515A000C5E972 /* (null) in Sources */ = {isa = PBXBuildFile; };
488841621CC515A000C5E972 /* (null) in Sources */ = {isa = PBXBuildFile; };
@@ -2550,7 +2548,7 @@
08FB7793FE84155DC02AAC07 /* Project object */ = {
isa = PBXProject;
attributes = {
- LastUpgradeCheck = 0620;
+ LastUpgradeCheck = 0730;
ORGANIZATIONNAME = "Schloss Lab";
TargetAttributes = {
481FB5181AC0A63E0076CFF3 = {
@@ -2866,11 +2864,9 @@
481FB6731AC1B8820076CFF3 /* seqnoise.cpp in Sources */,
481FB5DC1AC1B75C0076CFF3 /* makelookupcommand.cpp in Sources */,
481FB53D1AC1B5F80076CFF3 /* bstick.cpp in Sources */,
- 480E8DB31CAB1F7900A0D137 /* averagelinkage.cpp in Sources */,
481FB6681AC1B8450076CFF3 /* rarecalc.cpp in Sources */,
481FB60B1AC1B7AC0076CFF3 /* sffmultiplecommand.cpp in Sources */,
481FB59F1AC1B71B0076CFF3 /* classifyrfsharedcommand.cpp in Sources */,
- 487D09EB1CB2CEF3007039BF /* vsearchfileparser.cpp in Sources */,
481FB5F51AC1B77E0076CFF3 /* primerdesigncommand.cpp in Sources */,
481FB5B41AC1B7300076CFF3 /* distancecommand.cpp in Sources */,
481FB5391AC1B5E90076CFF3 /* ace.cpp in Sources */,
@@ -3409,6 +3405,7 @@
buildSettings = {
CLANG_WARN_UNREACHABLE_CODE = YES;
DEPLOYMENT_LOCATION = NO;
+ ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = c11;
GCC_ENABLE_SSE3_EXTENSIONS = NO;
GCC_ENABLE_SSE41_EXTENSIONS = NO;
@@ -3535,7 +3532,7 @@
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
PRODUCT_NAME = "$(TARGET_NAME)";
- SDKROOT = macosx10.9;
+ SDKROOT = macosx;
};
name = Debug;
};
@@ -3572,7 +3569,7 @@
MTL_ENABLE_DEBUG_INFO = NO;
ONLY_ACTIVE_ARCH = YES;
PRODUCT_NAME = "$(TARGET_NAME)";
- SDKROOT = macosx10.9;
+ SDKROOT = macosx;
};
name = Release;
};
View
@@ -19,7 +19,6 @@ To compile TestMothur you need to uncomment
//MothurOut* MothurOut::_uniqueInstance; in mothurout.cpp
- //ReferenceDB* ReferenceDB::myInstance; in referencedb.cpp
*/
//***********************************************************//
@@ -6,46 +6,123 @@
// Copyright © 2016 Schloss Lab. All rights reserved.
//
+#include "catch.hpp"
#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;
- PhyloTree phylo;
+
+ 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(vsearchParser.getVsearchFile()); // Displays this variable on a FAIL
-
- CHECK(vsearchParser.getVsearchFile() == "tempSeqs.txt.sorted.fasta.temp");
-
- ifstream in;
- testVParser.m->openInputFile(vsearchParser.getVsearchFile(), in);
-
- while (!in.eof()) {
- Sequence seq(in); testVParser.m->gobble(in);
-
- vector<string> pieces;
- string name = seq.getName();
-
- testVParser.m->splitAtChar(name, pieces, '=');
- string abundString = pieces[1].substr(0, pieces[1].length()-1);
- int abund = 0;
- testVParser.m->mothurConvert(abundString, abund);
- int totalSeqs = testVParser.ct->getNumSeqs(testVParser.removeAbundances(name));
-
- CHECK(abund == totalSeqs);
- }
- in.close();
- testVParser.m->mothurRemove("tempSeqs.txt.sorted.fasta.temp");
+ 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;");
}
}
@@ -9,6 +9,8 @@
#ifndef testphylotree_hpp
#define testphylotree_hpp
+#include "phylotree.h"
+
class TestPhyloTree : public PhyloTree {
@@ -19,6 +21,8 @@ class TestPhyloTree : public PhyloTree {
MothurOut* m;
+ PhyloTree phylo;
+
//using PhyloTree::
//using PhyloTree::
@@ -29,8 +29,8 @@ class TestTrimOligos : public TrimOligos {
map<int, oligosPair> pairedPrimers;
map<int, oligosPair> pairedBarcodes;
- using TrimOligos::compareDNASeq(string, string);
- using TrimOligos::countDiffs(string, string);
+ //using TrimOligos::compareDNASeq(string, string);
+ //using TrimOligos::countDiffs(string, string);
};
@@ -233,7 +233,7 @@ int PhyloTree::addSeqToTree(string seqName, string seqTaxonomy){
//save maxLevel for binning the unclassified seqs
if (level > maxLevel) { maxLevel = level; }
- return 0;
+ return level;
}
catch(exception& e) {
m->errorOut(e, "PhyloTree", "addSeqToTree");
View
@@ -17,6 +17,12 @@
class TrimOligos {
+
+#ifdef UNIT_TEST
+ friend class TestTrimOligos;
+ TrimOligos() {};
+ //add set variables function when completeing unit tests for this class
+#endif
public:
TrimOligos(int,int,int, map<string, int>, map<string, int>, vector<string>); //pdiffs, bdiffs, primers, barcodes, revPrimers

0 comments on commit 19caf05

Please sign in to comment.