def test_sort_by_closest_distance_to_edge(self): rna_sort = FeatureSet('Transcripts-ex1.txt') position = 4250000 # 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.sortByClosestEdgeTo(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), abs(rna_data.getTES() - position)) >= min(abs(last_rna_data.getTSS() - position), abs(last_rna_data.getTES() - position))), "Sort by closest distance to edge failed")