Mercurial > repos > yufei-luo > s_mart
comparison commons/core/coord/test/Test_MergedRange.py @ 6:769e306b7933
Change the repository level.
author | yufei-luo |
---|---|
date | Fri, 18 Jan 2013 04:54:14 -0500 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
5:ea3082881bf8 | 6:769e306b7933 |
---|---|
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() |