comparison smart_toolShed/commons/core/coord/test/Test_MergedRange.py @ 0:e0f8dcca02ed

Uploaded S-MART tool. A toolbox manages RNA-Seq and ChIP-Seq data.
author yufei-luo
date Thu, 17 Jan 2013 10:52:14 -0500
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:e0f8dcca02ed
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()