(self, source_sequence_id: int, dest_sequence_id: int, keep_len: int)
| 962 | boundary.tails.add(sequence_id) |
| 963 | |
| 964 | def copy(self, source_sequence_id: int, dest_sequence_id: int, keep_len: int) -> None: |
| 965 | assert source_sequence_id >= 0 |
| 966 | assert dest_sequence_id >= 0 |
| 967 | assert source_sequence_id in self.sequence_lengths |
| 968 | assert dest_sequence_id not in self.sequence_lengths |
| 969 | assert 0 <= keep_len <= self.sequence_lengths[source_sequence_id] |
| 970 | if keep_len == 0: |
| 971 | self.sequences[dest_sequence_id] = self.root |
| 972 | self.sequence_lengths[dest_sequence_id] = 0 |
| 973 | self.root.tails.add(dest_sequence_id) |
| 974 | return |
| 975 | node = self._locate_prefix_node(source_sequence_id, keep_len) |
| 976 | self.sequences[dest_sequence_id] = node |
| 977 | self.sequence_lengths[dest_sequence_id] = keep_len |
| 978 | node.tails.add(dest_sequence_id) |
| 979 | while node is not self.root: |
| 980 | node.sequences.add(dest_sequence_id) |
| 981 | parent = node.parent |
| 982 | assert parent is not None |
| 983 | node = parent |
| 984 | |
| 985 | def tokens(self, sequence_id: int, keep_len: Optional[int] = None) -> List[int]: |
| 986 | length = self.sequence_lengths[sequence_id] |
no test coverage detected