Skip to content

Commit

Permalink
Merge pull request #11 from chinwobble/update-tests
Browse files Browse the repository at this point in the history
enable tests for stats and fastqreader
  • Loading branch information
sfchen authored Dec 18, 2024

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
2 parents a044607 + d4ce0bc commit 2fb8ecc
Showing 6 changed files with 135 additions and 17 deletions.
6 changes: 6 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -73,6 +73,7 @@ set(
test/globals.cpp
test/polyx_test.cpp
test/sequence_test.cpp
test/stats_test.cpp
)
include_directories(
# intel mac install location
@@ -117,7 +118,12 @@ target_link_libraries(
# tests target
enable_testing()
find_package(GTest CONFIG REQUIRED)
configure_file(test/config.h.in ${CMAKE_BINARY_DIR}/include/config.h)
add_executable(fastplong_tests ${FASTPLONG_TEST_SOURCES})
target_include_directories(
fastplong_tests
PRIVATE ${CMAKE_BINARY_DIR}/include
)
target_link_libraries(
fastplong_tests PRIVATE
${FASTPLONG_LIBS}
7 changes: 7 additions & 0 deletions test/config.h.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
// this file is necessary to help resolve the correct path when loading test data files.
// When tests using the IDE and CLI the working directory can be different.
// This substitute builds the absolute path to eliminate the need to depend on the working directory.
#pragma once

#define FP_TESTDATA_R1 "${CMAKE_SOURCE_DIR}/testdata/R1.fq"
#define FP_TESTDATA_R2 "${CMAKE_SOURCE_DIR}/testdata/R2.fq"
44 changes: 27 additions & 17 deletions test/fastqreader_test.cpp
Original file line number Diff line number Diff line change
@@ -1,22 +1,32 @@
#include <gtest/gtest.h>
#include "../src/fastqreader.h"

TEST(fastqreader, test) {
/*FastqReader reader1("testdata/R1.fq");
FastqReader reader2("testdata/R1.fq");
Read* r1 = NULL;
Read* r2 = NULL;
int i=0;
while(true){
i++;
r1=reader1.read();
r2=reader2.read();
if(r1 == NULL || r2==NULL)
#include "config.h"
#include <vector>

TEST(fastqreader, test)
{
FastqReader reader1(FP_TESTDATA_R1);

Read *r1 = NULL;

std::vector<Read*> v;
while (true)
{
r1 = reader1.read();
if (r1 == nullptr) {
break;
r1->print();
r2->print();
delete r1;
delete r2;
}*/
}
}
v.push_back(r1);
}
EXPECT_EQ(v.size(), 9);
EXPECT_EQ(*v[0]->mName, "@AS500713:64:HFKJJBGXY:1:11101:1675:1101 1:A:0:TATAGCCT+GACCCCCA");
EXPECT_EQ(*v[0]->mSeq, "");
EXPECT_EQ(*v[0]->mStrand, "+");
EXPECT_EQ(*v[0]->mQuality, "");

EXPECT_EQ(*v[1]->mName, "@AS500713:64:HFKJJBGXY:1:11101:17113:1101 1:A:0:TATAGCCT+GTTTCTTA");
EXPECT_EQ(*v[1]->mSeq, "TACAAAATGCACATCGCTGAAAGGGGTAAAGGAGAGAAATCGCTTTATAAAACCTTGAAAAGGAATATTCAAATATAAGCTGGGAAGGTATAAAAAACTCTGTACATCACAAGTAAACAAATGGAACCTGCAAAATATTAAACAAAGGATT");
EXPECT_EQ(*v[1]->mStrand, "+");
EXPECT_EQ(*v[1]->mQuality, "AAAAAEEEEE6EEAAAEEEEE6EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEAEEEEAEEEEEEEEEEEEEEEEECFE####EEEE6EE<AAEEEAEEEEEEEEEEEEAEEEEEEEA<E/AAEEEAEEEEE/EEEEAAEEE");
}
23 changes: 23 additions & 0 deletions test/stats_test.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
#include <gtest/gtest.h>
#include "../src/stats.h"
#include "../src/evaluator.h"
#include <algorithm>

TEST(StatsTests, summarise) {
Read* left = new Read(
new string("@NS500713:64:HFKJJBGXY:1:11101:20469:1097 1:N:0:TATAGCCT+GGTCCCGA"),
new string("TTTTTTCTCTTGGACTCTAACACTGTTTTTTCTTATGAAAACACAGGAGTGATGACTAGTTGAGTGCATTCTTATGAGACTCATAGTCATTCTATGATGTAG"),
new string("+"),
new string("AAAAA6EEEEEEEEEEEEEEEEE#EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEAEEEAEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE"));

Options* options = new Options();
Stats stats(options);
stats.statRead(left);
stats.summarize();
EXPECT_EQ(stats.getCycles(), 102);
EXPECT_EQ(stats.getBases(), 102);
EXPECT_EQ(stats.getReads(), 1);
EXPECT_EQ(stats.getQ20(), 101);
EXPECT_EQ(stats.getQ30(), 100);
EXPECT_EQ(stats.getGCNumber(), 35);
}
36 changes: 36 additions & 0 deletions testdata/R1.fq
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
@AS500713:64:HFKJJBGXY:1:11101:1675:1101 1:A:0:TATAGCCT+GACCCCCA

+

@AS500713:64:HFKJJBGXY:1:11101:17113:1101 1:A:0:TATAGCCT+GTTTCTTA
TACAAAATGCACATCGCTGAAAGGGGTAAAGGAGAGAAATCGCTTTATAAAACCTTGAAAAGGAATATTCAAATATAAGCTGGGAAGGTATAAAAAACTCTGTACATCACAAGTAAACAAATGGAACCTGCAAAATATTAAACAAAGGATT
+
AAAAAEEEEE6EEAAAEEEEE6EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEAEEEEAEEEEEEEEEEEEEEEEECFE####EEEE6EE<AAEEEAEEEEEEEEEEEEAEEEEEEEA<E/AAEEEAEEEEE/EEEEAAEEE
@AS500713:64:HFKJJBGXY:1:11101:1675:1101 1:A:0:TATAGCCT+GACCCCCA
TAGGAGGCTTGGAGTACCAATAATAAAGTGAGCCCACCTTCCTGGTACCCAGACATTTCAGGAGGTCGGGAAATTTTTAAACCCAGGCAGCTTCCTGGCAGTGACATTTGGAGCATCAAAGTGGTAAATAAAATTTCATTTACATTAATAT
+
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/
@AS500713:64:HFKJJBGXY:1:11101:17113:1101 1:A:0:TATAGCCT+GTTTCTTA
TACAAAATGCACATCGCTGAAAGGGGTAAAGGAGAGAAATCGCTTTATAAAACCTTGAAAAGGAATATTCAAATATAAGCTGGGAAGGTATAAAAAACTCTGTACATCACAAGTAAACAAATGGAACCTGCAAAATATTAAACAAAGGATT
+
AAAAAEEEEE6EEAAAEEEEE6EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEAEEEEAEEEEEEEEEEEEEEEEEEEE/EEEEEEE6EE<AAEEEAEEEEEEEEEEEEAEEEEEEEA<E/AAEEEAEEEEE/EEEEAAEEE
@AS500713:64:HFKJJBGXY:1:11101:1675:1101 1:A:0:TATAGCCT+GACCCCCA
TAGGAGGCTTGGAGTACCAATAATAAAGTGAGCCCACCTTCCTGGTACCCAGACATTTCAGGAGGTCGGGAAATTTTTAAACCCAGGCAGCTTCCTGGCAGTGACATTTGGAGCATCAAAGTGGTAAATAAAATTTCATTTACATTAATAT
+
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/
@AS500713:64:HFKJJBGXY:1:11101:17113:1101 1:A:0:TATAGCCT+GTTTCTTA
TACAAAATGCACATCGCTGAAAGGGGTAAAGGAGAGAAATCGCTTTATAAAACCTTGAAAAGGAATATTCAAATATAAGCTGGGAAGGTATAAAAAACTCTGTACATCACAAGTAAACAAATGGAACCTGCAAAATATTAAACAAAGGATT
+
AAAAAEEEEE6EEAAAEEEEE6EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEAEEEEAEEEEEEEEEEEEEEEEEEEE/EEEEEEE6EE<AAEEEAEEEEEEEEEEEEAEEEEEEEA<E/AAEEEAEEEEE/EEEEAAEEE
@AS500713:64:HFKJJBGXY:1:11101:1675:1101 1:A:0:TATAGCCT+GACCCCCA
TAGGAGGCTTGGAGTACCAATAATAAAGTGAGCCCACCTTCCTGGTACCCAGACATTTCAGGAGGTCGGGAAATTTTTAAACCCAGGCAGCTTCCTGGCAGTGACATTTGGAGCATCAAAGTGGTAAATAAAATTTCATTTACATTAATAT
+
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/
@AS500713:64:HFKJJBGXY:1:11101:17113:1101 1:A:0:TATAGCCT+GTTTCTTA
TACAAAATGCACATCGCTGAAAGGGGTAAAGGAGAGAAATCGCTTTATAAAACCTTGAAAAGGAATATTCAAATATAAGCTGGGAAGGTATAAAAAACTCTGTACATCACAAGTAAACAAATGGAACCTGCAAAATATTAAACAAAGGATT
+
AAAAAEEEEE6EEAAAEEEEE6EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEAEEEEAEEEEEEEEEEEEEEEEEEEE/EEEEEEE6EE<AAEEEAEEEEEEEEEEEEAEEEEEEEA<E/AAEEEAEEEEE/EEEEAAEEE
@AS500713:64:HFKJJBGXY:1:11101:17113:1101 1:A:0:TATAGCCT+GTTTCTTA
CCCCCCCCCCACATCGCTGAAAGGGGTAAAGGAGAGAAATCGCTTTATAAAACCTTGAAAAGGAATATTCAAATATAAGCTGGGAAGGTATAAAAAACTCTGTACATCACAAGTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+
AAAAAEEEEE6EEAAAEEEEE6EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEAEEEEAEEEEEEEEEEEEEEEEEEEE/EEEEEEE6EE<AAEEEAEEEEEEEEEEEEAEEEEEEEA<E/AAEEEAEEEEE/EEEEAAEEE
36 changes: 36 additions & 0 deletions testdata/R2.fq
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
@AS500713:64:HFKJJBGXY:1:11101:1675:1101 2:A:0:TATAGCCT+GACCCCCA
TAGGGCAAAACAAATAAGACAAAAAAAAAAAATGAATGAAAATGCAATTTTATTTACCACTTTGATGCTCAAAATGGCACTGCCAGGAAGCTGCCTGGGTTTAAAAATTTCCCGACCTCCTGAAATGTCTGGGGACCAGGAAGGTGGGCTC
+
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
@AS500713:64:HFKJJBGXY:1:11101:17113:1101 2:A:0:TATAGCCT+GTTTCTTA
CTAAATTGAGTAATGAAGATAAAATAAAAAATAACAAAAACTTTGTTTAATATTTTGCAGGTTCCATTTGTTTACTTGTGATGTACAGAGTTTTTTATACCTTCCCAGCTTATATTTGAATATTCCTTTTCAAGGTTTTATAAAGCGATTT
+
AAAAAEEEEEEEEEE#EEEE####E######E#EE#E###EEEEEEE/AEEEEEEEE/EEEE<EAEEEEEEEEE/EEEEEEEEEE<EEEEAEEEEEEEE<6EEA6<EE6EEEEEEEEEEAEAEEE/A<AE<AEEAEEEEEEEEE/</AAAA
@AS500713:64:HFKJJBGXY:1:11101:1675:1101 2:A:0:TATAGCCT+GACCCCCA
TAGGGCAAAACAAATAAGACAAAAAAAAAAAATGAATGAAAATGCAATTTTATTTACCACTTTGATGCTCAAAATGGCACTGCCAGGAAGCTGCCTGGGTTTAAAAATTTCCCGACCTCCTGAAATGTCTGGGGACCAGGAAGGTGGGCTC
+
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
@AS500713:64:HFKJJBGXY:1:11101:17113:1101 2:A:0:TATAGCCT+GTTTCTTA
CTAAATTGAGTAATGAAGATAAAATAAAAAATAACAAAAACTTTGTTTAATATTTTGCAGGTTCCATTTGTTTACTTGTGATGTACAGAGTTTTTTATACCTTCCCAGCTTATATTTGAATATTCCTTTTCAAGGTTTTATAAAGCGATTT
+
AAAAAEEEEEEEEEE#EEEE####E######E#EE#E###EEEEEEE/AEEEEEEEE/EEEE<EAEEEEEEEEE/EEEEEEEEEE<EEEEAEEEEEEEE<6EEA6<EE6EEEEEEEEEEAEAEEE/A<AE<AEEAEEEEEEEEE/</AAAA
@AS500713:64:HFKJJBGXY:1:11101:1675:1101 2:A:0:TATAGCCT+GACCCCCA
TAGGGCAAAACAAATAAGACAAAAAAAAAAAATGAATGAAAATGCAATTTTATTTACCACTTTGATGCTCAAAATGGCACTGCCAGGAAGCTGCCTGGGTTTAAAAATTTCCCGACCTCCTGAAATGTCTGGGGACCAGGAAGGTGGGCTC
+
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
@AS500713:64:HFKJJBGXY:1:11101:17113:1101 2:A:0:TATAGCCT+GTTTCTTA
CTAAATTGAGTAATGAAGATAAAATAAAAAATAACAAAAACTTTGTTTAATATTTTGCAGGTTCCATTTGTTTACTTGTGATGTACAGAGTTTTTTATACCTTCCCAGCTTATATTTGAATATTCCTTTTCAAGGTTTTATAAAGCGATTT
+
AAAAAEEEEEEEEEE#EEEE####E######E#EE#E###EEEEEEE/AEEEEEEEE/EEEE<EAEEEEEEEEE/EEEEEEEEEE<EEEEAEEEEEEEE<6EEA6<EE6EEEEEEEEEEAEAEEE/A<AE<AEEAEEEEEEEEE/</AAAA
@AS500713:64:HFKJJBGXY:1:11101:1675:1101 2:A:0:TATAGCCT+GACCCCCA
TAGGGCAAAACAAATAAGACAAAAAAAAAAAATGAATGAAAATGCAATTTTATTTACCACTTTGATGCTCAAAATGGCACTGCCAGGAAGCTGCCTGGGTTTAAAAATTTCCCGACCTCCTGAAATGTCTGGGGACCAGGAAGGTGGGCTC
+
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
@AS500713:64:HFKJJBGXY:1:11101:17113:1101 2:A:0:TATAGCCT+GTTTCTTA
CTAAATTGAGTAATGAAGATAAAATAAAAAATAACAAAAACTTTGTTTAATATTTTGCAGGTTCCATTTGTTTACTTGTGATGTACAGAGTTTTTTATACCTTCCCAGCTTATATTTGAATATTCCTTTTCAAGGTTTTATAAAGCGATTT
+
AAAAAEEEEEEEEEE#EEEE####E######E#EE#E###EEEEEEE/AEEEEEEEE/EEEE<EAEEEEEEEEE/EEEEEEEEEE<EEEEAEEEEEEEE<6EEA6<EE6EEEEEEEEEEAEAEEE/A<AE<AEEAEEEEEEEEE/</AAAA
@AS500713:64:HFKJJBGXY:1:11101:17113:1101 1:A:0:TATAGCCT+GTTTCTTA
TACAAAATGCACATCGCTGAAAGGGGTAAAGGAGAGAAATCGCTTTATAAAACCTTGAAAAGGAATATTCAAATATAAGCTGGGAAGGTATAAAAAACTCTGTACATCACAAGTAAATTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT
+
AAAAAEEEEE6EEAAAEEEEE6EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEAEEEEAEEEEEEEEEEEEEEEEEEEE/EEEEEEE6EE<AAEEEAEEEEEEEEEEEEAEEEEEEEA<E/AAEEEAEEEEE/EEEEAAEEE

0 comments on commit 2fb8ecc

Please sign in to comment.