def test_split_overlapping_weighted(self): input_intervals = [ Interval(1, 10), Interval(2, 11), Interval(4, 5), Interval(4, 8) ] weights = { Interval(1, 10): 10, Interval(2, 11): 20, Interval(4, 5): 10, Interval(4, 8): 10 } exp = { Interval(1, 1): 1, Interval(2, 3): 4, Interval(4, 4): 5, Interval(5, 7): 6, Interval(8, 9): 4, Interval(10, 11): 4, } result = Interval.split_overlap(*input_intervals, weight_mapping=weights) assert sorted(result) == sorted(exp) for itvl in exp: assert result[itvl] == exp[itvl]
def test_split_overlapping_no_weight(self): input_intervals = [Interval(1, 10), Interval(2, 11), Interval(4, 5), Interval(4, 8)] exp = [ Interval(1, 1), Interval(2, 3), Interval(4, 4), Interval(5, 7), Interval(8, 9), Interval(10, 11), ] print('expected', exp) result = Interval.split_overlap(*input_intervals) result = sorted(result) print('found', result) self.assertEqual(exp, result)