]> git.donarmstrong.com Git - bamtools.git/blob - src/test/api/SamHeader/SamSequenceDictionaryTest.h
Initial test suite commit
[bamtools.git] / src / test / api / SamHeader / SamSequenceDictionaryTest.h
1 #ifndef SAMSEQUENCEDICTIONARY_TEST_H
2 #define SAMSEQUENCEDICTIONARY_TEST_H
3
4 #include "api/SamSequenceDictionary.h"
5 #include <gtest/gtest.h>
6 #include <vector>
7
8 TEST(SamSequenceDictionaryTest, Empty) {
9
10     BamTools::SamSequenceDictionary sequences;
11     EXPECT_TRUE(sequences.IsEmpty());
12     EXPECT_EQ(0, sequences.Size());
13 }
14
15 TEST(SamSequenceDictionaryTest, AddOne) {
16
17     BamTools::SamSequenceDictionary sequences;
18     sequences.Add(BamTools::SamSequence());
19     EXPECT_FALSE(sequences.IsEmpty());
20     EXPECT_EQ(1, sequences.Size());
21 }
22
23 TEST(SamSequenceDictionaryTest, AddMulti) {
24
25     std::vector<BamTools::SamSequence> groups;
26     groups.push_back(BamTools::SamSequence("1", 100));
27     groups.push_back(BamTools::SamSequence("2", 100));
28
29     BamTools::SamSequenceDictionary sequences;
30     sequences.Add(groups);
31     EXPECT_FALSE(sequences.IsEmpty());
32     EXPECT_EQ(2, sequences.Size());
33 }
34
35 TEST(SamSequenceDictionaryTest, AddDuplicate) {
36
37     std::vector<BamTools::SamSequence> groups;
38     groups.push_back(BamTools::SamSequence("1", 100));
39     groups.push_back(BamTools::SamSequence("1", 100));
40
41     // add duplicates through Add()
42     BamTools::SamSequenceDictionary sequences;
43     sequences.Add(groups);
44     EXPECT_FALSE(sequences.IsEmpty());
45     EXPECT_EQ(1, sequences.Size());     // duplicate should not get added
46
47     // add duplicates through operator[]
48     sequences.Clear();
49     sequences["1"] = groups.at(0);
50     sequences["1"] = groups.at(0);
51     EXPECT_FALSE(sequences.IsEmpty());
52     EXPECT_EQ(1, sequences.Size());     // duplicate should not get added
53 }
54
55 TEST(SamSequenceDictionaryTest, Clear) {
56
57     // add a sequence
58     BamTools::SamSequenceDictionary sequences;
59     sequences.Add(BamTools::SamSequence());
60     EXPECT_FALSE(sequences.IsEmpty());
61     EXPECT_EQ(1, sequences.Size());;
62
63     // test clear
64     sequences.Clear();
65     EXPECT_TRUE(sequences.IsEmpty());
66     EXPECT_EQ(0, sequences.Size());
67 }
68
69 #endif // SAMSEQUENCEDICTIONARY_TEST_H