Ejemplo n.º 1
0
    def test_case_insensitive(self):
        """Function should be case insensitive"""
        names = ["Robert", "Rupert", "Rubin", "Ashcraft", "Ashcroft"]

        for name in names:
            self.assertEqual(fuzzycomp.nysiis(name.lower()),
                             fuzzycomp.nysiis(name.upper()))
Ejemplo n.º 2
0
    def test_JR(self):
        """function should handle the presence of Jr correctly """
        names = [
            ("BART Jr.", "BAD"),
            ("HURD JR", "HAD"),
            ("HUNT JR.", "HAD"),
        ]

        for name in names:
            self.assertEquals(fuzzycomp.nysiis(name[0], False), name[1])
Ejemplo n.º 3
0
    def test_romans(self):
        """Function should handle the presence of roman numbers in the name correctly"""
        names = [
            ("BART I", "BAD"),
            ("HURD III", "HAD"),
            ("HUNT IV.", "HAD"),
            ("BART M", "BAD"),
            ("HURD C", "HAD"),
            ("HUNT X.", "HAD"),
            ("BART II", "BAD"),
            ("HURD MC", "HAD"),
            ("HUNT XV.", "HAD"),
        ]

        for name in names:
            self.assertEquals(fuzzycomp.nysiis(name[0], False), name[1])
Ejemplo n.º 4
0
    def test_romans(self):
        """Function should handle the presence of roman numbers in the name correctly"""
        names = [
            ("BART I", "BAD"),
            ("HURD III", "HAD"),
            ("HUNT IV.", "HAD"),
            ("BART M", "BAD"),
            ("HURD C", "HAD"),
            ("HUNT X.", "HAD"),
            ("BART II", "BAD"),
            ("HURD MC", "HAD"),
            ("HUNT XV.", "HAD"),
        ]

        for name in names:
            self.assertEquals(fuzzycomp.nysiis(name[0], False), name[1])
Ejemplo n.º 5
0
    def test_non_truncated(self):
        """If not truncated, the function should return codes longer than 6"""
        names = [
            ("PHILLIPSON", "FFALAPSAN"),
            ("PFEISTER", "FFASTAR"),
            ("SCHOENHOEFT", "SSANAFT"),
            ("HEITSCHMIDT", "HATSNAD"),
            ("WESTERLUND", "WASTARLAD"),
            ("CASSTEVENS", "CASTAFAN"),
            ("WESTPHAL", "WASTFAL"),
            ("SHRIVER", "SHRAVAR"),
            ("CARRAWAY", "CARAY"),
            ("YAMADA", "YANAD"),
        ]

        for name in names:
            self.assertEquals(fuzzycomp.nysiis(name[0], False), name[1])
Ejemplo n.º 6
0
    def test_non_truncated(self):
        """If not truncated, the function should return codes longer than 6"""
        names = [
            ("PHILLIPSON", "FFALAPSAN"),
            ("PFEISTER", "FFASTAR"),
            ("SCHOENHOEFT", "SSANAFT"),
            ("HEITSCHMIDT", "HATSNAD"),
            ("WESTERLUND", "WASTARLAD"),
            ("CASSTEVENS", "CASTAFAN"),
            ("WESTPHAL", "WASTFAL"),
            ("SHRIVER", "SHRAVAR"),
            ("CARRAWAY", "CARAY"),
            ("YAMADA", "YANAD"),
        ]

        for name in names:
            self.assertEquals(fuzzycomp.nysiis(name[0], False), name[1])
Ejemplo n.º 7
0
    def test_valid_input(self):
        """Algorithm should return correct values under valid input"""

        # Test case from http://dropby.com/NYSIISTextStrings.html
        names = [
            ("MACINTOSH", "MCANT"),
            ("KNUTH", "NNAT"),
            ("KOEHN", "C"),
            ("PHILLIPSON", "FFALAP"),
            ("PFEISTER", "FFASTA"),
            ("SCHOENHOEFT", "SSANAF"),
            ("MCKEE", "MCY"),
            ("MACKIE", "MCY"),
            ("HEITSCHMIDT", "HATSNA"),
            ("BART", "BAD"),
            ("HURD", "HAD"),
            ("HUNT", "HAD"),
            ("WESTERLUND", "WASTAR"),
            ("CASSTEVENS", "CASTAF"),
            ("VASQUEZ", "VASG"),
            ("FRAZIER", "FRASAR"),
            ("BOWMAN", "BANAN"),
            ("MCKNIGHT", "MCNAGT"),
            ("RICKERT", "RACAD"),
            ("DEUTSCH", "DATS"),
            ("WESTPHAL", "WASTFA"),
            ("SHRIVER", "SHRAVA"),
            ("KUHL", "C"),
            ("RAWSON", "RASAN"),
            ("JILES", "JAL"),
            ("CARRAWAY", "CARAY"),
            ("YAMADA", "YANAD"),
        ]

        for name in names:
            self.assertEquals(fuzzycomp.nysiis(name[0]), name[1])
Ejemplo n.º 8
0
    def test_valid_input(self):
        """Algorithm should return correct values under valid input"""

        #Test case from http://dropby.com/NYSIISTextStrings.html
        names = [
            ("MACINTOSH", "MCANT"),
            ("KNUTH", "NNAT"),
            ("KOEHN", "C"),
            ("PHILLIPSON", "FFALAP"),
            ("PFEISTER", "FFASTA"),
            ("SCHOENHOEFT", "SSANAF"),
            ("MCKEE", "MCY"),
            ("MACKIE", "MCY"),
            ("HEITSCHMIDT", "HATSNA"),
            ("BART", "BAD"),
            ("HURD", "HAD"),
            ("HUNT", "HAD"),
            ("WESTERLUND", "WASTAR"),
            ("CASSTEVENS", "CASTAF"),
            ("VASQUEZ", "VASG"),
            ("FRAZIER", "FRASAR"),
            ("BOWMAN", "BANAN"),
            ("MCKNIGHT", "MCNAGT"),
            ("RICKERT", "RACAD"),
            ("DEUTSCH", "DATS"),
            ("WESTPHAL", "WASTFA"),
            ("SHRIVER", "SHRAVA"),
            ("KUHL", "C"),
            ("RAWSON", "RASAN"),
            ("JILES", "JAL"),
            ("CARRAWAY", "CARAY"),
            ("YAMADA", "YANAD"),
        ]

        for name in names:
            self.assertEquals(fuzzycomp.nysiis(name[0]), name[1])
Ejemplo n.º 9
0
    def test_case_insensitive(self):
        """Function should be case insensitive"""
        names = ["Robert", "Rupert", "Rubin", "Ashcraft", "Ashcroft"]

        for name in names:
            self.assertEqual(fuzzycomp.nysiis(name.lower()), fuzzycomp.nysiis(name.upper()))
Ejemplo n.º 10
0
    def test_JR(self):
        """function should handle the presence of Jr correctly """
        names = [("BART Jr.", "BAD"), ("HURD JR", "HAD"), ("HUNT JR.", "HAD")]

        for name in names:
            self.assertEquals(fuzzycomp.nysiis(name[0], False), name[1])