Skip to content

Commit 99c5618

Browse files
committed
Fixed #13 wrong distance of LCS
1 parent 8850f01 commit 99c5618

File tree

2 files changed

+10
-10
lines changed

2 files changed

+10
-10
lines changed

Diff for: strsimpy/longest_common_subsequence.py

+1-2
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,7 @@ def length(s0, s1):
3939
raise TypeError("Argument s1 is NoneType.")
4040
s0_len, s1_len = len(s0), len(s1)
4141
x, y = s0[:], s1[:]
42-
n, m = s0_len + 1, s1_len + 1
43-
matrix = [[0] * m for _ in range(n)]
42+
matrix = [[0] * (s1_len+1) for _ in range(s0_len + 1)]
4443
for i in range(1, s0_len + 1):
4544
for j in range(1, s1_len + 1):
4645
if x[i - 1] == y[j - 1]:

Diff for: strsimpy/longest_common_subsequence_test.py

+9-8
Original file line numberDiff line numberDiff line change
@@ -23,21 +23,22 @@
2323
from .longest_common_subsequence import LongestCommonSubsequence
2424

2525

26-
class TestLongestCommonSubsequence(unittest.TestCase):
26+
class LongestCommonSubsequenceTest(unittest.TestCase):
2727

2828
def test_longest_common_subsequence(self):
2929
a = LongestCommonSubsequence()
3030
s0 = ""
3131
s1 = ""
3232
s2 = "上海"
3333
s3 = "上海市"
34-
distance_format = "distance: {:.4}\t between {} and {}"
35-
print(distance_format.format(str(a.distance(s0, s1)), s0, s1))
36-
print(distance_format.format(str(a.distance(s0, s2)), s0, s2))
37-
print(distance_format.format(str(a.distance(s0, s3)), s0, s3))
38-
print(distance_format.format(str(a.distance(s1, s2)), s1, s2))
39-
print(distance_format.format(str(a.distance(s1, s3)), s1, s3))
40-
print(distance_format.format(str(a.distance(s2, s3)), s2, s3))
34+
35+
self.assertEqual(0, a.distance(s0, s1))
36+
self.assertEqual(2, a.distance(s0, s2))
37+
self.assertEqual(3, a.distance(s0, s3))
38+
self.assertEqual(1, a.distance(s2, s3))
39+
self.assertEqual(2, a.length(s2, s3))
40+
self.assertEqual(4, a.distance('AGCAT', 'GAC'))
41+
self.assertEqual(2, a.length('AGCAT', 'GAC'))
4142

4243

4344
if __name__ == "__main__":

0 commit comments

Comments
 (0)