(self, intervals)
| 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.""" |
no test coverage detected