]> git.donarmstrong.com Git - bamtools.git/blobdiff - src/test/api/SamHeader/SamSequenceDictionaryTest.h
Initial test suite commit
[bamtools.git] / src / test / api / SamHeader / SamSequenceDictionaryTest.h
diff --git a/src/test/api/SamHeader/SamSequenceDictionaryTest.h b/src/test/api/SamHeader/SamSequenceDictionaryTest.h
new file mode 100644 (file)
index 0000000..bd75e1e
--- /dev/null
@@ -0,0 +1,69 @@
+#ifndef SAMSEQUENCEDICTIONARY_TEST_H
+#define SAMSEQUENCEDICTIONARY_TEST_H
+
+#include "api/SamSequenceDictionary.h"
+#include <gtest/gtest.h>
+#include <vector>
+
+TEST(SamSequenceDictionaryTest, Empty) {
+
+    BamTools::SamSequenceDictionary sequences;
+    EXPECT_TRUE(sequences.IsEmpty());
+    EXPECT_EQ(0, sequences.Size());
+}
+
+TEST(SamSequenceDictionaryTest, AddOne) {
+
+    BamTools::SamSequenceDictionary sequences;
+    sequences.Add(BamTools::SamSequence());
+    EXPECT_FALSE(sequences.IsEmpty());
+    EXPECT_EQ(1, sequences.Size());
+}
+
+TEST(SamSequenceDictionaryTest, AddMulti) {
+
+    std::vector<BamTools::SamSequence> groups;
+    groups.push_back(BamTools::SamSequence("1", 100));
+    groups.push_back(BamTools::SamSequence("2", 100));
+
+    BamTools::SamSequenceDictionary sequences;
+    sequences.Add(groups);
+    EXPECT_FALSE(sequences.IsEmpty());
+    EXPECT_EQ(2, sequences.Size());
+}
+
+TEST(SamSequenceDictionaryTest, AddDuplicate) {
+
+    std::vector<BamTools::SamSequence> groups;
+    groups.push_back(BamTools::SamSequence("1", 100));
+    groups.push_back(BamTools::SamSequence("1", 100));
+
+    // add duplicates through Add()
+    BamTools::SamSequenceDictionary sequences;
+    sequences.Add(groups);
+    EXPECT_FALSE(sequences.IsEmpty());
+    EXPECT_EQ(1, sequences.Size());     // duplicate should not get added
+
+    // add duplicates through operator[]
+    sequences.Clear();
+    sequences["1"] = groups.at(0);
+    sequences["1"] = groups.at(0);
+    EXPECT_FALSE(sequences.IsEmpty());
+    EXPECT_EQ(1, sequences.Size());     // duplicate should not get added
+}
+
+TEST(SamSequenceDictionaryTest, Clear) {
+
+    // add a sequence
+    BamTools::SamSequenceDictionary sequences;
+    sequences.Add(BamTools::SamSequence());
+    EXPECT_FALSE(sequences.IsEmpty());
+    EXPECT_EQ(1, sequences.Size());;
+
+    // test clear
+    sequences.Clear();
+    EXPECT_TRUE(sequences.IsEmpty());
+    EXPECT_EQ(0, sequences.Size());
+}
+
+#endif // SAMSEQUENCEDICTIONARY_TEST_H