MCPcopy Create free account
hub / github.com/chaimleib/intervaltree / init_from_sorted

Method init_from_sorted

intervaltree/node.py:87–104  ·  view source on GitHub ↗
(self, intervals)

Source from the content-addressed store, hash-verified

85 return node
86
87 def init_from_sorted(self, intervals):
88 # assumes that intervals is a non-empty collection.
89 # Else, next line raises IndexError
90 center_iv = intervals[len(intervals) // 2]
91 self.x_center = center_iv.begin
92 self.s_center = set()
93 s_left = []
94 s_right = []
95 for k in intervals:
96 if k.end <= self.x_center:
97 s_left.append(k)
98 elif k.begin > self.x_center:
99 s_right.append(k)
100 else:
101 self.s_center.add(k)
102 self.left_node = Node.from_sorted_intervals(s_left)
103 self.right_node = Node.from_sorted_intervals(s_right)
104 return self.rotate()
105
106 def center_hit(self, interval):
107 """Returns whether interval overlaps self.x_center."""

Callers 1

from_sorted_intervalsMethod · 0.95

Calls 3

rotateMethod · 0.95
from_sorted_intervalsMethod · 0.80
addMethod · 0.45

Tested by

no test coverage detected