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()))
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])
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])
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])
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])
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])
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])