annotate commons/core/coord/test/Test_PathUtils.py @ 6:769e306b7933

Change the repository level.
author yufei-luo
date Fri, 18 Jan 2013 04:54:14 -0500
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
6
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1 # Copyright INRA (Institut National de la Recherche Agronomique)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
2 # http://www.inra.fr
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
3 # http://urgi.versailles.inra.fr
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
4 #
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
5 # This software is governed by the CeCILL license under French law and
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
6 # abiding by the rules of distribution of free software. You can use,
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
7 # modify and/ or redistribute the software under the terms of the CeCILL
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
8 # license as circulated by CEA, CNRS and INRIA at the following URL
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
9 # "http://www.cecill.info".
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
10 #
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
11 # As a counterpart to the access to the source code and rights to copy,
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
12 # modify and redistribute granted by the license, users are provided only
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
13 # with a limited warranty and the software's author, the holder of the
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
14 # economic rights, and the successive licensors have only limited
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
15 # liability.
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
16 #
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
17 # In this respect, the user's attention is drawn to the risks associated
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
18 # with loading, using, modifying and/or developing or reproducing the
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
19 # software by the user in light of its specific status of free software,
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
20 # that may mean that it is complicated to manipulate, and that also
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
21 # therefore means that it is reserved for developers and experienced
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
22 # professionals having in-depth computer knowledge. Users are therefore
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
23 # encouraged to load and test the software's suitability as regards their
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
24 # requirements in conditions enabling the security of their systems and/or
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
25 # data to be ensured and, more generally, to use and operate it in the
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
26 # same conditions as regards security.
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
27 #
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
28 # The fact that you are presently reading this means that you have had
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
29 # knowledge of the CeCILL license and that you accept its terms.
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
30
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
31
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
32 import unittest
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
33 import os
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
34 import time
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
35 from commons.core.coord.PathUtils import PathUtils
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
36 from commons.core.coord.Path import Path
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
37 from commons.core.coord.Set import Set
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
38 from commons.core.utils.FileUtils import FileUtils
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
39 from commons.core.coord.Range import Range
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
40 from commons.core.coord.Align import Align
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
41
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
42
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
43 class Test_PathUtils ( unittest.TestCase ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
44
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
45 def test_getSetListFromQueries( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
46 set1 = Set(1,"TE2","chr1",1,10)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
47 set2 = Set(1,"TE2","chr1",10,1)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
48 set3 = Set(1,"TE3","chr4",12,22)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
49
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
50 expList = [set1, set2, set3]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
51
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
52 tuple1 = ("1","chr1","1","10","TE2","11","17","1e-20","30","90.2")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
53 tuple2 = ("1","chr1","10","1","TE2","11","17","1e-20","30","90.2")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
54 tuple3 = ("1","chr4","12","22","TE3","11","17","1e-20","30","90.2")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
55
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
56 pathList = self._makePathListFromTupleList( [ tuple1, tuple2, tuple3 ] )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
57
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
58 obsList = PathUtils.getSetListFromQueries( pathList )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
59
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
60 self.assertEquals( expList, obsList )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
61
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
62
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
63 def test_getSetListFromQueries_on_empty_list( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
64 expList = []
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
65 obsList = PathUtils.getSetListFromQueries( [] )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
66
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
67 self.assertEquals( expList, obsList )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
68
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
69
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
70 def test_getSetListFromQueries_on_list_size1( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
71 set1 = Set(1,"TE2","chr1",1,10)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
72
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
73 expList = [set1]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
74
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
75 tuple1 = ("1","chr1","1","10","TE2","11","17","1e-20","30","90.2")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
76 path1 = Path()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
77 path1.setFromTuple(tuple1)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
78
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
79 pathList = [path1]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
80 obsList = PathUtils.getSetListFromQueries( pathList )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
81
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
82 self.assertEquals( expList, obsList )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
83
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
84
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
85 def test_getRangeListFromSubjects_initiallyOrdered_directStrand( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
86 tuple1 = ("1","chr1","1","10","TE2","1","10","1e-20","30","90.2")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
87 tuple2 = ("1","chr1","21","30","TE2","11","20","1e-20","30","90.2")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
88 tuple3 = ("1","chr1","41","50","TE2","21","30","1e-20","30","90.2")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
89 lPaths = self._makePathListFromTupleList( [ tuple1, tuple2, tuple3 ] )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
90
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
91 iSet1 = Range( "TE2", 1, 10 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
92 iSet2 = Range( "TE2", 11, 20 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
93 iSet3 = Range( "TE2", 21, 30 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
94 lExp = [ iSet1, iSet2, iSet3 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
95
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
96 lObs = PathUtils.getRangeListFromSubjects( lPaths )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
97
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
98 self.assertEquals( lExp, lObs )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
99
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
100
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
101 def test_getRangeListFromSubjects_initiallyUnordered_directStrand( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
102 tuple1 = ("1","chr1","1","10","TE2","1","10","1e-20","30","90.2")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
103 tuple2 = ("1","chr1","41","50","TE2","21","30","1e-20","30","90.2")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
104 tuple3 = ("1","chr1","21","30","TE2","11","20","1e-20","30","90.2")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
105 lPaths = self._makePathListFromTupleList( [ tuple1, tuple2, tuple3 ] )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
106
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
107 iSet1 = Range( "TE2", 1, 10 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
108 iSet2 = Range( "TE2", 11, 20 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
109 iSet3 = Range( "TE2", 21, 30 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
110 lExp = [ iSet1, iSet2, iSet3 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
111
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
112 lObs = PathUtils.getRangeListFromSubjects( lPaths )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
113
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
114 self.assertEquals( lExp, lObs )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
115
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
116
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
117 def test_getRangeListFromSubjects_initiallyUnordered_reverseStrand( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
118 tuple1 = ("1","chr1","1","10","TE2","10","1","1e-20","30","90.2")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
119 tuple2 = ("1","chr1","41","50","TE2","30","21","1e-20","30","90.2")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
120 tuple3 = ("1","chr1","21","30","TE2","20","11","1e-20","30","90.2")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
121 lPaths = self._makePathListFromTupleList( [ tuple1, tuple2, tuple3 ] )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
122
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
123 iSet3 = Range( "TE2", 30, 21 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
124 iSet2 = Range( "TE2", 20, 11 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
125 iSet1 = Range( "TE2", 10, 1 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
126 lExp = [ iSet1, iSet2, iSet3 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
127
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
128 lObs = PathUtils.getRangeListFromSubjects( lPaths )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
129
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
130 self.assertEquals( lExp, lObs )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
131
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
132
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
133 def test_getQueryMinMaxFromPathList( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
134 tuple1 = ("1","chr1","1","10","TE2","11","17","1e-20","30","90.2")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
135 tuple2 = ("1","chr1","10","1","TE2","11","17","1e-20","30","90.2")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
136 tuple3 = ("1","chr4","12","22","TE3","11","17","1e-20","30","90.2")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
137
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
138 pathList = self._makePathListFromTupleList([tuple1, tuple2, tuple3])
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
139
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
140 obsTuple = PathUtils.getQueryMinMaxFromPathList( pathList )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
141 expTuple = (1,22)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
142
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
143 self.assertEquals(expTuple, obsTuple)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
144
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
145 def test_getQueryMinMaxFromPathList_on_empty_list( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
146 obsTuple = PathUtils.getQueryMinMaxFromPathList( [] )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
147 expTuple = (-1,-1)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
148 self.assertEquals( expTuple, obsTuple )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
149
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
150 def test_getQueryMinMaxFromPathList_on_list_size1( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
151 tuple1 = ("1","chr1","1","10","TE2","11","17","1e-20","30","90.2")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
152 path1 = Path()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
153 path1.setFromTuple(tuple1)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
154
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
155 pathList = [path1]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
156 obsTuple = PathUtils.getQueryMinMaxFromPathList( pathList )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
157
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
158 expTuple = (1,10)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
159
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
160 self.assertEquals(expTuple, obsTuple)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
161
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
162 def test_getSubjectMinMaxFromPathList( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
163 tuple1 = ("1","chr1","1","10","TE2","11","17","1e-20","30","90.2")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
164 tuple2 = ("1","chr1","10","1","TE2","17","11","1e-20","30","90.2")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
165 tuple3 = ("1","chr4","12","22","TE3","22","34","1e-20","30","90.2")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
166
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
167 pathList = self._makePathListFromTupleList([tuple1, tuple2, tuple3])
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
168 obsTuple = PathUtils.getSubjectMinMaxFromPathList(pathList)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
169
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
170 expTuple = (11,34)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
171
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
172 self.assertEquals(expTuple, obsTuple)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
173
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
174 def test_getSubjectMinMaxFromPathList_on_empty_list( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
175 obsTuple = PathUtils.getSubjectMinMaxFromPathList([])
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
176 expTuple = (-1,-1)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
177 self.assertEquals(expTuple, obsTuple)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
178
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
179 def test_getSubjectMinMaxFromPathList_on_list_size1( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
180 tuple1 = ("1","chr1","1","10","TE2","11","17","1e-20","30","90.2")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
181 path1 = Path()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
182 path1.setFromTuple(tuple1)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
183
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
184 pathList = [path1]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
185 obsTuple = PathUtils.getSubjectMinMaxFromPathList(pathList)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
186
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
187 expTuple = (11,17)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
188
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
189 self.assertEquals(expTuple, obsTuple)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
190
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
191 def test_areQueriesOverlappingBetweenPathLists_list2_empty( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
192 tuple1 = ("1","chr1","100","110","TE2","15","10","1e-20","30","90.2")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
193 tuple2 = ("1","chr1","200","220","TE2","15","10","1e-20","30","90.2")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
194 tuple3 = ("1","chr1","300","330","TE2","15","10","1e-20","30","90.2")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
195 pathList1 = self._makePathListFromTupleList([tuple1, tuple2, tuple3])
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
196
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
197 pathList2 = []
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
198
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
199 expRes = False
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
200 obsRes = PathUtils.areQueriesOverlappingBetweenPathLists( pathList1, pathList2 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
201
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
202 self.assertEquals( expRes, obsRes )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
203
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
204 def test_areQueriesOverlappingBetweenPathLists_list2_size1( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
205 tuple1 = ("1","chr1","9","11","TE2","150","200","1e-20","30","90.2")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
206 tuple2 = ("1","chr1","20","22","TE2","150","200","1e-20","30","90.2")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
207 tuple3 = ("1","chr1","30","33","TE2","150","200","1e-20","30","90.2")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
208 pathList1 = self._makePathListFromTupleList( [ tuple1, tuple2, tuple3 ] )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
209
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
210 tuple11 = ("1","chr1","8","11","TE2","150","200","1e-20","30","90.2")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
211 pathList2 = self._makePathListFromTupleList( [ tuple11 ] )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
212
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
213 expRes = True
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
214 obsRes = PathUtils.areQueriesOverlappingBetweenPathLists( pathList1, pathList2 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
215
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
216 self.assertEquals( expRes, obsRes )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
217
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
218 def test_areQueriesOverlappingBetweenPathLists_list1_greater_list2( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
219 tuple1 = ("1","chr1","100","110","TE2","15","10","1e-20","30","90.2")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
220 tuple2 = ("1","chr1","200","220","TE2","15","10","1e-20","30","90.2")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
221 tuple3 = ("1","chr1","300","330","TE2","15","10","1e-20","30","90.2")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
222 pathList1 = self._makePathListFromTupleList( [ tuple1, tuple2, tuple3 ] )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
223
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
224 tuple11 = ("1","chr1","10","11","TE2","150","200","1e-20","30","90.2")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
225 tuple22 = ("1","chr1","20","22","TE2","150","200","1e-20","30","90.2")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
226 tuple33 = ("1","chr1","30","33","TE2","150","200","1e-20","30","90.2")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
227 pathList2 = self._makePathListFromTupleList( [ tuple11, tuple22, tuple33 ] )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
228
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
229 expRes = False
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
230 obsRes = PathUtils.areQueriesOverlappingBetweenPathLists( pathList1, pathList2 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
231
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
232 self.assertEquals( expRes, obsRes )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
233
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
234 def test_areQueriesOverlappingBetweenPathLists_unordered_first_item_of_list1_greater_second_item_smaller( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
235 tuple1 = ("1","chr1","400","440","TE2","15","10","1e-20","30","90.2")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
236 tuple2 = ("1","chr1","1","11","TE2","15","10","1e-20","30","90.2")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
237 pathList1 = self._makePathListFromTupleList( [ tuple1, tuple2 ] )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
238
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
239 tuple11 = ("1","chr1","15","17","TE2","150","200","1e-20","30","90.2")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
240 tuple22 = ("1","chr1","20","22","TE2","150","200","1e-20","30","90.2")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
241 tuple33 = ("1","chr1","30","33","TE2","150","200","1e-20","30","90.2")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
242 pathList2 = self._makePathListFromTupleList( [ tuple11, tuple22, tuple33 ] )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
243
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
244 expRes = False
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
245 obsRes = PathUtils.areQueriesOverlappingBetweenPathLists( pathList1, pathList2 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
246
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
247 self.assertEquals( expRes, obsRes )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
248
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
249 def test_areQueriesOverlappingBetweenPathLists_unorderd_second_item_of_list1_overlap_first_item( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
250 tuple1 = ("1","chr1","400","440","TE2","15","10","1e-20","30","90.2")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
251 tuple2 = ("1","chr1","1","18","TE2","15","10","1e-20","30","90.2")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
252 pathList1 = self._makePathListFromTupleList( [ tuple1, tuple2 ] )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
253
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
254 tuple11 = ("1","chr1","15","17","TE2","150","200","1e-20","30","90.2")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
255 tuple22 = ("1","chr1","20","22","TE2","150","200","1e-20","30","90.2")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
256 tuple33 = ("1","chr1","30","33","TE2","150","200","1e-20","30","90.2")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
257 pathList2 = self._makePathListFromTupleList( [ tuple11, tuple22, tuple33 ] )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
258
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
259 expRes = True
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
260 obsRes = PathUtils.areQueriesOverlappingBetweenPathLists( pathList1, pathList2 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
261
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
262 self.assertEquals( expRes, obsRes )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
263
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
264 def test_areQueriesOverlappingBetweenPathLists_last_item_list1_overlap_last_item_list2( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
265 tuple1 = ("1","chr1","400","440","TE2","15","10","1e-20","30","90.2")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
266 tuple2 = ("1","chr1","320","340","TE2","15","10","1e-20","30","90.2")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
267 pathList1 = self._makePathListFromTupleList( [ tuple1, tuple2 ] )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
268
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
269 tuple11 = ("1","chr1","100","110","TE2","150","200","1e-20","30","90.2")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
270 tuple22 = ("1","chr1","200","220","TE2","150","200","1e-20","30","90.2")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
271 tuple33 = ("1","chr1","300","330","TE2","150","200","1e-20","30","90.2")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
272 pathList2 = self._makePathListFromTupleList( [ tuple11, tuple22, tuple33 ] )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
273
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
274 expRes = True
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
275 obsRes = PathUtils.areQueriesOverlappingBetweenPathLists( pathList1, pathList2 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
276
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
277 self.assertEquals( expRes, obsRes )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
278
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
279 def test_writeListInFile( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
280 line1 = ("1\tchr1\t100\t110\tTE2\t150\t200\t1e-20\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
281 line2 = ("1\tchr1\t200\t220\tTE2\t150\t200\t1e-20\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
282 line3 = ("1\tchr1\t300\t330\tTE2\t150\t200\t1e-20\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
283
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
284 expFileName = "expFileName.path"
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
285 expFileHandle = open ( expFileName, 'w' )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
286 expFileHandle.write(line1)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
287 expFileHandle.write(line2)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
288 expFileHandle.write(line3)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
289 expFileHandle.close()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
290
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
291 line1 = ("1\tchr1\t100\t110\tTE2\t150\t200\t1e-20\t30\t90.2\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
292 line2 = ("1\tchr1\t200\t220\tTE2\t150\t200\t1e-20\t30\t90.2\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
293 line3 = ("1\tchr1\t300\t330\tTE2\t150\t200\t1e-20\t30\t90.2\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
294
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
295 obsFileName = "obsFileName.path"
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
296 obsPathList = self._makePathListFromStringList( [ line1, line2, line3 ] )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
297
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
298 PathUtils.writeListInFile( obsPathList, obsFileName )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
299
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
300 self.assertTrue( FileUtils.are2FilesIdentical( expFileName, obsFileName ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
301
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
302 os.remove( obsFileName )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
303 os.remove( expFileName )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
304
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
305 def test_writeListInFile_in_append_mode( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
306 line1 = ("1\tchr1\t100\t110\tTE2\t150\t200\t1e-20\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
307 line2 = ("1\tchr1\t200\t220\tTE2\t150\t200\t1e-20\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
308 line3 = ("1\tchr1\t300\t330\tTE2\t150\t200\t1e-20\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
309 line4 = ("1\tchr1\t400\t410\tTE2\t150\t200\t1e-20\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
310 line5 = ("1\tchr1\t500\t520\tTE2\t150\t200\t1e-20\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
311 line6 = ("1\tchr1\t600\t630\tTE2\t150\t200\t1e-20\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
312
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
313 expFileName = "expFileName.path"
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
314 expFileHandle = open ( expFileName, 'w' )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
315 expFileHandle.write(line1)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
316 expFileHandle.write(line2)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
317 expFileHandle.write(line3)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
318 expFileHandle.write(line4)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
319 expFileHandle.write(line5)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
320 expFileHandle.write(line6)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
321 expFileHandle.close()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
322
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
323 line1 = ("1\tchr1\t100\t110\tTE2\t150\t200\t1e-20\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
324 line2 = ("1\tchr1\t200\t220\tTE2\t150\t200\t1e-20\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
325 line3 = ("1\tchr1\t300\t330\tTE2\t150\t200\t1e-20\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
326 line4 = ("1\tchr1\t400\t410\tTE2\t150\t200\t1e-20\t30\t90.2\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
327 line5 = ("1\tchr1\t500\t520\tTE2\t150\t200\t1e-20\t30\t90.2\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
328 line6 = ("1\tchr1\t600\t630\tTE2\t150\t200\t1e-20\t30\t90.2\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
329
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
330 obsFileName = "obsFileName.path"
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
331 obsFileHandle = open( obsFileName, 'w' )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
332 obsFileHandle.write(line1)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
333 obsFileHandle.write(line2)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
334 obsFileHandle.write(line3)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
335 obsFileHandle.close()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
336
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
337 obsPathList = self._makePathListFromStringList( [ line4, line5, line6 ] )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
338
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
339 PathUtils.writeListInFile( obsPathList, obsFileName, "a" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
340
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
341 self.assertTrue( FileUtils.are2FilesIdentical( expFileName, obsFileName ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
342
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
343 os.remove(obsFileName)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
344 os.remove(expFileName)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
345
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
346 def test_getPathListWithoutDuplicates_empty_list( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
347 pathList = []
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
348 obsPathList = PathUtils.getPathListWithoutDuplicates( pathList )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
349
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
350 expPathList = []
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
351
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
352 self.assertEquals( expPathList, obsPathList )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
353
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
354 def test_getPathListWithoutDuplicates_list_size1( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
355 line1 = ("1\tchr1\t100\t110\tTE2\t150\t200\t0.000000\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
356 pathList = self._makePathListFromStringList([line1])
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
357
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
358 obsPathList = PathUtils.getPathListWithoutDuplicates( pathList )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
359
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
360 expPathList = pathList
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
361
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
362 self.assertEquals( expPathList, obsPathList )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
363
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
364 def test_getPathListWithoutDuplicates_list_with_only_doublons( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
365 line1 = ("1\tchr1\t100\t110\tTE2\t150\t200\t0.000000\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
366 line2 = ("1\tchr1\t100\t110\tTE2\t150\t200\t0.000000\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
367 line3 = ("1\tchr1\t100\t110\tTE2\t150\t200\t0.000000\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
368 line4 = ("1\tchr1\t100\t110\tTE2\t150\t200\t0.000000\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
369 pathList = self._makePathListFromStringList( [ line1, line2, line3, line4 ] )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
370
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
371 obsPathList = PathUtils.getPathListWithoutDuplicates( pathList )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
372
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
373 expPathList = self._makePathListFromStringList( [ line1 ] )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
374
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
375 self.assertEquals( expPathList, obsPathList )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
376
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
377 def test_getPathListWithoutDuplicates_list_with_doublons_at_start_and_at_end( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
378 line1 = ("1\tchr1\t100\t110\tTE2\t150\t200\t0.000000\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
379 line2 = ("1\tchr1\t200\t210\tTE2\t150\t200\t0.000000\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
380 line3 = ("1\tchr1\t300\t310\tTE2\t150\t200\t0.000000\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
381 line4 = ("1\tchr1\t100\t110\tTE2\t150\t200\t0.000000\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
382 pathList = self._makePathListFromStringList( [ line1, line2, line3, line4 ] )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
383
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
384 obsPathList = PathUtils.getPathListWithoutDuplicates( pathList )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
385
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
386 expPathList = self._makePathListFromStringList( [ line1, line2, line3 ] )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
387 expPathList = PathUtils.getPathListSortedByIncreasingMinQueryThenMaxQuery( expPathList )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
388
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
389 self.assertEquals( expPathList, obsPathList )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
390
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
391 def test_getPathListWithoutDuplicates_list_with_contiguus_doublons( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
392 line1 = ("1\tchr1\t200\t210\tTE2\t150\t200\t0.000000\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
393 line2 = ("1\tchr1\t100\t110\tTE2\t150\t200\t0.000000\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
394 line3 = ("1\tchr1\t100\t110\tTE2\t150\t200\t0.000000\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
395 line4 = ("1\tchr1\t300\t310\tTE2\t150\t200\t0.000000\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
396 pathList = self._makePathListFromStringList( [ line1, line2, line3, line4 ] )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
397
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
398 obsPathList = PathUtils.getPathListWithoutDuplicates( pathList )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
399
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
400 expPathList = self._makePathListFromStringList( [ line1, line2, line4 ] )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
401 expPathList = PathUtils.getPathListSortedByIncreasingMinQueryThenMaxQuery( expPathList )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
402
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
403 self.assertEquals( expPathList, obsPathList )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
404
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
405 def test_getPathListWithoutDuplicates_list_with_one_doublon( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
406 line1 = ("1\tchr1\t200\t210\tTE2\t150\t200\t0.000000\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
407 line2 = ("1\tchr1\t100\t110\tTE2\t150\t200\t0.000000\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
408 line3 = ("1\tchr1\t210\t250\tTE2\t150\t200\t0.000000\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
409 line4 = ("1\tchr1\t100\t110\tTE2\t150\t200\t0.000000\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
410 line5 = ("1\tchr1\t300\t310\tTE2\t150\t200\t0.000000\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
411 pathList = self._makePathListFromStringList( [ line1, line2, line3, line4, line5 ] )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
412
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
413 obsPathList = PathUtils.getPathListWithoutDuplicates( pathList )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
414
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
415 expPathList = self._makePathListFromStringList( [ line1, line2, line3, line5 ] )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
416 expPathList = PathUtils.getPathListSortedByIncreasingMinQueryThenMaxQuery( expPathList )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
417
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
418 self.assertEquals( expPathList, obsPathList )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
419
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
420 def test_getPathListWithoutDuplicates_list_with_two_doublons( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
421 line1 = ("1\tchr1\t200\t210\tTE2\t150\t200\t0.000000\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
422 line2 = ("1\tchr1\t100\t110\tTE2\t150\t200\t0.000000\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
423 line3 = ("1\tchr1\t210\t250\tTE2\t150\t200\t0.000000\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
424 line4 = ("1\tchr1\t230\t250\tTE2\t150\t200\t0.000000\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
425 line5 = ("1\tchr1\t210\t250\tTE2\t150\t200\t0.000000\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
426 line6 = ("1\tchr1\t100\t110\tTE2\t150\t200\t0.000000\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
427 line7 = ("1\tchr1\t300\t310\tTE2\t150\t200\t0.000000\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
428 pathList = self._makePathListFromStringList( [ line1, line2, line3, line4, line5, line6, line7 ] )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
429
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
430 obsPathList = PathUtils.getPathListWithoutDuplicates( pathList )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
431
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
432 expPathList = self._makePathListFromStringList( [ line1, line2, line3, line4, line7 ] )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
433 expPathList = PathUtils.getPathListSortedByIncreasingMinQueryThenMaxQuery( expPathList )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
434
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
435 self.assertEquals( expPathList, obsPathList )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
436
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
437 def test_getPathListWithoutDuplicates_list_with_two_doublons_useOnlyCoord_is_False_different_id( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
438 line1 = ("1\tchr1\t200\t210\tTE2\t150\t200\t0.000000\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
439 line2 = ("2\tchr1\t200\t210\tTE2\t150\t200\t0.000000\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
440 line3 = ("3\tchr1\t200\t210\tTE2\t150\t200\t0.000000\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
441 line4 = ("4\tchr1\t200\t210\tTE2\t150\t200\t0.000000\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
442 line5 = ("1\tchr1\t200\t210\tTE2\t150\t200\t0.000000\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
443 line6 = ("1\tchr1\t200\t210\tTE2\t150\t200\t0.000000\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
444 line7 = ("5\tchr1\t200\t210\tTE2\t150\t200\t0.000000\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
445 pathList = self._makePathListFromStringList( [ line1, line2, line3, line4, line5, line6, line7 ] )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
446
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
447 obsPathList = PathUtils.getPathListWithoutDuplicates( pathList )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
448
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
449 expPathList = self._makePathListFromStringList( [ line1, line2, line3, line4, line7 ] )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
450 expPathList = PathUtils.getPathListSortedByIncreasingMinQueryThenMaxQuery( expPathList )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
451
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
452 self.assertEquals( expPathList, obsPathList )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
453
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
454 def test_getPathListWithoutDuplicates_list_with_two_doublons_useOnlyCoord_is_True_different_id( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
455 line1 = ("1\tchr1\t200\t210\tTE2\t150\t200\t0.000000\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
456 line2 = ("2\tchr1\t200\t210\tTE2\t150\t200\t0.000000\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
457 line3 = ("3\tchr1\t200\t210\tTE2\t150\t200\t0.000000\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
458 line4 = ("4\tchr1\t200\t210\tTE2\t150\t200\t0.000000\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
459 line5 = ("1\tchr1\t200\t210\tTE2\t150\t200\t0.000000\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
460 line6 = ("1\tchr1\t200\t210\tTE2\t150\t200\t0.000000\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
461 line7 = ("5\tchr1\t200\t210\tTE2\t150\t200\t0.000000\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
462 pathList = self._makePathListFromStringList( [ line1, line2, line3, line4, line5, line6, line7 ] )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
463
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
464 obsPathList = PathUtils.getPathListWithoutDuplicates( pathList, True )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
465
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
466 expPathList = self._makePathListFromStringList( [ line1 ] )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
467 expPathList = PathUtils.getPathListSortedByIncreasingMinQueryThenMaxQuery( expPathList )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
468
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
469 self.assertEquals( expPathList, obsPathList )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
470
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
471 def test_path_getDictOfListsWithIdAsKey_empty_list( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
472 pathList = []
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
473
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
474 obsDict = PathUtils.getDictOfListsWithIdAsKey( pathList )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
475 expDict = {}
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
476
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
477 self.assertEquals( expDict, obsDict )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
478
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
479 def test_path_getDictOfListsWithIdAsKey_list_size1( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
480 line1 = ( "1\tchr1\t100\t110\tTE2\t150\t200\t0.000000\t30\t90.200000\n" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
481 pathList = self._makePathListFromStringList( [ line1 ] )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
482
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
483 obsDict = PathUtils.getDictOfListsWithIdAsKey( pathList )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
484
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
485 expPathInstance = Path()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
486 expPathInstance.setFromString( line1 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
487 expDict = { 1: [ expPathInstance ] }
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
488
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
489 self.assertEquals( expDict, obsDict )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
490
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
491 def test_getDictOfListsWithIdAsKey_ids_only_once( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
492 line1 = ( "1\tchr1\t100\t110\tTE2\t150\t200\t0.000000\t30\t90.200000\n" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
493 line2 = ( "2\tchr1\t200\t210\tTE2\t150\t200\t0.000000\t30\t90.200000\n" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
494 line3 = ( "3\tchr1\t210\t250\tTE2\t150\t200\t0.000000\t30\t90.200000\n" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
495
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
496 pathList = self._makePathListFromStringList( [ line1, line2, line3 ] )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
497
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
498 obsDict = PathUtils.getDictOfListsWithIdAsKey( pathList )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
499
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
500 expPathInstance1 = Path()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
501 expPathInstance1.setFromString( line1 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
502
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
503 expPathInstance2 = Path()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
504 expPathInstance2.setFromString( line2 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
505
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
506 expPathInstance3 = Path()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
507 expPathInstance3.setFromString( line3 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
508
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
509 expDict = { 1: [ expPathInstance1 ], 2: [ expPathInstance2 ], 3: [ expPathInstance3 ] }
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
510
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
511 self.assertEquals( expDict, obsDict )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
512
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
513 def test_getDictOfListsWithIdAsKey_ids_more_than_only_once( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
514 line1 = ( "1\tchr1\t100\t110\tTE2\t150\t200\t0.000000\t30\t90.200000\n" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
515 line2 = ( "2\tchr1\t200\t210\tTE2\t150\t200\t0.000000\t30\t90.200000\n" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
516 line3 = ( "3\tchr1\t210\t250\tTE2\t150\t200\t0.000000\t30\t90.200000\n" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
517
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
518 line4 = ( "1\tchr1\t100\t120\tTE2\t150\t200\t0.000000\t30\t90.200000\n" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
519 line5 = ( "2\tchr1\t200\t220\tTE2\t150\t200\t0.000000\t30\t90.200000\n" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
520 line6 = ( "3\tchr1\t210\t260\tTE2\t150\t200\t0.000000\t30\t90.200000\n" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
521
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
522 line7 = ( "1\tchr1\t110\t120\tTE2\t150\t200\t0.000000\t30\t90.200000\n" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
523 line8 = ( "2\tchr1\t210\t220\tTE2\t150\t200\t0.000000\t30\t90.200000\n" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
524 line9 = ( "3\tchr1\t220\t260\tTE2\t150\t200\t0.000000\t30\t90.200000\n" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
525
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
526 pathList = self._makePathListFromStringList( [ line1, line2, line3, line4, line5, line6, line7, line8, line9 ] )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
527
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
528 obsDict = PathUtils.getDictOfListsWithIdAsKey( pathList )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
529
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
530 expPathInstance1 = Path()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
531 expPathInstance1.setFromString( line1 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
532
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
533 expPathInstance2 = Path()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
534 expPathInstance2.setFromString( line2 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
535
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
536 expPathInstance3 = Path()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
537 expPathInstance3.setFromString( line3 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
538
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
539 expPathInstance4 = Path()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
540 expPathInstance4.setFromString( line4 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
541
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
542 expPathInstance5 = Path()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
543 expPathInstance5.setFromString( line5 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
544
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
545 expPathInstance6 = Path()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
546 expPathInstance6.setFromString( line6 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
547
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
548 expPathInstance7 = Path()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
549 expPathInstance7.setFromString( line7 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
550
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
551 expPathInstance8 = Path()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
552 expPathInstance8.setFromString( line8 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
553
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
554 expPathInstance9 = Path()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
555 expPathInstance9.setFromString( line9 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
556
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
557 expDict = { 1: [ expPathInstance1, expPathInstance4, expPathInstance7 ], 2 :[ expPathInstance2, expPathInstance5, expPathInstance8 ], 3: [ expPathInstance3, expPathInstance6, expPathInstance9 ] }
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
558
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
559 self.assertEquals( expDict, obsDict )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
560
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
561 def test_getPathListUnjoinedBasedOnQuery_listToKeep_empty_listToUnjoin_empty( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
562 pathListToKeep = []
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
563 pathListToUnjoin = []
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
564
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
565 expList = []
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
566
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
567 obsList = PathUtils.getPathListUnjoinedBasedOnQuery( pathListToKeep, pathListToUnjoin )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
568
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
569 self.assertEquals( expList, obsList )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
570
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
571 def test_getPathListUnjoinedBasedOnQuery_listToKeep_empty_listToUnjoin_size1( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
572 pathListToKeep = []
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
573
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
574 line1 = ("1\tchr1\t100\t110\tTE2\t150\t200\t0.000000\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
575 pathListToUnjoin = self._makePathListFromStringList( [ line1 ] )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
576
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
577 expList = [ pathListToUnjoin ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
578
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
579 obsList = PathUtils.getPathListUnjoinedBasedOnQuery( pathListToKeep, pathListToUnjoin )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
580
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
581 self.assertEquals( expList, obsList )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
582
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
583 def test_getPathListUnjoinedBasedOnQuery_listToKeep_size1_listToUnjoin_empty( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
584 lineKeep1 = ("1\tchr1\t1\t11\tTE2\t150\t200\t0.000000\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
585 pathListToKeep = self._makePathListFromStringList( [ lineKeep1 ] )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
586
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
587 pathListToUnjoin = []
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
588
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
589 expList = []
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
590
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
591 obsList = PathUtils.getPathListUnjoinedBasedOnQuery( pathListToKeep, pathListToUnjoin )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
592
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
593 self.assertEquals( expList, obsList )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
594
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
595 def test_getPathListUnjoinedBasedOnQuery_listToKeep_empty( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
596 pathListToKeep = []
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
597
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
598 line1 = ("1\tchr1\t100\t110\tTE2\t150\t200\t0.000000\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
599 line2 = ("1\tchr1\t200\t210\tTE2\t150\t200\t0.000000\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
600 line3 = ("1\tchr1\t250\t280\tTE2\t150\t200\t0.000000\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
601 pathListToUnjoin = self._makePathListFromStringList( [ line1, line2, line3 ] )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
602
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
603 expList = [ pathListToUnjoin ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
604
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
605 obsList = PathUtils.getPathListUnjoinedBasedOnQuery( pathListToKeep, pathListToUnjoin )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
606
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
607 self.assertEquals( expList, obsList )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
608
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
609 def test_getPathListUnjoinedBasedOnQuery_listToKeep_size1_listToUnjoin_size1( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
610 lineKeep1 = ("1\tchr1\t1\t11\tTE2\t150\t200\t0.000000\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
611 pathListToKeep = self._makePathListFromStringList( [ lineKeep1 ] )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
612
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
613 lineUnjoin1 = ("1\tchr1\t100\t110\tTE2\t150\t200\t0.000000\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
614 pathListToUnjoin = self._makePathListFromStringList( [ lineUnjoin1 ] )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
615
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
616 expList = [ pathListToUnjoin ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
617
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
618 obsList = PathUtils.getPathListUnjoinedBasedOnQuery( pathListToKeep, pathListToUnjoin )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
619
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
620 self.assertEquals( expList, obsList )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
621
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
622 def test_getPathListUnjoinedBasedOnQuery_listToKeep_size1_listToUnjoin_size2_noSplit_minKeep( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
623 lineKeep1 = ("1\tchr1\t1\t10\tTE2\t150\t90\t0.000000\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
624 pathListToKeep = self._makePathListFromStringList( [ lineKeep1 ] )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
625
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
626 lineUnjoin1 = ("1\tchr1\t100\t110\tTE2\t150\t200\t0.000000\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
627 lineUnjoin2 = ("1\tchr1\t200\t210\tTE2\t150\t200\t0.000000\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
628 pathListToUnjoin = self._makePathListFromStringList( [ lineUnjoin1, lineUnjoin2 ] )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
629
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
630 expList = [ pathListToUnjoin ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
631
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
632 obsList = PathUtils.getPathListUnjoinedBasedOnQuery( pathListToKeep, pathListToUnjoin )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
633
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
634 self.assertEquals( expList, obsList )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
635
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
636 def test_getPathListUnjoinedBasedOnQuery_listToKeep_size1_listToUnjoin_size3_noSplit_minKeep( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
637 lineKeep1 = ("1\tchr1\t1\t10\tTE2\t150\t200\t0.000000\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
638 pathListToKeep = self._makePathListFromStringList( [ lineKeep1 ] )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
639
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
640 lineUnjoin1 = ("1\tchr1\t100\t110\tTE2\t150\t200\t0.000000\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
641 lineUnjoin2 = ("1\tchr1\t200\t210\tTE2\t150\t200\t0.000000\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
642 lineUnjoin3 = ("1\tchr1\t250\t280\tTE2\t150\t200\t0.000000\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
643 pathListToUnjoin = self._makePathListFromStringList( [ lineUnjoin1, lineUnjoin2, lineUnjoin3 ] )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
644
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
645 obsList = PathUtils.getPathListUnjoinedBasedOnQuery( pathListToKeep, pathListToUnjoin )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
646
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
647 expList = [ pathListToUnjoin ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
648
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
649 self.assertEquals( expList, obsList )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
650
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
651 def test_getPathListUnjoinedBasedOnQuery_listToKeep_size1_listToUnjoin_size2_noSplit_minUnjoin( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
652 lineKeep1 = ("1\tchr1\t101\t150\tTE2\t150\t90\t0.000000\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
653 pathListToKeep = self._makePathListFromStringList( [ lineKeep1 ] )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
654
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
655 lineUnjoin1 = ("1\tchr1\t1\t10\tTE2\t150\t200\t0.000000\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
656 lineUnjoin2 = ("1\tchr1\t21\t40\tTE2\t150\t200\t0.000000\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
657 pathListToUnjoin = self._makePathListFromStringList( [ lineUnjoin1, lineUnjoin2 ] )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
658
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
659 expList = [ pathListToUnjoin ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
660
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
661 obsList = PathUtils.getPathListUnjoinedBasedOnQuery( pathListToKeep, pathListToUnjoin )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
662
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
663 self.assertEquals( expList, obsList )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
664
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
665 def test_getPathListUnjoinedBasedOnQuery_listToKeep_size3_listToUnjoin_size2_oneSplit_minKeep( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
666 lineKeep1 = ("1\tchr1\t1\t10\tTE2\t150\t90\t0.000000\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
667 lineKeep2 = ("1\tchr1\t21\t30\tTE2\t150\t90\t0.000000\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
668 lineKeep3 = ("1\tchr1\t61\t70\tTE2\t150\t90\t0.000000\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
669 pathListToKeep = self._makePathListFromStringList( [ lineKeep1, lineKeep2, lineKeep3 ] )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
670
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
671 lineUnjoin1 = ("1\tchr1\t41\t50\tTE2\t150\t200\t0.000000\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
672 lineUnjoin2 = ("1\tchr1\t81\t90\tTE2\t150\t200\t0.000000\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
673 pathListToUnjoin = self._makePathListFromStringList( [ lineUnjoin1, lineUnjoin2 ] )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
674
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
675 expList = []
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
676 expList.append( self._makePathListFromStringList( [ lineUnjoin1 ] ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
677 expList.append( self._makePathListFromStringList( [ lineUnjoin2 ] ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
678
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
679 obsList = PathUtils.getPathListUnjoinedBasedOnQuery( pathListToKeep, pathListToUnjoin )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
680
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
681 self.assertEquals( expList, obsList )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
682
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
683 def test_getPathListUnjoinedBasedOnQuery_listToKeep_size3_listToUnjoin_size3_twoSplits_minUnjoin( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
684 lineKeep1 = ("1\tchr1\t21\t30\tTE2\t150\t90\t0.000000\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
685 lineKeep2 = ("1\tchr1\t41\t50\tTE2\t150\t200\t0.000000\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
686 lineKeep3 = ("1\tchr1\t81\t90\tTE2\t150\t200\t0.000000\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
687 pathListToKeep = self._makePathListFromStringList( [ lineKeep1, lineKeep2, lineKeep3 ] )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
688
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
689 lineUnjoin1 = ("1\tchr1\t1\t10\tTE2\t150\t90\t0.000000\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
690 lineUnjoin2 = ("1\tchr1\t61\t70\tTE2\t150\t90\t0.000000\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
691 lineUnjoin3 = ("1\tchr1\t101\t110\tTE2\t150\t90\t0.000000\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
692 pathListToUnjoin = self._makePathListFromStringList( [ lineUnjoin1, lineUnjoin2, lineUnjoin3 ] )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
693
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
694 expList = []
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
695 expList.append( self._makePathListFromStringList( [ lineUnjoin1 ] ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
696 expList.append( self._makePathListFromStringList( [ lineUnjoin2 ] ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
697 expList.append( self._makePathListFromStringList( [ lineUnjoin3 ] ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
698
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
699 obsList = PathUtils.getPathListUnjoinedBasedOnQuery( pathListToKeep, pathListToUnjoin )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
700
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
701 self.assertEquals( expList, obsList )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
702
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
703 def test_getPathListUnjoinedBasedOnQuery_listToKeep_size1_listToUnjoin_size2_split( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
704 lineKeep1 = ("1\tchr1\t51\t80\tTE2\t150\t200\t0.000000\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
705 pathListToKeep = self._makePathListFromStringList( [ lineKeep1 ] )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
706
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
707 lineUnjoin1 = ("1\tchr1\t21\t40\tTE2\t150\t200\t0.000000\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
708 lineUnjoin2 = ("1\tchr1\t101\t150\tTE2\t150\t200\t0.000000\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
709 pathListToUnjoin = self._makePathListFromStringList( [ lineUnjoin1, lineUnjoin2 ] )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
710
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
711 expList = []
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
712 expList.append( self._makePathListFromStringList( [ lineUnjoin1 ] ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
713 expList.append( self._makePathListFromStringList( [ lineUnjoin2 ] ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
714
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
715 obsList = PathUtils.getPathListUnjoinedBasedOnQuery( pathListToKeep, pathListToUnjoin )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
716
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
717 self.assertEquals( expList, obsList )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
718
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
719 def test_getPathListUnjoinedBasedOnQuery_listToKeep_size2_listToUnjoin_size2_split( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
720 lineKeep1 = ("1\tchr1\t1\t15\tTE2\t150\t200\t0.000000\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
721 lineKeep2 = ("1\tchr1\t81\t130\tTE2\t150\t200\t0.000000\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
722 pathListToKeep = self._makePathListFromStringList( [ lineKeep1, lineKeep2 ] )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
723
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
724 lineUnjoin1 = ("1\tchr1\t21\t40\tTE2\t150\t200\t0.000000\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
725 lineUnjoin2 = ("1\tchr1\t201\t250\tTE2\t150\t200\t0.000000\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
726 pathListToUnjoin = self._makePathListFromStringList( [ lineUnjoin1, lineUnjoin2 ] )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
727
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
728 expList = []
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
729 expList.append( self._makePathListFromStringList( [ lineUnjoin1 ] ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
730 expList.append( self._makePathListFromStringList( [ lineUnjoin2 ] ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
731
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
732 obsList = PathUtils.getPathListUnjoinedBasedOnQuery( pathListToKeep, pathListToUnjoin )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
733
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
734 self.assertEquals( expList, obsList )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
735
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
736 def test_getPathListUnjoinedBasedOnQuery_listToKeep_size1_listToUnjoin_ordered_OneSplit( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
737 lineKeep1 = ("1\tchr1\t120\t180\tTE2\t150\t200\t0.000000\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
738 pathListToKeep = self._makePathListFromStringList( [ lineKeep1 ] )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
739
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
740 lineUnjoin1 = ("1\tchr1\t100\t110\tTE2\t150\t200\t0.000000\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
741 lineUnjoin2 = ("1\tchr1\t200\t210\tTE2\t150\t200\t0.000000\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
742 lineUnjoin3 = ("1\tchr1\t250\t280\tTE2\t150\t200\t0.000000\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
743 pathListToUnjoin = self._makePathListFromStringList( [ lineUnjoin1, lineUnjoin2, lineUnjoin3 ] )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
744
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
745 expList = []
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
746 expList.append( self._makePathListFromStringList( [ lineUnjoin1 ] ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
747 expList.append( self._makePathListFromStringList( [ lineUnjoin2, lineUnjoin3 ] ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
748
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
749 obsList = PathUtils.getPathListUnjoinedBasedOnQuery( pathListToKeep, pathListToUnjoin )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
750
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
751 self.assertEquals( expList, obsList )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
752
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
753 def test_getPathListUnjoinedBasedOnQuery_listToKeep_size1_listToUnjoin_unordered_OneSplit( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
754 lineKeep1 = ("1\tchr1\t120\t180\tTE2\t150\t200\t0.000000\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
755 pathListToKeep = self._makePathListFromStringList( [ lineKeep1 ] )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
756
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
757 lineUnjoin1 = ("1\tchr1\t200\t210\tTE2\t150\t200\t0.000000\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
758 lineUnjoin2 = ("1\tchr1\t250\t280\tTE2\t150\t200\t0.000000\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
759 lineUnjoin3 = ("1\tchr1\t100\t110\tTE2\t150\t200\t0.000000\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
760 pathListToUnjoin = self._makePathListFromStringList( [ lineUnjoin1, lineUnjoin2, lineUnjoin3 ] )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
761
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
762 expList = []
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
763 expList.append( self._makePathListFromStringList( [ lineUnjoin3 ] ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
764 expList.append( self._makePathListFromStringList( [ lineUnjoin1, lineUnjoin2 ] ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
765
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
766 obsList = PathUtils.getPathListUnjoinedBasedOnQuery( pathListToKeep, pathListToUnjoin )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
767
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
768 self.assertEquals( expList, obsList )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
769
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
770 def test_getPathListUnjoinedBasedOnQuery_listToKeep_size2_listToUnjoin_size4_twoSplits( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
771 lineKeep1 = ("1\tchr1\t21\t30\tTE2\t150\t200\t0.000000\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
772 lineKeep2 = ("1\tchr1\t81\t90\tTE2\t150\t200\t0.000000\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
773 pathListToKeep = self._makePathListFromStringList( [ lineKeep1, lineKeep2 ] )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
774
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
775 lineUnjoin1 = ("1\tchr1\t1\t10\tTE2\t150\t200\t0.000000\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
776 lineUnjoin2 = ("1\tchr1\t41\t50\tTE2\t150\t200\t0.000000\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
777 lineUnjoin3 = ("1\tchr1\t61\t70\tTE2\t150\t200\t0.000000\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
778 lineUnjoin4 = ("1\tchr1\t101\t110\tTE2\t150\t200\t0.000000\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
779 pathListToUnjoin = self._makePathListFromStringList( [ lineUnjoin1, lineUnjoin2, lineUnjoin3, lineUnjoin4 ] )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
780
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
781 expList = []
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
782 expList.append( self._makePathListFromStringList( [ lineUnjoin1 ] ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
783 expList.append( self._makePathListFromStringList( [ lineUnjoin2, lineUnjoin3 ] ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
784 expList.append( self._makePathListFromStringList( [ lineUnjoin4 ] ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
785
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
786 obsList = PathUtils.getPathListUnjoinedBasedOnQuery( pathListToKeep, pathListToUnjoin )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
787
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
788 self.assertEquals( expList, obsList )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
789
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
790 def test_changeIdInList_empty_list ( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
791 pathList = []
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
792
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
793 PathUtils.changeIdInList(pathList,1)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
794
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
795 obsList = pathList
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
796 expList = []
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
797
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
798 self.assertEquals(expList, obsList)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
799
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
800 def test_changeIdInList_list_size1 ( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
801 line1 = ("1\tchr1\t100\t110\tTE2\t150\t200\t0.000000\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
802 line2 = ("2\tchr1\t100\t110\tTE2\t150\t200\t0.000000\t30\t90.200000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
803
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
804 pathList = self._makePathListFromStringList([line1])
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
805 PathUtils.changeIdInList(pathList,2)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
806
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
807 expPathList = pathList
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
808
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
809 obsPathList = self._makePathListFromStringList([line2])
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
810
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
811 self.assertEquals(expPathList, obsPathList)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
812
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
813 def test_changeIdInList( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
814 line1 = ( "1\tchr1\t100\t110\tTE2\t150\t200\t0.000000\t30\t90.200000\n" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
815 line2 = ( "2\tchr1\t200\t210\tTE2\t150\t200\t0.000000\t30\t90.200000\n" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
816 line3 = ( "3\tchr1\t300\t310\tTE2\t150\t200\t0.000000\t30\t90.200000\n" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
817
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
818 pathList = self._makePathListFromStringList( [ line1, line2, line3 ] )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
819 PathUtils.changeIdInList( pathList, 2 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
820 obsPathList = pathList
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
821
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
822 line11 = ( "2\tchr1\t100\t110\tTE2\t150\t200\t0.000000\t30\t90.200000\n" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
823 line22 = ( "2\tchr1\t200\t210\tTE2\t150\t200\t0.000000\t30\t90.200000\n" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
824 line33 = ( "2\tchr1\t300\t310\tTE2\t150\t200\t0.000000\t30\t90.200000\n" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
825
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
826 expPathList = self._makePathListFromStringList( [ line11, line22, line33 ] )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
827
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
828 self.assertEquals( expPathList, obsPathList )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
829
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
830
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
831 def test_getIdentityFromPathList( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
832 p1 = Path()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
833 p1.setFromTuple( ( "1", "qry1", "1", "100", "sbj1", "1", "100", "0.0", "239", "90.0" ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
834 p2 = Path()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
835 p2.setFromTuple( ( "2", "qry1", "121", "350", "sbj1", "101", "200", "0.0", "176", "91.2" ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
836 lPaths = [ p1, p2 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
837 exp = ( 90.0 * ( 100-1+1) + 91.2 * (350-121+1) ) / ( (100-1+1) + (350-121+1) ) # 90.836363636363643
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
838 obs = PathUtils.getIdentityFromPathList( lPaths )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
839 self.assertEqual( exp, obs )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
840
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
841
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
842 def test_getIdentityFromPathList_withOverlap( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
843 p1 = Path()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
844 p1.setFromTuple( ( "1", "qry1", "1", "100", "sbj1", "1", "100", "0.0", "239", "90.0" ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
845 p2 = Path()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
846 p2.setFromTuple( ( "2", "qry1", "21", "80", "sbj1", "21", "80", "0.0", "176", "91.2" ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
847 p3 = Path()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
848 p3.setFromTuple( ( "2", "qry1", "121", "350", "sbj1", "101", "200", "0.0", "176", "91.2" ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
849 lPaths = [ p1, p2, p3 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
850 exp = ( 91.2 * ( 100-1+1) + 91.2 * (350-121+1) ) / ( (100-1+1) + (350-121+1) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
851 obs = PathUtils.getIdentityFromPathList( lPaths )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
852 self.assertEqual( exp, obs )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
853
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
854
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
855 def test_getIdentityFromPathList_diffQueries( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
856 p1 = Path()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
857 p1.setFromTuple( ( "1", "qry1", "1", "100", "sbj1", "1", "100", "0.0", "239", "90.0" ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
858 p2 = Path()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
859 p2.setFromTuple( ( "2", "qry2", "121", "350", "sbj1", "101", "200", "0.0", "176", "91.2" ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
860 lPaths = [ p1, p2 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
861 try:
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
862 obs = PathUtils.getIdentityFromPathList( lPaths )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
863 except:
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
864 pass
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
865
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
866
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
867 def test_getIdentityFromPathList_diffSubjects_check( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
868 p1 = Path()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
869 p1.setFromTuple( ( "1", "qry1", "1", "100", "sbj1", "1", "100", "0.0", "239", "90.0" ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
870 p2 = Path()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
871 p2.setFromTuple( ( "1", "qry1", "121", "350", "sbj2", "101", "200", "0.0", "176", "91.2" ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
872 lPaths = [ p1, p2 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
873 try:
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
874 obs = PathUtils.getIdentityFromPathList( lPaths, True )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
875 except:
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
876 pass
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
877
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
878
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
879 def test_getIdentityFromPathList_diffSubjects_noCheck( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
880 p1 = Path()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
881 p1.setFromTuple( ( "1", "qry1", "1", "100", "sbj1", "1", "100", "0.0", "239", "90.0" ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
882 p2 = Path()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
883 p2.setFromTuple( ( "1", "qry1", "121", "350", "sbj2", "101", "200", "0.0", "176", "91.2" ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
884 lPaths = [ p1, p2 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
885 exp = ( 90.0 * ( 100-1+1) + 91.2 * (350-121+1) ) / ( (100-1+1) + (350-121+1) ) # 90.836363636363643
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
886 obs = PathUtils.getIdentityFromPathList( lPaths, False )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
887 self.assertEqual( exp, obs )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
888
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
889
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
890 def test_getPathListSortedByIncreasingMinQueryThenMaxQuery_alreadyOrdered_diffIdentifier( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
891 p1 = Path()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
892 p1.setFromTuple( ( "1", "qry1", "1", "10", "sbj1", "1", "100", "0.0", "239", "90.0" ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
893 p2 = Path()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
894 p2.setFromTuple( ( "2", "qry1", "21", "30", "sbj1", "101", "200", "0.0", "176", "91.2" ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
895 lPaths = [ p1, p2 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
896
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
897 expList = [ p1, p2 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
898
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
899 obsList = PathUtils.getPathListSortedByIncreasingMinQueryThenMaxQuery( lPaths )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
900
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
901 self.assertEqual( expList, obsList )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
902
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
903 def test_getPathListSortedByIncreasingMinQueryThenMaxQuery_unordered_diffIdentifier( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
904 p1 = Path()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
905 p1.setFromTuple( ( "2", "qry1", "21", "30", "sbj1", "101", "200", "0.0", "176", "91.2" ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
906 p2 = Path()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
907 p2.setFromTuple( ( "1", "qry1", "1", "10", "sbj1", "1", "100", "0.0", "239", "90.0" ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
908 lPaths = [ p1, p2 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
909
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
910 expList = [ p2, p1 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
911
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
912 obsList = PathUtils.getPathListSortedByIncreasingMinQueryThenMaxQuery( lPaths )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
913
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
914 self.assertEqual( expList, obsList )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
915
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
916 def test_getPathListSortedByIncreasingMinQueryThenMaxQuery_unordered_sameIdentifier( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
917 p1 = Path()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
918 p1.setFromTuple( ( "1", "qry1", "21", "30", "sbj1", "101", "200", "0.0", "176", "91.2" ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
919 p2 = Path()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
920 p2.setFromTuple( ( "1", "qry1", "1", "10", "sbj1", "1", "100", "0.0", "239", "90.0" ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
921 lPaths = [ p1, p2 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
922
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
923 expList = [ p2, p1 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
924
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
925 obsList = PathUtils.getPathListSortedByIncreasingMinQueryThenMaxQuery( lPaths )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
926
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
927 self.assertEqual( expList, obsList )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
928
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
929 def test_getPathListSortedByIncreasingMinQueryThenMaxQuery_unordered_overlapping( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
930 p1 = Path()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
931 p1.setFromTuple( ( "1", "qry1", "6", "15", "sbj1", "101", "200", "0.0", "176", "91.2" ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
932 p2 = Path()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
933 p2.setFromTuple( ( "2", "qry1", "1", "10", "sbj1", "1", "100", "0.0", "239", "90.0" ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
934 lPaths = [ p1, p2 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
935
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
936 expList = [ p2, p1 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
937
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
938 obsList = PathUtils.getPathListSortedByIncreasingMinQueryThenMaxQuery( lPaths )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
939
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
940 self.assertEqual( expList, obsList )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
941
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
942 def test_getPathListSortedByIncreasingMinQueryThenMaxQuery_unordered_sameMin_threeSets( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
943 p1 = Path()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
944 p1.setFromTuple( ( "1", "qry1", "1", "15", "sbj1", "1", "100", "0.0", "239", "90.0" ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
945 p2 = Path()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
946 p2.setFromTuple( ( "2", "qry1", "1", "10", "sbj1", "101", "200", "0.0", "176", "91.2" ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
947 p3 = Path()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
948 p3.setFromTuple( ( "2", "qry1", "1", "12", "sbj1", "101", "200", "0.0", "176", "91.2" ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
949 lPaths = [ p1, p2, p3 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
950
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
951 expList = [ p2, p3, p1 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
952
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
953 obsList = PathUtils.getPathListSortedByIncreasingMinQueryThenMaxQuery( lPaths )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
954
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
955 self.assertEqual( expList, obsList )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
956
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
957 def test_getPathListSortedByIncreasingMinQueryThenMaxQuery_unordered_included( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
958 p1 = Path()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
959 p1.setFromTuple( ( "1", "qry1", "2", "4", "sbj1", "101", "200", "0.0", "176", "91.2" ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
960 p2 = Path()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
961 p2.setFromTuple( ( "2", "qry1", "1", "5", "sbj1", "1", "100", "0.0", "239", "90.0" ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
962 lPaths = [ p1, p2 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
963
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
964 expList = [ p2, p1 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
965
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
966 obsList = PathUtils.getPathListSortedByIncreasingMinQueryThenMaxQuery( lPaths )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
967
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
968 self.assertEqual( expList, obsList )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
969
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
970 def test_getPathListSortedByIncreasingMinQueryThenMaxQueryThenIdentifier_sameCoord_diffId( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
971 p1 = Path()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
972 p1.setFromTuple( ( "1", "qry1", "1", "5", "sbj1", "101", "200", "0.0", "176", "91.2" ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
973 p2 = Path()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
974 p2.setFromTuple( ( "2", "qry1", "1", "5", "sbj1", "101", "200", "0.0", "176", "91.2" ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
975 lPaths = [ p2, p1 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
976
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
977 expList = [ p1, p2 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
978
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
979 obsList = PathUtils.getPathListSortedByIncreasingMinQueryThenMaxQueryThenIdentifier( lPaths )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
980
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
981 self.assertEqual( expList, obsList )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
982
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
983 def test_getListOfDistinctIdentifiers( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
984 p1 = Path()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
985 p1.setFromTuple( ( "1", "qry1", "1", "100", "sbj1", "1", "100", "0.0", "239", "90.0" ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
986 p2 = Path()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
987 p2.setFromTuple( ( "2", "qry1", "121", "350", "sbj1", "101", "200", "0.0", "176", "91.2" ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
988 p3 = Path()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
989 p3.setFromTuple( ( "2", "qry1", "121", "350", "sbj1", "101", "200", "0.0", "176", "91.2" ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
990 lPaths = [ p1, p2, p3 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
991 lExp = [ 1, 2 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
992 lObs = PathUtils.getListOfDistinctIdentifiers( lPaths )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
993 lExp.sort()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
994 lObs.sort()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
995 self.assertEqual( lObs, lExp )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
996
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
997 def test_getListOfDistinctQueryNames( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
998 p1 = Path()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
999 p1.setFromTuple( ( "1", "qry1", "1", "100", "sbj1", "1", "100", "0.0", "239", "90.0" ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1000 p2 = Path()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1001 p2.setFromTuple( ( "2", "qry2", "121", "350", "sbj1", "101", "200", "0.0", "176", "91.2" ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1002 p3 = Path()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1003 p3.setFromTuple( ( "2", "qry2", "121", "350", "sbj1", "101", "200", "0.0", "176", "91.2" ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1004 lPaths = [ p1, p2, p3 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1005 lExp = [ "qry1", "qry2" ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1006 lObs = PathUtils.getListOfDistinctQueryNames( lPaths )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1007 lExp.sort()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1008 lObs.sort()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1009 self.assertEqual( lObs, lExp )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1010
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1011 def test_getListOfDistinctSubjectNames( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1012 p1 = Path()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1013 p1.setFromTuple( ( "1", "qry1", "1", "100", "sbj1", "1", "100", "0.0", "239", "90.0" ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1014 p2 = Path()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1015 p2.setFromTuple( ( "2", "qry2", "121", "350", "sbj1", "101", "200", "0.0", "176", "91.2" ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1016 p3 = Path()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1017 p3.setFromTuple( ( "2", "qry2", "121", "350", "sbj2", "101", "200", "0.0", "176", "91.2" ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1018 lPaths = [ p1, p2, p3 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1019 lExp = [ "sbj1", "sbj2" ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1020 lObs = PathUtils.getListOfDistinctSubjectNames( lPaths )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1021 lExp.sort()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1022 lObs.sort()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1023 self.assertEqual( lObs, lExp )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1024
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1025 def test_getListOfJoinCoordinatesOnQuery_returnCoord( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1026 p1a = Path()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1027 p1a.setFromTuple( ( "1", "qry1", "1", "500", "sbj1", "1", "500", "0.0", "532", "95.0" ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1028 p1b = Path()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1029 p1b.setFromTuple( ( "1", "qry1", "701", "900", "sbj1", "501", "700", "0.0", "232", "95.3" ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1030 lExp = [ [ 501, 700 ] ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1031 lPaths = [ p1a, p1b ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1032 lObs = PathUtils.getListOfJoinCoordinatesOnQuery( lPaths )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1033 lExp.sort()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1034 lObs.sort()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1035 self.assertEqual( lObs, lExp )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1036
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1037 def test_getListOfJoinCoordinatesOnQuery_overlap( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1038 p1a = Path()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1039 p1a.setFromTuple( ( "1", "qry1", "1", "500", "sbj1", "1", "500", "0.0", "532", "95.0" ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1040 p1b = Path()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1041 p1b.setFromTuple( ( "1", "qry1", "491", "900", "sbj1", "501", "770", "0.0", "232", "95.3" ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1042 lExp = []
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1043 lPaths = [ p1a, p1b ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1044 minLength = 100
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1045 lObs = PathUtils.getListOfJoinCoordinatesOnQuery( lPaths, minLength )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1046 lExp.sort()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1047 lObs.sort()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1048 self.assertEqual( lObs, lExp )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1049
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1050 def test_getListOfJoinCoordinates_tooShort( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1051 p1a = Path()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1052 p1a.setFromTuple( ( "1", "qry1", "1", "500", "sbj1", "1", "500", "0.0", "532", "95.0" ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1053 p1b = Path()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1054 p1b.setFromTuple( ( "1", "qry1", "551", "900", "sbj1", "501", "750", "0.0", "232", "95.3" ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1055 lExp = []
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1056 lPaths = [ p1a, p1b ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1057 minLength = 100
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1058 lObs = PathUtils.getListOfJoinCoordinatesOnQuery( lPaths, minLength )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1059 lExp.sort()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1060 lObs.sort()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1061 self.assertEqual( lObs, lExp )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1062
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1063 def test_getLengthOnQueryFromPathList( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1064 p1 = Path()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1065 p1.setFromTuple( ( "1", "qry1", "1", "70", "sbj1", "1", "70", "0.0", "132", "95.0" ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1066 p2 = Path()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1067 p2.setFromTuple( ( "2", "qry1", "51", "90", "sbj2", "40", "1", "0.0", "132", "95.0" ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1068 lPaths = [ p1, p2 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1069 exp = 90
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1070 obs = PathUtils.getLengthOnQueryFromPathList( lPaths )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1071 self.assertEqual( obs, exp )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1072
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1073 def test_convertPathFileIntoAlignFile( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1074 pathFile = "dummyPathFile_%s_%s" % ( time.strftime("%Y%m%d%H%M%S"), os.getpid() )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1075 pathFileHandler = open( pathFile, "w" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1076 pathFileHandler.write( "3\tchr2\t250\t151\tseq5\t1\t100\t1e-31\t147\t98.3\n" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1077 pathFileHandler.close()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1078
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1079 expFile = "dummyExpFile_%s_%s" % ( time.strftime("%Y%m%d%H%M%S"), os.getpid() )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1080 expFileHandler = open( expFile, "w" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1081 expFileHandler.write( "chr2\t151\t250\tseq5\t100\t1\t1e-31\t147\t98.300000\n" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1082 expFileHandler.close()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1083
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1084 obsFile = "dummyObsFile_%s_%s" % ( time.strftime("%Y%m%d%H%M%S"), os.getpid() )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1085
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1086 PathUtils.convertPathFileIntoAlignFile( pathFile, obsFile )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1087
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1088 self.assertTrue( FileUtils.are2FilesIdentical( expFile, obsFile ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1089
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1090 for f in [ pathFile, expFile, obsFile ]:
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1091 if os.path.exists( f ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1092 os.remove ( f )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1093
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1094 def test_convertPathFileIntoMapFileWithQueryCoordsOnly( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1095 pathFile = "dummyPathFile_%s_%s" % ( time.strftime("%Y%m%d%H%M%S"), os.getpid() )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1096 pathFileHandler = open( pathFile, "w" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1097 pathFileHandler.write( "3\tchr2\t250\t151\tseq5\t1\t100\t1e-31\t147\t98.3\n" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1098 pathFileHandler.write( "4\tchr2\t191\t230\tseq8\t237\t387\t1e-11\t187\t95.3\n" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1099 pathFileHandler.write( "3\tchr2\t500\t301\tseq5\t101\t300\t1e-81\t247\t96.2\n" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1100 pathFileHandler.close()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1101
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1102 expFile = "dummyExpFile_%s_%s" % ( time.strftime("%Y%m%d%H%M%S"), os.getpid() )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1103 expFileHandler = open( expFile, "w" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1104 expFileHandler.write( "seq5\tchr2\t250\t151\n" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1105 expFileHandler.write( "seq8\tchr2\t191\t230\n" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1106 expFileHandler.write( "seq5\tchr2\t500\t301\n" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1107 expFileHandler.close()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1108
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1109 obsFile = "dummyObsFile_%s_%s" % ( time.strftime("%Y%m%d%H%M%S"), os.getpid() )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1110
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1111 PathUtils.convertPathFileIntoMapFileWithQueryCoordsOnly( pathFile, obsFile )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1112
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1113 self.assertTrue( FileUtils.are2FilesIdentical( expFile, obsFile ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1114
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1115 for f in [ pathFile, expFile, obsFile ]:
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1116 if os.path.exists( f ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1117 os.remove( f )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1118
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1119
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1120 def test_mergeMatchesOnQueries( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1121 pathFile = "dummyPathFile_%s_%s" % ( time.strftime("%Y%m%d%H%M%S"), os.getpid() )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1122 pathFileHandler = open( pathFile, "w" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1123 pathFileHandler.write( "3\tchr2\t250\t151\tseq5\t1\t100\t1e-31\t147\t98.3\n" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1124 pathFileHandler.write( "4\tchr2\t230\t191\tseq8\t237\t387\t1e-11\t187\t95.3\n" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1125 pathFileHandler.write( "3\tchr2\t500\t301\tseq5\t101\t300\t1e-81\t247\t96.2\n" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1126 pathFileHandler.close()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1127
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1128 expFile = "dummyExpFile_%s_%s" % ( time.strftime("%Y%m%d%H%M%S"), os.getpid() )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1129 expFileHandler = open( expFile, "w" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1130 expFileHandler.write( "0\tchr2\t151\t250\tseq5\t0\t0\t0.0\t0\t0\n" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1131 expFileHandler.write( "0\tchr2\t301\t500\tseq5\t0\t0\t0.0\t0\t0\n" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1132 expFileHandler.close()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1133
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1134 obsFile = "dummyObsFile_%s_%s" % ( time.strftime("%Y%m%d%H%M%S"), os.getpid() )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1135
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1136 PathUtils.mergeMatchesOnQueries( pathFile, obsFile )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1137
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1138 self.assertTrue( FileUtils.are2FilesIdentical( expFile, obsFile ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1139
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1140 for f in [ pathFile, expFile, obsFile ]:
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1141 if os.path.exists( f ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1142 os.remove( f )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1143
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1144
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1145 def test_filterPathListOnChainLength( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1146 p1a = Path()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1147 p1a.setFromTuple( ( "1", "qry1", "1", "12", "sbj1", "1", "12", "0.0", "132", "95.0" ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1148 p1b = Path()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1149 p1b.setFromTuple( ( "1", "qry1", "15", "30", "sbj1", "13", "28", "0.0", "132", "95.0" ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1150 p2 = Path()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1151 p2.setFromTuple( ( "2", "qry1", "51", "90", "sbj2", "40", "1", "0.0", "132", "95.0" ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1152 p3 = Path()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1153 p3.setFromTuple( ( "3", "qry2", "1", "12", "sbj3", "15", "1", "0.0", "132", "95.0" ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1154 lPaths = [ p1a, p1b, p2, p3 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1155 lExp = [ p1a, p1b, p2 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1156 lObs = PathUtils.filterPathListOnChainLength( lPaths, 20 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1157 self.assertEqual( lExp, lObs )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1158
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1159 def test_getPathListFromFile(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1160 file = "dummyFile_%s_%s" % ( time.strftime("%Y%m%d%H%M%S"), os.getpid() )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1161 fileHandler = open( file, "w" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1162 fileHandler.write( "1\tchr2\t151\t250\tseq5\t0\t0\t0.0\t0\t0\n" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1163 fileHandler.write( "2\tchr2\t301\t500\tseq5\t0\t0\t0.0\t0\t0\n" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1164 fileHandler.close()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1165 p1 = Path()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1166 p1.setFromTuple( ( "1", "chr2", "151", "250", "seq5", "0", "0", "0.0", "0", "0" ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1167 p2 = Path()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1168 p2.setFromTuple( ( "2", "chr2", "301", "500", "seq5", "0", "0", "0.0", "0", "0" ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1169 expLPath = [ p1, p2 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1170 obsLPath = PathUtils.getPathListFromFile(file)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1171 expLPathSorted = PathUtils.getPathListSortedByIncreasingQueryMinThenInvQueryLength(expLPath)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1172 obsLPathSorted = PathUtils.getPathListSortedByIncreasingQueryMinThenInvQueryLength(obsLPath)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1173 os.remove(file)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1174 self.assertEqual( expLPathSorted, obsLPathSorted )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1175
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1176 def test_getPathListFromFile_empty_file(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1177 file = "dummyFile_%s_%s" % ( time.strftime("%Y%m%d%H%M%S"), os.getpid() )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1178 fileHandler = open( file, "w" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1179 fileHandler.close()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1180 expLPath = []
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1181 obsLPath = PathUtils.getPathListFromFile(file)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1182 expLPathSorted = PathUtils.getPathListSortedByIncreasingQueryMinThenInvQueryLength(expLPath)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1183 obsLPathSorted = PathUtils.getPathListSortedByIncreasingQueryMinThenInvQueryLength(obsLPath)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1184 os.remove(file)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1185 self.assertEqual( expLPathSorted, obsLPathSorted )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1186
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1187 def test_convertPathFileIntoAlignFileViaPathrange_sortedInput( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1188 p1a = Path()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1189 p1a.setFromTuple( ( "1", "qry1", "1", "12", "sbj1", "1", "12", "0.0", "132", "95.0" ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1190 p1b = Path()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1191 p1b.setFromTuple( ( "1", "qry1", "16", "30", "sbj1", "13", "28", "1e-270", "150", "97.0" ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1192 p2 = Path()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1193 p2.setFromTuple( ( "2", "qry1", "51", "90", "sbj2", "40", "1", "0.0", "132", "95.0" ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1194 inFile = "dummyInFile"
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1195 inF = open( inFile, "w" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1196 for iPath in [ p1a, p1b, p2 ]:
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1197 iPath.write( inF )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1198 inF.close()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1199
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1200 expFile = "dummyExpFile"
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1201 expF = open( expFile, "w" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1202 a1 = Align()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1203 a1.setFromTuple( ( "qry1", "1", "30", "sbj1", "1", "28", "0.0", "282", str((95*12+97*15)/float(12+15)) ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1204 a2 = Align()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1205 a2.setFromTuple( ( "qry1", "51", "90", "sbj2", "40", "1", "0.0", "132", "95.0" ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1206 for iAlign in [ a1, a2 ]:
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1207 iAlign.write( expF )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1208 expF.close()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1209
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1210 obsFile = "dummyObsFile"
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1211
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1212 PathUtils.convertPathFileIntoAlignFileViaPathrange( inFile, obsFile, 0 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1213
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1214 self.assertTrue( FileUtils.are2FilesIdentical( expFile, obsFile ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1215
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1216 for f in [ inFile, expFile, obsFile ]:
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1217 os.remove( f )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1218
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1219
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1220 def test_convertPathFileIntoAlignFileViaPathrange_unsortedInput( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1221 p1a = Path()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1222 p1a.setFromTuple( ( "1", "qry1", "1", "12", "sbj1", "1", "12", "0.0", "132", "95.0" ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1223 p1b = Path()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1224 p1b.setFromTuple( ( "1", "qry1", "16", "30", "sbj1", "13", "28", "0.0", "150", "97.0" ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1225 p2 = Path()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1226 p2.setFromTuple( ( "2", "qry1", "51", "90", "sbj2", "40", "1", "0.0", "132", "95.0" ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1227 inFile = "dummyInFile"
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1228 inF = open( inFile, "w" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1229 for iPath in [ p1b, p2, p1a ]:
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1230 iPath.write( inF )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1231 inF.close()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1232
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1233 expFile = "dummyExpFile"
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1234 expF = open( expFile, "w" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1235 a1 = Align()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1236 a1.setFromTuple( ( "qry1", "1", "30", "sbj1", "1", "28", "0.0", "282", str((95*12+97*15)/float(12+15)) ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1237 a2 = Align()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1238 a2.setFromTuple( ( "qry1", "51", "90", "sbj2", "40", "1", "0.0", "132", "95.0" ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1239 for iAlign in [ a1, a2 ]:
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1240 iAlign.write( expF )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1241 expF.close()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1242
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1243 obsFile = "dummyObsFile"
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1244
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1245 PathUtils.convertPathFileIntoAlignFileViaPathrange( inFile, obsFile, 0 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1246
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1247 self.assertTrue( FileUtils.are2FilesIdentical( expFile, obsFile ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1248
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1249 for f in [ inFile, expFile, obsFile ]:
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1250 os.remove( f )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1251
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1252
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1253 def test_convertPathFileIntoAlignFileViaPathrange_sortedInput_subjectReverseStrand( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1254 p1a = Path()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1255 p1a.setFromTuple( ( "1", "qry1", "1", "12", "sbj1", "12", "1", "0.0", "132", "95.0" ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1256 p1b = Path()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1257 p1b.setFromTuple( ( "1", "qry1", "16", "30", "sbj1", "28", "13", "0.0", "150", "97.0" ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1258 p2 = Path()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1259 p2.setFromTuple( ( "2", "qry1", "51", "90", "sbj2", "40", "1", "0.0", "132", "95.0" ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1260 inFile = "dummyInFile"
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1261 inF = open( inFile, "w" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1262 for iPath in [ p1a, p1b, p2 ]:
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1263 iPath.write( inF )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1264 inF.close()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1265
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1266 expFile = "dummyExpFile"
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1267 expF = open( expFile, "w" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1268 a1 = Align()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1269 a1.setFromTuple( ( "qry1", "1", "30", "sbj1", "28", "1", "0.0", "282", str((95*12+97*15)/float(12+15)) ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1270 a2 = Align()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1271 a2.setFromTuple( ( "qry1", "51", "90", "sbj2", "40", "1", "0.0", "132", "95.0" ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1272 for iAlign in [ a1, a2 ]:
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1273 iAlign.write( expF )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1274 expF.close()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1275
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1276 obsFile = "dummyObsFile"
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1277
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1278 PathUtils.convertPathFileIntoAlignFileViaPathrange( inFile, obsFile, 0 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1279
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1280 self.assertTrue( FileUtils.are2FilesIdentical( expFile, obsFile ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1281
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1282 for f in [ inFile, expFile, obsFile ]:
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1283 os.remove( f )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1284
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1285
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1286 def test_splitPathListByQueryName_empty_list( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1287 lPath = []
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1288
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1289 obsLPath = PathUtils.splitPathListByQueryName( lPath )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1290
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1291 expLPath = []
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1292
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1293 self.assertEquals( expLPath, obsLPath )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1294
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1295
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1296 def test_splitPathListByQueryName( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1297 iPath1 = Path()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1298 iPath1.setFromString("1\tchr1\t100\t110\tTE2\t150\t200\t1e-20\t30\t90.2\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1299 iPath2 = Path()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1300 iPath2.setFromString("2\tchr2\t200\t220\tTE2\t150\t200\t1e-20\t30\t90.2\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1301 iPath3 = Path()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1302 iPath3.setFromString("3\tchr1\t300\t330\tTE2\t150\t200\t1e-20\t30\t90.2\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1303 lPath = [ iPath1, iPath2, iPath3 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1304
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1305 obsLPath = PathUtils.splitPathListByQueryName( lPath )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1306
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1307 expLPath = [ [ iPath1, iPath3 ],
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1308 [ iPath2 ] ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1309
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1310 self.assertEquals( expLPath, obsLPath )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1311
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1312
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1313 def test_splitPathListByQueryName_last_align_alone( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1314 iPath1 = Path()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1315 iPath1.setFromString("1\tchr1\t100\t110\tTE2\t150\t200\t1e-20\t30\t90.2\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1316 iPath2 = Path()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1317 iPath2.setFromString("2\tchr2\t200\t220\tTE2\t150\t200\t1e-20\t30\t90.2\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1318 iPath3 = Path()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1319 iPath3.setFromString("3\tchr1\t300\t330\tTE2\t150\t200\t1e-20\t30\t90.2\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1320 iPath4 = Path()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1321 iPath4.setFromString("4\tchr3\t100\t110\tTE2\t150\t200\t1e-20\t30\t90.2\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1322 iPath5 = Path()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1323 iPath5.setFromString("5\tchr2\t200\t220\tTE2\t150\t200\t1e-20\t30\t90.2\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1324 iPath6 = Path()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1325 iPath6.setFromString("6\tchr1\t300\t330\tTE2\t150\t200\t1e-20\t30\t90.2\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1326 iPath7 = Path()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1327 iPath7.setFromString("7\tchr1\t100\t110\tTE2\t150\t200\t1e-20\t30\t90.2\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1328 iPath8 = Path()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1329 iPath8.setFromString("8\tchr2\t200\t220\tTE2\t150\t200\t1e-20\t30\t90.2\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1330 iPath9 = Path()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1331 iPath9.setFromString("9\tchr4\t300\t330\tTE2\t150\t200\t1e-20\t30\t90.2\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1332 lPath = [ iPath1, iPath2, iPath3, iPath4, iPath5, iPath6, iPath7, iPath8, iPath9 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1333
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1334 obsLPath = PathUtils.splitPathListByQueryName( lPath )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1335
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1336 expLPath = [ [ iPath1, iPath3, iPath6, iPath7 ],
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1337 [ iPath2, iPath5, iPath8 ],
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1338 [ iPath4 ],
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1339 [ iPath9 ] ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1340
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1341 self.assertEquals( expLPath, obsLPath )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1342
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1343
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1344 def test_getPathListSortedByIncreasingQueryMinThenInvQueryLength_alreadyOrdered_diffIdentifier( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1345 iPath1 = Path( 1, Range("qry1",1,10), Range("sbj1",1,10), 0.0, 10, 98.7 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1346 iPath2 = Path( 2, Range("qry1",21,30), Range("sbj1",11,20), 0.0, 10, 98.7 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1347 lPaths = [ iPath1, iPath2 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1348
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1349 lExp = [ Path( 1, Range("qry1",1,10), Range("sbj1",1,10), 0.0, 10, 98.7 ),
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1350 Path( 2, Range("qry1",21,30), Range("sbj1",11,20), 0.0, 10, 98.7 ) ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1351
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1352 lObs = PathUtils.getPathListSortedByIncreasingQueryMinThenInvQueryLength( lPaths )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1353
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1354 self.assertEquals( lExp, lObs )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1355
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1356
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1357 def test_getPathListSortedByIncreasingQueryMinThenInvQueryLength_unordered_diffIdentifier( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1358 iPath1 = Path( 1, Range("qry1",1,10), Range("sbj1",1,10), 0.0, 10, 98.7 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1359 iPath2 = Path( 2, Range("qry1",21,30), Range("sbj1",11,20), 0.0, 10, 98.7 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1360 lPaths = [ iPath2, iPath1 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1361
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1362 lExp = [ Path( 1, Range("qry1",1,10), Range("sbj1",1,10), 0.0, 10, 98.7 ),
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1363 Path( 2, Range("qry1",21,30), Range("sbj1",11,20), 0.0, 10, 98.7 ) ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1364
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1365 lObs = PathUtils.getPathListSortedByIncreasingQueryMinThenInvQueryLength( lPaths )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1366
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1367 self.assertEquals( lExp, lObs )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1368
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1369
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1370 def test_getPathListSortedByIncreasingQueryMinThenInvQueryLength_unordered_sameIdentifier( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1371 iPath1a = Path( 1, Range("qry1",1,10), Range("sbj1",1,10), 0.0, 10, 98.7 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1372 iPath1b = Path( 1, Range("qry1",21,30), Range("sbj1",11,20), 0.0, 10, 98.7 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1373 lPaths = [ iPath1b, iPath1a ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1374
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1375 lExp = [ Path( 1, Range("qry1",1,10), Range("sbj1",1,10), 0.0, 10, 98.7 ),
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1376 Path( 1, Range("qry1",21,30), Range("sbj1",11,20), 0.0, 10, 98.7 ) ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1377
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1378 lObs = PathUtils.getPathListSortedByIncreasingQueryMinThenInvQueryLength( lPaths )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1379
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1380 self.assertEquals( lExp, lObs )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1381
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1382
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1383 def test_getPathListSortedByIncreasingQueryMinThenInvQueryLength_unordered_overlapping( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1384 iPath1 = Path( 1, Range("qry1",1,6), Range("sbj1",1,6), 0.0, 10, 98.7 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1385 iPath2 = Path( 2, Range("qry1",5,10), Range("sbj1",5,10), 0.0, 10, 98.7 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1386 lPaths = [ iPath2, iPath1 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1387
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1388 lExp = [ Path( 1, Range("qry1",1,6), Range("sbj1",1,6), 0.0, 10, 98.7 ),
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1389 Path( 2, Range("qry1",5,10), Range("sbj1",5,10), 0.0, 10, 98.7 ) ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1390
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1391 lObs = PathUtils.getPathListSortedByIncreasingQueryMinThenInvQueryLength( lPaths )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1392
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1393 self.assertEquals( lExp, lObs )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1394
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1395
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1396 def test_getPathListSortedByIncreasingQueryMinThenInvQueryLength_threePaths_2sameMin( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1397 iPath1 = Path( 1, Range("qry1",1,6), Range("sbj1",1,6), 0.0, 10, 98.7 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1398 iPath2 = Path( 2, Range("qry1",5,12), Range("sbj1",5,12), 0.0, 10, 98.7 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1399 iPath3 = Path( 3, Range("qry1",5,10), Range("sbj1",5,10), 0.0, 10, 98.7 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1400 lPaths = [ iPath3, iPath2, iPath1 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1401
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1402 lExp = [ Path( 1, Range("qry1",1,6), Range("sbj1",1,6), 0.0, 10, 98.7 ),
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1403 Path( 2, Range("qry1",5,12), Range("sbj1",5,12), 0.0, 10, 98.7 ),
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1404 Path( 3, Range("qry1",5,10), Range("sbj1",5,10), 0.0, 10, 98.7 ) ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1405
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1406 lObs = PathUtils.getPathListSortedByIncreasingQueryMinThenInvQueryLength( lPaths )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1407
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1408 self.assertEquals( lExp, lObs )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1409
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1410
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1411 def test_getPathListSortedByIncreasingQueryMinThenInvQueryLength_unordered_included( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1412 iPath1 = Path( 1, Range("qry1",1,6), Range("sbj1",1,6), 0.0, 10, 98.7 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1413 iPath2 = Path( 2, Range("qry1",2,5), Range("sbj1",2,5), 0.0, 10, 98.7 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1414 lPaths = [ iPath2, iPath1 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1415
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1416 lExp = [ Path( 1, Range("qry1",1,6), Range("sbj1",1,6), 0.0, 10, 98.7 ),
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1417 Path( 2, Range("qry1",2,5), Range("sbj1",2,5), 0.0, 10, 98.7 ) ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1418
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1419 lObs = PathUtils.getPathListSortedByIncreasingQueryMinThenInvQueryLength( lPaths )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1420
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1421 self.assertEquals( lExp, lObs )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1422
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1423
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1424 def test_mergePathsInList_emptyList( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1425 lPaths = []
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1426 lExp = []
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1427 lObs = PathUtils.mergePathsInList( lPaths )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1428 self.assertEquals( lExp, lObs )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1429
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1430
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1431 def test_mergePathsInList_onePath( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1432 iPath1 = Path( 1, Range("qry1",1,10), Range("sbj1",1,10), 0.0, 10, 98.7 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1433 lPaths = [ iPath1 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1434 lExp = [ Path( 1, Range("qry1",1,10), Range("sbj1",1,10), 0.0, 10, 98.7 ) ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1435 lObs = PathUtils.mergePathsInList( lPaths )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1436 self.assertEquals( lExp, lObs )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1437
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1438
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1439 def test_mergePathsInList_noOverlap( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1440 iPath1 = Path( 1, Range("qry1",1,10), Range("sbj1",1,10), 0.0, 10, 98.7 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1441 iPath2 = Path( 1, Range("qry1",21,30), Range("sbj1",11,20), 0.0, 10, 98.7 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1442 lPaths = [ iPath1, iPath2 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1443
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1444 lExp = [ Path( 1, Range("qry1",1,10), Range("sbj1",1,10), 0.0, 10, 98.7 ),
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1445 Path( 1, Range("qry1",21,30), Range("sbj1",11,20), 0.0, 10, 98.7 ) ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1446
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1447 lObs = PathUtils.mergePathsInList( lPaths )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1448
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1449 self.assertEquals( lExp, lObs )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1450
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1451
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1452 def test_mergePathsInList_withOverlap( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1453 iPath1 = Path( 1, Range("qry1",1,10), Range("sbj1",1,10), 0.0, 10, 98.7 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1454 iPath2 = Path( 1, Range("qry1",6,15), Range("sbj1",6,15), 0.0, 10, 98.7 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1455 lPaths = [ iPath2, iPath1 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1456
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1457 lExp = [ Path( 1, Range("qry1",1,15), Range("sbj1",1,15), 0.0, 10, 98.7 ) ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1458
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1459 lObs = PathUtils.mergePathsInList( lPaths )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1460
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1461 self.assertEquals( lExp, lObs )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1462
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1463
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1464 def test_mergePathsInList_withOverlap_reverseOnly( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1465 iPath1 = Path( 1, Range("qry1",10,1), Range("sbj1",10,1), 0.0, 10, 98.7 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1466 iPath2 = Path( 1, Range("qry1",15,6), Range("sbj1",15,6), 0.0, 10, 98.7 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1467 lPaths = [ iPath2, iPath1 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1468
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1469 lExp = [ Path( 1, Range("qry1",15,1), Range("sbj1",15,1), 0.0, 10, 98.7 ) ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1470
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1471 lObs = PathUtils.mergePathsInList( lPaths )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1472
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1473 self.assertEquals( lExp, lObs )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1474
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1475
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1476 def test_mergePathsInList_withOverlap_directAndReverse( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1477 iPath1 = Path( 1, Range("qry1",10,1), Range("sbj1",10,1), 0.0, 10, 98.7 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1478 iPath2 = Path( 1, Range("qry1",15,6), Range("sbj1",15,6), 0.0, 10, 98.7 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1479 iPath3 = Path( 1, Range("qry1",2,5), Range("sbj1",2,5), 0.0, 10, 98.7 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1480 lPaths = [ iPath3, iPath2, iPath1 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1481
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1482 lExp = [ Path( 1, Range("qry1",15,1), Range("sbj1",15,1), 0.0, 10, 98.7 ) ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1483
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1484 lObs = PathUtils.mergePathsInList( lPaths )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1485
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1486 self.assertEquals( lExp, lObs )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1487
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1488
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1489 def test_mergePathsInList_diffQueries_withOverlap( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1490 iPath1 = Path( 1, Range("qry1",1,10), Range("sbj1",1,10), 0.0, 10, 98.7 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1491 iPath2 = Path( 2, Range("qry2",6,15), Range("sbj1",6,15), 0.0, 10, 98.7 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1492 lPaths = [ iPath2, iPath1 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1493
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1494 lExp = [ Path( 1, Range("qry1",1,10), Range("sbj1",1,10), 0.0, 10, 98.7 ),
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1495 Path( 2, Range("qry2",6,15), Range("sbj1",6,15), 0.0, 10, 98.7 ) ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1496
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1497 lObs = PathUtils.mergePathsInList( lPaths )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1498
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1499 self.assertEquals( lExp, lObs )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1500
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1501
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1502 def test_mergePathsInList_nonOverlappingSubjects( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1503 iPath1 = Path( 1, Range("qry1",398,491), Range("sbj1",10,112), 0.0, 10, 98.7 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1504 iPath2 = Path( 1, Range("qry1",451,492), Range("sbj1",124,169), 0.0, 10, 98.7 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1505 iPath3 = Path( 1, Range("qry1",493,531), Range("sbj1",249,294), 0.0, 10, 98.7 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1506 lPaths = [ iPath3, iPath2, iPath1 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1507
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1508 lExp = [ Path( 1, Range("qry1",398,491), Range("sbj1",10,112), 0.0, 10, 98.7 ),
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1509 Path( 1, Range("qry1",451,492), Range("sbj1",124,169), 0.0, 10, 98.7 ),
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1510 Path( 1, Range("qry1",493,531), Range("sbj1",249,294), 0.0, 10, 98.7 ) ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1511
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1512 lObs = PathUtils.mergePathsInList( lPaths )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1513
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1514 self.assertEquals( lExp, lObs )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1515
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1516
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1517 def test_mergePathsInListUsingQueryCoordsOnly( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1518 iPath1 = Path( 1, Range("qry1",398,491), Range("sbj1",10,112), 0.0, 10, 98.7 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1519 iPath2 = Path( 1, Range("qry1",451,492), Range("sbj1",124,169), 0.0, 10, 98.7 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1520 iPath3 = Path( 1, Range("qry1",493,531), Range("sbj1",249,294), 0.0, 10, 98.7 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1521 lPaths = [ iPath3, iPath2, iPath1 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1522
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1523 lExp = [ Path( 1, Range("qry1",398,492), Range("sbj1",10,169), 0.0, 10, 98.7 ),
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1524 Path( 1, Range("qry1",493,531), Range("sbj1",249,294), 0.0, 10, 98.7 ) ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1525
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1526 lObs = PathUtils.mergePathsInListUsingQueryCoordsOnly( lPaths )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1527
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1528 self.assertEquals( lExp, lObs )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1529
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1530
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1531 def test_convertPathFileIntoGffFile( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1532 p1 = Path()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1533 p1.setFromTuple( ( "1", "qry1", "12", "1", "sbj1", "1", "12", "0.0", "132", "95.0" ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1534 p2a = Path()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1535 p2a.setFromTuple( ( "2", "qry1", "16", "30", "sbj2", "1", "15", "1e-270", "150", "97.0" ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1536 p2b = Path()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1537 p2b.setFromTuple( ( "2", "qry1", "51", "90", "sbj2", "21", "60", "0.0", "132", "95.9" ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1538 inFile = "dummyInFile"
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1539 PathUtils.writeListInFile( [ p1, p2a, p2b ], inFile, "w" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1540
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1541 expFile = "dummyExpFile"
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1542 expF = open( expFile, "w" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1543 expF.write( "qry1\tREPET\tmatch\t1\t12\t0\t-\t.\tID=1;Target=sbj1 1 12\n" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1544 expF.write( "qry1\tREPET\tmatch\t16\t90\t0\t+\t.\tID=ms2;Target=sbj2 1 60\n" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1545 expF.write( "qry1\tREPET\tmatch_part\t16\t30\t1e-270\t+\t.\tID=mp2-1;Parent=ms2;Target=sbj2 1 15\n" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1546 expF.write( "qry1\tREPET\tmatch_part\t51\t90\t0\t+\t.\tID=mp2-2;Parent=ms2;Target=sbj2 21 60\n" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1547 expF.close()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1548
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1549 obsFile = "dummyObsFile"
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1550
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1551 PathUtils.convertPathFileIntoGffFile( inFile, obsFile )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1552
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1553 self.assertTrue( FileUtils.are2FilesIdentical( expFile, obsFile ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1554
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1555 for f in [ inFile, expFile, obsFile ]:
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1556 os.remove( f )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1557
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1558
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1559 def test_convertPathFileIntoSetFile( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1560 pathFile = "dummyPathFile_%s_%s" % ( time.strftime("%Y%m%d%H%M%S"), os.getpid() )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1561 pathFileHandler = open( pathFile, "w" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1562 pathFileHandler.write( "3\tchr2\t250\t151\tseq5\t1\t100\t1e-31\t147\t98.3\n" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1563 pathFileHandler.close()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1564
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1565 expFile = "dummyExpFile_%s_%s" % ( time.strftime("%Y%m%d%H%M%S"), os.getpid() )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1566 expFileHandler = open( expFile, "w" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1567 expFileHandler.write( "3\tseq5\tchr2\t250\t151\n" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1568 expFileHandler.close()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1569
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1570 obsFile = "dummyObsFile_%s_%s" % ( time.strftime("%Y%m%d%H%M%S"), os.getpid() )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1571
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1572 PathUtils.convertPathFileIntoSetFile( pathFile, obsFile )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1573
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1574 self.assertTrue( FileUtils.are2FilesIdentical( expFile, obsFile ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1575
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1576 for f in [ pathFile, expFile, obsFile ]:
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1577 if os.path.exists( f ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1578 os.remove ( f )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1579
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1580
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1581 def test_removeInPathFileDuplicatedPathOnQueryNameQueryCoordAndSubjectName(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1582 pathFile = "dummyPathFile"
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1583 f = open(pathFile, "w")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1584 f.write("1\tG4\t1\t3856\tAtha5Chr4_Pals_Piler_3590_69_MAP_3\t1\t3856\t0\t7642\t99.9741\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1585 f.write("1\tG4\t1\t3856\tAtha5Chr4_Pals_Piler_3590_69_MAP_3\t100\t3956\t0\t7642\t99.9741\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1586 f.write("2\trooA\t1\t386\tAtha5Chr4_Pals_Piler_3589_69_MAP_3\t1\t386\t6.3e-220\t758\t99.4819\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1587 f.write("3\trooA\t7236\t7621\tAtha5Chr4_Pals_Piler_3536_69_MAP_3\t1\t386\t6.3e-220\t758\t99.4819\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1588 f.write("4\trooA\t387\t7235\tAtha5Chr4_Pals_Piler_3596_69_MAP_3\t1\t6849\t0\t13580\t99.9854\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1589 f.write("5\taurora-element\t4046\t4257\tAtha5Chr4_Pals_Piler_3540_69_MAP_3\t1\t204\t6.1e-80\t300\t96.5686\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1590 f.write("6\taurora-element\t274\t381\tAtha5Chr4_Pals_Piler_3595_23_MAP_3\t177\t284\t0\t191\t97.2222\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1591 f.write("6\taurora-element\t116\t287\tAtha5Chr4_Pals_Piler_3595_30_MAP_3\t3\t170\t0\t290\t98.8095\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1592 f.write("7\taurora-element\t393\t902\tAtha5Chr4_Pals_Piler_3595_31_MAP_3\t1467\t1945\t0\t873\t97.2441\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1593 f.write("7\taurora-element\t393\t902\tAtha5Chr4_Pals_Piler_3595_31_MAP_3\t276\t100784\t0\t869\t98.1211\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1594 f.write("7\taurora-element\t1387\t2271\tAtha5Chr4_Pals_Piler_3595_31_MAP_3\t276\t10780\t0\t1576\t97.6244\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1595 f.write("8\taurora-element\t2486\t2828\tAtha5Chr4_Pals_Piler_3595_50_MAP_3\t4301\t4641\t0\t585\t97.3607\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1596 f.write("9\taurora-element\t2265\t2483\tAtha5Chr4_Pals_Piler_3595_62_MAP_3\t3999\t4218\t0\t361\t96.347\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1597 f.write("10\taurora-element\t2834\t4045\tAtha5Chr4_Pals_Piler_3595_69_MAP_3\t4800\t6011\t0\t2074\t97.0248\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1598 f.write("11\taurora-element\t2\t113\tAtha5Chr4_Pals_Piler_3598_69_MAP_3\t205\t317\t8.5e-37\t157\t93.75\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1599 f.write("11\taurora-element\t2\t113\tAtha5Chr4_Pals_Piler_3598_69_MAP_3\t305\t417\t8.5e-37\t157\t93.75\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1600 f.write("11\taurora-element\t2\t113\tAtha5Chr4_Pals_Piler_3598_69_MAP_3\t305\t417\t8.5e-37\t157\t93.75\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1601 f.close()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1602
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1603 obsPathFile = "obsDummyPathFile"
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1604 PathUtils.removeInPathFileDuplicatedPathOnQueryNameQueryCoordAndSubjectName(pathFile, obsPathFile)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1605
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1606 expPathFile = "expDummyPathFile"
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1607 f = open(expPathFile, "w")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1608 f.write("1\tG4\t1\t3856\tAtha5Chr4_Pals_Piler_3590_69_MAP_3\t1\t3856\t0\t7642\t99.974100\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1609 f.write("2\trooA\t1\t386\tAtha5Chr4_Pals_Piler_3589_69_MAP_3\t1\t386\t6.3e-220\t758\t99.481900\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1610 f.write("3\trooA\t7236\t7621\tAtha5Chr4_Pals_Piler_3536_69_MAP_3\t1\t386\t6.3e-220\t758\t99.481900\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1611 f.write("4\trooA\t387\t7235\tAtha5Chr4_Pals_Piler_3596_69_MAP_3\t1\t6849\t0\t13580\t99.985400\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1612 f.write("5\taurora-element\t4046\t4257\tAtha5Chr4_Pals_Piler_3540_69_MAP_3\t1\t204\t6.1e-80\t300\t96.568600\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1613 f.write("6\taurora-element\t274\t381\tAtha5Chr4_Pals_Piler_3595_23_MAP_3\t177\t284\t0\t191\t97.222200\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1614 f.write("6\taurora-element\t116\t287\tAtha5Chr4_Pals_Piler_3595_30_MAP_3\t3\t170\t0\t290\t98.809500\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1615 f.write("7\taurora-element\t393\t902\tAtha5Chr4_Pals_Piler_3595_31_MAP_3\t1467\t1945\t0\t873\t97.244100\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1616 f.write("7\taurora-element\t1387\t2271\tAtha5Chr4_Pals_Piler_3595_31_MAP_3\t276\t10780\t0\t1576\t97.624400\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1617 f.write("8\taurora-element\t2486\t2828\tAtha5Chr4_Pals_Piler_3595_50_MAP_3\t4301\t4641\t0\t585\t97.360700\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1618 f.write("9\taurora-element\t2265\t2483\tAtha5Chr4_Pals_Piler_3595_62_MAP_3\t3999\t4218\t0\t361\t96.347000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1619 f.write("10\taurora-element\t2834\t4045\tAtha5Chr4_Pals_Piler_3595_69_MAP_3\t4800\t6011\t0\t2074\t97.024800\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1620 f.write("11\taurora-element\t2\t113\tAtha5Chr4_Pals_Piler_3598_69_MAP_3\t205\t317\t8.5e-37\t157\t93.750000\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1621 f.close()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1622
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1623 self.assertTrue(FileUtils.are2FilesIdentical(expPathFile, obsPathFile))
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1624
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1625 os.remove(pathFile)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1626 os.remove(expPathFile)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1627 os.remove(obsPathFile)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1628
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1629
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1630 def test_getPathListWithoutDuplicatesOnQueryCoord(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1631 iPath1 = Path(1, Range("qry1",398,491), Range("sbj1",10,112), 0.0, 10, 98.7)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1632 iPath2 = Path(1, Range("qry1",451,492), Range("sbj1",124,169), 0.0, 10, 98.7)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1633 iPath3 = Path(1, Range("qry1",451,492), Range("sbj1",249,294), 0.0, 10, 98.7)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1634 lPaths = [iPath3, iPath2, iPath1]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1635
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1636 obslPaths = PathUtils.getPathListWithoutDuplicatesOnQueryCoord(lPaths)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1637
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1638 explPaths = [iPath1, iPath3]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1639
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1640 self.assertEquals(explPaths, obslPaths)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1641
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1642
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1643 def _makePathListFromTupleList ( self, tupleList ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1644 pathList = []
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1645 for tuple in tupleList:
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1646 path = Path()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1647 path.setFromTuple(tuple)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1648 pathList.append(path)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1649 return pathList
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1650
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1651 def _makePathListFromStringList (self, stringList):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1652 pathList = []
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1653 for string in stringList:
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1654 path = Path()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1655 path.setFromString(string)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1656 pathList.append(path)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1657 return pathList
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1658
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1659 def _show (self, list):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1660 for item in list:
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1661 print item.toString()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1662
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1663
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1664 test_suite = unittest.TestSuite()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1665 test_suite.addTest( unittest.makeSuite( Test_PathUtils ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1666 if __name__ == "__main__":
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1667 unittest.TextTestRunner(verbosity=2).run( test_suite )