Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions src/license_expression/_pyahocorasick.py
Original file line number Diff line number Diff line change
Expand Up @@ -492,6 +492,7 @@ def filter_overlapping(tokens):
else:
logger_debug(" del curr_tok smaller overlap:", curr_tok)
del tokens[i]
i -= 1
break
j += 1
i += 1
Expand Down
11 changes: 11 additions & 0 deletions tests/test__pyahocorasick.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@

from license_expression._pyahocorasick import Trie
from license_expression._pyahocorasick import Token
from license_expression._pyahocorasick import filter_overlapping


class TestTrie(unittest.TestCase):
Expand Down Expand Up @@ -315,3 +316,13 @@ def test_iter_simple(self):
]

assert expected == result


def test_filter_overlapping_rechecks_replacement_token():
tokens = [Token(0, 1), Token(1, 4), Token(4, 8), Token(10, 11)]
assert filter_overlapping(tokens) == [Token(4, 8), Token(10, 11)]


def test_filter_overlapping_removes_contained_token_after_replacement():
tokens = [Token(0, 1), Token(1, 5), Token(2, 3), Token(8, 9)]
assert filter_overlapping(tokens) == [Token(1, 5), Token(8, 9)]