def mergeAndReturnFilteredBlock(self, seqID, newBlock): if seqID not in self.targetBlocks: self.targetBlocks[seqID] = [] oldLength = TupleMerger.totalLength(self.targetBlocks[seqID]) self.targetBlocks[seqID] = TupleMerger.merge(self.targetBlocks[seqID], newBlock) newLength = TupleMerger.totalLength(self.targetBlocks[seqID]) return newLength - oldLength
def testMergeTupleFromNewRange(self): newTuple = (30,35) result1 = TupleMerger.merge(self.testTupleList1, newTuple) result2 = TupleMerger.merge(self.testTupleList2, newTuple) self.assertEqual([(0, 20), (30, 35), (40, 60), (70, 75)], result1) self.assertEqual([(14, 29), (30, 35), (40, 49), (51, 60)], result2)
def testMergeTupleFromOverlap(self): newTuple = (25, 45) result1 = TupleMerger.merge(self.testTupleList1, newTuple) result2 = TupleMerger.merge(self.testTupleList2, newTuple) self.assertEqual([(0, 20), (25, 60), (70, 75)], result1) self.assertEqual([(14, 49), (51, 60)], result2)
def testMergeTupleWithinRange(self): newTuple = (42, 44) result1 = TupleMerger.merge(self.testTupleList1, newTuple) result2 = TupleMerger.merge(self.testTupleList2, newTuple) self.assertEqual([(0, 20), (40, 60), (70, 75)], result1) self.assertEqual([(14, 29), (40, 49), (51, 60)], result2)