annotate commons/core/coord/test/Test_SetUtils.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.Set import Set
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
36 from commons.core.coord.Map import Map
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
37 from commons.core.coord.SetUtils import SetUtils
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
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
40
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
41 class Test_SetUtils( unittest.TestCase ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
42
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
43 def test_changeIdInList_on_empty_list(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
44 lSets = []
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
45 SetUtils.changeIdInList( lSets , 1 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
46 obsLSets = lSets
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
47 expLSets = []
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
48 self.assertEquals( expLSets , obsLSets )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
49
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
50 def test_changeIdInList_on_list_size_one(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
51 set1 = Set( 1, "set1", "seq1", 1, 2 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
52 lSets = [ set1 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
53 SetUtils.changeIdInList( lSets , 9 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
54 obsLSets = lSets
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
55 set1 = Set( 9, "set1", "seq1", 1, 2 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
56 expLSets = [ set1 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
57 self.assertEquals( expLSets , obsLSets )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
58
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
59 def test_changeIdInList(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
60 set1 = Set( 1, "set1", "seq1", 1, 2 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
61 set2 = Set( 2, "set2", "seq2", 2, 3 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
62 lSets = [ set1, set2 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
63 SetUtils.changeIdInList( lSets , 9 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
64 obsLSets = lSets
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
65 set1 = Set( 9, "set1", "seq1", 1, 2 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
66 set2 = Set( 9, "set2", "seq2", 2, 3 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
67 expLSets = [ set1, set2 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
68
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
69 self.assertEquals( expLSets , obsLSets )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
70
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
71 def test_getOverlapLengthBetweenLists_all_list_are_empty (self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
72 lSets1 = []
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
73 lSets2 = []
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
74
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
75 expOverlapSize = 0
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
76 obsOverlapSize = SetUtils.getOverlapLengthBetweenLists( lSets1, lSets2 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
77
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
78 self.assertEquals( expOverlapSize, obsOverlapSize )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
79
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
80 def test_getOverlapLengthBetweenLists_list1_empty_list2_size_one (self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
81 lSets1 = []
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
82 lSets2 = [ Set( 9, "set1", "seq1", 1, 2 ) ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
83
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
84 expOverlapSize = 0
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
85 obsOverlapSize = SetUtils.getOverlapLengthBetweenLists( lSets1, lSets2 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
86
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
87 self.assertEquals( expOverlapSize, obsOverlapSize )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
88
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
89 def test_getOverlapLengthBetweenLists_list1_empty_list2_size_two (self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
90 lSets1 = []
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
91 lSets2 = [ Set( 9, "set1", "seq1", 1, 2 ), Set( 9, "set2", "seq2", 2, 3 ) ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
92
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
93 expOverlapSize = 0
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
94 obsOverlapSize = SetUtils.getOverlapLengthBetweenLists( lSets1, lSets2 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
95
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
96 self.assertEquals( expOverlapSize, obsOverlapSize )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
97
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
98 def test_getOverlapLengthBetweenLists_list1_size_one_list2_empty (self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
99 lSets1 = [ Set( 9, "set1", "seq1", 1, 2 ) ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
100 lSets2 = []
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
101
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
102 expOverlapSize = 0
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
103 obsOverlapSize = SetUtils.getOverlapLengthBetweenLists( lSets1, lSets2 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
104
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
105 self.assertEquals( expOverlapSize, obsOverlapSize )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
106
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
107 def test_getOverlapLengthBetweenLists_list1_size_one_list2_size_one_without_overlapp (self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
108 lSets1 = [ Set( 1, "set1", "seq1", 1, 2 ) ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
109 lSets2 = [ Set( 2, "set2", "seq2", 2, 3 ) ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
110
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
111 expOverlapSize = 0
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
112 obsOverlapSize = SetUtils.getOverlapLengthBetweenLists( lSets1, lSets2 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
113
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
114 self.assertEquals( expOverlapSize, obsOverlapSize )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
115
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
116 def test_getOverlapLengthBetweenLists_list1_size_one_list2_size_one_with_overlap_size_1 (self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
117 lSets1 = [ Set( 1, "set1", "seq1", 1, 2 ) ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
118 lSets2 = [ Set( 2, "set1", "seq1", 2, 3 ) ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
119
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
120 expOverlapSize = 1
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
121 obsOverlapSize = SetUtils.getOverlapLengthBetweenLists( lSets1, lSets2 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
122
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
123 self.assertEquals( expOverlapSize, obsOverlapSize )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
124
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
125 def test_getOverlapLengthBetweenLists_list1_size_one_list2_size_one_with_overlap_size_2 (self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
126 lSets1 = [ Set( 1, "set1", "seq1", 1, 2 ) ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
127 lSets2 = [ Set( 2, "set1", "seq1", 1, 3 ) ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
128
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
129 expOverlapSize = 2
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
130 obsOverlapSize = SetUtils.getOverlapLengthBetweenLists( lSets1, lSets2 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
131
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
132 self.assertEquals( expOverlapSize, obsOverlapSize )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
133
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
134 def test_getOverlapLengthBetweenLists_list1_size_one_list2_size_two_without_overlap_sets_in_list1_greater_than_sets_in_list2 (self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
135 lSets1 = [ Set( 1, "set1", "seq1", 4, 6 ) ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
136 lSets2 = [ Set( 2, "set2", "seq1", 2, 3 ), Set( 3, "set3", "seq3", 1, 2 ) ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
137
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
138 expOverlapSize = 0
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
139 obsOverlapSize = SetUtils.getOverlapLengthBetweenLists( lSets1, lSets2 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
140
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
141 self.assertEquals( expOverlapSize, obsOverlapSize )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
142
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
143 def test_getOverlapLengthBetweenLists_list1_size_one_list2_size_two_with_overlap_sets_in_list1_greater_than_sets_in_list2 (self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
144 lSets1 = [ Set( 1, "set1", "seq1", 4, 6 ) ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
145 lSets2 = [ Set( 2, "set2", "seq2", 2, 3 ), Set( 3, "set3", "seq1", 4, 5 ) ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
146
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
147 expOverlapSize = 2
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
148 obsOverlapSize = SetUtils.getOverlapLengthBetweenLists( lSets1, lSets2 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
149
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
150 self.assertEquals( expOverlapSize, obsOverlapSize )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
151
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
152 def test_getOverlapLengthBetweenLists_list1_size_one_list2_size_two_with_overlap_on_redundant_position (self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
153 lSets1 = [ Set( 1, "set1", "seq1", 1, 2 ) ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
154 lSets2 = [ Set( 2, "set2", "seq1", 2, 3 ), Set( 3, "set1", "seq1", 1, 2 ) ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
155
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
156 expOverlapSize = 3
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
157 obsOverlapSize = SetUtils.getOverlapLengthBetweenLists( lSets1, lSets2 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
158
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
159 self.assertEquals( expOverlapSize, obsOverlapSize )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
160
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
161 def test_getOverlapLengthBetweenLists_list1_size_two_list2_empty (self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
162 lSets1 = [ Set( 1, "set1", "seq1", 1, 2 ), Set( 2, "set2", "seq2", 2, 3 ) ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
163 lSets2 = []
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
164
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
165 expOverlapSize = 0
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
166 obsOverlapSize = SetUtils.getOverlapLengthBetweenLists( lSets1, lSets2 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
167
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
168 self.assertEquals( expOverlapSize, obsOverlapSize )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
169
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
170 def test_getOverlapLengthBetweenLists_on_different_seq_names (self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
171 lSets1 = [ Set( 1, "set1", "seq1", 1, 2 ), Set( 2, "set2", "seq2", 2, 3 ) ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
172 lSets2 = [ Set( 3, "set1", "seq2", 4, 5 ), Set( 5, "set2", "seq4", 2, 3 ) ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
173
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
174 expOverlapSize = 0
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
175 obsOverlapSize = SetUtils.getOverlapLengthBetweenLists( lSets1, lSets2 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
176
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
177 self.assertEquals( expOverlapSize, obsOverlapSize )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
178
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
179 def test_getOverlapLengthBetweenLists_list1_size_two_list2_size_two_with_overlap (self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
180 lSets1 = [ Set( 1, "set1", "seq1", 1, 6 ), Set( 2, "set2", "seq2", 2, 3 ) ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
181 lSets2 = [ Set( 3, "set1", "seq1", 1, 2 ), Set( 2, "set2", "seq3", 2, 3 ) ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
182
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
183 expOverlapSize = 2
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
184 obsOverlapSize = SetUtils.getOverlapLengthBetweenLists( lSets1, lSets2 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
185
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
186 self.assertEquals( expOverlapSize, obsOverlapSize )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
187
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
188 def test_areSetsOverlappingBetweenLists_list2_empty(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
189 tuple1 = ("1","chr1","seq1", "100","110")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
190 tuple2 = ("1","chr1","seq1", "200","220")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
191 tuple3 = ("1","chr1","seq1", "300","330")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
192 setList1 = self._makeSetListFromTupleList([tuple1, tuple2, tuple3])
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
193
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
194 setList2 = []
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
195
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
196 expRes = False
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
197 obsRes = SetUtils.areSetsOverlappingBetweenLists( setList1, setList2 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
198
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
199 self.assertEquals( expRes, obsRes )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
200
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
201 def test_areSetsOverlappingBetweenLists_list2_size1(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
202 tuple1 = ("1","chr1","seq1", "9","11")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
203 tuple2 = ("1","chr1","seq1", "20","22")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
204 tuple3 = ("1","chr1","seq1", "30","33")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
205 setList1 = self._makeSetListFromTupleList( [ tuple1, tuple2, tuple3 ] )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
206
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
207 tuple11 = ("1","chr1", "seq1", "8","11")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
208 setList2 = self._makeSetListFromTupleList( [ tuple11 ] )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
209
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
210 expRes = True
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
211 obsRes = SetUtils.areSetsOverlappingBetweenLists( setList1, setList2 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
212
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
213 self.assertEquals( expRes, obsRes )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
214
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
215 def test_areSetsOverlappingBetweenLists_list1_greater_list2(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
216 tuple1 = ("1","chr1","seq1","100","110")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
217 tuple2 = ("1","chr1","seq1","200","220")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
218 tuple3 = ("1","chr1","seq1","300","330")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
219 setList1 = self._makeSetListFromTupleList( [ tuple1, tuple2, tuple3 ] )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
220
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
221 tuple11 = ("1","chr1","seq1", "10","11")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
222 tuple22 = ("1","chr1","seq1", "20","22")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
223 tuple33 = ("1","chr1","seq1", "30","33")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
224 setList2 = self._makeSetListFromTupleList( [ tuple11, tuple22, tuple33 ] )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
225
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
226 expRes = False
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
227 obsRes = SetUtils.areSetsOverlappingBetweenLists( setList1, setList2 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
228
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
229 self.assertEquals( expRes, obsRes )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
230
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
231 def test_areSetsOverlappingBetweenLists_unordered_first_item_of_list1_greater_second_item_smaller(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
232 tuple1 = ("1","chr1","seq1","400","440")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
233 tuple2 = ("1","chr1","seq1","1","11")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
234 setList1 = self._makeSetListFromTupleList( [ tuple1, tuple2 ] )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
235
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
236 tuple11 = ("1","chr1","seq1","15","17")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
237 tuple22 = ("1","chr1","seq1", "20","22")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
238 tuple33 = ("1","chr1","seq1","30","33")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
239 setList2 = self._makeSetListFromTupleList( [ tuple11, tuple22, tuple33 ] )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
240
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
241 expRes = False
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
242 obsRes = SetUtils.areSetsOverlappingBetweenLists( setList1, setList2 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
243
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
244 self.assertEquals( expRes, obsRes )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
245
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
246 def test_areSetsOverlappingBetweenLists_unorderd_second_item_of_list1_overlap_first_item(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
247 tuple1 = ("1","chr1","seq1","400","440")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
248 tuple2 = ("1","chr1","seq1", "1","18")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
249 setList1 = self._makeSetListFromTupleList( [ tuple1, tuple2 ] )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
250
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
251 tuple11 = ("1","chr1","seq1","15","17")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
252 tuple22 = ("1","chr1","seq1","20","22")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
253 tuple33 = ("1","chr1","seq1","30","33")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
254 setList2 = self._makeSetListFromTupleList( [ tuple11, tuple22, tuple33 ] )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
255
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
256 expRes = True
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
257 obsRes = SetUtils.areSetsOverlappingBetweenLists( setList1, setList2 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
258
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
259 self.assertEquals( expRes, obsRes )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
260
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
261 def test_areSetsOverlappingBetweenLists_last_item_list1_overlap_last_item_list2(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
262 tuple1 = ("1","chr1","seq1","400","440")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
263 tuple2 = ("1","chr1","seq1","320","340")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
264 pathList1 = self._makeSetListFromTupleList( [ tuple1, tuple2 ] )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
265
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
266 tuple11 = ("1","chr1","seq1","100","110")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
267 tuple22 = ("1","chr1","seq1","200","220")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
268 tuple33 = ("1","chr1","seq1","300","330")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
269 pathList2 = self._makeSetListFromTupleList( [ tuple11, tuple22, tuple33 ] )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
270
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
271 expRes = True
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
272 obsRes = SetUtils.areSetsOverlappingBetweenLists( pathList1, pathList2 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
273
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
274 self.assertEquals( expRes, obsRes )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
275
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
276 def test_getCumulLength_empty_list(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
277 lSets = []
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
278
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
279 expSize = 0
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
280 obsSize = SetUtils.getCumulLength( lSets )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
281
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
282 self.assertEquals( expSize, obsSize )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
283
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
284 def test_getCumulLength_1_item(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
285 lSets = [ Set( 1, "set1", "seq1", 1, 6 ) ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
286
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
287 expSize = 6
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
288 obsSize = SetUtils.getCumulLength( lSets )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
289
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
290 self.assertEquals( expSize, obsSize )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
291
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
292 def test_getCumulLength_2_items(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
293 lSets = [ Set( 1, "set1", "seq1", 1, 6 ), Set( 1, "set1", "seq1", 1, 2 ) ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
294
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
295 expSize = 8
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
296 obsSize = SetUtils.getCumulLength( lSets )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
297
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
298 self.assertEquals( expSize, obsSize )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
299
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
300 def test_getCumulLength_complex(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
301 set8 = Set(498, "(TACATA)25", "Mela_Blaster_Grouper_611_MAP_20", 17, 348)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
302 set5 = Set(502, "(GGAGA)2", "Mela_Blaster_Grouper_611_MAP_20", 356, 366)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
303 set6 = Set(503, "(TTTAAAGAACCC)2", "Mela_Blaster_Grouper_611_MAP_20", 433, 457)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
304 set7 = Set(504, "(TATAA)2", "Mela_Blaster_Grouper_611_MAP_20", 484, 495)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
305 lSets = [ set8, set5, set6, set7 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
306 expSize = 380
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
307 obsSize = SetUtils.getCumulLength( lSets )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
308
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
309 self.assertEquals( expSize, obsSize )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
310
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
311 def test_getListBoundaries_one_set(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
312 lSets = [ Set( 1, "set1", "seq1", 3, 8 ) ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
313
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
314 expTuple = ( 3, 8 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
315 obsTuple = SetUtils.getListBoundaries( lSets )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
316
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
317 self.assertEquals( expTuple, obsTuple )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
318
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
319 def test_getListBoundaries_two_sets(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
320 lSets = [ Set( 1, "set1", "seq1", 3, 8 ), Set( 2, "set2", "seq2", 5, 10 ) ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
321
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
322 expTuple = ( 3, 10 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
323 obsTuple = SetUtils.getListBoundaries( lSets )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
324
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
325 self.assertEquals( expTuple, obsTuple )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
326
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
327 def test_writeListInFile_empty_list(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
328 lSets = [ ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
329 expFileName = "expFileName"
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
330 fileHandle = open(expFileName, "w")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
331 fileHandle.close()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
332
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
333 obsFileName = "obsFileName"
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
334 fileHandle = open(obsFileName, "w")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
335 SetUtils.writeListInFile(lSets, obsFileName, "w")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
336 fileHandle.close()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
337
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
338 self.assertTrue( FileUtils.are2FilesIdentical( expFileName, obsFileName ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
339
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
340 os.remove(obsFileName)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
341 os.remove(expFileName)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
342
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
343 def test_writeListInFile_list_one_set(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
344 lSets = [ Set( 1, "set1", "seq1", 3, 8 ) ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
345 line = "1\tset1\tseq1\t3\t8\n"
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
346 expFileName = "expFileName"
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
347
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
348 fileHandle = open(expFileName, "w")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
349 fileHandle.write(line)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
350 fileHandle.close()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
351
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
352 obsFileName = "obsFileName"
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
353 fileHandle = open(obsFileName, "w")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
354 SetUtils.writeListInFile(lSets, obsFileName, "w")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
355 fileHandle.close()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
356
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
357 self.assertTrue( FileUtils.are2FilesIdentical( expFileName, obsFileName ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
358
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
359 os.remove(obsFileName)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
360 os.remove(expFileName)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
361
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
362
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
363 def test_getDictOfListsWithIdAsKey_empty_list( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
364 lSets = []
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
365 expDic = {}
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
366 obsDic = SetUtils.getDictOfListsWithIdAsKey( lSets )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
367 self.assertEquals( expDic, obsDic )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
368
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
369
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
370 def test_getDictOfListsWithIdAsKey_one_set( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
371 lSets = [ Set( 2, "set2", "seq2", 3, 8 ) ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
372 expDic = { 2: [ Set( 2, "set2", "seq2", 3, 8 ) ] }
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
373 obsDic = SetUtils.getDictOfListsWithIdAsKey( lSets )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
374 self.assertEquals( expDic, obsDic )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
375
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
376
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
377 def test_getDictOfListsWithIdAsKey_two_sets_with_same_id( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
378 lSets = [ Set( 2, "set2", "seq2", 10, 50 ), Set( 2, "set2", "seq2", 3, 8 )]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
379 expDic = { 2: [Set( 2, "set2", "seq2", 10, 50 ), Set( 2, "set2", "seq2", 3, 8 )] }
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
380 obsDic = SetUtils.getDictOfListsWithIdAsKey( lSets )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
381 self.assertEquals( expDic, obsDic )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
382
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
383
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
384 def test_getDictOfListsWithIdAsKey_sets_with_3_different_id( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
385 set1 = Set( 1, "set2", "seq2", 10, 50 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
386 set2 = Set( 1, "set2", "seq2", 20, 50 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
387 set3 = Set( 2, "set2", "seq2", 30, 50 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
388 set4 = Set( 2, "set2", "seq2", 40, 50 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
389 set5 = Set( 3, "set2", "seq2", 1, 2 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
390 lSets = [ set1, set2, set3, set4, set5 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
391 expDic = { 1: [set1, set2],
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
392 2: [set3, set4],
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
393 3: [set5] }
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
394 obsDic = SetUtils.getDictOfListsWithIdAsKey( lSets )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
395 self.assertEquals( expDic, obsDic )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
396
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
397
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
398 def test_getDictOfListsWithIdAsKeyFromFile(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
399 setFile = "dummySetFile"
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
400 setFileHandler = open( setFile, "w" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
401 setFileHandler.write( "1\tseq31\tchr1\t151\t250\n" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
402 setFileHandler.write( "2\tseq27\tchr2\t301\t500\n" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
403 setFileHandler.write( "2\tseq27\tchr2\t601\t650\n" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
404 setFileHandler.close()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
405
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
406 dExp = { 1: [ Set( 1, "seq31", "chr1", 151, 250 ) ],
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
407 2: [ Set( 2, "seq27", "chr2", 301, 500 ),
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
408 Set( 2, "seq27", "chr2", 601, 650 ) ] }
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
409 dObs = SetUtils.getDictOfListsWithIdAsKeyFromFile( setFile )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
410
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
411 self.assertEquals( dExp, dObs )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
412
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
413 os.remove( setFile )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
414
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
415
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
416 def test_getMapListFromSetList_empty_list(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
417 lSets = []
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
418
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
419 expLMap = []
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
420 obsLMap = SetUtils.getMapListFromSetList(lSets)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
421
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
422 self.assertEquals(expLMap, obsLMap)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
423
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
424 def test_getMapListFromSetList_one_set(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
425 lSets = [ Set( 1, "set", "seq1", 1, 6 )]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
426 map1 = Map("set::1","seq1",1,6)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
427
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
428 expLMap = [ map1 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
429 obsLMap = SetUtils.getMapListFromSetList(lSets)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
430
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
431 self.assertEquals(expLMap, obsLMap)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
432
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
433 def test_getMapListFromSetList_two_sets(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
434 lSets = [ Set( 1, "set", "seq1", 1, 6 ), Set( 2, "set", "seq2", 3, 8 ) ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
435 map1 = Map("set::1","seq1",1,6)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
436 map2 = Map("set::2","seq2",3,8)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
437
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
438 expLMap = [ map1, map2 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
439 obsLMap = SetUtils.getMapListFromSetList(lSets)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
440
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
441 self.assertEquals(expLMap, obsLMap)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
442
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
443 def test_getSetListFromMapList_empty_list(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
444 lMap =[]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
445 expLSets = []
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
446 obsLSets = SetUtils.getSetListFromMapList(lMap)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
447
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
448 self.assertEquals(expLSets, obsLSets)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
449
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
450 def test_getSetListFromMapList_one_map(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
451 map1 = Map( "map1","seq1",1,6)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
452 lMap =[ map1 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
453 expLSets = [ Set( 1, "map1", "seq1", 1, 6 ) ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
454 obsLSets = SetUtils.getSetListFromMapList(lMap)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
455
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
456 self.assertEquals(expLSets, obsLSets)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
457
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
458 def test_getSetListFromMapList_two_maps(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
459 map1 = Map( "map1","seq1",1,6)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
460 map2 = Map( "map2","seq2",3,8)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
461 lMap =[ map1,map2 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
462 expLSets = [ Set( 1, "map1", "seq1", 1, 6 ), Set( 2, "map2", "seq2", 3, 8 ) ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
463 obsLSets = SetUtils.getSetListFromMapList(lMap)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
464
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
465 self.assertEquals(expLSets, obsLSets)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
466
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
467 def test_getSetListFromMapList_list_with_one_empty_map(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
468 map1 = Map( "map1","seq1",1,6)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
469 map2 = Map()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
470 lMap =[ map1,map2 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
471 expLSets = [ Set( 1, "map1", "seq1", 1, 6 ), Set(2, ) ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
472 obsLSets = SetUtils.getSetListFromMapList(lMap)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
473
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
474 self.assertEquals(expLSets, obsLSets)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
475
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
476 def test_mergeSetsInList(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
477 set1 = Set( 1, "set1", "seq1", 1, 6 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
478 set2 = Set( 2, "set2", "seq1", 3, 6 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
479 set3 = Set( 3, "set3", "seq1", 3, 5 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
480 set4 = Set( 4, "set4", "seq1", 1, 2 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
481 lSets = [ set1, set2, set3, set4 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
482
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
483 obsList = SetUtils.mergeSetsInList( lSets )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
484 expList = [ Set( 1, "set1", "seq1", 1, 6 ) ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
485
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
486 self.assertEquals( expList, obsList )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
487
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
488
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
489 def test_mergeSetsInList_with_reverse_only(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
490 set1 = Set( 1, "set1", "seq1", 6, 1 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
491 set2 = Set( 2, "set2", "seq1", 6, 3 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
492 set3 = Set( 3, "set3", "seq1", 5, 3 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
493 set4 = Set( 4, "set4", "seq1", 2, 1 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
494 lSets = [ set1, set2, set3, set4 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
495
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
496 obsList = SetUtils.mergeSetsInList( lSets )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
497 expList = [ Set( 1, "set1", "seq1", 6, 1 ) ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
498
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
499 self.assertEquals( expList, obsList )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
500
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
501
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
502 def test_mergeSetsInList_with_direct_and_reverse(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
503 set1 = Set( 1, "set1", "seq1", 6, 1 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
504 set2 = Set( 2, "set2", "seq1", 6, 3 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
505 set3 = Set( 3, "set3", "seq1", 3, 5 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
506 set4 = Set( 4, "set4", "seq1", 2, 1 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
507 lSets = [ set1, set2, set3, set4 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
508
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
509 obsList = SetUtils.mergeSetsInList( lSets )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
510 expList = [ set1 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
511
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
512 self.assertEquals( expList, obsList )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
513
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
514
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
515 def test_mergeSetsInList_with_empty_set(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
516 set1 = Set( 1, "set1", "seq1", 1, 6 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
517 set2 = Set()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
518 set3 = Set( 3, "set3", "seq1", 3, 5 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
519 set4 = Set( 4, "set4", "seq1", 1, 2 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
520 lSets = [ set1, set2, set3, set4 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
521
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
522 obsList = SetUtils.mergeSetsInList( lSets )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
523 expList = [ set2, set1 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
524
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
525 self.assertEquals( expList, obsList )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
526
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
527
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
528 def test_mergeSetsInList_empty_list(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
529 lSets = []
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
530
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
531 obsList = SetUtils.mergeSetsInList( lSets )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
532 expList = []
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
533
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
534 self.assertEquals( expList, obsList )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
535
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
536
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
537 def test_mergeSetsInList_one_set (self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
538 set1 = Set( 1, "set1", "seq1", 1, 6 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
539 lSets = [ set1 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
540
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
541 obsLSets = SetUtils.mergeSetsInList( lSets )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
542 expLSets = [ set1 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
543
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
544 self.assertEquals( expLSets, obsLSets )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
545
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
546
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
547 def test_mergeSetsInList_diffSeqnames_without_overlapping(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
548 set1 = Set( 1, "set1", "seq1", 1, 6 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
549 set2 = Set( 1, "set2", "seq2", 11, 16 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
550 lSets = [ set1, set2 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
551
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
552 obsLSets = SetUtils.mergeSetsInList( lSets )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
553 expLSets = [ set1, set2 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
554
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
555 self.assertEquals( expLSets, obsLSets )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
556
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
557
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
558 def test_mergeSetsInList_diffSeqnames_overlapping(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
559 set1 = Set( 1, "set1", "seq1", 1, 6 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
560 set2 = Set( 1, "set2", "seq2", 2, 5 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
561 lSets = [ set1, set2 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
562
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
563 obsLSets = SetUtils.mergeSetsInList( lSets )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
564 expLSets = [ set1, set2 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
565
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
566 self.assertEquals( expLSets, obsLSets )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
567
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
568
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
569 def test_mergeSetsInList_sameSeqnames_without_overlapping(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
570 set1 = Set( 1, "set1", "seq1", 1, 6 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
571 set2 = Set( 1, "set2", "seq1", 11, 16 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
572 lSets = [ set1, set2 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
573
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
574 obsLSets = SetUtils.mergeSetsInList( lSets )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
575 expLSets = [ set1, set2 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
576
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
577 self.assertEquals( expLSets, obsLSets )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
578
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
579 def test_mergeSetsInList_complex(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
580 set1 = Set(498, "(ACATATAATAA)10", "Mela_Blaster_Grouper_611_MAP_20", 77, 181)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
581 set2 = Set(499, "(TACATA)25", "Mela_Blaster_Grouper_611_MAP_20", 17, 166)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
582 set3 = Set(500, "(ATAAAATAC)26", "Mela_Blaster_Grouper_611_MAP_20", 94, 348)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
583 set4 = Set(501, "(TAA)15", "Mela_Blaster_Grouper_611_MAP_20", 257, 303)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
584 set5 = Set(502, "(GGAGA)2", "Mela_Blaster_Grouper_611_MAP_20", 356, 366)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
585 set6 = Set(503, "(TTTAAAGAACCC)2", "Mela_Blaster_Grouper_611_MAP_20", 433, 457)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
586 set7 = Set(504, "(TATAA)2", "Mela_Blaster_Grouper_611_MAP_20", 484, 495)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
587 lSets = [ set1, set2, set3, set4, set5, set6, set7 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
588 obsLSets = SetUtils.mergeSetsInList( lSets )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
589
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
590 set8 = Set(498, "(TACATA)25", "Mela_Blaster_Grouper_611_MAP_20", 17, 348)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
591
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
592 expLSets = [ set8, set5, set6, set7 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
593
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
594 self.assertEquals( expLSets, obsLSets )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
595
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
596 def test_getSetListUnjoined_listToKeep_empty_listToUnjoin_empty (self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
597 setListToKeep = []
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
598 setListToUnjoin = []
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
599
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
600 obsLSets = SetUtils.getSetListUnjoined(setListToKeep, setListToUnjoin)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
601 expLSets = []
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
602
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
603 self.assertEquals(expLSets, obsLSets)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
604
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
605 def test_getSetListUnjoined_listToKeep_empty (self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
606 setListToKeep = []
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
607
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
608 setUnjoin1 = Set( 1, "set", "seq", 1, 3 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
609 setUnjoin2 = Set( 1, "set", "seq", 2, 3 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
610 setUnjoin3 = Set( 1, "set", "seq", 5, 7 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
611 setListToUnjoin = [ setUnjoin1, setUnjoin2, setUnjoin3 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
612
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
613 obsLSets = SetUtils.getSetListUnjoined(setListToKeep, setListToUnjoin)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
614 expLSets = [ setListToUnjoin ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
615
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
616 self.assertEquals(expLSets, obsLSets)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
617
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
618 def test_getSetListUnjoined_listToKeep_empty_listToUnjoin_size1 (self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
619 setListToKeep = []
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
620
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
621 setUnjoin = Set( 1, "set", "seq", 1, 3 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
622 setListToUnjoin = [ setUnjoin ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
623
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
624 obsLSets = SetUtils.getSetListUnjoined(setListToKeep, setListToUnjoin)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
625 expLSets = [ setListToUnjoin ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
626
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
627 self.assertEquals(expLSets, obsLSets)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
628
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
629 def test_getSetListUnjoined_listToKeep_size1_listToUnjoin_empty (self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
630 setKeep = Set( 1, "set", "seq", 1, 3 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
631 setListToKeep = [ setKeep ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
632
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
633 setListToUnjoin = []
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
634
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
635 obsLSets = SetUtils.getSetListUnjoined(setListToKeep, setListToUnjoin)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
636 expLSets = []
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
637
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
638 self.assertEquals(expLSets, obsLSets)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
639
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
640 def test_getSetListUnjoined_listToKeep_size1_listToUnjoin_size1 (self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
641 setKeep = Set( 1, "set", "seq", 1, 3 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
642 setListToKeep = [ setKeep ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
643
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
644 setUnjoin = Set( 1, "set", "seq", 5, 9 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
645 setListToUnjoin = [ setUnjoin ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
646
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
647 obsLSets = SetUtils.getSetListUnjoined(setListToKeep, setListToUnjoin)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
648 expLSets = [ setListToUnjoin ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
649
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
650 self.assertEquals(expLSets, obsLSets)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
651
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
652 def test_getSetListUnjoined_listToKeep_size1_listToUnjoin_size2_noSplit_item_in_listToKeep_smaller_item_in_listToUnjoin (self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
653 setKeep = Set( 1, "set", "seq", 1, 3 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
654 setListToKeep = [ setKeep ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
655
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
656 setUnjoin1 = Set( 1, "set", "seq", 5, 9 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
657 setUnjoin2 = Set( 1, "set", "seq", 11, 16 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
658 setListToUnjoin = [ setUnjoin1, setUnjoin2 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
659
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
660 obsLSets = SetUtils.getSetListUnjoined(setListToKeep, setListToUnjoin)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
661 expLSets = [ setListToUnjoin ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
662
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
663 self.assertEquals(expLSets, obsLSets)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
664
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
665 def test_getSetListUnjoined_listToKeep_size1_listToUnjoin_size3_noSplit_item_in_listToKeep_smaller_item_in_listToUnjoin (self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
666 setKeep = Set( 1, "set", "seq", 1, 3 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
667 setListToKeep = [ setKeep ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
668
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
669 setUnjoin1 = Set( 1, "set", "seq", 5, 9 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
670 setUnjoin2 = Set( 1, "set", "seq", 11, 16 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
671 setUnjoin3 = Set( 1, "set", "seq", 21, 26 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
672 setListToUnjoin = [ setUnjoin1, setUnjoin2, setUnjoin3 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
673
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
674 obsLSets = SetUtils.getSetListUnjoined(setListToKeep, setListToUnjoin)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
675 expLSets = [ setListToUnjoin ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
676
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
677 self.assertEquals(expLSets, obsLSets)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
678
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
679 def test_getSetListUnjoined_listToKeep_size1_listToUnjoin_size2_noSplit_item_in_listToUnjoin_smaller_item_in_listToKeep (self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
680 setKeep = Set( 1, "set", "seq", 10, 13 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
681 setListToKeep = [ setKeep ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
682
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
683 setUnjoin1 = Set( 1, "set", "seq", 5, 9 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
684 setUnjoin2 = Set( 1, "set", "seq", 1, 3 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
685 setListToUnjoin = [ setUnjoin1, setUnjoin2 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
686
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
687 obsLSets = SetUtils.getSetListUnjoined(setListToKeep, setListToUnjoin)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
688 expLSets = [ SetUtils.getSetListSortedByIncreasingMinThenMax( setListToUnjoin ) ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
689
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
690 self.assertEquals(expLSets, obsLSets)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
691
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
692 def test_getSetListUnjoined_listToKeep_size3_listToUnjoin_size2_oneSplit_item_in_listToKeep_smaller_item_in_listToUnjoin (self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
693 setKeep1 = Set( 1, "set", "seq", 1, 1 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
694 setKeep2 = Set( 1, "set", "seq", 21, 30 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
695 setKeep3 = Set( 1, "set", "seq", 61, 70 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
696 setListToKeep = [ setKeep1, setKeep2, setKeep3 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
697
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
698 setUnjoin1 = Set( 1, "set", "seq", 41, 50 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
699 setUnjoin2 = Set( 2, "set", "seq", 81, 90 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
700 setListToUnjoin = [ setUnjoin1, setUnjoin2 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
701
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
702 expLSets = [ [ setUnjoin1 ], [ setUnjoin2 ] ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
703
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
704 obsLSets = SetUtils.getSetListUnjoined(setListToKeep, setListToUnjoin)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
705
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
706 self.assertEquals(expLSets, obsLSets)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
707
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
708 def test_getSetListUnjoined_listToKeep_size3_listToUnjoin_size3_twoSplits_item_in_listToUnjoin_smaller_item_in_listToKeep(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
709 setKeep1 = Set( 1, "set", "seq", 21, 30 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
710 setKeep2 = Set( 1, "set", "seq", 41, 50 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
711 setKeep3 = Set( 1, "set", "seq", 81, 90 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
712 setListToKeep = [ setKeep1, setKeep2, setKeep3 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
713
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
714 setUnjoin1 = Set( 1, "set", "seq", 1, 10 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
715 setUnjoin2 = Set( 2, "set", "seq", 61, 70 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
716 setUnjoin3 = Set( 2, "set", "seq", 101, 110 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
717 setListToUnjoin = [ setUnjoin1, setUnjoin2, setUnjoin3 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
718
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
719 expLSets = [ [ setUnjoin1 ], [ setUnjoin2 ], [ setUnjoin3 ] ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
720
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
721 obsLSets = SetUtils.getSetListUnjoined( setListToKeep, setListToUnjoin )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
722
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
723 self.assertEquals(expLSets, obsLSets)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
724
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
725 def test_getSetListUnjoined_listToKeep_size1_listToUnjoin_size2_split(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
726 setKeep1 = Set( 1, "set", "seq", 51, 80 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
727 setListToKeep = [ setKeep1 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
728
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
729 setUnjoin1 = Set( 1, "set", "seq", 21, 40 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
730 setUnjoin2 = Set( 1, "set", "seq", 101, 150 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
731 setListToUnjoin = [ setUnjoin1, setUnjoin2 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
732
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
733 expLSets = [ [setUnjoin1] , [setUnjoin2] ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
734
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
735 obsLSets = SetUtils.getSetListUnjoined( setListToKeep, setListToUnjoin )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
736
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
737 self.assertEquals( expLSets, obsLSets )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
738
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
739 def test_getSetListUnjoined_listToKeep_size2_listToUnjoin_size2_split(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
740 setKeep1 = Set( 1, "set", "seq", 1, 15 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
741 setKeep2 = Set( 1, "set", "seq", 81, 130 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
742 setListToKeep = [ setKeep1, setKeep2 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
743
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
744 setUnjoin1 = Set( 1, "set", "seq", 21, 40 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
745 setUnjoin2 = Set( 1, "set", "seq", 201, 250 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
746 setListToUnjoin = [ setUnjoin1, setUnjoin2 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
747
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
748 expLSets = [ [setUnjoin1] , [setUnjoin2] ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
749
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
750 obsLSets = SetUtils.getSetListUnjoined( setListToKeep, setListToUnjoin )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
751
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
752 self.assertEquals( expLSets, obsLSets )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
753
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
754 def test_getSetListUnjoined_listToKeep_size1_listToUnjoin_ordered_OneSplit(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
755 setKeep = Set( 1, "set", "seq", 120, 180 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
756 setListToKeep = [ setKeep ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
757
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
758 setUnjoin1 = Set( 1, "set", "seq", 100, 110 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
759 setUnjoin2 = Set( 1, "set", "seq", 200, 210 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
760 setUnjoin3 = Set( 1, "set", "seq", 250, 280 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
761 setListToUnjoin = [ setUnjoin1, setUnjoin2, setUnjoin3 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
762
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
763 obsLSets = SetUtils.getSetListUnjoined(setListToKeep, setListToUnjoin)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
764 expLSets = [ [setUnjoin1], [setUnjoin2, setUnjoin3] ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
765
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
766 self.assertEquals(expLSets, obsLSets)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
767
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
768 def test_getSetListUnjoined_listToKeep_size1_listToUnjoin_unordered_OneSplit(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
769 setKeep = Set( 1, "set", "seq", 120, 180 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
770 setListToKeep = [ setKeep ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
771
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
772 setUnjoin1 = Set( 1, "set", "seq", 200, 210 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
773 setUnjoin2 = Set( 1, "set", "seq", 250, 280 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
774 setUnjoin3 = Set( 1, "set", "seq", 100, 110 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
775 setListToUnjoin = [ setUnjoin1, setUnjoin2, setUnjoin3 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
776
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
777 obsLSets = SetUtils.getSetListUnjoined(setListToKeep, setListToUnjoin)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
778 expLSets = [ [setUnjoin3], [setUnjoin1, setUnjoin2] ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
779
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
780 self.assertEquals(expLSets, obsLSets)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
781
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
782 def test_getSetListUnjoined_listToKeep_size2_listToUnjoin_size4_twoSplits(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
783 setKeep1 = Set( 1, "set", "seq", 21, 30 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
784 setKeep2 = Set( 1, "set", "seq", 81, 90 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
785 setListToKeep = [ setKeep1, setKeep2 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
786
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
787 setUnjoin1 = Set( 1, "set", "seq", 1, 10 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
788 setUnjoin2 = Set( 1, "set", "seq", 41, 50 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
789 setUnjoin3 = Set( 1, "set", "seq", 61, 70 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
790 setUnjoin4 = Set( 1, "set", "seq", 101, 110 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
791 setListToUnjoin = [ setUnjoin1, setUnjoin2, setUnjoin3, setUnjoin4 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
792
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
793 expLSets = [ [setUnjoin1], [ setUnjoin2, setUnjoin3 ], [setUnjoin4] ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
794
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
795 obsLSets = SetUtils.getSetListUnjoined(setListToKeep, setListToUnjoin)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
796
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
797 self.assertEquals( expLSets, obsLSets )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
798
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
799 def test_getSetListWithoutDuplicates_empty_list(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
800 lSets = []
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
801 obsLSets = SetUtils.getSetListWithoutDuplicates( lSets )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
802 expLSets = []
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
803 self.assertEquals( expLSets, obsLSets )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
804
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
805 def test_getSetListWithoutDuplicates_list_size1(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
806 set = Set( 1, "set", "seq", 100, 110 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
807 lSets = [ set ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
808 obsLSets = SetUtils.getSetListWithoutDuplicates( lSets )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
809 expLSets = lSets
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
810 self.assertEquals( expLSets, obsLSets )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
811
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
812 def test_getSetListWithoutDuplicates_list_with_only_doublons(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
813 set1 = Set( 1, "set", "seq", 100, 110 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
814 set2 = Set( 1, "set", "seq", 100, 110 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
815 set3 = Set( 1, "set", "seq", 100, 110 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
816 set4 = Set( 1, "set", "seq", 100, 110 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
817 lSets = [set1, set2, set3, set4]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
818
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
819 obsLSets = SetUtils.getSetListWithoutDuplicates( lSets )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
820
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
821 expLSets = [ set1 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
822
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
823 self.assertEquals( expLSets, obsLSets )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
824
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
825 def test_getSetListWithoutDuplicates_list_with_doublons_at_start_and_at_end(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
826 set1 = Set( 1, "set", "seq", 200, 210 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
827 set2 = Set( 1, "set", "seq", 100, 110 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
828 set3 = Set( 1, "set", "seq", 300, 310 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
829 set4 = Set( 1, "set", "seq", 100, 110 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
830 lSets = [set1, set2, set3, set4]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
831
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
832 obsLSets = SetUtils.getSetListWithoutDuplicates( lSets )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
833
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
834 expLSets = [ set1, set2, set3 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
835 expLSets = SetUtils.getSetListSortedByIncreasingMinThenMax(expLSets)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
836
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
837 self.assertEquals( expLSets, obsLSets )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
838
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
839 def test_getSetListWithoutDuplicates_list_with_contiguous_doublons(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
840 set1 = Set( 1, "set", "seq", 200, 210 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
841 set2 = Set( 1, "set", "seq", 100, 110 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
842 set3 = Set( 1, "set", "seq", 100, 110 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
843 set4 = Set( 1, "set", "seq", 300, 310 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
844 lSets = [set1, set2, set3, set4]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
845
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
846 obsLSets = SetUtils.getSetListWithoutDuplicates( lSets )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
847
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
848 expLSets = [ set1, set2, set4 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
849 expLSets = SetUtils.getSetListSortedByIncreasingMinThenMax(expLSets)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
850
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
851 self.assertEquals( expLSets, obsLSets )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
852
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
853 def test_getSetListWithoutDuplicates_list_with_one_doublon(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
854 set1 = Set( 1, "set", "seq", 200, 210 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
855 set2 = Set( 1, "set", "seq", 100, 110 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
856 set3 = Set( 1, "set", "seq", 210, 250 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
857 set4 = Set( 1, "set", "seq", 100, 110 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
858 set5 = Set( 1, "set", "seq", 300, 310 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
859 lSets = [set1, set2, set3, set4, set5]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
860
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
861 obsLSets = SetUtils.getSetListWithoutDuplicates( lSets )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
862
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
863 expLSets = [ set1, set2, set3, set5 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
864 expLSets = SetUtils.getSetListSortedByIncreasingMinThenMax(expLSets)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
865
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
866 self.assertEquals( expLSets, obsLSets )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
867
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
868 def test_getSetListWithoutDuplicates_list_with_two_doublons(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
869 set1 = Set( 1, "set", "seq", 200, 210 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
870 set2 = Set( 1, "set", "seq", 100, 110 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
871 set3 = Set( 1, "set", "seq", 210, 250 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
872 set4 = Set( 1, "set", "seq", 230, 250 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
873 set5 = Set( 1, "set", "seq", 210, 250 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
874 set6 = Set( 1, "set", "seq", 100, 110 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
875 set7 = Set( 1, "set", "seq", 300, 310 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
876 lSets = [set1, set2, set3, set4, set5, set6, set7]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
877
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
878 obsLSets = SetUtils.getSetListWithoutDuplicates( lSets )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
879
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
880 expLSets = [ set1, set2, set3, set4, set7 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
881 expLSets = SetUtils.getSetListSortedByIncreasingMinThenMax(expLSets)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
882
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
883 self.assertEquals( expLSets, obsLSets )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
884
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
885 def test_getSetListSortedByIncreasingMinThenMax_alreadyOrdered_diffIdentifier(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
886 set1 = Set( 1, "set1", "seq1", 1, 10 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
887 set2 = Set( 2, "set1", "seq1", 21, 30 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
888 lSets = [ set1, set2 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
889
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
890 expList = [ set1, set2 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
891
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
892 obsList = SetUtils.getSetListSortedByIncreasingMinThenMax( lSets )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
893
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
894 self.assertEqual( expList, obsList )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
895
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
896
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
897 def test_getSetListSortedByIncreasingMinThenMax_unordered_diffIdentifier(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
898 set1 = Set( 1, "set1", "seq1", 21, 30 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
899 set2 = Set( 2, "set1", "seq1", 1, 10 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
900 lSets = [ set1, set2 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
901
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
902 expList = [ set2, set1 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
903
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
904 obsList = SetUtils.getSetListSortedByIncreasingMinThenMax( lSets )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
905
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
906 self.assertEqual( expList, obsList )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
907
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
908
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
909 def test_getSetListSortedByIncreasingMinThenMax_unordered_sameIdentifier(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
910 set1 = Set( 1, "set1", "seq1", 21, 30 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
911 set2 = Set( 1, "set1", "seq1", 1, 10 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
912 lSets = [ set1, set2 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
913
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
914 expList = [ set2, set1 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
915
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
916 obsList = SetUtils.getSetListSortedByIncreasingMinThenMax( lSets )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
917
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
918 self.assertEqual( expList, obsList )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
919
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
920
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
921 def test_getSetListSortedByIncreasingMinThenMax_unordered_overlapping(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
922 set1 = Set( 2, "set1", "seq1", 6, 15 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
923 set2 = Set( 1, "set1", "seq1", 1, 10 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
924 lSets = [ set1, set2 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
925
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
926 expList = [ set2, set1 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
927
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
928 obsList = SetUtils.getSetListSortedByIncreasingMinThenMax( lSets )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
929
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
930 self.assertEqual( expList, obsList )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
931
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
932 def test_getSetListSortedByIncreasingMinThenMax_unordered_sameMin_threeSets(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
933 set1 = Set( 1, "set1", "seq1", 1, 15 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
934 set2 = Set( 2, "set2", "seq1", 1, 10 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
935 set3 = Set( 3, "set3", "seq1", 1, 12 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
936 lSets = [ set1, set2, set3 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
937
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
938 expList = [ set2, set3, set1 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
939
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
940 obsList = SetUtils.getSetListSortedByIncreasingMinThenMax( lSets )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
941
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
942 self.assertEqual( expList, obsList )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
943
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
944
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
945 def test_getSetListSortedByIncreasingMinThenMax_unordered_included(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
946 set1 = Set( 1, "set1", "seq1", 2, 4 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
947 set2 = Set( 2, "set2", "seq1", 1, 5 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
948 lSets = [ set1, set2 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
949
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
950 expList = [ set2, set1 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
951
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
952 obsList = SetUtils.getSetListSortedByIncreasingMinThenMax( lSets )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
953
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
954 self.assertEqual( expList, obsList )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
955
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
956
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
957 def test_getSetListSortedByIncreasingMinThenInvLength_alreadyOrdered_diffIdentifier(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
958 set1 = Set( 1, "set1", "seq1", 1, 10 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
959 set2 = Set( 2, "set1", "seq1", 21, 30 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
960 lSets = [ set1, set2 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
961
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
962 expList = [ set1, set2 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
963
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
964 obsList = SetUtils.getSetListSortedByIncreasingMinThenInvLength( lSets )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
965
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
966 self.assertEqual( expList, obsList )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
967
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
968
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
969 def test_getSetListSortedByIncreasingMinThenInvLength_unordered_diffIdentifier(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
970 set1 = Set( 1, "set1", "seq1", 21, 30 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
971 set2 = Set( 2, "set1", "seq1", 1, 10 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
972 lSets = [ set1, set2 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
973
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
974 expList = [ set2, set1 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
975
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
976 obsList = SetUtils.getSetListSortedByIncreasingMinThenInvLength( lSets )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
977
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
978 self.assertEqual( expList, obsList )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
979
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
980
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
981 def test_getSetListSortedByIncreasingMinThenInvLength_unordered_sameIdentifier(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
982 set1 = Set( 1, "set1", "seq1", 21, 30 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
983 set2 = Set( 1, "set1", "seq1", 1, 10 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
984 lSets = [ set1, set2 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
985
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
986 expList = [ set2, set1 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
987
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
988 obsList = SetUtils.getSetListSortedByIncreasingMinThenInvLength( lSets )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
989
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
990 self.assertEqual( expList, obsList )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
991
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
992
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
993 def test_getSetListSortedByIncreasingMinThenInvLength_unordered_overlapping(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
994 set1 = Set( 2, "set1", "seq1", 6, 15 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
995 set2 = Set( 1, "set1", "seq1", 1, 10 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
996 lSets = [ set1, set2 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
997
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
998 expList = [ set2, set1 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
999
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1000 obsList = SetUtils.getSetListSortedByIncreasingMinThenInvLength( lSets )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1001
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1002 self.assertEqual( expList, obsList )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1003
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1004
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1005 def test_getSetListSortedByIncreasingMinThenInvLength_unordered_sameMin_threeSets(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1006 set1 = Set( 1, "set1", "seq1", 1, 10 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1007 set2 = Set( 2, "set2", "seq1", 3, 8 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1008 set3 = Set( 3, "set3", "seq1", 3, 17 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1009 lSets = [ set1, set2, set3 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1010
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1011 expList = [ set1, set3, set2 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1012
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1013 obsList = SetUtils.getSetListSortedByIncreasingMinThenInvLength( lSets )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1014
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1015 self.assertEqual( expList, obsList )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1016
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1017 def test_getSetListSortedByIncreasingMinThenInvLength_unordered_included(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1018 set1 = Set( 1, "set1", "seq1", 2, 4 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1019 set2 = Set( 2, "set2", "seq1", 1, 5 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1020 lSets = [ set1, set2 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1021
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1022 expList = [ set2, set1 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1023
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1024 obsList = SetUtils.getSetListSortedByIncreasingMinThenInvLength( lSets )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1025
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1026 self.assertEqual( expList, obsList )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1027
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1028 def test_getSetListSortedBySeqThenRegionThenMinThenMax_already_sorted(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1029 set1 = Set(1, "set1", "seq1", 2, 4)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1030 set2 = Set(2, "set2", "seq2", 1, 5)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1031 set3 = Set(3, "set3", "seq2", 8, 10)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1032 lSets = [set1, set2, set3]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1033
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1034 expList = [set1, set2, set3]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1035
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1036 obsList = SetUtils.getSetListSortedBySeqThenRegionThenMinThenMax(lSets)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1037
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1038 self.assertEqual(expList, obsList)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1039
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1040 def test_getSetListSortedBySeqThenRegionThenMinThenMax_not_sorted_by_seqname(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1041 set1 = Set(1, "set1", "seq1", 2, 4)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1042 set2 = Set(2, "set2", "seq2", 1, 5)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1043 set3 = Set(3, "set3", "seq2", 8, 10)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1044 lSets = [set2, set1, set3]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1045
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1046 expList = [set1, set2, set3]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1047
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1048 obsList = SetUtils.getSetListSortedBySeqThenRegionThenMinThenMax(lSets)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1049
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1050 self.assertEqual(expList, obsList)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1051
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1052 def test_getSetListSortedBySeqThenRegionThenMinThenMax_not_sorted_by_region_and_start(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1053 set1 = Set(1, "set1", "seq1", 2, 4)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1054 set2 = Set(2, "set2", "seq2", 1, 5)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1055 set3 = Set(3, "set3", "seq2", 8, 10)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1056 lSets = [set3, set2, set1]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1057
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1058 expList = [set1, set2, set3]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1059
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1060 obsList = SetUtils.getSetListSortedBySeqThenRegionThenMinThenMax(lSets)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1061
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1062 self.assertEqual(expList, obsList)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1063
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1064 def test_getSetListSortedBySeqThenRegionThenMinThenMax_not_sorted_with_overlap(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1065 set1 = Set(1, "set1", "seq1", 2, 4)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1066 set2 = Set(2, "set2", "seq2", 1, 5)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1067 set3 = Set(3, "set2", "seq2", 8, 10)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1068 set4 = Set(4, "set2", "seq3", 7, 9)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1069 set5 = Set(5, "set3", "seq3", 8, 12)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1070 lSets = [set3, set2, set1, set5, set4]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1071
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1072 expList = [set1, set2, set3, set4, set5]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1073
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1074 obsList = SetUtils.getSetListSortedBySeqThenRegionThenMinThenMax(lSets)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1075
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1076 self.assertEqual(expList, obsList)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1077
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1078 def test_getSetListSortedBySeqThenRegionThenMinThenMax_not_sorted_with_reverse(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1079 set1 = Set(1, "set1", "seq1", 2, 4)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1080 set2 = Set(2, "set2", "seq2", 1, 5)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1081 set3 = Set(3, "set2", "seq2", 8, 10)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1082 set4 = Set(4, "set3", "seq3", 7, 9)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1083 set5 = Set(5, "set3", "seq3", 12, 5)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1084 lSets = [set3, set2, set5, set1, set4]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1085
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1086 expList = [set1, set2, set3, set5, set4]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1087
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1088 obsList = SetUtils.getSetListSortedBySeqThenRegionThenMinThenMax(lSets)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1089
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1090 self.assertEqual(expList, obsList)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1091
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1092 def test_getListOfIdListOfOverlappingSets_2_item_in_reference_list_overlaps_with_one_item_in_subject_list(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1093 set1 = Set( 1, "set1", "seq1", 10, 30 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1094 set2 = Set( 2, "set2", "seq1", 40, 60 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1095
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1096 lRef = [set1, set2]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1097
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1098 set3 = Set( 3, "set2", "seq1", 25, 45 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1099 lSubj = [set3]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1100
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1101 lExp = [[1,-3,2]]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1102 lObs = SetUtils.getListOfIdListOfOverlappingSets(lRef, lSubj)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1103
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1104 self.assertEquals(lExp, lObs)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1105
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1106 def test_getListOfIdListOfOverlappingSets_one_item_in_reference_list_overlaps_with_2_item_in_subject_list(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1107 set1 = Set( 1, "set2", "seq1", 25, 45 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1108 lRef = [set1]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1109
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1110 set2 = Set( 2, "set1", "seq1", 10, 30 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1111 set3 = Set( 3, "set2", "seq1", 40, 60 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1112
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1113 lSubj = [set2, set3]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1114
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1115 lExp = [[1,-2,-3]]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1116 lObs = SetUtils.getListOfIdListOfOverlappingSets(lRef, lSubj)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1117
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1118 self.assertEquals(lExp, lObs)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1119
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1120 def test_getListOfIdListOfOverlappingSets_all_item_in_reference_list_overlaps_with_items_in_subject_list(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1121 set1 = Set( 1, "set1", "seq1", 10, 30 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1122 set2 = Set( 2, "set2", "seq1", 40, 60 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1123 set3 = Set( 3, "set2", "seq1", 70, 90 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1124
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1125 lRef = [set1, set2, set3]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1126
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1127 set4 = Set( 4, "set1", "seq1", 5, 9 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1128 set5 = Set( 5, "set1", "seq1", 15, 29 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1129 set6 = Set( 6, "set2", "seq1", 45, 55 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1130 set7 = Set( 7, "set2", "seq1", 57, 68 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1131 set8 = Set( 8, "set2", "seq1", 73, 85 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1132 set9 = Set( 9, "set2", "seq1", 100, 115 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1133
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1134 lSubj = [set4, set5, set6, set7, set8, set9]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1135
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1136 lExp = [[1,-5], [2,-6,-7], [3,-8]]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1137 lObs = SetUtils.getListOfIdListOfOverlappingSets(lRef, lSubj)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1138
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1139 self.assertEquals(lObs, lExp)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1140
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1141 def test_getListOfIdListOfOverlappingSets_all_item_in_subject_list_overlaps_with_items_in_reference_list(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1142 set1 = Set( 1, "set1", "seq1", 5, 9 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1143 set2 = Set( 2, "set1", "seq1", 15, 29 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1144 set3 = Set( 3, "set2", "seq1", 45, 55 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1145 set4 = Set( 4, "set2", "seq1", 57, 68 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1146 set5 = Set( 5, "set2", "seq1", 73, 85 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1147 set6 = Set( 6, "set2", "seq1", 100, 115 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1148
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1149 lRef = [set1, set2, set3, set4, set5, set6]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1150
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1151 set7 = Set( 7, "set1", "seq1", 10, 30 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1152 set8 = Set( 8, "set2", "seq1", 40, 60 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1153 set9 = Set( 9, "set2", "seq1", 70, 90 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1154
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1155 lSubj = [set7, set8, set9]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1156
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1157 lExp = [[2, -7], [3, -8, 4], [5, -9]]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1158 lObs = SetUtils.getListOfIdListOfOverlappingSets(lRef, lSubj)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1159
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1160 self.assertEquals(lObs, lExp)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1161
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1162 def test_getListOfIdListOfOverlappingSets_all_item_overlaps_one_by_one(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1163 set1 = Set( 1, "set1", "seq1", 10, 20 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1164 set2 = Set( 2, "set1", "seq1", 30, 40 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1165 set3 = Set( 3, "set2", "seq1", 50, 60 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1166
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1167 lRef = [set1, set2, set3]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1168
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1169 lSubj = [set1, set2, set3]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1170
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1171 lExp = [[1, -1], [2, -2], [3, -3]]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1172 lObs = SetUtils.getListOfIdListOfOverlappingSets(lRef, lSubj)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1173
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1174 self.assertEquals(lObs, lExp)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1175
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1176 def test_getListOfIdListOfOverlappingSets_continuus_overlap_between_item_in_reference_list_and_item_in_subject_list(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1177 set1 = Set( 1, "set1", "seq1", 10, 20 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1178 set2 = Set( 2, "set1", "seq1", 30, 40 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1179 set3 = Set( 3, "set2", "seq1", 50, 60 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1180 set4 = Set( 4, "set2", "seq1", 70, 80 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1181
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1182 lRef = [set1, set2, set3, set4]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1183
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1184 set5 = Set( 5, "set1", "seq1", 15, 32 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1185 set6 = Set( 6, "set2", "seq1", 35, 52 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1186 set7 = Set( 7, "set2", "seq1", 55, 75 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1187
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1188 lSubj = [set5, set6, set7]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1189
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1190 lExp = [[ 1, -5, 2, -6, 3, -7, 4 ]]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1191 lObs = SetUtils.getListOfIdListOfOverlappingSets(lRef, lSubj)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1192
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1193 self.assertEquals(lObs, lExp)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1194
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1195
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1196 def test_getListOfIdListOfOverlappingSets_first_item_in_reference_overlap_with_one_item_in_subject_list(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1197 set1 = Set( 1, "set1", "seq1", 10, 20 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1198 set2 = Set( 2, "set1", "seq1", 30, 40 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1199
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1200 lRef = [set1, set2]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1201
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1202 set3 = Set( 3, "set1", "seq1", 5, 9 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1203 set4 = Set( 4, "set2", "seq1", 12, 25 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1204 set5 = Set( 5, "set2", "seq1", 55, 75 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1205
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1206 lSubj = [set3, set4, set5]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1207
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1208 lExp = [[1, -4]]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1209 lObs = SetUtils.getListOfIdListOfOverlappingSets(lRef, lSubj)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1210
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1211 self.assertEquals(lObs, lExp)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1212
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1213 def test_getListOfIdListOfOverlappingSets_last_item_in_reference_overlap_with_one_item_in_subject_list(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1214 set1 = Set( 1, "set1", "seq1", 10, 20 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1215 set2 = Set( 2, "set1", "seq1", 30, 40 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1216
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1217 lRef = [set1, set2]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1218
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1219 set3 = Set( 3, "set1", "seq1", 5, 9 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1220 set4 = Set( 4, "set2", "seq1", 32, 45 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1221 set5 = Set( 5, "set2", "seq1", 55, 75 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1222
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1223 lSubj = [set3, set4, set5]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1224
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1225 lExp = [[2, -4]]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1226 lObs = SetUtils.getListOfIdListOfOverlappingSets(lRef, lSubj)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1227
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1228 self.assertEquals(lObs, lExp)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1229
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1230 def test_getListOfIdListOfOverlappingSets_one_item_in_reference_in_the_middle_overlap_with_one_item_in_subject_list(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1231 set1 = Set( 1, "set1", "seq1", 10, 20 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1232 set2 = Set( 2, "set1", "seq1", 30, 40 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1233 set3 = Set( 3, "set1", "seq1", 50, 60 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1234 set4 = Set( 4, "set1", "seq1", 70, 80 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1235
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1236 lRef = [set1, set2, set3, set4]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1237
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1238 set5 = Set( 5, "set1", "seq1", 2, 9 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1239 set6 = Set( 6, "set2", "seq1", 55, 65 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1240 set7 = Set( 7, "set2", "seq1", 90, 100 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1241
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1242 lSubj = [set5, set6, set7]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1243
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1244 lExp = [[3, -6]]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1245 lObs = SetUtils.getListOfIdListOfOverlappingSets(lRef, lSubj)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1246
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1247 self.assertEquals(lObs, lExp)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1248
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1249 def test_getListOfIdListOfOverlappingSets_first_item_in_subject_overlap_with_one_item_in_reference_list(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1250 set1 = Set( 1, "set1", "seq1", 10, 20 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1251 set2 = Set( 2, "set1", "seq1", 30, 40 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1252
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1253 lRef = [set1, set2]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1254
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1255 set3 = Set( 3, "set1", "seq1", 15, 25 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1256 set4 = Set( 4, "set2", "seq1", 45, 50 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1257 set5 = Set( 5, "set2", "seq1", 55, 75 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1258
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1259 lSubj = [set3, set4, set5]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1260
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1261 lExp = [[1, -3]]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1262 lObs = SetUtils.getListOfIdListOfOverlappingSets(lRef, lSubj)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1263
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1264 self.assertEquals(lObs, lExp)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1265
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1266 def test_getListOfIdListOfOverlappingSets_last_item_in_subject_overlap_with_one_item_in_reference_list(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1267 set1 = Set( 1, "set1", "seq1", 10, 20 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1268 set2 = Set( 2, "set1", "seq1", 30, 40 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1269
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1270 lRef = [set1, set2]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1271
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1272 set3 = Set( 3, "set1", "seq1", 1, 9 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1273 set4 = Set( 4, "set2", "seq1", 21, 29 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1274 set5 = Set( 5, "set2", "seq1", 35, 50 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1275
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1276 lSubj = [set3, set4, set5]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1277
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1278 lExp = [[2, -5]]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1279 lObs = SetUtils.getListOfIdListOfOverlappingSets(lRef, lSubj)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1280
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1281 self.assertEquals(lObs, lExp)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1282
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1283 def test_getListOfIdListOfOverlappingSets_one_item_in_subject_in_the_middle_overlap_with_one_item_in_reference_list(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1284 set1 = Set( 1, "set1", "seq1", 10, 20 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1285 set2 = Set( 2, "set1", "seq1", 30, 40 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1286
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1287 lRef = [set1, set2]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1288
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1289 set3 = Set( 3, "set1", "seq1", 1, 9 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1290 set4 = Set( 4, "set2", "seq1", 21, 29 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1291 set5 = Set( 5, "set2", "seq1", 35, 50 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1292 set6 = Set( 6, "set2", "seq1", 60, 70 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1293
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1294 lSubj = [set3, set4, set5, set6]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1295
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1296 lExp = [[2, -5]]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1297 lObs = SetUtils.getListOfIdListOfOverlappingSets(lRef, lSubj)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1298
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1299 self.assertEquals(lObs, lExp)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1300
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1301 def test_getListOfMergedSetsAndNextId_each_item_in_reference_list_overlap_with_one_different_item_in_subject_list(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1302 setRef1 = Set( 1, "set1", "seq1", 10, 20 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1303 setRef2 = Set( 2, "set1", "seq1", 30, 40 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1304 setRef3 = Set( 3, "set1", "seq1", 50, 60 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1305
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1306 lRef = [setRef1, setRef2, setRef3]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1307
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1308 setSubj1 = Set( 1, "set1", "seq1", 12, 25 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1309 setSubj2 = Set( 2, "set1", "seq1", 31, 45 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1310 setSubj3 = Set( 3, "set1", "seq1", 55, 80 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1311
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1312 lSubj = [setSubj1, setSubj2, setSubj3]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1313
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1314 setRef1merged = Set( 1, "set1", "seq1", 10, 25 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1315 setRef2merged = Set( 2, "set1", "seq1", 30, 45 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1316 setRef3merged = Set( 3, "set1", "seq1", 50, 80 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1317
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1318 nextId = 4
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1319
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1320 lExp = ([setRef1merged, setRef2merged, setRef3merged], nextId)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1321 lObs = SetUtils.getListOfMergedSetsAndNextId(lRef, lSubj)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1322
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1323 self.assertEquals(lObs, lExp)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1324
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1325 def test_getListOfMergedSetsAndNextId_all_items_in_reference_list_overlap_with_the_same_item_in_subject_list(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1326 setRef1 = Set( 1, "set1", "seq1", 10, 20 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1327 setRef2 = Set( 2, "set1", "seq1", 15, 25 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1328 setRef3 = Set( 3, "set1", "seq1", 20, 30 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1329
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1330 lRef = [setRef1, setRef2, setRef3]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1331
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1332 setSubj1 = Set( 1, "set1", "seq1", 12, 35 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1333 setSubj2 = Set( 2, "set1", "seq1", 40, 45 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1334 setSubj3 = Set( 3, "set1", "seq1", 55, 80 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1335
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1336 lSubj = [setSubj1, setSubj2, setSubj3]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1337
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1338 setRef1merged = Set( 1, "set1", "seq1", 10, 35 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1339 setSubj2Exp = Set( 4, "set1", "seq1", 40, 45 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1340 setSubj3Exp = Set( 5, "set1", "seq1", 55, 80 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1341
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1342 nextId = 6
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1343
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1344 lExp = ([setRef1merged, setSubj2Exp, setSubj3Exp], nextId)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1345 lObs = SetUtils.getListOfMergedSetsAndNextId(lRef, lSubj)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1346
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1347 self.assertEquals(lObs, lExp)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1348
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1349 def test_getListOfMergedSetsAndNextId_two_last_ref_items_overlap_with_last_subject_item(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1350 setRef1 = Set( 1, "set1", "seq1", 10, 20 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1351 setRef2 = Set( 2, "set1", "seq1", 30, 40 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1352 setRef3 = Set( 3, "set1", "seq1", 50, 60 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1353
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1354 lRef = [setRef1, setRef2, setRef3]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1355
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1356 setSubj1 = Set( 1, "set1", "seq1", 1, 5 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1357 setSubj2 = Set( 2, "set1", "seq1", 6, 9 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1358 setSubj3 = Set( 3, "set1", "seq1", 35, 55 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1359
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1360 lSubj = [setSubj1, setSubj2, setSubj3]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1361
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1362 setRef1Exp = Set( 1, "set1", "seq1", 10, 20 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1363 setRef2merged = Set( 2, "set1", "seq1", 30, 60 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1364 setSubj1Exp = Set( 4, "set1", "seq1", 1, 5 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1365 setSubj2Exp = Set( 5, "set1", "seq1", 6, 9 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1366
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1367 nextId = 6
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1368
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1369 lExp = ([setRef2merged, setRef1Exp, setSubj1Exp, setSubj2Exp], nextId)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1370 lObs = SetUtils.getListOfMergedSetsAndNextId(lRef, lSubj)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1371
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1372 self.assertEquals(lObs, lExp)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1373
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1374 def test_getListOfMergedSetsAndNextId_all_items_in_reference_list_overlap_with_all_items_in_subject_list(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1375 setRef1 = Set( 1, "set1", "seq1", 10, 20 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1376 setRef2 = Set( 2, "set1", "seq1", 30, 40 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1377
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1378 lRef = [setRef1, setRef2]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1379
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1380 setSubj1 = Set( 1, "set1", "seq1", 10, 20 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1381 setSubj2 = Set( 2, "set1", "seq1", 30, 40 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1382
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1383 lSubj = [setSubj1, setSubj2]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1384
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1385 setRef1merged = Set( 1, "set1", "seq1", 10, 20 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1386 setRef2merged = Set( 2, "set1", "seq1", 30, 40 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1387
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1388 nextId = 3
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1389
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1390 lExp = ([setRef1merged, setRef2merged], nextId)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1391 lObs = SetUtils.getListOfMergedSetsAndNextId(lRef, lSubj)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1392
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1393 self.assertEquals(lObs, lExp)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1394
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1395 def test_getListOfMergedSetsAndNextId_one_item_in_reference_list_overlap_with_all_items_in_subject_list(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1396 setRef1 = Set( 1, "set1", "seq1", 10, 20 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1397 setRef2 = Set( 2, "set1", "seq1", 30, 40 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1398 setRef3 = Set( 3, "set1", "seq1", 50, 60 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1399
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1400 lRef = [setRef1, setRef2, setRef3]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1401
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1402 setSubj1 = Set( 1, "set1", "seq1", 11, 13 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1403 setSubj2 = Set( 2, "set1", "seq1", 14, 16 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1404 setSubj3 = Set( 3, "set1", "seq1", 17, 25 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1405
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1406 lSubj = [setSubj1, setSubj2, setSubj3]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1407
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1408 setRef1merged = Set( 1, "set1", "seq1", 10, 25 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1409 setRef2Exp = Set( 2, "set1", "seq1", 30, 40 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1410 setRef3Exp = Set( 3, "set1", "seq1", 50, 60 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1411
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1412 nextId = 4
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1413
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1414 lExp = ([setRef1merged, setRef2Exp, setRef3Exp], nextId)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1415 lObs = SetUtils.getListOfMergedSetsAndNextId(lRef, lSubj)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1416
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1417 self.assertEquals(lObs, lExp)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1418
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1419 def test_getListOfMergedSetsAndNextId_one_item_in_reference_list_overlap_with_one_item_in_subject_list(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1420 setRef1 = Set( 1, "set1", "seq1", 10, 20 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1421 setRef2 = Set( 2, "set1", "seq1", 30, 40 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1422 setRef3 = Set( 3, "set1", "seq1", 50, 60 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1423
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1424 lRef = [setRef1, setRef2, setRef3]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1425
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1426 setSubj1 = Set( 1, "set1", "seq1", 1, 9 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1427 setSubj2 = Set( 2, "set1", "seq1", 31, 45 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1428 setSubj3 = Set( 3, "set1", "seq1", 70, 80 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1429
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1430 lSubj = [setSubj1, setSubj2, setSubj3]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1431
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1432 setRef1Exp = Set( 1, "set1", "seq1", 10, 20 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1433 setRef2merged = Set( 2, "set1", "seq1", 30, 45 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1434 setRef3Exp = Set( 3, "set1", "seq1", 50, 60 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1435 setSubj1Exp = Set( 4, "set1", "seq1", 1, 9 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1436 setSubj3Exp = Set( 5, "set1", "seq1", 70, 80 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1437
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1438 nextId = 6
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1439
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1440 lExp = ([setRef2merged, setRef1Exp, setRef3Exp, setSubj1Exp, setSubj3Exp], nextId)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1441
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1442 lObs = SetUtils.getListOfMergedSetsAndNextId(lRef, lSubj)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1443
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1444 self.assertEquals(lObs, lExp)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1445
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1446 def test_getListOfMergedSetsAndNextId_one_item_in_reference_list_overlap_with_one_item_in_subject_list_with_strange_output_order(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1447 setRef1 = Set( 5, "set1", "seq1", 10, 20 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1448 setRef2 = Set( 6, "set1", "seq1", 30, 40 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1449 setRef3 = Set( 7, "set1", "seq1", 50, 60 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1450 setRef4 = Set( 8, "set1", "seq1", 90, 92 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1451
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1452 lRef = [setRef1, setRef2, setRef3, setRef4]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1453
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1454 setSubj1 = Set( 1, "set1", "seq1", 1, 9 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1455 setSubj2 = Set( 2, "set1", "seq1", 35, 45 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1456 setSubj3 = Set( 3, "set1", "seq1", 70, 80 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1457 setSubj4 = Set( 4, "set1", "seq1", 130, 140 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1458
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1459 lSubj = [setSubj1, setSubj2, setSubj3, setSubj4]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1460
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1461 setRef1Exp = Set( 5, "set1", "seq1", 10, 20 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1462 setRef2merged = Set( 6, "set1", "seq1", 30, 45 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1463 setRef3Exp = Set( 7, "set1", "seq1", 50, 60 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1464 setRef4Exp = Set( 8, "set1", "seq1", 90, 92 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1465 setSubj1Exp = Set( 9, "set1", "seq1", 1, 9 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1466 setSubj3Exp = Set( 10, "set1", "seq1", 70, 80 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1467 setSubj4Exp = Set( 11, "set1", "seq1", 130, 140 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1468
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1469 nextId = 12
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1470
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1471 lExp = ([setRef2merged, setRef4Exp, setRef1Exp, setRef3Exp, setSubj1Exp, setSubj3Exp, setSubj4Exp], nextId)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1472
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1473 lObs = SetUtils.getListOfMergedSetsAndNextId(lRef, lSubj)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1474
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1475 self.assertEquals(lObs, lExp)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1476
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1477 def test_getListOfMergedSetsAndNextId_all_items_overlap_between_lists_with_same_length(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1478 setRef1 = Set( 1, "set1", "seq1", 10, 20 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1479 setRef2 = Set( 2, "set1", "seq1", 30, 40 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1480 setRef3 = Set( 3 , "set1", "seq1", 50, 60 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1481
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1482 lRef = [setRef1, setRef2, setRef3]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1483
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1484 setSubj1 = Set( 1, "set1", "seq1", 15, 35 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1485 setSubj2 = Set( 2, "set1", "seq1", 36, 55 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1486 setSubj3 = Set( 3, "set1", "seq1", 56, 65 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1487
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1488 lSubj = [setSubj1, setSubj2, setSubj3]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1489
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1490 setRef1merged = Set( 1, "set1", "seq1", 10, 65 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1491
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1492 nextId = 4
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1493
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1494 lExp = ([setRef1merged], nextId)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1495 lObs = SetUtils.getListOfMergedSetsAndNextId(lRef, lSubj)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1496
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1497 self.assertEquals(lObs, lExp)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1498
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1499 def test_getListOfMergedSetsAndNextId_all_items_overlap_between_lists_with_different_length(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1500 setRef1 = Set( 1, "set1", "seq1", 10, 20 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1501 setRef2 = Set( 2, "set1", "seq1", 30, 40 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1502 setRef3 = Set( 3 , "set1", "seq1", 50, 60 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1503
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1504 lRef = [setRef1, setRef2, setRef3]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1505
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1506 setSubj1 = Set( 1, "set1", "seq1", 15, 35 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1507 setSubj2 = Set( 2, "set1", "seq1", 36, 55 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1508
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1509 lSubj = [setSubj1, setSubj2]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1510
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1511 setRef1merged = Set( 1, "set1", "seq1", 10, 60 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1512
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1513 nextId = 4
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1514
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1515 lExp = ([setRef1merged], nextId)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1516 lObs = SetUtils.getListOfMergedSetsAndNextId(lRef, lSubj)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1517
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1518 self.assertEquals(lObs, lExp)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1519
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1520 def test_getListOfSetWithoutOverlappingBetweenTwoListOfSet(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1521 set1 = Set( 1, "set1", "seq1", 10, 20 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1522 set2 = Set( 2, "set1", "seq1", 30, 40 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1523 set3 = Set( 3, "set1", "seq1", 50, 60 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1524
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1525 lSet1 = [set1, set2, set3]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1526
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1527 set4 = Set( 1, "set1", "seq1", 15, 35 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1528 set5 = Set( 2, "set1", "seq1", 36, 55 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1529 set6 = Set( 3, "set1", "seq1", 66, 95 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1530
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1531 lSet2 = [set4, set5, set6]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1532
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1533 expLSet = [set6]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1534 obsLSet = SetUtils.getListOfSetWithoutOverlappingBetweenTwoListOfSet(lSet1, lSet2)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1535
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1536 self.assertEquals(expLSet, obsLSet)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1537
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1538 def test_getListOfSetWithoutOverlappingBetweenTwoListOfSet_Empty_Result(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1539 set1 = Set( 1, "set1", "seq1", 10, 20 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1540 set2 = Set( 2, "set1", "seq1", 30, 40 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1541 set3 = Set( 3, "set1", "seq1", 50, 60 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1542
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1543 lSet1 = [set1, set2, set3]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1544
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1545 set4 = Set( 1, "set1", "seq1", 15, 35 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1546 set5 = Set( 2, "set1", "seq1", 36, 55 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1547
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1548 lSet2 = [set4, set5]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1549
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1550 expLSet = []
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1551 obsLSet = SetUtils.getListOfSetWithoutOverlappingBetweenTwoListOfSet(lSet1, lSet2)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1552
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1553 self.assertEquals(expLSet, obsLSet)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1554
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1555 def test_getListOfSetWithoutOverlappingBetweenTwoListOfSet_Empty_Result_Length_Condition(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1556 set1 = Set( 1, "set1", "seq1", 10, 20 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1557 set2 = Set( 2, "set1", "seq1", 30, 40 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1558 set3 = Set( 3, "set1", "seq1", 50, 60 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1559
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1560 lSet1 = [set1, set2, set3]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1561
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1562 set4 = Set( 1, "set1", "seq1", 15, 35 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1563 set5 = Set( 2, "set1", "seq1", 36, 55 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1564 set6 = Set( 3, "set1", "seq1", 66, 68 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1565
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1566 lSet2 = [set4, set5, set6]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1567
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1568 expLSet = []
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1569 obsLSet = SetUtils.getListOfSetWithoutOverlappingBetweenTwoListOfSet(lSet1, lSet2)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1570
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1571 self.assertEquals(expLSet, obsLSet)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1572
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1573
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1574 def test_getSetListFromFile(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1575 file = "dummyFile_%s_%s" % ( time.strftime("%Y%m%d%H%M%S"), os.getpid() )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1576 fileHandler = open( file, "w" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1577 fileHandler.write( "1\tseq1\tchr1\t151\t250\n" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1578 fileHandler.write( "2\tseq2\tchr2\t301\t500\n" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1579 fileHandler.close()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1580 s1 = Set()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1581 s1.setFromTuple( ( "1", "seq1", "chr1", "151", "250" ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1582 s2 = Set()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1583 s2.setFromTuple( ( "2", "seq2", "chr2", "301", "500" ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1584 expLSet = [ s1, s2 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1585 obsLSet = SetUtils.getSetListFromFile(file)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1586 os.remove(file)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1587 self.assertEqual( expLSet, obsLSet )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1588
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1589
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1590 def test_convertSetFileIntoMapFile( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1591 setFile = "dummySetFile"
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1592 setFileHandler = open( setFile, "w" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1593 setFileHandler.write( "1\tseq31\tchr1\t151\t250\n" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1594 setFileHandler.write( "2\tseq27\tchr2\t301\t500\n" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1595 setFileHandler.close()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1596
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1597 expFile = "dummyExpFile"
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1598 expFileHandler = open( expFile, "w" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1599 expFileHandler.write( "seq31\tchr1\t151\t250\n" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1600 expFileHandler.write( "seq27\tchr2\t301\t500\n" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1601 expFileHandler.close()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1602
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1603 obsFile = "dummyObsFile"
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1604
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1605 SetUtils.convertSetFileIntoMapFile( setFile, obsFile )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1606
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1607 self.assertTrue( FileUtils.are2FilesIdentical( expFile, obsFile ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1608
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1609 for f in [ setFile, expFile, obsFile ]:
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1610 os.remove( f )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1611
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1612
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1613 def test_getDictOfListsWithSeqnameAsKey_empty( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1614 lSets = []
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1615 dExp = {}
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1616 dObs = SetUtils.getDictOfListsWithSeqnameAsKey( lSets )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1617 self.assertEquals( dExp, dObs )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1618
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1619
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1620 def test_getDictOfListsWithSeqnameAsKey( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1621 lSets = [ Set( 1, "TE3", "chr2", 10, 50 ),
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1622 Set( 2, "gene74", "chr1", 31, 800 ),
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1623 Set( 3, "TE1", "chr1", 1, 30 ) ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1624 dExp = { "chr1": [ Set( 2, "gene74", "chr1", 31, 800 ),
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1625 Set( 3, "TE1", "chr1", 1, 30 ) ],
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1626 "chr2": [ Set( 1, "TE3", "chr2", 10, 50 ) ] }
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1627 dObs = SetUtils.getDictOfListsWithSeqnameAsKey( lSets )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1628 self.assertEquals( dExp, dObs )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1629
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1630
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1631 def test_filterOnLength( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1632 lSets = [ Set( 1, "TE3", "chr2", 10, 50 ),
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1633 Set( 2, "gene74", "chr1", 31, 800 ),
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1634 Set( 3, "TE1", "chr1", 1, 30 ) ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1635 lExp = [ Set( 2, "gene74", "chr1", 31, 800 ) ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1636 lObs = SetUtils.filterOnLength( lSets, 100 )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1637 self.assertEqual( lExp, lObs )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1638
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1639
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1640 def test_getListOfNames( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1641 setFile = "dummySetFile"
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1642 setFileHandler = open( setFile, "w" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1643 setFileHandler.write( "1\tseq31\tchr1\t151\t250\n" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1644 setFileHandler.write( "2\tseq27\tchr2\t301\t500\n" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1645 setFileHandler.close()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1646
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1647 lExp = [ "seq31", "seq27" ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1648 lObs = SetUtils.getListOfNames( setFile )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1649
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1650 self.assertEquals( lExp, lObs )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1651
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1652 os.remove( setFile )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1653
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1654
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1655 def test_getDictOfDictsWithNamesThenIdAsKeyFromFile( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1656 setFile = "dummySetFile"
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1657 setFileHandler = open( setFile, "w" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1658 setFileHandler.write( "1\tseq31\tchr1\t151\t250\n" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1659 setFileHandler.write( "3\tseq27\tchr3\t1\t100\n" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1660 setFileHandler.write( "2\tseq27\tchr2\t301\t500\n" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1661 setFileHandler.write( "2\tseq27\tchr2\t601\t650\n" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1662 setFileHandler.close()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1663
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1664 dExp = { "seq31": { 1: [ Set( 1, "seq31", "chr1", 151, 250 ) ] },
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1665 "seq27": { 2: [ Set( 2, "seq27", "chr2", 301, 500 ),
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1666 Set( 2, "seq27", "chr2", 601, 650 ) ],
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1667 3: [ Set( 3, "seq27", "chr3", 1, 100 ) ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1668 }
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1669 }
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1670 dObs = SetUtils.getDictOfDictsWithNamesThenIdAsKeyFromFile( setFile )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1671
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1672 self.assertEquals( dExp, dObs )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1673
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1674 os.remove( setFile )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1675
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1676
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1677 def _makeSetListFromTupleList (self, tupleList):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1678 setList = []
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1679 for tuple in tupleList:
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1680 set = Set()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1681 set.setFromTuple(tuple)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1682 setList.append(set)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1683 return setList
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1684
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1685
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1686 test_suite = unittest.TestSuite()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1687 test_suite.addTest( unittest.makeSuite( Test_SetUtils ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1688 if __name__ == "__main__":
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1689 unittest.TextTestRunner(verbosity=2).run( test_suite )