def test_sort_by_closest_TSS_to_edge(self): rna_sort = FeatureSet('Transcripts-ex1.txt') position = (16000000,17500000) # Do sort # Sort is done in place, so assignment is not required # however the sort function should return a reference to # the initial object result = rna_sort.sortByClosestTSSTo(*position) self.assertEqual(result,rna_sort, "Returned object doesn't match subject") # Check that the closest distances are in ascending order last_rna_data = None for rna_data in rna_sort: if not last_rna_data: last_rna_data = rna_data else: self.assertTrue((min(abs(rna_data.getTSS() - position[0]), abs(rna_data.getTSS() - position[1])) >= min(abs(last_rna_data.getTSS() - position[0]), abs(last_rna_data.getTSS() - position[1]))), "Sort by closest TSS to edge failed")