taleinat / fuzzysearch

Find parts of long text or data, allowing for some changes/typos.
MIT License
301 stars 26 forks source link

Match exceeds max_l_dist when max_substitutions=0 is set #42

Open markussteindl opened 2 years ago

markussteindl commented 2 years ago

find_near_matches('xyz', 'wz', max_l_dist=2) works correctly and yields Match(start=1, end=2, dist=2, matched='z').

find_near_matches('xyz', 'wz', max_substitutions=0, max_l_dist=2) does not work correctly since it yields

[{Match} Match(start=0, end=1, dist=2, matched='w'),
 {Match} Match(start=1, end=1, dist=2, matched='')]

The problem is that the substring 'xyz' and the matched part of the string 'w' have distance 3 which is larger than max_l_dist.

taleinat commented 2 years ago

Thanks for the report @Stonatus, that looks like a bug!