Exemple #1
0
    def test_comparison(self):
        A = Name.parse('Neil deGrasse Tyson')
        B = Name('Neil', 'D', 'Tyson')
        C = Name('NEIL', None, 'TYSON')
        D = Name('Neil', 'DEGRASSE', 'Tyson')

        self.assertEqual(A.compare(C), 3)
        self.assertEqual(C.compare(A), 2)

        self.assertEqual(A.compare(B), 1)
        self.assertEqual(B.compare(B), 1)

        self.assertEqual(D.compare(A), 0)
        self.assertEqual(A.compare(D), 0)
Exemple #2
0
from Name import Name

original = Name("Freddy", "George", "Mercury")

aliases = [("Freddy Mercury", 1923), ("Freddy Mercury", 1974),
           ("Freddy G. Jones", 2007), ("Freddy George Jones", 2007),
           ("Freddy G Mercury", 1997), ("Freddy G. Mercury", 1992),
           ("Freddy Granola Mercury", 1988), ("Freddy George Jones", 1990)]

score_map = {}
for alias, year in aliases:
    score = original.compare(alias)

    if score not in score_map:
        score_map[score] = []
    score_map[score].append(year)

    print(f"Comparing {original} to {alias} gives a score {score}.")

score, years = sorted(list(score_map.items()))[0]
minimum_dob = min(years)
maximum_dob = max(years)
print(f"Best score is {score}")
print(
    f"The minimum date of birth is {minimum_dob} and a maxiumum dob is {maximum_dob}."
)