]> git.donarmstrong.com Git - bamtools.git/blobdiff - src/test/api/SamReadGroupDictionaryTest.h
Reorganized test suite source tree
[bamtools.git] / src / test / api / SamReadGroupDictionaryTest.h
diff --git a/src/test/api/SamReadGroupDictionaryTest.h b/src/test/api/SamReadGroupDictionaryTest.h
new file mode 100644 (file)
index 0000000..ccf8d89
--- /dev/null
@@ -0,0 +1,68 @@
+#ifndef SAMREADGROUPDICTIONARY_TEST_H
+#define SAMREADGROUPDICTIONARY_TEST_H
+
+#include "api/SamReadGroupDictionary.h"
+#include <gtest/gtest.h>
+#include <vector>
+
+TEST(SamReadGroupDictionaryTest, Empty) {
+    BamTools::SamReadGroupDictionary readGroups;
+    EXPECT_TRUE(readGroups.IsEmpty());
+    EXPECT_EQ(0, readGroups.Size());
+}
+
+TEST(SamReadGroupDictionaryTest, AddOne) {
+
+    BamTools::SamReadGroupDictionary readGroups;
+    readGroups.Add(BamTools::SamReadGroup());
+    EXPECT_FALSE(readGroups.IsEmpty());
+    EXPECT_EQ(1, readGroups.Size());
+}
+
+TEST(SamReadGroupDictionaryTest, AddMulti) {
+
+    std::vector<BamTools::SamReadGroup> groups;
+    groups.push_back(BamTools::SamReadGroup("1"));
+    groups.push_back(BamTools::SamReadGroup("2"));
+
+    BamTools::SamReadGroupDictionary readGroups;
+    readGroups.Add(groups);
+    EXPECT_FALSE(readGroups.IsEmpty());
+    EXPECT_EQ(2, readGroups.Size());
+}
+
+TEST(SamReadGroupDictionaryTest, AddDuplicate) {
+
+    std::vector<BamTools::SamReadGroup> groups;
+    groups.push_back(BamTools::SamReadGroup("1"));
+    groups.push_back(BamTools::SamReadGroup("1"));
+
+    // add duplicates through Add()
+    BamTools::SamReadGroupDictionary readGroups;
+    readGroups.Add(groups);
+    EXPECT_FALSE(readGroups.IsEmpty());
+    EXPECT_EQ(1, readGroups.Size());    // duplicate should not get added
+
+    // add duplicates through operator[]
+    readGroups.Clear();
+    readGroups["1"] = groups.at(0);
+    readGroups["1"] = groups.at(0);
+    EXPECT_FALSE(readGroups.IsEmpty());
+    EXPECT_EQ(1, readGroups.Size());     // duplicate should not get added
+}
+
+TEST(SamReadGroupDictionaryTest, Clear) {
+
+    // add a read group
+    BamTools::SamReadGroupDictionary readGroups;
+    readGroups.Add(BamTools::SamReadGroup());
+    EXPECT_FALSE(readGroups.IsEmpty());
+    EXPECT_EQ(1, readGroups.Size());;
+
+    // test clear
+    readGroups.Clear();
+    EXPECT_TRUE(readGroups.IsEmpty());
+    EXPECT_EQ(0, readGroups.Size());
+}
+
+#endif // SAMREADGROUPDICTIONARY_TEST_H