forked from pool/python-pylev
Accepting request 703991 from home:jayvdb:coala:test-rig
- Initial spec for v1.3.0 OBS-URL: https://build.opensuse.org/request/show/703991 OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pylev?expand=0&rev=1
This commit is contained in:
45
tests.py
Normal file
45
tests.py
Normal file
@@ -0,0 +1,45 @@
|
||||
import itertools
|
||||
import unittest
|
||||
import pylev
|
||||
|
||||
test_data = [
|
||||
('classic', "kitten", "sitting", 3),
|
||||
('same', "kitten", "kitten", 0),
|
||||
('empty', "", "", 0),
|
||||
('a', "meilenstein", "levenshtein", 4),
|
||||
('b', "levenshtein", "frankenstein", 6),
|
||||
('c', "confide", "deceit", 6),
|
||||
('d', "CUNsperrICY", "conspiracy", 8),
|
||||
]
|
||||
|
||||
test_functions = [
|
||||
# pylev.classic_levenshtein, # disabled because it is so slow
|
||||
pylev.recursive_levenshtein,
|
||||
pylev.wf_levenshtein,
|
||||
pylev.wfi_levenshtein
|
||||
]
|
||||
|
||||
class Tests(unittest.TestCase):
|
||||
|
||||
def test_damerau_levenshtein(seld):
|
||||
assert pylev.damerau_levenshtein("ba", "abc") == 2
|
||||
assert pylev.damerau_levenshtein("foobar", "foobra") == 1
|
||||
assert pylev.damerau_levenshtein("fee", "deed") == 2
|
||||
|
||||
|
||||
def _mk_test_fn(fn, a, b, expected):
|
||||
def _test_fn(self):
|
||||
self.assertEqual(fn(a, b), expected)
|
||||
self.assertEqual(fn(b, a), expected)
|
||||
|
||||
return _test_fn
|
||||
|
||||
|
||||
for lev_fn, data in itertools.product(test_functions, test_data):
|
||||
name, a, b, expected = data
|
||||
test_fn = _mk_test_fn(lev_fn, a, b, expected)
|
||||
setattr(Tests, "test_%s_%s" % (name, lev_fn.__name__), test_fn)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
Reference in New Issue
Block a user