File size: 2,434 Bytes
486ed05 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 | # tests/test_name_assembler.py
# Run with: pytest tests/ -v
import sys, os
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
from spacyNER.name_assembler import assemble_name, split_full_name
# ββ assemble_name tests ββββββββββββββββββββββββββββββββββββ
def test_assemble_full_name():
result = assemble_name("Juan", "dela Cruz", "Santos")
assert result == "Juan dela Cruz Santos"
def test_assemble_no_middle():
result = assemble_name("Maria", None, "Reyes")
assert result == "Maria Reyes"
def test_assemble_empty_middle():
result = assemble_name("Carlos", "", "Mendoza")
assert result == "Carlos Mendoza"
def test_assemble_all_none():
result = assemble_name(None, None, None)
assert result == ""
def test_assemble_strips_whitespace():
result = assemble_name(" Juan ", " dela Cruz ", " Santos ")
assert result == "Juan dela Cruz Santos"
def test_assemble_first_only():
result = assemble_name("Jose", None, None)
assert result == "Jose"
def test_assemble_last_only():
result = assemble_name(None, None, "Ramos")
assert result == "Ramos"
# ββ split_full_name tests ββββββββββββββββββββββββββββββββββ
def test_split_three_words():
first, middle, last = split_full_name("Juan dela Santos")
assert first == "Juan"
assert middle == "dela"
assert last == "Santos"
def test_split_four_words():
first, middle, last = split_full_name("Juan dela Cruz Santos")
assert first == "Juan"
assert middle == "dela Cruz"
assert last == "Santos"
def test_split_two_words():
first, middle, last = split_full_name("Maria Reyes")
assert first == "Maria"
assert middle is None
assert last == "Reyes"
def test_split_one_word():
first, middle, last = split_full_name("Carlos")
assert first == "Carlos"
assert middle is None
assert last is None
def test_split_empty():
first, middle, last = split_full_name("")
assert first is None
assert middle is None
assert last is None
def test_roundtrip():
"""Splitting then assembling should give back the original name."""
name = "Juan dela Cruz Santos"
first, middle, last = split_full_name(name)
result = assemble_name(first, middle, last)
assert result == name
|