Skip to content

Commit 2fb8ecc

Browse files
authored
Merge pull request #11 from chinwobble/update-tests
enable tests for stats and fastqreader
2 parents a044607 + d4ce0bc commit 2fb8ecc

File tree

6 files changed

+135
-17
lines changed

6 files changed

+135
-17
lines changed

CMakeLists.txt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ set(
7373
test/globals.cpp
7474
test/polyx_test.cpp
7575
test/sequence_test.cpp
76+
test/stats_test.cpp
7677
)
7778
include_directories(
7879
# intel mac install location
@@ -117,7 +118,12 @@ target_link_libraries(
117118
# tests target
118119
enable_testing()
119120
find_package(GTest CONFIG REQUIRED)
121+
configure_file(test/config.h.in ${CMAKE_BINARY_DIR}/include/config.h)
120122
add_executable(fastplong_tests ${FASTPLONG_TEST_SOURCES})
123+
target_include_directories(
124+
fastplong_tests
125+
PRIVATE ${CMAKE_BINARY_DIR}/include
126+
)
121127
target_link_libraries(
122128
fastplong_tests PRIVATE
123129
${FASTPLONG_LIBS}

test/config.h.in

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
// this file is necessary to help resolve the correct path when loading test data files.
2+
// When tests using the IDE and CLI the working directory can be different.
3+
// This substitute builds the absolute path to eliminate the need to depend on the working directory.
4+
#pragma once
5+
6+
#define FP_TESTDATA_R1 "${CMAKE_SOURCE_DIR}/testdata/R1.fq"
7+
#define FP_TESTDATA_R2 "${CMAKE_SOURCE_DIR}/testdata/R2.fq"

test/fastqreader_test.cpp

Lines changed: 27 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,32 @@
11
#include <gtest/gtest.h>
22
#include "../src/fastqreader.h"
33

4-
TEST(fastqreader, test) {
5-
/*FastqReader reader1("testdata/R1.fq");
6-
FastqReader reader2("testdata/R1.fq");
7-
Read* r1 = NULL;
8-
Read* r2 = NULL;
9-
int i=0;
10-
while(true){
11-
i++;
12-
r1=reader1.read();
13-
r2=reader2.read();
14-
if(r1 == NULL || r2==NULL)
4+
#include "config.h"
5+
#include <vector>
6+
7+
TEST(fastqreader, test)
8+
{
9+
FastqReader reader1(FP_TESTDATA_R1);
10+
11+
Read *r1 = NULL;
12+
13+
std::vector<Read*> v;
14+
while (true)
15+
{
16+
r1 = reader1.read();
17+
if (r1 == nullptr) {
1518
break;
16-
r1->print();
17-
r2->print();
18-
delete r1;
19-
delete r2;
20-
}*/
21-
}
19+
}
20+
v.push_back(r1);
21+
}
22+
EXPECT_EQ(v.size(), 9);
23+
EXPECT_EQ(*v[0]->mName, "@AS500713:64:HFKJJBGXY:1:11101:1675:1101 1:A:0:TATAGCCT+GACCCCCA");
24+
EXPECT_EQ(*v[0]->mSeq, "");
25+
EXPECT_EQ(*v[0]->mStrand, "+");
26+
EXPECT_EQ(*v[0]->mQuality, "");
2227

28+
EXPECT_EQ(*v[1]->mName, "@AS500713:64:HFKJJBGXY:1:11101:17113:1101 1:A:0:TATAGCCT+GTTTCTTA");
29+
EXPECT_EQ(*v[1]->mSeq, "TACAAAATGCACATCGCTGAAAGGGGTAAAGGAGAGAAATCGCTTTATAAAACCTTGAAAAGGAATATTCAAATATAAGCTGGGAAGGTATAAAAAACTCTGTACATCACAAGTAAACAAATGGAACCTGCAAAATATTAAACAAAGGATT");
30+
EXPECT_EQ(*v[1]->mStrand, "+");
31+
EXPECT_EQ(*v[1]->mQuality, "AAAAAEEEEE6EEAAAEEEEE6EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEAEEEEAEEEEEEEEEEEEEEEEECFE####EEEE6EE<AAEEEAEEEEEEEEEEEEAEEEEEEEA<E/AAEEEAEEEEE/EEEEAAEEE");
32+
}

test/stats_test.cpp

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
#include <gtest/gtest.h>
2+
#include "../src/stats.h"
3+
#include "../src/evaluator.h"
4+
#include <algorithm>
5+
6+
TEST(StatsTests, summarise) {
7+
Read* left = new Read(
8+
new string("@NS500713:64:HFKJJBGXY:1:11101:20469:1097 1:N:0:TATAGCCT+GGTCCCGA"),
9+
new string("TTTTTTCTCTTGGACTCTAACACTGTTTTTTCTTATGAAAACACAGGAGTGATGACTAGTTGAGTGCATTCTTATGAGACTCATAGTCATTCTATGATGTAG"),
10+
new string("+"),
11+
new string("AAAAA6EEEEEEEEEEEEEEEEE#EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEAEEEAEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE"));
12+
13+
Options* options = new Options();
14+
Stats stats(options);
15+
stats.statRead(left);
16+
stats.summarize();
17+
EXPECT_EQ(stats.getCycles(), 102);
18+
EXPECT_EQ(stats.getBases(), 102);
19+
EXPECT_EQ(stats.getReads(), 1);
20+
EXPECT_EQ(stats.getQ20(), 101);
21+
EXPECT_EQ(stats.getQ30(), 100);
22+
EXPECT_EQ(stats.getGCNumber(), 35);
23+
}

testdata/R1.fq

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
@AS500713:64:HFKJJBGXY:1:11101:1675:1101 1:A:0:TATAGCCT+GACCCCCA
2+
3+
+
4+
5+
@AS500713:64:HFKJJBGXY:1:11101:17113:1101 1:A:0:TATAGCCT+GTTTCTTA
6+
TACAAAATGCACATCGCTGAAAGGGGTAAAGGAGAGAAATCGCTTTATAAAACCTTGAAAAGGAATATTCAAATATAAGCTGGGAAGGTATAAAAAACTCTGTACATCACAAGTAAACAAATGGAACCTGCAAAATATTAAACAAAGGATT
7+
+
8+
AAAAAEEEEE6EEAAAEEEEE6EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEAEEEEAEEEEEEEEEEEEEEEEECFE####EEEE6EE<AAEEEAEEEEEEEEEEEEAEEEEEEEA<E/AAEEEAEEEEE/EEEEAAEEE
9+
@AS500713:64:HFKJJBGXY:1:11101:1675:1101 1:A:0:TATAGCCT+GACCCCCA
10+
TAGGAGGCTTGGAGTACCAATAATAAAGTGAGCCCACCTTCCTGGTACCCAGACATTTCAGGAGGTCGGGAAATTTTTAAACCCAGGCAGCTTCCTGGCAGTGACATTTGGAGCATCAAAGTGGTAAATAAAATTTCATTTACATTAATAT
11+
+
12+
6AAAAAEEEEE/E/EA/E/AEA6EE//AEE66/AAE//EEE/E//E/AA/EEE/A/AEE/EEA//EEEEEEEE6EEAAA/E###6E/6//6<EAAEEE/EEEA/EA/EEEEEE/<<EEEE//A/EE<AEEEEE/</AA</E<AAAE/E<E/
13+
@AS500713:64:HFKJJBGXY:1:11101:17113:1101 1:A:0:TATAGCCT+GTTTCTTA
14+
TACAAAATGCACATCGCTGAAAGGGGTAAAGGAGAGAAATCGCTTTATAAAACCTTGAAAAGGAATATTCAAATATAAGCTGGGAAGGTATAAAAAACTCTGTACATCACAAGTAAACAAATGGAACCTGCAAAATATTAAACAAAGGATT
15+
+
16+
AAAAAEEEEE6EEAAAEEEEE6EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEAEEEEAEEEEEEEEEEEEEEEEEEEE/EEEEEEE6EE<AAEEEAEEEEEEEEEEEEAEEEEEEEA<E/AAEEEAEEEEE/EEEEAAEEE
17+
@AS500713:64:HFKJJBGXY:1:11101:1675:1101 1:A:0:TATAGCCT+GACCCCCA
18+
TAGGAGGCTTGGAGTACCAATAATAAAGTGAGCCCACCTTCCTGGTACCCAGACATTTCAGGAGGTCGGGAAATTTTTAAACCCAGGCAGCTTCCTGGCAGTGACATTTGGAGCATCAAAGTGGTAAATAAAATTTCATTTACATTAATAT
19+
+
20+
6AAAAAEEEEE/E/EA/E/AEA6EE//AEE66/AAE//EEE/E//E/AA/EEE/A/AEE/EEA//EEEEEEEE6EEAAA/E/A/6E/6//6<EAAEEE/EEEA/EA/EEEEEE/<<EEEE//A/EE<AEEEEE/</AA</E<AAAE/E<E/
21+
@AS500713:64:HFKJJBGXY:1:11101:17113:1101 1:A:0:TATAGCCT+GTTTCTTA
22+
TACAAAATGCACATCGCTGAAAGGGGTAAAGGAGAGAAATCGCTTTATAAAACCTTGAAAAGGAATATTCAAATATAAGCTGGGAAGGTATAAAAAACTCTGTACATCACAAGTAAACAAATGGAACCTGCAAAATATTAAACAAAGGATT
23+
+
24+
AAAAAEEEEE6EEAAAEEEEE6EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEAEEEEAEEEEEEEEEEEEEEEEEEEE/EEEEEEE6EE<AAEEEAEEEEEEEEEEEEAEEEEEEEA<E/AAEEEAEEEEE/EEEEAAEEE
25+
@AS500713:64:HFKJJBGXY:1:11101:1675:1101 1:A:0:TATAGCCT+GACCCCCA
26+
TAGGAGGCTTGGAGTACCAATAATAAAGTGAGCCCACCTTCCTGGTACCCAGACATTTCAGGAGGTCGGGAAATTTTTAAACCCAGGCAGCTTCCTGGCAGTGACATTTGGAGCATCAAAGTGGTAAATAAAATTTCATTTACATTAATAT
27+
+
28+
6AAAAAEEEEE/E/EA/E/AEA6EE//AEE66/AAE//EEE/E//E/AA/EEE/A/AEE/EEA//EEEEEEEE6EEAAA/E/A/6E/6//6<EAAEEE/EEEA/EA/EEEEEE/<<EEEE//A/EE<AEEEEE/</AA</E<AAAE/E<E/
29+
@AS500713:64:HFKJJBGXY:1:11101:17113:1101 1:A:0:TATAGCCT+GTTTCTTA
30+
TACAAAATGCACATCGCTGAAAGGGGTAAAGGAGAGAAATCGCTTTATAAAACCTTGAAAAGGAATATTCAAATATAAGCTGGGAAGGTATAAAAAACTCTGTACATCACAAGTAAACAAATGGAACCTGCAAAATATTAAACAAAGGATT
31+
+
32+
AAAAAEEEEE6EEAAAEEEEE6EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEAEEEEAEEEEEEEEEEEEEEEEEEEE/EEEEEEE6EE<AAEEEAEEEEEEEEEEEEAEEEEEEEA<E/AAEEEAEEEEE/EEEEAAEEE
33+
@AS500713:64:HFKJJBGXY:1:11101:17113:1101 1:A:0:TATAGCCT+GTTTCTTA
34+
CCCCCCCCCCACATCGCTGAAAGGGGTAAAGGAGAGAAATCGCTTTATAAAACCTTGAAAAGGAATATTCAAATATAAGCTGGGAAGGTATAAAAAACTCTGTACATCACAAGTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
35+
+
36+
AAAAAEEEEE6EEAAAEEEEE6EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEAEEEEAEEEEEEEEEEEEEEEEEEEE/EEEEEEE6EE<AAEEEAEEEEEEEEEEEEAEEEEEEEA<E/AAEEEAEEEEE/EEEEAAEEE

testdata/R2.fq

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
@AS500713:64:HFKJJBGXY:1:11101:1675:1101 2:A:0:TATAGCCT+GACCCCCA
2+
TAGGGCAAAACAAATAAGACAAAAAAAAAAAATGAATGAAAATGCAATTTTATTTACCACTTTGATGCTCAAAATGGCACTGCCAGGAAGCTGCCTGGGTTTAAAAATTTCCCGACCTCCTGAAATGTCTGGGGACCAGGAAGGTGGGCTC
3+
+
4+
AAAAA/EEEA/EEEE#AEA<####E######EE/A#E/##EEEE/E<<EEEE6EEAA/EAE<AEEEAAEE/EEEA/</EEEE6//</A///A6E<6E/AEEEEEEEEEEA<<6//<A</<<AAEEE/</A///<E<<A//EEAE</E/AA6
5+
@AS500713:64:HFKJJBGXY:1:11101:17113:1101 2:A:0:TATAGCCT+GTTTCTTA
6+
CTAAATTGAGTAATGAAGATAAAATAAAAAATAACAAAAACTTTGTTTAATATTTTGCAGGTTCCATTTGTTTACTTGTGATGTACAGAGTTTTTTATACCTTCCCAGCTTATATTTGAATATTCCTTTTCAAGGTTTTATAAAGCGATTT
7+
+
8+
AAAAAEEEEEEEEEE#EEEE####E######E#EE#E###EEEEEEE/AEEEEEEEE/EEEE<EAEEEEEEEEE/EEEEEEEEEE<EEEEAEEEEEEEE<6EEA6<EE6EEEEEEEEEEAEAEEE/A<AE<AEEAEEEEEEEEE/</AAAA
9+
@AS500713:64:HFKJJBGXY:1:11101:1675:1101 2:A:0:TATAGCCT+GACCCCCA
10+
TAGGGCAAAACAAATAAGACAAAAAAAAAAAATGAATGAAAATGCAATTTTATTTACCACTTTGATGCTCAAAATGGCACTGCCAGGAAGCTGCCTGGGTTTAAAAATTTCCCGACCTCCTGAAATGTCTGGGGACCAGGAAGGTGGGCTC
11+
+
12+
AAAAA/EEEA/EEEE#AEA<####E######EE/A#E/##EEEE/E<<EEEE6EEAA/EAE<AEEEAAEE/EEEA/</EEEE6//</A///A6E<6E/AEEEEEEEEEEA<<6//<A</<<AAEEE/</A///<E<<A//EEAE</E/AA6
13+
@AS500713:64:HFKJJBGXY:1:11101:17113:1101 2:A:0:TATAGCCT+GTTTCTTA
14+
CTAAATTGAGTAATGAAGATAAAATAAAAAATAACAAAAACTTTGTTTAATATTTTGCAGGTTCCATTTGTTTACTTGTGATGTACAGAGTTTTTTATACCTTCCCAGCTTATATTTGAATATTCCTTTTCAAGGTTTTATAAAGCGATTT
15+
+
16+
AAAAAEEEEEEEEEE#EEEE####E######E#EE#E###EEEEEEE/AEEEEEEEE/EEEE<EAEEEEEEEEE/EEEEEEEEEE<EEEEAEEEEEEEE<6EEA6<EE6EEEEEEEEEEAEAEEE/A<AE<AEEAEEEEEEEEE/</AAAA
17+
@AS500713:64:HFKJJBGXY:1:11101:1675:1101 2:A:0:TATAGCCT+GACCCCCA
18+
TAGGGCAAAACAAATAAGACAAAAAAAAAAAATGAATGAAAATGCAATTTTATTTACCACTTTGATGCTCAAAATGGCACTGCCAGGAAGCTGCCTGGGTTTAAAAATTTCCCGACCTCCTGAAATGTCTGGGGACCAGGAAGGTGGGCTC
19+
+
20+
AAAAA/EEEA/EEEE#AEA<####E######EE/A#E/##EEEE/E<<EEEE6EEAA/EAE<AEEEAAEE/EEEA/</EEEE6//</A///A6E<6E/AEEEEEEEEEEA<<6//<A</<<AAEEE/</A///<E<<A//EEAE</E/AA6
21+
@AS500713:64:HFKJJBGXY:1:11101:17113:1101 2:A:0:TATAGCCT+GTTTCTTA
22+
CTAAATTGAGTAATGAAGATAAAATAAAAAATAACAAAAACTTTGTTTAATATTTTGCAGGTTCCATTTGTTTACTTGTGATGTACAGAGTTTTTTATACCTTCCCAGCTTATATTTGAATATTCCTTTTCAAGGTTTTATAAAGCGATTT
23+
+
24+
AAAAAEEEEEEEEEE#EEEE####E######E#EE#E###EEEEEEE/AEEEEEEEE/EEEE<EAEEEEEEEEE/EEEEEEEEEE<EEEEAEEEEEEEE<6EEA6<EE6EEEEEEEEEEAEAEEE/A<AE<AEEAEEEEEEEEE/</AAAA
25+
@AS500713:64:HFKJJBGXY:1:11101:1675:1101 2:A:0:TATAGCCT+GACCCCCA
26+
TAGGGCAAAACAAATAAGACAAAAAAAAAAAATGAATGAAAATGCAATTTTATTTACCACTTTGATGCTCAAAATGGCACTGCCAGGAAGCTGCCTGGGTTTAAAAATTTCCCGACCTCCTGAAATGTCTGGGGACCAGGAAGGTGGGCTC
27+
+
28+
AAAAA/EEEA/EEEE#AEA<####E######EE/A#E/##EEEE/E<<EEEE6EEAA/EAE<AEEEAAEE/EEEA/</EEEE6//</A///A6E<6E/AEEEEEEEEEEA<<6//<A</<<AAEEE/</A///<E<<A//EEAE</E/AA6
29+
@AS500713:64:HFKJJBGXY:1:11101:17113:1101 2:A:0:TATAGCCT+GTTTCTTA
30+
CTAAATTGAGTAATGAAGATAAAATAAAAAATAACAAAAACTTTGTTTAATATTTTGCAGGTTCCATTTGTTTACTTGTGATGTACAGAGTTTTTTATACCTTCCCAGCTTATATTTGAATATTCCTTTTCAAGGTTTTATAAAGCGATTT
31+
+
32+
AAAAAEEEEEEEEEE#EEEE####E######E#EE#E###EEEEEEE/AEEEEEEEE/EEEE<EAEEEEEEEEE/EEEEEEEEEE<EEEEAEEEEEEEE<6EEA6<EE6EEEEEEEEEEAEAEEE/A<AE<AEEAEEEEEEEEE/</AAAA
33+
@AS500713:64:HFKJJBGXY:1:11101:17113:1101 1:A:0:TATAGCCT+GTTTCTTA
34+
TACAAAATGCACATCGCTGAAAGGGGTAAAGGAGAGAAATCGCTTTATAAAACCTTGAAAAGGAATATTCAAATATAAGCTGGGAAGGTATAAAAAACTCTGTACATCACAAGTAAATTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT
35+
+
36+
AAAAAEEEEE6EEAAAEEEEE6EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEAEEEEAEEEEEEEEEEEEEEEEEEEE/EEEEEEE6EE<AAEEEAEEEEEEEEEEEEAEEEEEEEA<E/AAEEEAEEEEE/EEEEAAEEE

0 commit comments

Comments
 (0)