great-ai/great_ai/tests/utilities/test_match_names.py
2022-05-25 19:49:14 +02:00

71 lines
2.6 KiB
Python

import unittest
from src.great_ai.utilities.match_names.match_names import match_names
class TestMatchNames(unittest.TestCase):
def test_grid(self) -> None:
names = [
["Al-Nasiry, S.", "Al-Nasiry S"],
["De Leo, A. (Andreina)"],
[
"DeBenedictis, J.N. (Julia)",
"DeBenedictis, N. (Julia)",
"DeBenedictis, J.",
"Julia DeBenedictis",
],
["Diesen, J.A.Y. van"],
["Nio, C Yung"],
["Uyen Chau Nguyen"],
["Hagger M.S.", "Martin Hagger"],
["Izabela-Cristina STANCU"],
["Verborgh R.", "Ruben Verborgh"],
["Droshout, D.T.G.G.M.L. (Dimitri)"],
["El Demellawy"],
["Sebastiaan van de Velde", "van de Velde, Sebastiaan"],
["Sebastiaan Brand"],
["Bertil FM Blok", "B.F.M. Blok"],
["Bob Zadok Blok"],
["Shannon Spruit"],
["Shannon Kroes"],
[
"MSc Jérémie Decouchant",
"PhD, Jérémie Decouchant",
"PhD Jérémie Decouchant",
"Jérémie Decouchant",
"MD, PhD Jérémie Decouchant",
],
["Jeremie Gobeil"],
["Wouters, B.B.R.E.F.", "Wouters B.B. R. E.F."],
["Elias Caldeira Dantas, A.M. (Aline)"],
["Ed Harris"],
["Ed Deprettere ", " Ed Deprettere "],
["András Schmelczer"],
["Enden, G. van den (Gitta)"],
["Ruben van Dijk"],
["Richard van Dijk"],
["Xinping Guan", "X. Guan"],
["Xiaohong Guan", "X. Guan"],
["Pruimboom, Tim", "Pruimboom T."],
["Sanchez-Faddeev H.", "Sanchez-Faddeev, Hernando"],
["Duijnhoven - Jansen, E.M. van", "Emma M. van Jansen"],
]
all_names = [n for t in names for n in t]
for n1 in all_names:
for n2 in all_names:
is_match = match_names(n1, n2)
groups = [t for t in names if n1 in t]
with self.subTest(n1=n1, n2=n2):
if any(n2 in g for g in groups):
self.assertTrue(is_match, "false negative")
elif all(n2 not in g for g in groups):
self.assertFalse(is_match, "false match")
def test_empty(self) -> None:
self.assertFalse(match_names("", ""))
self.assertFalse(match_names(None, ""))
self.assertFalse(match_names(None, None))
self.assertFalse(match_names("", None))
self.assertFalse(match_names("Oliver", None))