From d59e290580cc3b99841d344c296302e0f4080de6 Mon Sep 17 00:00:00 2001 From: marehr Date: Tue, 26 Jan 2021 12:37:09 +0100 Subject: [PATCH] [TEST] io: use member in alignment tests --- .../alignment_file_format_test_template.hpp | 36 +++++++++++++++++++ .../alignment_file_input_test.cpp | 16 +++++++-- .../io/alignment_file/format_bam_test.cpp | 6 ++++ .../io/alignment_file/format_sam_test.cpp | 10 ++++++ 4 files changed, 66 insertions(+), 2 deletions(-) diff --git a/test/unit/io/alignment_file/alignment_file_format_test_template.hpp b/test/unit/io/alignment_file/alignment_file_format_test_template.hpp index 3fb62945d7..1df2fffa94 100644 --- a/test/unit/io/alignment_file/alignment_file_format_test_template.hpp +++ b/test/unit/io/alignment_file/alignment_file_format_test_template.hpp @@ -224,6 +224,21 @@ TYPED_TEST_P(alignment_file_read, read_in_all_data) EXPECT_EQ(seqan3::get(rec), this->mapqs[i]); EXPECT_EQ(seqan3::get(rec), this->mates[i]); EXPECT_EQ(seqan3::get(rec), this->tag_dicts[i]); + + EXPECT_EQ(rec.sequence(), this->seqs[i]); + EXPECT_EQ(rec.id(), this->ids[i]); + EXPECT_EQ(rec.base_qualities(), this->quals[i]); + EXPECT_EQ(rec.sequence_position(), this->offsets[i]); + EXPECT_EQ(rec.reference_id(), 0); + EXPECT_EQ(*rec.reference_position(), this->ref_offsets[i]); + EXPECT_RANGE_EQ(std::get<0>(rec.alignment()), std::get<0>(this->alignments[i])); + EXPECT_RANGE_EQ(std::get<1>(rec.alignment()), std::get<1>(this->alignments[i])); + EXPECT_EQ(rec.flag(), this->flags[i]); + EXPECT_EQ(rec.mapping_quality(), this->mapqs[i]); + EXPECT_EQ(rec.mate_reference_id(), std::get<0>(this->mates[i])); + EXPECT_EQ(rec.mate_position(), std::get<1>(this->mates[i])); + EXPECT_EQ(rec.template_length(), std::get<2>(this->mates[i])); + EXPECT_EQ(rec.tags(), this->tag_dicts[i]); ++i; } } @@ -247,6 +262,21 @@ TYPED_TEST_P(alignment_file_read, read_in_all_but_empty_data) EXPECT_TRUE(!std::get<1>(seqan3::get(*fin.begin())).has_value()); EXPECT_EQ(std::get<2>(seqan3::get(*fin.begin())), int32_t{}); EXPECT_TRUE(seqan3::get(*fin.begin()).empty()); + + EXPECT_TRUE((*fin.begin()).sequence().empty()); + EXPECT_TRUE((*fin.begin()).id().empty()); + EXPECT_TRUE((*fin.begin()).base_qualities().empty()); + EXPECT_EQ((*fin.begin()).sequence_position(), 0); + EXPECT_TRUE(!(*fin.begin()).reference_id().has_value()); + EXPECT_TRUE(!(*fin.begin()).reference_position().has_value()); + EXPECT_TRUE(std::ranges::empty(std::get<0>((*fin.begin()).alignment()))); + EXPECT_TRUE(std::ranges::empty(std::get<1>((*fin.begin()).alignment()))); + EXPECT_EQ((*fin.begin()).flag(), seqan3::sam_flag{0u}); + EXPECT_EQ((*fin.begin()).mapping_quality(), 0u); + EXPECT_TRUE(!(*fin.begin()).mate_reference_id().has_value()); + EXPECT_TRUE(!(*fin.begin()).mate_position().has_value()); + EXPECT_EQ((*fin.begin()).template_length(), int32_t{}); + EXPECT_TRUE((*fin.begin()).tags().empty()); } TYPED_TEST_P(alignment_file_read, read_in_almost_nothing) @@ -288,6 +318,9 @@ TYPED_TEST_P(alignment_file_read, read_in_alignment_only_with_ref) EXPECT_TRUE(std::ranges::empty(std::get<0>(seqan3::get(*fin.begin())))); EXPECT_TRUE(std::ranges::empty(std::get<1>(seqan3::get(*fin.begin())))); + + EXPECT_TRUE(std::ranges::empty(std::get<0>((*fin.begin()).alignment()))); + EXPECT_TRUE(std::ranges::empty(std::get<1>((*fin.begin()).alignment()))); } } @@ -312,6 +345,9 @@ TYPED_TEST_P(alignment_file_read, read_in_alignment_only_without_ref) EXPECT_TRUE(std::ranges::empty(std::get<0>(seqan3::get(*fin.begin())))); EXPECT_TRUE(std::ranges::empty(std::get<1>(seqan3::get(*fin.begin())))); + + EXPECT_TRUE(std::ranges::empty(std::get<0>((*fin.begin()).alignment()))); + EXPECT_TRUE(std::ranges::empty(std::get<1>((*fin.begin()).alignment()))); } } diff --git a/test/unit/io/alignment_file/alignment_file_input_test.cpp b/test/unit/io/alignment_file/alignment_file_input_test.cpp index 4755b14143..b1255bd542 100644 --- a/test/unit/io/alignment_file/alignment_file_input_test.cpp +++ b/test/unit/io/alignment_file/alignment_file_input_test.cpp @@ -264,6 +264,10 @@ TEST_F(alignment_file_input_f, record_reading) EXPECT_RANGE_EQ(seqan3::get(rec), id_comp[counter]); EXPECT_RANGE_EQ(seqan3::get(rec), qual_comp[counter]); + EXPECT_RANGE_EQ(rec.sequence(), seq_comp[counter]); + EXPECT_RANGE_EQ(rec.id(), id_comp[counter]); + EXPECT_RANGE_EQ(rec.base_qualities(), qual_comp[counter]); + counter++; } @@ -296,7 +300,7 @@ TEST_F(alignment_file_input_f, file_view) #if !SEQAN3_WORKAROUND_GCC_93983 auto minimum_length_filter = std::views::filter([] (auto const & rec) { - return size(seqan3::get(rec)) >= 5; + return size(rec.sequence()) >= 5; }); #endif @@ -304,7 +308,7 @@ TEST_F(alignment_file_input_f, file_view) #if SEQAN3_WORKAROUND_GCC_93983 for (auto & rec : fin /*| minimum_length_filter*/) { - if (!(size(seqan3::get(rec)) >= 5)) + if (!(size(rec.sequence()) >= 5)) continue; #else // ^^^ workaround / no workaround vvv for (auto & rec : fin | minimum_length_filter) @@ -314,6 +318,10 @@ TEST_F(alignment_file_input_f, file_view) EXPECT_RANGE_EQ(seqan3::get(rec), id_comp[counter]); EXPECT_RANGE_EQ(seqan3::get(rec), qual_comp[counter]); + EXPECT_RANGE_EQ(rec.sequence(), seq_comp[counter]); + EXPECT_RANGE_EQ(rec.id(), id_comp[counter]); + EXPECT_RANGE_EQ(rec.base_qualities(), qual_comp[counter]); + counter++; } @@ -334,6 +342,10 @@ void decompression_impl(fixture_t & fix, input_file_t & fin) EXPECT_RANGE_EQ(seqan3::get(rec), fix.id_comp[counter]); EXPECT_RANGE_EQ(seqan3::get(rec), fix.qual_comp[counter]); + EXPECT_RANGE_EQ(rec.sequence(), fix.seq_comp[counter]); + EXPECT_RANGE_EQ(rec.id(), fix.id_comp[counter]); + EXPECT_RANGE_EQ(rec.base_qualities(), fix.qual_comp[counter]); + counter++; } diff --git a/test/unit/io/alignment_file/format_bam_test.cpp b/test/unit/io/alignment_file/format_bam_test.cpp index 98d9f507e0..6a85994e16 100644 --- a/test/unit/io/alignment_file/format_bam_test.cpp +++ b/test/unit/io/alignment_file/format_bam_test.cpp @@ -410,6 +410,12 @@ TEST_F(bam_format, too_long_cigar_string_read) EXPECT_RANGE_EQ(std::get<1>(seqan3::get(*fin.begin())), std::get<1>(this->alignments[0])); EXPECT_EQ(seqan3::get(*fin.begin()).size(), 0u); // redundant CG tag is removed + + EXPECT_RANGE_EQ(std::get<0>((*fin.begin()).alignment()), + std::get<0>(this->alignments[0])); + EXPECT_RANGE_EQ(std::get<1>((*fin.begin()).alignment()), + std::get<1>(this->alignments[0])); + EXPECT_EQ((*fin.begin()).tags().size(), 0u); // redundant CG tag is removed } { // error: sam_tag_dictionary is not read diff --git a/test/unit/io/alignment_file/format_sam_test.cpp b/test/unit/io/alignment_file/format_sam_test.cpp index 3a820420a2..d59fb103a8 100644 --- a/test/unit/io/alignment_file/format_sam_test.cpp +++ b/test/unit/io/alignment_file/format_sam_test.cpp @@ -179,6 +179,8 @@ TEST_F(sam_format, no_hd_line_in_header) seqan3::alignment_file_input fin{istream, seqan3::format_sam{}, seqan3::fields{}}; EXPECT_EQ(seqan3::get(*fin.begin()), std::string{"read1"}); + + EXPECT_EQ((*fin.begin()).id(), std::string{"read1"}); } TEST_F(sam_format, windows_file) @@ -187,6 +189,8 @@ TEST_F(sam_format, windows_file) seqan3::alignment_file_input fin{istream, seqan3::format_sam{}, seqan3::fields{}}; EXPECT_EQ(seqan3::get(*fin.begin()), std::string{"read1"}); + + EXPECT_EQ((*fin.begin()).id(), std::string{"read1"}); } TEST_F(sam_format, format_error_illegal_character_in_seq) @@ -343,6 +347,9 @@ TEST_F(sam_format, issue2195) EXPECT_RANGE_EQ(seqan3::get(*fin.begin()), std::string{"*r1"}); EXPECT_RANGE_EQ(seqan3::get(*fin.begin()), expected_quality); + + EXPECT_RANGE_EQ((*fin.begin()).id(), std::string{"*r1"}); + EXPECT_RANGE_EQ((*fin.begin()).base_qualities(), expected_quality); } { @@ -357,5 +364,8 @@ TEST_F(sam_format, issue2195) EXPECT_RANGE_EQ(seqan3::get(*fin.begin()), std::string{""}); EXPECT_RANGE_EQ(seqan3::get(*fin.begin()), expected_quality); + + EXPECT_RANGE_EQ((*fin.begin()).id(), std::string{""}); + EXPECT_RANGE_EQ((*fin.begin()).base_qualities(), expected_quality); } }