[tor-commits] [bridgedb/develop] Add unittests for bridgedb.util.levenshteinDistance().

isis at torproject.org isis at torproject.org
Thu Jul 24 04:37:11 UTC 2014


commit 387115d8aa4be39da059deb793916defad6f1d0a
Author: Isis Lovecruft <isis at torproject.org>
Date:   Mon Jul 7 12:16:15 2014 +0000

    Add unittests for bridgedb.util.levenshteinDistance().
---
 lib/bridgedb/test/test_util.py |   42 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 42 insertions(+)

diff --git a/lib/bridgedb/test/test_util.py b/lib/bridgedb/test/test_util.py
index a18e1c6..065c401 100644
--- a/lib/bridgedb/test/test_util.py
+++ b/lib/bridgedb/test/test_util.py
@@ -17,6 +17,7 @@ from __future__ import unicode_literals
 
 import os
 
+from twisted.mail.smtp import Address
 from twisted.trial import unittest
 
 from bridgedb import util
@@ -58,3 +59,44 @@ class MiscLoggingUtilTests(unittest.TestCase):
         from bridgedb.persistent import Conf
         util.configureLogging(Conf())
         util.logging.info("BridgeDB's email address: bridges at torproject.org")
+
+
+class LevenshteinDistanceTests(unittest.TestCase):
+    """Unittests for `bridgedb.util.levenshteinDistance."""
+
+    def test_levenshteinDistance_blank_blank(self):
+        """The Levenshtein Distance between '' and '' should be 0."""
+        distance = util.levenshteinDistance('', '')
+        self.assertEqual(distance, 0)
+
+    def test_levenshteinDistance_cat_cat(self):
+        """The Levenshtein Distance between 'cat' and 'cat' should be 0."""
+        distance = util.levenshteinDistance('cat', 'cat')
+        self.assertEqual(distance, 0)
+
+    def test_levenshteinDistance_bat_cat(self):
+        """The Levenshtein Distance between 'bat' and 'cat' should be 1."""
+        distance = util.levenshteinDistance('bat', 'cat')
+        self.assertEqual(distance, 1)
+
+    def test_levenshteinDistance_bar_cat(self):
+        """The Levenshtein Distance between 'bar' and 'cat' should be 2."""
+        distance = util.levenshteinDistance('bar', 'cat')
+        self.assertEqual(distance, 2)
+
+    def test_levenshteinDistance_bridgedb_doge(self):
+        """The Levenshtein Distance between 'bridgedb' and 'doge' should be 6."""
+        distance = util.levenshteinDistance('bridgedb', 'doge')
+        self.assertEqual(distance, 6)
+
+    def test_levenshteinDistance_feidanchaoren0043_feidanchaoren0011(self):
+        """The Levenshtein Distance between the usernames in
+        'feidanchaoren0043 at gmail.com' and 'feidanchaoren0011 at gmail.com' should
+        be less than an EMAIL_FUZZY_MATCH parameter.
+        """
+        email1 = Address('feidanchaoren0043 at gmail.com')
+        email2 = Address('feidanchaoren0011 at gmail.com')
+        # Fuzzy match if the Levenshtein Distance is less than or equal to:
+        fuzzyMatch = 4
+        distance = util.levenshteinDistance(email1.local, email2.local)
+        self.assertLessEqual(distance, fuzzyMatch)





More information about the tor-commits mailing list