File: test_merge_all.py

package info (click to toggle)
python-gffutils 0.13-3
  • links: PTS, VCS
  • area: main
  • in suites: forky
  • size: 10,164 kB
  • sloc: python: 5,557; makefile: 57; sh: 13
file content (65 lines) | stat: -rw-r--r-- 2,445 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
from gffutils.test.synth_test_base import (
    TestWithSynthDB,
    num_synthetic_features,
    num_synthetic_overlap,
)


class TestMerge_all(TestWithSynthDB):
    def test_defaults(self):
        merged = self.db.merge_all()
        dump = self._dump_db()
        self.assertEqual(
            num_synthetic_features + 1, self.db.count_features_of_type(), dump
        )
        self.assertEqual(1, len(merged), dump)
        self.assertEqual(num_synthetic_overlap, len(merged[0].children), dump)

    def test_empty(self):
        self.db.delete(self.db.all_features())
        dump = self._dump_db()
        self.assertEqual(0, self.db.count_features_of_type(), dump)
        merged = self.db.merge_all()
        dump = self._dump_db()
        self.assertEqual(0, self.db.count_features_of_type(), dump)
        self.assertEqual(0, len(merged), dump)

    def test_one(self):
        features = self.db.all_features()
        next(features)
        self.db.delete(features)
        dump = self._dump_db()
        self.assertEqual(1, self.db.count_features_of_type(), dump)
        merged = self.db.merge_all()
        dump = self._dump_db()
        self.assertEqual(1, self.db.count_features_of_type(), dump)
        self.assertEqual(0, len(merged), dump)

    def test_no_overlap(self):
        self.db.delete(
            f for f in self.db.all_features() if f.id not in ("basic1", "no_overlap1")
        )
        dump = self._dump_db()
        self.assertEqual(2, self.db.count_features_of_type(), dump)
        merged = self.db.merge_all()
        dump = self._dump_db()
        self.assertEqual(2, self.db.count_features_of_type(), dump)
        self.assertEqual(0, len(merged), dump)

    def test_merge_groups(self):
        merged = self.db.merge_all(
            featuretypes_groups=({"sequence_feature", "misc_feature"},)
        )
        dump = self._dump_db()
        self.assertEqual(
            num_synthetic_features + 1, self.db.count_features_of_type(), dump
        )
        self.assertEqual(1, len(merged), dump)
        self.assertEqual(num_synthetic_overlap, len(merged[0].children), dump)

    def test_exclude_components(self):
        merged = self.db.merge_all(exclude_components=True)
        dump = self._dump_db()
        self.assertEqual(6, self.db.count_features_of_type(), dump)
        self.assertEqual(1, len(merged), dump)
        self.assertEqual(num_synthetic_overlap, len(merged[0].children), dump)