6
|
1 import unittest
|
|
2 from commons.core.coord.MergedRange import MergedRange
|
|
3 from commons.core.coord.Match import Match
|
|
4
|
|
5 class Test_MergedRange(unittest.TestCase):
|
|
6
|
|
7 def test_eq_True(self):
|
|
8 mr1 = MergedRange([1], 6, 10)
|
|
9 mr2 = MergedRange([1], 6, 10)
|
|
10 self.assertEquals(mr1, mr2)
|
|
11
|
|
12 def test_eq_different_list(self):
|
|
13 mr1 = MergedRange([1], 6, 10)
|
|
14 mr2 = MergedRange([1, 2], 6, 10)
|
|
15 self.assertNotEquals(mr1, mr2)
|
|
16
|
|
17 def test_eq_different_start(self):
|
|
18 mr1 = MergedRange([1], 5, 10)
|
|
19 mr2 = MergedRange([1], 6, 10)
|
|
20 self.assertNotEquals(mr1, mr2)
|
|
21
|
|
22 def test_eq_different_end(self):
|
|
23 mr1 = MergedRange([1], 6, 10)
|
|
24 mr2 = MergedRange([1], 6, 11)
|
|
25 self.assertNotEquals(mr1, mr2)
|
|
26
|
|
27 def test_isOverlapping_no( self ):
|
|
28 mr1 = MergedRange([1], 6, 10)
|
|
29 mr2 = MergedRange([2], 16, 20)
|
|
30 exp = False
|
|
31 obs = mr1.isOverlapping( mr2 )
|
|
32 self.assertEquals( exp, obs )
|
|
33
|
|
34 def test_isOverlapping_yes( self ):
|
|
35 mr1 = MergedRange([1], 6, 10)
|
|
36 mr2 = MergedRange([2], 5, 20)
|
|
37 exp = True
|
|
38 obs = mr1.isOverlapping( mr2 )
|
|
39 self.assertEquals( exp, obs )
|
|
40
|
|
41 def test_isOverlapping_range1_before_range2( self ):
|
|
42 mr1 = MergedRange([1], 6, 10)
|
|
43 mr2 = MergedRange([2], 8, 15)
|
|
44 exp = True
|
|
45 obs = mr1.isOverlapping( mr2 )
|
|
46 self.assertEquals( exp, obs )
|
|
47
|
|
48 def test_isOverlapping_range1_after_range2( self ):
|
|
49 mr1 = MergedRange([1], 6, 10)
|
|
50 mr2 = MergedRange([2], 1, 8)
|
|
51 exp = True
|
|
52 obs = mr1.isOverlapping( mr2 )
|
|
53 self.assertEquals( exp, obs )
|
|
54
|
|
55 def test_isOverlapping_range1_equal_range2( self ):
|
|
56 mr1 = MergedRange([1], 6, 10)
|
|
57 mr2 = MergedRange([2], 6, 10)
|
|
58 exp = True
|
|
59 obs = mr1.isOverlapping( mr2 )
|
|
60 self.assertEquals( exp, obs )
|
|
61
|
|
62 def test_merge_mr1_with_mr2(self):
|
|
63 otherMergedRange = MergedRange()
|
|
64 otherMergedRange._lId.append(3)
|
|
65 otherMergedRange._start = 1
|
|
66 otherMergedRange._end = 10
|
|
67
|
|
68 mr1 = MergedRange()
|
|
69 mr1._lId.append(1)
|
|
70 mr1._start = 6
|
|
71 mr1._end = 10
|
|
72
|
|
73 mr2 = MergedRange([2], 1, 15)
|
|
74 mr1.merge(mr2)
|
|
75
|
|
76 exp = MergedRange([1, 2], 1, 15)
|
|
77 self.assertEquals(exp, mr1)
|
|
78
|
|
79 def test_merge_mr2_with_mr1(self):
|
|
80 mr1 = MergedRange([1], 6, 10)
|
|
81 mr2 = MergedRange([2], 1, 15)
|
|
82 mr2.merge(mr1)
|
|
83 exp = MergedRange([1, 2], 1, 15)
|
|
84 self.assertEquals(exp, mr2)
|
|
85
|
|
86 def test_setFromMatch(self):
|
|
87 tuple = ("QName", 1, 5, 5, 0.1, 0.2, "SName", 5, 25, 20, 0.15, 1e-20, 15, 87.2, 1)
|
|
88 iMatch = Match()
|
|
89 iMatch.setFromTuple(tuple)
|
|
90
|
|
91 expMergedRange = MergedRange([1], 1, 5)
|
|
92 obsMergedRange = MergedRange()
|
|
93 obsMergedRange.setFromMatch(iMatch)
|
|
94
|
|
95 self.assertEquals(expMergedRange, obsMergedRange)
|
|
96
|
|
97 def test_getMergedRangeListFromMatchList(self):
|
|
98 tuple1 = ("QName", 1, 5, 5, 0.1, 0.2, "SName", 5, 25, 20, 0.15, 1e-20, 15, 87.2, 1)
|
|
99 iMatch1 = Match()
|
|
100 iMatch1.setFromTuple(tuple1)
|
|
101 tuple2 = ("QName", 10, 15, 5, 0.1, 0.2, "SName", 5, 25, 20, 0.15, 1e-20, 15, 87.2, 2)
|
|
102 iMatch2 = Match()
|
|
103 iMatch2.setFromTuple(tuple2)
|
|
104 lMatch = [iMatch1, iMatch2]
|
|
105
|
|
106 explMergedRange = [MergedRange([1], 1, 5), MergedRange([2], 10, 15)]
|
|
107 obslMergedRange = MergedRange.getMergedRangeListFromMatchList(lMatch)
|
|
108
|
|
109 self.assertEquals(explMergedRange, obslMergedRange)
|
|
110
|
|
111 def test_getMergedRangeListFromMatchList_empty_list(self):
|
|
112 lMatch = []
|
|
113 explMergedRange = []
|
|
114 obslMergedRange = MergedRange.getMergedRangeListFromMatchList(lMatch)
|
|
115
|
|
116 self.assertEquals(explMergedRange, obslMergedRange)
|
|
117
|
|
118 if __name__ == "__main__":
|
|
119 unittest.main() |