@@ -158,6 +158,14 @@ def test_suffix_preserved(self) -> None:
158158 assert n .last == "Ivanov"
159159 assert n .suffix == "Jr."
160160
161+ def test_western_patronymic_surname_reordered_when_flag_on (self ) -> None :
162+ # Documented opt-in tradeoff: a Western name whose last token ends in a
163+ # patronymic suffix is reordered incorrectly. Not a bug to fix.
164+ n = self .hn ("David Michael Abramovich" )
165+ assert n .first == "Michael"
166+ assert n .middle == "Abramovich"
167+ assert n .last == "David"
168+
161169
162170class PatronymicNameOrderGuardsTests (HumanNameTestBase ):
163171 """Names that must NOT be reordered even when the flag is on."""
@@ -189,10 +197,11 @@ def test_two_token_name(self) -> None:
189197 assert n .last == "Abramovich"
190198
191199 def test_no_patronymic (self ) -> None :
192- # No patronymic anchor → not reordered
193- n = self .hn ("Mogilny Alexander" )
194- assert n .first == "Mogilny"
195- assert n .last == "Alexander"
200+ # Three tokens but no patronymic suffix on last → not reordered
201+ n = self .hn ("Ivanov Ivan Petrov" )
202+ assert n .first == "Ivanov"
203+ assert n .middle == "Ivan"
204+ assert n .last == "Petrov"
196205
197206 def test_western_name_unchanged (self ) -> None :
198207 n = self .hn ("John Michael Smith" )
@@ -212,15 +221,6 @@ def test_comma_guard_patronymic_form_surname(self) -> None:
212221 n = self .hn ("Sergeevich, Ivan Petrov" )
213222 assert n .last == "Sergeevich"
214223
215- def test_western_patronymic_surname_reordered_when_flag_on (self ) -> None :
216- # With the flag ON a western patronymic-form surname is reordered.
217- # This is the documented opt-in tradeoff — not a bug to fix.
218- n = self .hn ("David Michael Abramovich" )
219- assert n .first == "Michael"
220- assert n .middle == "Abramovich"
221- assert n .last == "David"
222-
223-
224224class PatronymicNameOrderFlagOffTests (HumanNameTestBase ):
225225 """With default Constants (flag=False) nothing changes."""
226226
0 commit comments