1
|
|
|
# -*- coding: utf-8 -*- |
|
|
|
|
2
|
|
|
|
3
|
|
|
# Copyright 2014-2018 by Christopher C. Little. |
4
|
|
|
# This file is part of Abydos. |
5
|
|
|
# |
6
|
|
|
# Abydos is free software: you can redistribute it and/or modify |
7
|
|
|
# it under the terms of the GNU General Public License as published by |
8
|
|
|
# the Free Software Foundation, either version 3 of the License, or |
9
|
|
|
# (at your option) any later version. |
10
|
|
|
# |
11
|
|
|
# Abydos is distributed in the hope that it will be useful, |
12
|
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
13
|
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
14
|
|
|
# GNU General Public License for more details. |
15
|
|
|
# |
16
|
|
|
# You should have received a copy of the GNU General Public License |
17
|
|
|
# along with Abydos. If not, see <http://www.gnu.org/licenses/>. |
18
|
|
|
|
19
|
|
|
"""abydos.tests.test_phonetic. |
20
|
|
|
|
21
|
|
|
This module contains unit tests for abydos.phonetic |
22
|
|
|
""" |
23
|
|
|
|
24
|
|
|
from __future__ import unicode_literals |
25
|
|
|
|
26
|
|
|
import codecs |
27
|
|
|
import math |
28
|
|
|
import os |
29
|
|
|
import random |
30
|
|
|
import unittest |
31
|
|
|
|
32
|
|
|
from abydos._bm import _bm_apply_rule_if_compat, _bm_expand_alternates, \ |
33
|
|
|
_bm_language, _bm_normalize_lang_attrs, _bm_phonetic_number, \ |
34
|
|
|
_bm_remove_dupes |
35
|
|
|
from abydos._bmdata import L_ANY, L_CYRILLIC, L_CZECH, L_DUTCH, L_ENGLISH, \ |
36
|
|
|
L_FRENCH, L_GERMAN, L_GREEK, L_GREEKLATIN, L_HEBREW, L_HUNGARIAN, \ |
37
|
|
|
L_ITALIAN, L_LATVIAN, L_POLISH, L_PORTUGUESE, L_ROMANIAN, L_SPANISH, \ |
38
|
|
|
L_TURKISH |
39
|
|
|
from abydos.phonetic import alpha_sis, bmpm, caverphone, dm_soundex, \ |
40
|
|
|
double_metaphone, eudex, fuzzy_soundex, koelner_phonetik, \ |
41
|
|
|
koelner_phonetik_alpha, koelner_phonetik_num_to_alpha, lein, metaphone, \ |
42
|
|
|
mra, nysiis, onca, phonem, phonet, phonex, phonix, refined_soundex, \ |
43
|
|
|
roger_root, russell_index, russell_index_alpha, \ |
|
|
|
|
44
|
|
|
russell_index_num_to_alpha, sfinxbis, soundex, spfc, statistics_canada |
45
|
|
|
|
46
|
|
|
from six import text_type |
|
|
|
|
47
|
|
|
|
48
|
|
|
TESTDIR = os.path.dirname(__file__) |
49
|
|
|
|
50
|
|
|
EXTREME_TEST = False # Set to True to test EVERY single case (NB: takes hours) |
51
|
|
|
ALLOW_RANDOM = True # Set to False to skip all random tests |
52
|
|
|
|
53
|
|
|
if not EXTREME_TEST and os.path.isfile(TESTDIR + '/EXTREME_TEST'): |
54
|
|
|
# EXTREME_TEST file detected -- switching to EXTREME_TEST mode... |
55
|
|
|
EXTREME_TEST = True |
56
|
|
|
|
57
|
|
|
|
58
|
|
|
def one_in(inverse_probability): |
59
|
|
|
"""Return whether to run a test. |
60
|
|
|
|
61
|
|
|
Return True if: |
62
|
|
|
EXTREME_TEST is True |
63
|
|
|
OR |
64
|
|
|
(ALLOW_RANDOM is False |
65
|
|
|
AND |
66
|
|
|
random.random() * inverse_probability < 1 |
67
|
|
|
Otherwise return False |
68
|
|
|
""" |
69
|
|
|
if EXTREME_TEST: |
|
|
|
|
70
|
|
|
return True |
71
|
|
|
elif ALLOW_RANDOM and random.random() * inverse_probability < 1: |
72
|
|
|
return True |
73
|
|
|
else: |
74
|
|
|
return False |
75
|
|
|
|
76
|
|
|
|
77
|
|
|
class RussellIndexTestCases(unittest.TestCase): |
78
|
|
|
"""Test Russel Index functions. |
79
|
|
|
|
80
|
|
|
test cases for abydos.phonetic.russell_index, |
81
|
|
|
.russell_index_num_to_alpha, & .russell_index_alpha |
82
|
|
|
""" |
83
|
|
|
|
84
|
|
|
def test_russel_index(self): |
85
|
|
|
"""Test abydos.phonetic.russell_index.""" |
86
|
|
|
self.assertTrue(math.isnan(russell_index(''))) |
87
|
|
|
self.assertTrue(math.isnan(russell_index('H'))) |
88
|
|
|
self.assertEqual(russell_index('Hoppa'), 12) |
89
|
|
|
self.assertEqual(russell_index('Hopley'), 125) |
90
|
|
|
self.assertEqual(russell_index('Highfield'), 1254) |
91
|
|
|
self.assertEqual(russell_index('Wright'), 814) |
92
|
|
|
self.assertEqual(russell_index('Carter'), 31848) |
93
|
|
|
self.assertEqual(russell_index('Hopf'), 12) |
94
|
|
|
self.assertEqual(russell_index('Hay'), 1) |
95
|
|
|
self.assertEqual(russell_index('Haas'), 1) |
96
|
|
|
self.assertEqual(russell_index('Meyers'), 618) |
97
|
|
|
self.assertEqual(russell_index('Myers'), 618) |
98
|
|
|
self.assertEqual(russell_index('Meyer'), 618) |
99
|
|
|
self.assertEqual(russell_index('Myer'), 618) |
100
|
|
|
self.assertEqual(russell_index('Mack'), 613) |
101
|
|
|
self.assertEqual(russell_index('Knack'), 3713) |
102
|
|
|
|
103
|
|
|
def test_russel_index_n2a(self): |
104
|
|
|
"""Test abydos.phonetic.russell_index_num_to_alpha.""" |
105
|
|
|
self.assertEqual(russell_index_num_to_alpha(0), '') |
106
|
|
|
self.assertEqual(russell_index_num_to_alpha(''), '') |
107
|
|
|
self.assertEqual(russell_index_num_to_alpha(float('NaN')), '') |
108
|
|
|
self.assertEqual(russell_index_num_to_alpha(123456789), 'ABCDLMNR') |
109
|
|
|
self.assertEqual(russell_index_num_to_alpha('0123456789'), 'ABCDLMNR') |
110
|
|
|
|
111
|
|
|
def test_russel_index_alpha(self): |
112
|
|
|
"""Test abydos.phonetic.russell_index_alpha.""" |
113
|
|
|
self.assertEqual(russell_index_alpha(''), '') |
114
|
|
|
self.assertEqual(russell_index_alpha('H'), '') |
115
|
|
|
self.assertEqual(russell_index_alpha('Hoppa'), 'AB') |
116
|
|
|
self.assertEqual(russell_index_alpha('Hopley'), 'ABL') |
117
|
|
|
self.assertEqual(russell_index_alpha('Highfield'), 'ABLD') |
118
|
|
|
self.assertEqual(russell_index_alpha('Wright'), 'RAD') |
119
|
|
|
self.assertEqual(russell_index_alpha('Carter'), 'CARDR') |
120
|
|
|
self.assertEqual(russell_index_alpha('Hopf'), 'AB') |
121
|
|
|
self.assertEqual(russell_index_alpha('Hay'), 'A') |
122
|
|
|
self.assertEqual(russell_index_alpha('Haas'), 'A') |
123
|
|
|
self.assertEqual(russell_index_alpha('Meyers'), 'MAR') |
124
|
|
|
self.assertEqual(russell_index_alpha('Myers'), 'MAR') |
125
|
|
|
self.assertEqual(russell_index_alpha('Meyer'), 'MAR') |
126
|
|
|
self.assertEqual(russell_index_alpha('Myer'), 'MAR') |
127
|
|
|
self.assertEqual(russell_index_alpha('Mack'), 'MAC') |
128
|
|
|
self.assertEqual(russell_index_alpha('Knack'), 'CNAC') |
129
|
|
|
|
130
|
|
|
|
131
|
|
|
class SoundexTestCases(unittest.TestCase): |
132
|
|
|
"""Test Soundex functions. |
133
|
|
|
|
134
|
|
|
test cases for abydos.phonetic.soundex, .refined_soundex, |
135
|
|
|
& .dm_soundex |
136
|
|
|
""" |
137
|
|
|
|
138
|
|
|
def test_soundex(self): |
139
|
|
|
"""Test abydos.phonetic.soundex.""" |
140
|
|
|
self.assertEqual(soundex(''), '0000') |
141
|
|
|
|
142
|
|
|
# https://archive.org/stream/accessingindivid00moor#page/14/mode/2up |
143
|
|
|
self.assertEqual(soundex('Euler'), 'E460') |
144
|
|
|
self.assertEqual(soundex('Gauss'), 'G200') |
145
|
|
|
self.assertEqual(soundex('Hilbert'), 'H416') |
146
|
|
|
self.assertEqual(soundex('Knuth'), 'K530') |
147
|
|
|
self.assertEqual(soundex('Lloyd'), 'L300') |
148
|
|
|
self.assertEqual(soundex('Lukasieicz'), 'L222') |
149
|
|
|
self.assertEqual(soundex('Ellery'), 'E460') |
150
|
|
|
self.assertEqual(soundex('Ghosh'), 'G200') |
151
|
|
|
self.assertEqual(soundex('Heilbronn'), 'H416') |
152
|
|
|
self.assertEqual(soundex('Kant'), 'K530') |
153
|
|
|
self.assertEqual(soundex('Ladd'), 'L300') |
154
|
|
|
self.assertEqual(soundex('Lissajous'), 'L222') |
155
|
|
|
self.assertEqual(soundex('Rogers'), 'R262') |
156
|
|
|
self.assertEqual(soundex('Rodgers'), 'R326') |
157
|
|
|
self.assertNotEquals(soundex('Rogers'), soundex('Rodgers')) |
|
|
|
|
158
|
|
|
self.assertNotEquals(soundex('Sinclair'), soundex('St. Clair')) |
|
|
|
|
159
|
|
|
self.assertNotEquals(soundex('Tchebysheff'), soundex('Chebyshev')) |
|
|
|
|
160
|
|
|
|
161
|
|
|
# http://creativyst.com/Doc/Articles/SoundEx1/SoundEx1.htm#Related |
162
|
|
|
self.assertEqual(soundex('Htacky'), 'H320') |
163
|
|
|
self.assertEqual(soundex('Atacky'), 'A320') |
164
|
|
|
self.assertEqual(soundex('Schmit'), 'S530') |
165
|
|
|
self.assertEqual(soundex('Schneider'), 'S536') |
166
|
|
|
self.assertEqual(soundex('Pfister'), 'P236') |
167
|
|
|
self.assertEqual(soundex('Ashcroft'), 'A261') |
168
|
|
|
self.assertEqual(soundex('Asicroft'), 'A226') |
169
|
|
|
|
170
|
|
|
# https://en.wikipedia.org/wiki/Soundex |
171
|
|
|
self.assertEqual(soundex('Robert'), 'R163') |
172
|
|
|
self.assertEqual(soundex('Rupert'), 'R163') |
173
|
|
|
self.assertEqual(soundex('Rubin'), 'R150') |
174
|
|
|
self.assertEqual(soundex('Tymczak'), 'T522') |
175
|
|
|
|
176
|
|
|
# https://en.wikipedia.org/wiki/Daitch%E2%80%93Mokotoff_Soundex |
177
|
|
|
self.assertEqual(soundex('Peters'), 'P362') |
178
|
|
|
self.assertEqual(soundex('Peterson'), 'P362') |
179
|
|
|
self.assertEqual(soundex('Moskowitz'), 'M232') |
180
|
|
|
self.assertEqual(soundex('Moskovitz'), 'M213') |
181
|
|
|
self.assertEqual(soundex('Auerbach'), 'A612') |
182
|
|
|
self.assertEqual(soundex('Uhrbach'), 'U612') |
183
|
|
|
self.assertEqual(soundex('Jackson'), 'J250') |
184
|
|
|
self.assertEqual(soundex('Jackson-Jackson'), 'J252') |
185
|
|
|
|
186
|
|
|
# maxlength tests |
187
|
|
|
self.assertEqual(soundex('Lincoln', 10), 'L524500000') |
188
|
|
|
self.assertEqual(soundex('Lincoln', 5), 'L5245') |
189
|
|
|
self.assertEqual(soundex('Christopher', 6), 'C62316') |
190
|
|
|
|
191
|
|
|
# maxlength bounds tests |
192
|
|
|
self.assertEqual(soundex('Niall', maxlength=float('inf')), |
193
|
|
|
'N4000000000000000000000000000000000000000000000000' + |
194
|
|
|
'00000000000000') |
195
|
|
|
self.assertEqual(soundex('Niall', maxlength=None), |
196
|
|
|
'N4000000000000000000000000000000000000000000000000' + |
197
|
|
|
'00000000000000') |
198
|
|
|
self.assertEqual(soundex('Niall', maxlength=0), 'N400') |
199
|
|
|
|
200
|
|
|
# reverse tests |
201
|
|
|
self.assertEqual(soundex('Rubin', reverse=True), 'N160') |
202
|
|
|
self.assertEqual(soundex('Llyod', reverse=True), 'D400') |
203
|
|
|
self.assertEqual(soundex('Lincoln', reverse=True), 'N425') |
204
|
|
|
self.assertEqual(soundex('Knuth', reverse=True), 'H352') |
205
|
|
|
|
206
|
|
|
# zero_pad tests |
207
|
|
|
self.assertEqual(soundex('Niall', maxlength=float('inf'), |
208
|
|
|
zero_pad=False), 'N4') |
209
|
|
|
self.assertEqual(soundex('Niall', maxlength=None, |
210
|
|
|
zero_pad=False), 'N4') |
211
|
|
|
self.assertEqual(soundex('Niall', maxlength=0, zero_pad=False), 'N4') |
212
|
|
|
self.assertEqual(soundex('Niall', maxlength=0, zero_pad=True), 'N400') |
213
|
|
|
self.assertEqual(soundex('', maxlength=4, zero_pad=False), '0') |
214
|
|
|
self.assertEqual(soundex('', maxlength=4, zero_pad=True), '0000') |
215
|
|
|
|
216
|
|
|
def test_soundex_special(self): |
217
|
|
|
"""Test abydos.phonetic.soundex (special census variant method).""" |
218
|
|
|
self.assertEqual(soundex('Ashcroft', var='special'), 'A226') |
219
|
|
|
self.assertEqual(soundex('Asicroft', var='special'), 'A226') |
220
|
|
|
self.assertEqual(soundex('AsWcroft', var='special'), 'A226') |
221
|
|
|
self.assertEqual(soundex('Rupert', var='special'), 'R163') |
222
|
|
|
self.assertEqual(soundex('Rubin', var='special'), 'R150') |
223
|
|
|
|
224
|
|
|
def test_refined_soundex(self): |
225
|
|
|
"""Test abydos.phonetic.refined_soundex.""" |
226
|
|
|
# http://ntz-develop.blogspot.com/2011/03/phonetic-algorithms.html |
227
|
|
|
self.assertEqual(refined_soundex('Braz'), 'B1905') |
228
|
|
|
self.assertEqual(refined_soundex('Broz'), 'B1905') |
229
|
|
|
self.assertEqual(refined_soundex('Caren'), 'C30908') |
230
|
|
|
self.assertEqual(refined_soundex('Caron'), 'C30908') |
231
|
|
|
self.assertEqual(refined_soundex('Carren'), 'C30908') |
232
|
|
|
self.assertEqual(refined_soundex('Charon'), 'C30908') |
233
|
|
|
self.assertEqual(refined_soundex('Corain'), 'C30908') |
234
|
|
|
self.assertEqual(refined_soundex('Coram'), 'C30908') |
235
|
|
|
self.assertEqual(refined_soundex('Corran'), 'C30908') |
236
|
|
|
self.assertEqual(refined_soundex('Corrin'), 'C30908') |
237
|
|
|
self.assertEqual(refined_soundex('Corwin'), 'C30908') |
238
|
|
|
self.assertEqual(refined_soundex('Curran'), 'C30908') |
239
|
|
|
self.assertEqual(refined_soundex('Curreen'), 'C30908') |
240
|
|
|
self.assertEqual(refined_soundex('Currin'), 'C30908') |
241
|
|
|
self.assertEqual(refined_soundex('Currom'), 'C30908') |
242
|
|
|
self.assertEqual(refined_soundex('Currum'), 'C30908') |
243
|
|
|
self.assertEqual(refined_soundex('Curwen'), 'C30908') |
244
|
|
|
self.assertEqual(refined_soundex('Caren'), 'C30908') |
245
|
|
|
self.assertEqual(refined_soundex('Caren'), 'C30908') |
246
|
|
|
self.assertEqual(refined_soundex('Caren'), 'C30908') |
247
|
|
|
self.assertEqual(refined_soundex('Caren'), 'C30908') |
248
|
|
|
self.assertEqual(refined_soundex('Caren'), 'C30908') |
249
|
|
|
self.assertEqual(refined_soundex('Caren'), 'C30908') |
250
|
|
|
self.assertEqual(refined_soundex('Caren'), 'C30908') |
251
|
|
|
self.assertEqual(refined_soundex('Hairs'), 'H093') |
252
|
|
|
self.assertEqual(refined_soundex('Hark'), 'H093') |
253
|
|
|
self.assertEqual(refined_soundex('Hars'), 'H093') |
254
|
|
|
self.assertEqual(refined_soundex('Hayers'), 'H093') |
255
|
|
|
self.assertEqual(refined_soundex('Heers'), 'H093') |
256
|
|
|
self.assertEqual(refined_soundex('Hiers'), 'H093') |
257
|
|
|
self.assertEqual(refined_soundex('Lambard'), 'L7081096') |
258
|
|
|
self.assertEqual(refined_soundex('Lambart'), 'L7081096') |
259
|
|
|
self.assertEqual(refined_soundex('Lambert'), 'L7081096') |
260
|
|
|
self.assertEqual(refined_soundex('Lambird'), 'L7081096') |
261
|
|
|
self.assertEqual(refined_soundex('Lampaert'), 'L7081096') |
262
|
|
|
self.assertEqual(refined_soundex('Lampard'), 'L7081096') |
263
|
|
|
self.assertEqual(refined_soundex('Lampart'), 'L7081096') |
264
|
|
|
self.assertEqual(refined_soundex('Lamperd'), 'L7081096') |
265
|
|
|
self.assertEqual(refined_soundex('Lampert'), 'L7081096') |
266
|
|
|
self.assertEqual(refined_soundex('Lamport'), 'L7081096') |
267
|
|
|
self.assertEqual(refined_soundex('Limbert'), 'L7081096') |
268
|
|
|
self.assertEqual(refined_soundex('Lombard'), 'L7081096') |
269
|
|
|
self.assertEqual(refined_soundex('Nolton'), 'N807608') |
270
|
|
|
self.assertEqual(refined_soundex('Noulton'), 'N807608') |
271
|
|
|
|
272
|
|
|
# http://trimc-nlp.blogspot.com/2015/03/the-soundex-algorithm.html |
273
|
|
|
self.assertEqual(refined_soundex('Craig'), 'C3904') |
274
|
|
|
self.assertEqual(refined_soundex('Crag'), 'C3904') |
275
|
|
|
self.assertEqual(refined_soundex('Crejg'), 'C3904') |
276
|
|
|
self.assertEqual(refined_soundex('Creig'), 'C3904') |
277
|
|
|
self.assertEqual(refined_soundex('Craigg'), 'C3904') |
278
|
|
|
self.assertEqual(refined_soundex('Craug'), 'C3904') |
279
|
|
|
self.assertEqual(refined_soundex('Craiggg'), 'C3904') |
280
|
|
|
self.assertEqual(refined_soundex('Creg'), 'C3904') |
281
|
|
|
self.assertEqual(refined_soundex('Cregg'), 'C3904') |
282
|
|
|
self.assertEqual(refined_soundex('Creag'), 'C3904') |
283
|
|
|
self.assertEqual(refined_soundex('Greg'), 'G4904') |
284
|
|
|
self.assertEqual(refined_soundex('Gregg'), 'G4904') |
285
|
|
|
self.assertEqual(refined_soundex('Graig'), 'G4904') |
286
|
|
|
self.assertEqual(refined_soundex('Greig'), 'G4904') |
287
|
|
|
self.assertEqual(refined_soundex('Greggg'), 'G4904') |
288
|
|
|
self.assertEqual(refined_soundex('Groeg'), 'G4904') |
289
|
|
|
self.assertEqual(refined_soundex('Graj'), 'G4904') |
290
|
|
|
self.assertEqual(refined_soundex('Grej'), 'G4904') |
291
|
|
|
self.assertEqual(refined_soundex('Grreg'), 'G4904') |
292
|
|
|
self.assertEqual(refined_soundex('Greag'), 'G4904') |
293
|
|
|
self.assertEqual(refined_soundex('Grig'), 'G4904') |
294
|
|
|
self.assertEqual(refined_soundex('Kregg'), 'K3904') |
295
|
|
|
self.assertEqual(refined_soundex('Kraig'), 'K3904') |
296
|
|
|
self.assertEqual(refined_soundex('Krag'), 'K3904') |
297
|
|
|
self.assertEqual(refined_soundex('Kreig'), 'K3904') |
298
|
|
|
self.assertEqual(refined_soundex('Krug'), 'K3904') |
299
|
|
|
self.assertEqual(refined_soundex('Kreg'), 'K3904') |
300
|
|
|
self.assertEqual(refined_soundex('Krieg'), 'K3904') |
301
|
|
|
self.assertEqual(refined_soundex('Krijg'), 'K3904') |
302
|
|
|
|
303
|
|
|
# Apache Commons test cases |
304
|
|
|
# http://svn.apache.org/viewvc/commons/proper/codec/trunk/src/test/java/org/apache/commons/codec/language/RefinedSoundexTest.java?view=markup |
305
|
|
|
self.assertEqual(refined_soundex('testing'), 'T6036084') |
306
|
|
|
self.assertEqual(refined_soundex('TESTING'), 'T6036084') |
307
|
|
|
self.assertEqual(refined_soundex('The'), 'T60') |
308
|
|
|
self.assertEqual(refined_soundex('quick'), 'Q503') |
309
|
|
|
self.assertEqual(refined_soundex('brown'), 'B1908') |
310
|
|
|
self.assertEqual(refined_soundex('fox'), 'F205') |
311
|
|
|
self.assertEqual(refined_soundex('jumped'), 'J408106') |
312
|
|
|
self.assertEqual(refined_soundex('over'), 'O0209') |
313
|
|
|
self.assertEqual(refined_soundex('the'), 'T60') |
314
|
|
|
self.assertEqual(refined_soundex('lazy'), 'L7050') |
315
|
|
|
self.assertEqual(refined_soundex('dogs'), 'D6043') |
316
|
|
|
|
317
|
|
|
def test_dm_soundex(self): |
318
|
|
|
"""Test abydos.phonetic.dm_soundex (Daitchh-Mokotoff Soundex).""" |
319
|
|
|
# D-M tests |
320
|
|
|
self.assertEqual(soundex('', var='dm'), {'000000'}) |
321
|
|
|
self.assertEqual(dm_soundex(''), {'000000'}) |
322
|
|
|
|
323
|
|
|
# http://www.avotaynu.com/soundex.htm |
324
|
|
|
self.assertEqual(soundex('Augsburg', var='dm'), {'054795'}) |
325
|
|
|
self.assertEqual(dm_soundex('Augsburg'), {'054795'}) |
326
|
|
|
self.assertEqual(soundex('Breuer', var='dm'), {'791900'}) |
327
|
|
|
self.assertEqual(dm_soundex('Breuer'), {'791900'}) |
328
|
|
|
self.assertEqual(soundex('Halberstadt', var='dm'), |
329
|
|
|
{'587943', '587433'}) |
330
|
|
|
self.assertEqual(dm_soundex('Halberstadt'), {'587943', '587433'}) |
331
|
|
|
self.assertEqual(soundex('Mannheim', var='dm'), {'665600'}) |
332
|
|
|
self.assertEqual(dm_soundex('Mannheim'), {'665600'}) |
333
|
|
|
self.assertEqual(soundex('Chernowitz', var='dm'), |
334
|
|
|
{'496740', '596740'}) |
335
|
|
|
self.assertEqual(dm_soundex('Chernowitz'), {'496740', '596740'}) |
336
|
|
|
self.assertEqual(soundex('Cherkassy', var='dm'), |
337
|
|
|
{'495400', '595400'}) |
338
|
|
|
self.assertEqual(dm_soundex('Cherkassy'), {'495400', '595400'}) |
339
|
|
|
self.assertEqual(soundex('Kleinman', var='dm'), {'586660'}) |
340
|
|
|
self.assertEqual(dm_soundex('Kleinman'), {'586660'}) |
341
|
|
|
self.assertEqual(soundex('Berlin', var='dm'), {'798600'}) |
342
|
|
|
self.assertEqual(dm_soundex('Berlin'), {'798600'}) |
343
|
|
|
|
344
|
|
|
self.assertEqual(soundex('Ceniow', var='dm'), |
345
|
|
|
{'467000', '567000'}) |
346
|
|
|
self.assertEqual(dm_soundex('Ceniow'), {'467000', '567000'}) |
347
|
|
|
self.assertEqual(soundex('Tsenyuv', var='dm'), {'467000'}) |
348
|
|
|
self.assertEqual(dm_soundex('Tsenyuv'), {'467000'}) |
349
|
|
|
self.assertEqual(soundex('Holubica', var='dm'), |
350
|
|
|
{'587400', '587500'}) |
351
|
|
|
self.assertEqual(dm_soundex('Holubica'), {'587400', '587500'}) |
352
|
|
|
self.assertEqual(soundex('Golubitsa', var='dm'), {'587400'}) |
353
|
|
|
self.assertEqual(dm_soundex('Golubitsa'), {'587400'}) |
354
|
|
|
self.assertEqual(soundex('Przemysl', var='dm'), |
355
|
|
|
{'746480', '794648'}) |
356
|
|
|
self.assertEqual(dm_soundex('Przemysl'), {'746480', '794648'}) |
357
|
|
|
self.assertEqual(soundex('Pshemeshil', var='dm'), {'746480'}) |
358
|
|
|
self.assertEqual(dm_soundex('Pshemeshil'), {'746480'}) |
359
|
|
|
self.assertEqual(soundex('Rosochowaciec', var='dm'), |
360
|
|
|
{'944744', '945744', '944755', '944754', '944745', |
361
|
|
|
'945745', '945754', '945755'}) |
362
|
|
|
self.assertEqual(dm_soundex('Rosochowaciec'), |
363
|
|
|
{'944744', '945744', '944755', '944754', '944745', |
364
|
|
|
'945745', '945754', '945755'}) |
365
|
|
|
self.assertEqual(soundex('Rosokhovatsets', var='dm'), {'945744'}) |
366
|
|
|
self.assertEqual(dm_soundex('Rosokhovatsets'), {'945744'}) |
367
|
|
|
|
368
|
|
|
# https://en.wikipedia.org/wiki/Daitch%E2%80%93Mokotoff_Soundex |
369
|
|
|
self.assertEqual(soundex('Peters', var='dm'), |
370
|
|
|
{'739400', '734000'}) |
371
|
|
|
self.assertEqual(dm_soundex('Peters'), {'739400', '734000'}) |
372
|
|
|
self.assertEqual(soundex('Peterson', var='dm'), |
373
|
|
|
{'739460', '734600'}) |
374
|
|
|
self.assertEqual(dm_soundex('Peterson'), {'739460', '734600'}) |
375
|
|
|
self.assertEqual(soundex('Moskowitz', var='dm'), {'645740'}) |
376
|
|
|
self.assertEqual(dm_soundex('Moskowitz'), {'645740'}) |
377
|
|
|
self.assertEqual(soundex('Moskovitz', var='dm'), {'645740'}) |
378
|
|
|
self.assertEqual(dm_soundex('Moskovitz'), {'645740'}) |
379
|
|
|
self.assertEqual(soundex('Auerbach', var='dm'), |
380
|
|
|
{'097500', '097400'}) |
381
|
|
|
self.assertEqual(dm_soundex('Auerbach'), {'097500', '097400'}) |
382
|
|
|
self.assertEqual(soundex('Uhrbach', var='dm'), |
383
|
|
|
{'097500', '097400'}) |
384
|
|
|
self.assertEqual(dm_soundex('Uhrbach'), {'097500', '097400'}) |
385
|
|
|
self.assertEqual(soundex('Jackson', var='dm'), |
386
|
|
|
{'154600', '454600', '145460', '445460'}) |
387
|
|
|
self.assertEqual(dm_soundex('Jackson'), |
388
|
|
|
{'154600', '454600', '145460', '445460'}) |
389
|
|
|
self.assertEqual(soundex('Jackson-Jackson', var='dm'), |
390
|
|
|
{'154654', '454654', '145465', '445465', |
391
|
|
|
'154645', '454645', '145464', '445464', |
392
|
|
|
'154644', '454644'}) |
393
|
|
|
self.assertEqual(dm_soundex('Jackson-Jackson'), |
394
|
|
|
{'154654', '454654', '145465', '445465', |
395
|
|
|
'154645', '454645', '145464', '445464', |
396
|
|
|
'154644', '454644'}) |
397
|
|
|
|
398
|
|
|
# http://www.jewishgen.org/infofiles/soundex.html |
399
|
|
|
self.assertEqual(soundex('OHRBACH', var='dm'), |
400
|
|
|
{'097500', '097400'}) |
401
|
|
|
self.assertEqual(dm_soundex('OHRBACH'), {'097500', '097400'}) |
402
|
|
|
self.assertEqual(soundex('LIPSHITZ', var='dm'), {'874400'}) |
403
|
|
|
self.assertEqual(dm_soundex('LIPSHITZ'), {'874400'}) |
404
|
|
|
self.assertEqual(soundex('LIPPSZYC', var='dm'), |
405
|
|
|
{'874400', '874500'}) |
406
|
|
|
self.assertEqual(dm_soundex('LIPPSZYC'), {'874400', '874500'}) |
407
|
|
|
self.assertEqual(soundex('LEWINSKY', var='dm'), {'876450'}) |
408
|
|
|
self.assertEqual(dm_soundex('LEWINSKY'), {'876450'}) |
409
|
|
|
self.assertEqual(soundex('LEVINSKI', var='dm'), {'876450'}) |
410
|
|
|
self.assertEqual(dm_soundex('LEVINSKI'), {'876450'}) |
411
|
|
|
self.assertEqual(soundex('SZLAMAWICZ', var='dm'), {'486740'}) |
412
|
|
|
self.assertEqual(dm_soundex('SZLAMAWICZ'), {'486740'}) |
413
|
|
|
self.assertEqual(soundex('SHLAMOVITZ', var='dm'), {'486740'}) |
414
|
|
|
self.assertEqual(dm_soundex('SHLAMOVITZ'), {'486740'}) |
415
|
|
|
|
416
|
|
|
# http://community.actian.com/wiki/OME_soundex_dm() |
417
|
|
|
self.assertEqual(soundex('Schwarzenegger', var='dm'), |
418
|
|
|
{'479465', '474659'}) |
419
|
|
|
self.assertEqual(dm_soundex('Schwarzenegger'), |
420
|
|
|
{'479465', '474659'}) |
421
|
|
|
self.assertEqual(soundex('Shwarzenegger', var='dm'), |
422
|
|
|
{'479465', '474659'}) |
423
|
|
|
self.assertEqual(dm_soundex('Shwarzenegger'), |
424
|
|
|
{'479465', '474659'}) |
425
|
|
|
self.assertEqual(soundex('Schwartsenegger', var='dm'), |
426
|
|
|
{'479465'}) |
427
|
|
|
self.assertEqual(dm_soundex('Schwartsenegger'), {'479465'}) |
428
|
|
|
|
429
|
|
|
# reverse DM-Soundex |
430
|
|
|
self.assertEqual(soundex('Schwarzenegger', var='dm', reverse=True), |
431
|
|
|
{'956497'}) |
432
|
|
|
self.assertEqual(dm_soundex('Schwarzenegger', reverse=True), |
433
|
|
|
{'956497'}) |
434
|
|
|
|
435
|
|
|
# maxlength bounds tests |
436
|
|
|
self.assertEqual(dm_soundex('Niall', maxlength=float('inf')), |
437
|
|
|
{'68'+'0'*62}) |
438
|
|
|
self.assertEqual(dm_soundex('Niall', maxlength=None), |
439
|
|
|
{'68'+'0'*62}) |
440
|
|
|
self.assertEqual(dm_soundex('Niall', maxlength=0), {'680000'}) |
441
|
|
|
|
442
|
|
|
# zero_pad tests |
443
|
|
|
self.assertEqual(dm_soundex('Niall', maxlength=float('inf'), |
444
|
|
|
zero_pad=False), {'68'}) |
445
|
|
|
self.assertEqual(dm_soundex('Niall', maxlength=None, zero_pad=False), |
446
|
|
|
{'68'}) |
447
|
|
|
self.assertEqual(dm_soundex('Niall', maxlength=0, zero_pad=False), |
448
|
|
|
{'68'}) |
449
|
|
|
self.assertEqual(dm_soundex('Niall', maxlength=0, zero_pad=True), |
450
|
|
|
{'680000'}) |
451
|
|
|
self.assertEqual(dm_soundex('', maxlength=6, zero_pad=False), |
452
|
|
|
{'0'}) |
453
|
|
|
self.assertEqual(dm_soundex('', maxlength=6, zero_pad=True), |
454
|
|
|
{'000000'}) |
455
|
|
|
|
456
|
|
|
|
457
|
|
|
class KoelnerPhonetikTestCases(unittest.TestCase): |
458
|
|
|
"""Test Koelner Phonetic functions. |
459
|
|
|
|
460
|
|
|
test cases for abydos.phonetic.koelner_phonetik, |
461
|
|
|
.koelner_phonetik_num_to_alpha, & .koelner_phonetik_alpha |
462
|
|
|
""" |
463
|
|
|
|
464
|
|
|
def test_koelner_phonetik(self): |
465
|
|
|
"""Test abydos.phonetic.koelner_phonetik.""" |
466
|
|
|
self.assertEqual(koelner_phonetik(''), '') |
467
|
|
|
|
468
|
|
|
# https://de.wikipedia.org/wiki/K%C3%B6lner_Phonetik |
469
|
|
|
self.assertEqual(koelner_phonetik('Müller-Lüdenscheidt'), '65752682') |
470
|
|
|
self.assertEqual(koelner_phonetik('Wikipedia'), '3412') |
471
|
|
|
self.assertEqual(koelner_phonetik('Breschnew'), '17863') |
472
|
|
|
|
473
|
|
|
# http://search.cpan.org/~maros/Text-Phonetic/lib/Text/Phonetic/Koeln.pm |
474
|
|
|
self.assertEqual(koelner_phonetik('Müller'), '657') |
475
|
|
|
self.assertEqual(koelner_phonetik('schmidt'), '862') |
476
|
|
|
self.assertEqual(koelner_phonetik('schneider'), '8627') |
477
|
|
|
self.assertEqual(koelner_phonetik('fischer'), '387') |
478
|
|
|
self.assertEqual(koelner_phonetik('weber'), '317') |
479
|
|
|
self.assertEqual(koelner_phonetik('meyer'), '67') |
480
|
|
|
self.assertEqual(koelner_phonetik('wagner'), '3467') |
481
|
|
|
self.assertEqual(koelner_phonetik('schulz'), '858') |
482
|
|
|
self.assertEqual(koelner_phonetik('becker'), '147') |
483
|
|
|
self.assertEqual(koelner_phonetik('hoffmann'), '0366') |
484
|
|
|
self.assertEqual(koelner_phonetik('schäfer'), '837') |
485
|
|
|
self.assertEqual(koelner_phonetik('cater'), '427') |
486
|
|
|
self.assertEqual(koelner_phonetik('axel'), '0485') |
487
|
|
|
|
488
|
|
|
# etc. (for code coverage) |
489
|
|
|
self.assertEqual(koelner_phonetik('Akxel'), '0485') |
490
|
|
|
self.assertEqual(koelner_phonetik('Adz'), '08') |
491
|
|
|
self.assertEqual(koelner_phonetik('Alpharades'), '053728') |
492
|
|
|
self.assertEqual(koelner_phonetik('Cent'), '862') |
493
|
|
|
self.assertEqual(koelner_phonetik('Acre'), '087') |
494
|
|
|
self.assertEqual(koelner_phonetik('H'), '') |
495
|
|
|
|
496
|
|
|
def test_koelner_phonetik_n2a(self): |
497
|
|
|
"""Test abydos.phonetic.koelner_phonetik_num_to_alpha.""" |
498
|
|
|
self.assertEqual(koelner_phonetik_num_to_alpha('0123456789'), |
499
|
|
|
'APTFKLNRS') |
500
|
|
|
|
501
|
|
|
def test_koelner_phonetik_alpha(self): |
502
|
|
|
"""Test abydos.phonetic.koelner_phonetik_alpha.""" |
503
|
|
|
self.assertEqual(koelner_phonetik_alpha('Müller-Lüdenscheidt'), |
504
|
|
|
'NLRLTNST') |
505
|
|
|
self.assertEqual(koelner_phonetik_alpha('Wikipedia'), 'FKPT') |
506
|
|
|
self.assertEqual(koelner_phonetik_alpha('Breschnew'), 'PRSNF') |
507
|
|
|
self.assertEqual(koelner_phonetik_alpha('Müller'), 'NLR') |
508
|
|
|
self.assertEqual(koelner_phonetik_alpha('schmidt'), 'SNT') |
509
|
|
|
self.assertEqual(koelner_phonetik_alpha('schneider'), 'SNTR') |
510
|
|
|
self.assertEqual(koelner_phonetik_alpha('fischer'), 'FSR') |
511
|
|
|
self.assertEqual(koelner_phonetik_alpha('weber'), 'FPR') |
512
|
|
|
self.assertEqual(koelner_phonetik_alpha('meyer'), 'NR') |
513
|
|
|
self.assertEqual(koelner_phonetik_alpha('wagner'), 'FKNR') |
514
|
|
|
self.assertEqual(koelner_phonetik_alpha('schulz'), 'SLS') |
515
|
|
|
self.assertEqual(koelner_phonetik_alpha('becker'), 'PKR') |
516
|
|
|
self.assertEqual(koelner_phonetik_alpha('hoffmann'), 'AFNN') |
517
|
|
|
self.assertEqual(koelner_phonetik_alpha('schäfer'), 'SFR') |
518
|
|
|
self.assertEqual(koelner_phonetik_alpha('cater'), 'KTR') |
519
|
|
|
self.assertEqual(koelner_phonetik_alpha('axel'), 'AKSL') |
520
|
|
|
|
521
|
|
|
|
522
|
|
|
class NysiisTestCases(unittest.TestCase): |
523
|
|
|
"""Test NYSIIS functions. |
524
|
|
|
|
525
|
|
|
test cases for abydos.phonetic.nysiis |
526
|
|
|
""" |
527
|
|
|
|
528
|
|
|
def test_nysiis(self): |
529
|
|
|
"""Test abydos.phonetic.nysiis.""" |
530
|
|
|
self.assertEqual(nysiis(''), '') |
531
|
|
|
|
532
|
|
|
# http://coryodaniel.com/index.php/2009/12/30/ruby-nysiis-implementation/ |
533
|
|
|
self.assertEqual(nysiis('O\'Daniel'), 'ODANAL') |
534
|
|
|
self.assertEqual(nysiis('O\'Donnel'), 'ODANAL') |
535
|
|
|
self.assertEqual(nysiis('Cory'), 'CARY') |
536
|
|
|
self.assertEqual(nysiis('Corey'), 'CARY') |
537
|
|
|
self.assertEqual(nysiis('Kory'), 'CARY') |
538
|
|
|
|
539
|
|
|
# http://ntz-develop.blogspot.com/2011/03/phonetic-algorithms.html |
540
|
|
|
self.assertEqual(nysiis('Diggell'), 'DAGAL') |
541
|
|
|
self.assertEqual(nysiis('Dougal'), 'DAGAL') |
542
|
|
|
self.assertEqual(nysiis('Doughill'), 'DAGAL') |
543
|
|
|
self.assertEqual(nysiis('Dougill'), 'DAGAL') |
544
|
|
|
self.assertEqual(nysiis('Dowgill'), 'DAGAL') |
545
|
|
|
self.assertEqual(nysiis('Dugall'), 'DAGAL') |
546
|
|
|
self.assertEqual(nysiis('Dugall'), 'DAGAL') |
547
|
|
|
self.assertEqual(nysiis('Glinde'), 'GLAND') |
548
|
|
|
self.assertEqual(nysiis('Plumridge', maxlength=20), 'PLANRADG') |
549
|
|
|
self.assertEqual(nysiis('Chinnick'), 'CANAC') |
550
|
|
|
self.assertEqual(nysiis('Chinnock'), 'CANAC') |
551
|
|
|
self.assertEqual(nysiis('Chinnock'), 'CANAC') |
552
|
|
|
self.assertEqual(nysiis('Chomicki'), 'CANAC') |
553
|
|
|
self.assertEqual(nysiis('Chomicz'), 'CANAC') |
554
|
|
|
self.assertEqual(nysiis('Schimek'), 'SANAC') |
555
|
|
|
self.assertEqual(nysiis('Shimuk'), 'SANAC') |
556
|
|
|
self.assertEqual(nysiis('Simak'), 'SANAC') |
557
|
|
|
self.assertEqual(nysiis('Simek'), 'SANAC') |
558
|
|
|
self.assertEqual(nysiis('Simic'), 'SANAC') |
559
|
|
|
self.assertEqual(nysiis('Sinnock'), 'SANAC') |
560
|
|
|
self.assertEqual(nysiis('Sinnocke'), 'SANAC') |
561
|
|
|
self.assertEqual(nysiis('Sunnex'), 'SANAX') |
562
|
|
|
self.assertEqual(nysiis('Sunnucks'), 'SANAC') |
563
|
|
|
self.assertEqual(nysiis('Sunock'), 'SANAC') |
564
|
|
|
self.assertEqual(nysiis('Webberley', maxlength=20), 'WABARLY') |
565
|
|
|
self.assertEqual(nysiis('Wibberley', maxlength=20), 'WABARLY') |
566
|
|
|
|
567
|
|
|
# etc. (for code coverage) |
568
|
|
|
self.assertEqual(nysiis('Alpharades'), 'ALFARA') |
569
|
|
|
self.assertEqual(nysiis('Aschenputtel'), 'ASANPA') |
570
|
|
|
self.assertEqual(nysiis('Beverly'), 'BAFARL') |
571
|
|
|
self.assertEqual(nysiis('Hardt'), 'HARD') |
572
|
|
|
self.assertEqual(nysiis('acknowledge'), 'ACNALA') |
573
|
|
|
self.assertEqual(nysiis('MacNeill'), 'MCNAL') |
574
|
|
|
self.assertEqual(nysiis('MacNeill'), nysiis('McNeill')) |
575
|
|
|
self.assertEqual(nysiis('Knight'), 'NAGT') |
576
|
|
|
self.assertEqual(nysiis('Knight'), nysiis('Night')) |
577
|
|
|
self.assertEqual(nysiis('Pfarr'), 'FAR') |
578
|
|
|
self.assertEqual(nysiis('Phair'), 'FAR') |
579
|
|
|
self.assertEqual(nysiis('Phair'), nysiis('Pfarr')) |
580
|
|
|
self.assertEqual(nysiis('Cherokee'), 'CARACY') |
581
|
|
|
self.assertEqual(nysiis('Iraq'), 'IRAG') |
582
|
|
|
|
583
|
|
|
# maxlength bounds tests |
584
|
|
|
self.assertEqual(nysiis('Niall', maxlength=float('inf')), 'NAL') |
585
|
|
|
self.assertEqual(nysiis('Niall', maxlength=None), 'NAL') |
586
|
|
|
self.assertEqual(nysiis('Niall', maxlength=0), 'NAL') |
587
|
|
|
|
588
|
|
|
def test_modified_nysiis(self): |
589
|
|
|
"""Test abydos.phonetic.nysiis (modified version).""" |
590
|
|
|
self.assertEqual(nysiis('', maxlength=float('inf'), modified=True), '') |
591
|
|
|
|
592
|
|
|
# https://naldc.nal.usda.gov/download/27833/PDF |
593
|
|
|
# Some of these were... wrong... and have been corrected |
594
|
|
|
self.assertEqual(nysiis('Daves', maxlength=8, modified=True), 'DAV') |
595
|
|
|
self.assertEqual(nysiis('Davies', maxlength=8, modified=True), 'DAVY') |
596
|
|
|
self.assertEqual(nysiis('Devies', maxlength=8, modified=True), 'DAFY') |
597
|
|
|
self.assertEqual(nysiis('Divish', maxlength=8, modified=True), 'DAVAS') |
598
|
|
|
self.assertEqual(nysiis('Dove', maxlength=8, modified=True), 'DAV') |
599
|
|
|
self.assertEqual(nysiis('Devese', maxlength=8, modified=True), 'DAFAS') |
600
|
|
|
self.assertEqual(nysiis('Devies', maxlength=8, modified=True), 'DAFY') |
601
|
|
|
self.assertEqual(nysiis('Devos', maxlength=8, modified=True), 'DAF') |
602
|
|
|
|
603
|
|
|
self.assertEqual(nysiis('Schmit', maxlength=8, modified=True), 'SNAT') |
604
|
|
|
self.assertEqual(nysiis('Schmitt', maxlength=8, modified=True), 'SNAT') |
605
|
|
|
self.assertEqual(nysiis('Schmitz', maxlength=8, modified=True), 'SNAT') |
606
|
|
|
self.assertEqual(nysiis('Schmoutz', maxlength=8, modified=True), |
607
|
|
|
'SNAT') |
608
|
|
|
self.assertEqual(nysiis('Schnitt', maxlength=8, modified=True), 'SNAT') |
609
|
|
|
self.assertEqual(nysiis('Smit', maxlength=8, modified=True), 'SNAT') |
610
|
|
|
self.assertEqual(nysiis('Smite', maxlength=8, modified=True), 'SNAT') |
611
|
|
|
self.assertEqual(nysiis('Smits', maxlength=8, modified=True), 'SNAT') |
612
|
|
|
self.assertEqual(nysiis('Smoot', maxlength=8, modified=True), 'SNAT') |
613
|
|
|
self.assertEqual(nysiis('Smuts', maxlength=8, modified=True), 'SNAT') |
614
|
|
|
self.assertEqual(nysiis('Sneath', maxlength=8, modified=True), 'SNAT') |
615
|
|
|
self.assertEqual(nysiis('Smyth', maxlength=8, modified=True), 'SNAT') |
616
|
|
|
self.assertEqual(nysiis('Smithy', maxlength=8, modified=True), 'SNATY') |
617
|
|
|
self.assertEqual(nysiis('Smithey', maxlength=8, modified=True), |
618
|
|
|
'SNATY') |
619
|
|
|
|
620
|
|
|
# http://www.dropby.com/NYSIISTextStrings.html |
621
|
|
|
# Some of these have been altered since the above uses a different set |
622
|
|
|
# of modifications. |
623
|
|
|
self.assertEqual(nysiis('Edwards', maxlength=8, modified=True), |
624
|
|
|
'EDWAD') |
625
|
|
|
self.assertEqual(nysiis('Perez', maxlength=8, modified=True), 'PAR') |
626
|
|
|
self.assertEqual(nysiis('Macintosh', maxlength=8, modified=True), |
627
|
|
|
'MCANTAS') |
628
|
|
|
self.assertEqual(nysiis('Phillipson', maxlength=8, modified=True), |
629
|
|
|
'FALAPSAN') |
630
|
|
|
self.assertEqual(nysiis('Haddix', maxlength=8, modified=True), 'HADAC') |
631
|
|
|
self.assertEqual(nysiis('Essex', maxlength=8, modified=True), 'ESAC') |
632
|
|
|
self.assertEqual(nysiis('Moye', maxlength=8, modified=True), 'MY') |
633
|
|
|
self.assertEqual(nysiis('McKee', maxlength=8, modified=True), 'MCY') |
634
|
|
|
self.assertEqual(nysiis('Mackie', maxlength=8, modified=True), 'MCY') |
635
|
|
|
self.assertEqual(nysiis('Heitschmidt', maxlength=8, modified=True), |
636
|
|
|
'HATSNAD') |
637
|
|
|
self.assertEqual(nysiis('Bart', maxlength=8, modified=True), 'BAD') |
638
|
|
|
self.assertEqual(nysiis('Hurd', maxlength=8, modified=True), 'HAD') |
639
|
|
|
self.assertEqual(nysiis('Hunt', maxlength=8, modified=True), 'HAN') |
640
|
|
|
self.assertEqual(nysiis('Westerlund', maxlength=8, modified=True), |
641
|
|
|
'WASTARLA') |
642
|
|
|
self.assertEqual(nysiis('Evers', maxlength=8, modified=True), 'EVAR') |
643
|
|
|
self.assertEqual(nysiis('Devito', maxlength=8, modified=True), 'DAFAT') |
644
|
|
|
self.assertEqual(nysiis('Rawson', maxlength=8, modified=True), 'RASAN') |
645
|
|
|
self.assertEqual(nysiis('Shoulders', maxlength=8, modified=True), |
646
|
|
|
'SALDAR') |
647
|
|
|
self.assertEqual(nysiis('Leighton', maxlength=8, modified=True), |
648
|
|
|
'LATAN') |
649
|
|
|
self.assertEqual(nysiis('Wooldridge', maxlength=8, modified=True), |
650
|
|
|
'WALDRAG') |
651
|
|
|
self.assertEqual(nysiis('Oliphant', maxlength=8, modified=True), |
652
|
|
|
'OLAFAN') |
653
|
|
|
self.assertEqual(nysiis('Hatchett', maxlength=8, modified=True), |
654
|
|
|
'HATCAT') |
655
|
|
|
self.assertEqual(nysiis('McKnight', maxlength=8, modified=True), |
656
|
|
|
'MCNAT') |
657
|
|
|
self.assertEqual(nysiis('Rickert', maxlength=8, modified=True), |
658
|
|
|
'RACAD') |
659
|
|
|
self.assertEqual(nysiis('Bowman', maxlength=8, modified=True), 'BANAN') |
660
|
|
|
self.assertEqual(nysiis('Vasquez', maxlength=8, modified=True), 'VASG') |
661
|
|
|
self.assertEqual(nysiis('Bashaw', maxlength=8, modified=True), 'BAS') |
662
|
|
|
self.assertEqual(nysiis('Schoenhoeft', maxlength=8, modified=True), |
663
|
|
|
'SANAFT') |
664
|
|
|
self.assertEqual(nysiis('Heywood', maxlength=8, modified=True), 'HAD') |
665
|
|
|
self.assertEqual(nysiis('Hayman', maxlength=8, modified=True), 'HANAN') |
666
|
|
|
self.assertEqual(nysiis('Seawright', maxlength=8, modified=True), |
667
|
|
|
'SARAT') |
668
|
|
|
self.assertEqual(nysiis('Kratzer', maxlength=8, modified=True), |
669
|
|
|
'CRATSAR') |
670
|
|
|
self.assertEqual(nysiis('Canaday', maxlength=8, modified=True), |
671
|
|
|
'CANADY') |
672
|
|
|
self.assertEqual(nysiis('Crepeau', maxlength=8, modified=True), 'CRAP') |
673
|
|
|
|
674
|
|
|
# Additional tests from @Yomguithereal's talisman |
675
|
|
|
# https://github.com/Yomguithereal/talisman/blob/master/test/phonetics/nysiis.js |
676
|
|
|
self.assertEqual(nysiis('Andrew', maxlength=8, modified=True), 'ANDR') |
677
|
|
|
self.assertEqual(nysiis('Robertson', maxlength=8, modified=True), |
678
|
|
|
'RABARTSA') |
679
|
|
|
self.assertEqual(nysiis('Nolan', maxlength=8, modified=True), 'NALAN') |
680
|
|
|
self.assertEqual(nysiis('Louis XVI', maxlength=8, modified=True), |
681
|
|
|
'LASXV') |
682
|
|
|
self.assertEqual(nysiis('Case', maxlength=8, modified=True), 'CAS') |
683
|
|
|
self.assertEqual(nysiis('Mclaughlin', maxlength=8, modified=True), |
684
|
|
|
'MCLAGLAN') |
685
|
|
|
self.assertEqual(nysiis('Awale', maxlength=8, modified=True), 'AL') |
686
|
|
|
self.assertEqual(nysiis('Aegir', maxlength=8, modified=True), 'AGAR') |
687
|
|
|
self.assertEqual(nysiis('Lundgren', maxlength=8, modified=True), |
688
|
|
|
'LANGRAN') |
689
|
|
|
self.assertEqual(nysiis('Philbert', maxlength=8, modified=True), |
690
|
|
|
'FALBAD') |
691
|
|
|
self.assertEqual(nysiis('Harry', maxlength=8, modified=True), 'HARY') |
692
|
|
|
self.assertEqual(nysiis('Mackenzie', maxlength=8, modified=True), |
693
|
|
|
'MCANSY') |
694
|
|
|
|
695
|
|
|
# maxlength bounds tests |
696
|
|
|
self.assertEqual(nysiis('Niall', maxlength=float('inf'), |
697
|
|
|
modified=True), 'NAL') |
698
|
|
|
self.assertEqual(nysiis('Niall', maxlength=None, modified=True), 'NAL') |
699
|
|
|
self.assertEqual(nysiis('Niall', maxlength=0, modified=True), 'NAL') |
700
|
|
|
|
701
|
|
|
|
702
|
|
|
class MraTestCases(unittest.TestCase): |
703
|
|
|
"""Test MRA functions. |
704
|
|
|
|
705
|
|
|
test cases for abydos.phonetic.mra |
706
|
|
|
""" |
707
|
|
|
|
708
|
|
|
def test_mra(self): |
709
|
|
|
"""Test abydos.phonetic.mra.""" |
710
|
|
|
self.assertEqual(mra(''), '') |
711
|
|
|
|
712
|
|
|
# https://en.wikipedia.org/wiki/Match_rating_approach |
713
|
|
|
self.assertEqual(mra('Byrne'), 'BYRN') |
714
|
|
|
self.assertEqual(mra('Boern'), 'BRN') |
715
|
|
|
self.assertEqual(mra('Smith'), 'SMTH') |
716
|
|
|
self.assertEqual(mra('Smyth'), 'SMYTH') |
717
|
|
|
self.assertEqual(mra('Catherine'), 'CTHRN') |
718
|
|
|
self.assertEqual(mra('Kathryn'), 'KTHRYN') |
719
|
|
|
|
720
|
|
|
|
721
|
|
|
class MetaphoneTestCases(unittest.TestCase): |
722
|
|
|
"""Test Metaphone functions. |
723
|
|
|
|
724
|
|
|
test cases for abydos.phonetic.metaphone |
725
|
|
|
""" |
726
|
|
|
|
727
|
|
|
def test_metaphone(self): |
728
|
|
|
"""Test abydos.phonetic.metaphone.""" |
729
|
|
|
self.assertEqual(metaphone(''), '') |
730
|
|
|
self.assertEqual(metaphone('...'), '') |
731
|
|
|
|
732
|
|
|
# http://ntz-develop.blogspot.com/2011/03/phonetic-algorithms.html |
733
|
|
|
self.assertEqual(metaphone('Fishpool', 4), 'FXPL') |
734
|
|
|
self.assertEqual(metaphone('Fishpoole', 4), 'FXPL') |
735
|
|
|
self.assertEqual(metaphone('Gellately', 4), 'JLTL') |
736
|
|
|
self.assertEqual(metaphone('Gelletly', 4), 'JLTL') |
737
|
|
|
self.assertEqual(metaphone('Lowers', 4), 'LWRS') |
738
|
|
|
self.assertEqual(metaphone('Lowerson', 4), 'LWRS') |
739
|
|
|
self.assertEqual(metaphone('Mallabar', 4), 'MLBR') |
740
|
|
|
self.assertEqual(metaphone('Melbert', 4), 'MLBR') |
741
|
|
|
self.assertEqual(metaphone('Melbourn', 4), 'MLBR') |
742
|
|
|
self.assertEqual(metaphone('Melbourne', 4), 'MLBR') |
743
|
|
|
self.assertEqual(metaphone('Melburg', 4), 'MLBR') |
744
|
|
|
self.assertEqual(metaphone('Melbury', 4), 'MLBR') |
745
|
|
|
self.assertEqual(metaphone('Milberry', 4), 'MLBR') |
746
|
|
|
self.assertEqual(metaphone('Milborn', 4), 'MLBR') |
747
|
|
|
self.assertEqual(metaphone('Milbourn', 4), 'MLBR') |
748
|
|
|
self.assertEqual(metaphone('Milbourne', 4), 'MLBR') |
749
|
|
|
self.assertEqual(metaphone('Milburn', 4), 'MLBR') |
750
|
|
|
self.assertEqual(metaphone('Milburne', 4), 'MLBR') |
751
|
|
|
self.assertEqual(metaphone('Millberg', 4), 'MLBR') |
752
|
|
|
self.assertEqual(metaphone('Mulberry', 4), 'MLBR') |
753
|
|
|
self.assertEqual(metaphone('Mulbery', 4), 'MLBR') |
754
|
|
|
self.assertEqual(metaphone('Mulbry', 4), 'MLBR') |
755
|
|
|
self.assertEqual(metaphone('Saipy', 4), 'SP') |
756
|
|
|
self.assertEqual(metaphone('Sapey', 4), 'SP') |
757
|
|
|
self.assertEqual(metaphone('Sapp', 4), 'SP') |
758
|
|
|
self.assertEqual(metaphone('Sappy', 4), 'SP') |
759
|
|
|
self.assertEqual(metaphone('Sepey', 4), 'SP') |
760
|
|
|
self.assertEqual(metaphone('Seppey', 4), 'SP') |
761
|
|
|
self.assertEqual(metaphone('Sopp', 4), 'SP') |
762
|
|
|
self.assertEqual(metaphone('Zoppie', 4), 'SP') |
763
|
|
|
self.assertEqual(metaphone('Zoppo', 4), 'SP') |
764
|
|
|
self.assertEqual(metaphone('Zupa', 4), 'SP') |
765
|
|
|
self.assertEqual(metaphone('Zupo', 4), 'SP') |
766
|
|
|
self.assertEqual(metaphone('Zuppa', 4), 'SP') |
767
|
|
|
|
768
|
|
|
# assorted tests to complete code coverage |
769
|
|
|
self.assertEqual(metaphone('Xavier'), 'SFR') |
770
|
|
|
self.assertEqual(metaphone('Acacia'), 'AKX') |
771
|
|
|
self.assertEqual(metaphone('Schuler'), 'SKLR') |
772
|
|
|
self.assertEqual(metaphone('Sign'), 'SN') |
773
|
|
|
self.assertEqual(metaphone('Signed'), 'SNT') |
774
|
|
|
self.assertEqual(metaphone('Horatio'), 'HRX') |
775
|
|
|
self.assertEqual(metaphone('Ignatio'), 'IKNX') |
776
|
|
|
self.assertEqual(metaphone('Lucretia'), 'LKRX') |
777
|
|
|
|
778
|
|
|
# assorted tests to complete branch coverage |
779
|
|
|
self.assertEqual(metaphone('Lamb'), 'LM') |
780
|
|
|
self.assertEqual(metaphone('science'), 'SNS') |
781
|
|
|
|
782
|
|
|
# maxlength bounds tests |
783
|
|
|
self.assertEqual(metaphone('Niall', maxlength=float('inf')), 'NL') |
784
|
|
|
self.assertEqual(metaphone('Niall', maxlength=None), 'NL') |
785
|
|
|
self.assertEqual(metaphone('Niall', maxlength=0), 'NL') |
786
|
|
|
|
787
|
|
|
|
788
|
|
|
class DoubleMetaphoneTestCases(unittest.TestCase): |
789
|
|
|
"""Test Double Metaphone functions. |
790
|
|
|
|
791
|
|
|
test cases for abydos.phonetic.double_metaphone |
792
|
|
|
|
793
|
|
|
These test cases are copied from two sources: |
794
|
|
|
https://github.com/oubiwann/metaphone/blob/master/metaphone/tests/test_metaphone.py |
795
|
|
|
and |
796
|
|
|
http://swoodbridge.com/DoubleMetaPhone/surnames.txt |
797
|
|
|
|
798
|
|
|
Most test cases other than those in test_surnames and test_surnames4 come |
799
|
|
|
from the former and are under the following license: |
800
|
|
|
|
801
|
|
|
Copyright (c) 2007 Andrew Collins, Chris Leong |
802
|
|
|
Copyright (c) 2009 Matthew Somerville |
803
|
|
|
Copyright (c) 2010 Maximillian Dornseif, Richard Barran |
804
|
|
|
Copyright (c) 2012 Duncan McGreggor |
805
|
|
|
All rights reserved. |
806
|
|
|
|
807
|
|
|
* Redistribution and use in source and binary forms, with or without |
808
|
|
|
modification, are permitted provided that the following conditions |
809
|
|
|
are met: |
810
|
|
|
|
811
|
|
|
* Redistributions of source code must retain the above copyright |
812
|
|
|
notice, this list of conditions and the following disclaimer. |
813
|
|
|
|
814
|
|
|
* Redistributions in binary form must reproduce the above copyright |
815
|
|
|
notice, this list of conditions and the following disclaimer in |
816
|
|
|
the documentation and/or other materials provided with the |
817
|
|
|
distribution. |
818
|
|
|
|
819
|
|
|
Neither the name "Metaphone" nor the names of its contributors may be |
820
|
|
|
used to endorse or promote products derived from this software without |
821
|
|
|
specific prior written permission. |
822
|
|
|
|
823
|
|
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
824
|
|
|
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
825
|
|
|
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
826
|
|
|
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |
827
|
|
|
HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
828
|
|
|
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
829
|
|
|
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
830
|
|
|
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
831
|
|
|
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
832
|
|
|
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
833
|
|
|
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
834
|
|
|
|
835
|
|
|
test_surname and test_surname4 come from a set of tests for a PHP port |
836
|
|
|
of Double Metaphone that is Copyright 2001, Stephen Woodbridge and |
837
|
|
|
identified as 'freely distributable' |
838
|
|
|
""" |
839
|
|
|
|
840
|
|
|
def test_double_metaphone(self): |
841
|
|
|
"""Test abydos.phonetic.double_metaphone.""" |
842
|
|
|
# base case |
843
|
|
|
self.assertEqual(double_metaphone(''), ('', '')) |
844
|
|
|
|
845
|
|
|
# single result |
846
|
|
|
self.assertEqual(double_metaphone('aubrey'), ('APR', '')) |
847
|
|
|
|
848
|
|
|
# double result |
849
|
|
|
self.assertEqual(double_metaphone('richard'), ('RXRT', 'RKRT')) |
850
|
|
|
|
851
|
|
|
# general word list |
852
|
|
|
self.assertEqual(double_metaphone('Jose'), ('HS', '')) |
853
|
|
|
self.assertEqual(double_metaphone('cambrillo'), ('KMPRL', 'KMPR')) |
854
|
|
|
self.assertEqual(double_metaphone('otto'), ('AT', '')) |
855
|
|
|
self.assertEqual(double_metaphone('aubrey'), ('APR', '')) |
856
|
|
|
self.assertEqual(double_metaphone('maurice'), ('MRS', '')) |
857
|
|
|
self.assertEqual(double_metaphone('auto'), ('AT', '')) |
858
|
|
|
self.assertEqual(double_metaphone('maisey'), ('MS', '')) |
859
|
|
|
self.assertEqual(double_metaphone('catherine'), ('K0RN', 'KTRN')) |
860
|
|
|
self.assertEqual(double_metaphone('geoff'), ('JF', 'KF')) |
861
|
|
|
self.assertEqual(double_metaphone('Chile'), ('XL', '')) |
862
|
|
|
self.assertEqual(double_metaphone('katherine'), ('K0RN', 'KTRN')) |
863
|
|
|
self.assertEqual(double_metaphone('steven'), ('STFN', '')) |
864
|
|
|
self.assertEqual(double_metaphone('zhang'), ('JNK', '')) |
865
|
|
|
self.assertEqual(double_metaphone('bob'), ('PP', '')) |
866
|
|
|
self.assertEqual(double_metaphone('ray'), ('R', '')) |
867
|
|
|
self.assertEqual(double_metaphone('Tux'), ('TKS', '')) |
868
|
|
|
self.assertEqual(double_metaphone('bryan'), ('PRN', '')) |
869
|
|
|
self.assertEqual(double_metaphone('bryce'), ('PRS', '')) |
870
|
|
|
self.assertEqual(double_metaphone('Rapelje'), ('RPL', '')) |
871
|
|
|
self.assertEqual(double_metaphone('richard'), ('RXRT', 'RKRT')) |
872
|
|
|
self.assertEqual(double_metaphone('solilijs'), ('SLLS', '')) |
873
|
|
|
self.assertEqual(double_metaphone('Dallas'), ('TLS', '')) |
874
|
|
|
self.assertEqual(double_metaphone('Schwein'), ('XN', 'XFN')) |
875
|
|
|
self.assertEqual(double_metaphone('dave'), ('TF', '')) |
876
|
|
|
self.assertEqual(double_metaphone('eric'), ('ARK', '')) |
877
|
|
|
self.assertEqual(double_metaphone('Parachute'), ('PRKT', '')) |
878
|
|
|
self.assertEqual(double_metaphone('brian'), ('PRN', '')) |
879
|
|
|
self.assertEqual(double_metaphone('randy'), ('RNT', '')) |
880
|
|
|
self.assertEqual(double_metaphone('Through'), ('0R', 'TR')) |
881
|
|
|
self.assertEqual(double_metaphone('Nowhere'), ('NR', '')) |
882
|
|
|
self.assertEqual(double_metaphone('heidi'), ('HT', '')) |
883
|
|
|
self.assertEqual(double_metaphone('Arnow'), ('ARN', 'ARNF')) |
884
|
|
|
self.assertEqual(double_metaphone('Thumbail'), ('0MPL', 'TMPL')) |
885
|
|
|
|
886
|
|
|
# homophones |
887
|
|
|
self.assertEqual(double_metaphone('tolled'), double_metaphone('told')) |
888
|
|
|
self.assertEqual(double_metaphone('katherine'), |
889
|
|
|
double_metaphone('catherine')) |
890
|
|
|
self.assertEqual(double_metaphone('brian'), double_metaphone('bryan')) |
891
|
|
|
|
892
|
|
|
# similar names |
893
|
|
|
self.assertEqual(double_metaphone('Bartoš'), ('PRT', '')) |
894
|
|
|
self.assertEqual(double_metaphone('Bartosz'), ('PRTS', 'PRTX')) |
895
|
|
|
self.assertEqual(double_metaphone('Bartosch'), ('PRTX', '')) |
896
|
|
|
self.assertEqual(double_metaphone('Bartos'), ('PRTS', '')) |
897
|
|
|
self.assertEqual(list(set(double_metaphone('Jablonski')) |
898
|
|
|
.intersection(double_metaphone('Yablonsky'))), |
899
|
|
|
['APLNSK']) |
900
|
|
|
self.assertEqual(list(set(double_metaphone('Smith')) |
901
|
|
|
.intersection(double_metaphone('Schmidt'))), |
902
|
|
|
['XMT']) |
903
|
|
|
|
904
|
|
|
# non-English Unicode |
905
|
|
|
self.assertEqual(double_metaphone('andestādītu'), ('ANTSTTT', '')) |
906
|
|
|
|
907
|
|
|
# c-cedilla |
908
|
|
|
self.assertEqual(double_metaphone('français'), ('FRNS', 'FRNSS')) |
909
|
|
|
self.assertEqual(double_metaphone('garçon'), ('KRSN', '')) |
910
|
|
|
self.assertEqual(double_metaphone('leçon'), ('LSN', '')) |
911
|
|
|
|
912
|
|
|
# German words |
913
|
|
|
self.assertEqual(double_metaphone('ach'), ('AK', '')) |
914
|
|
|
self.assertEqual(double_metaphone('bacher'), ('PKR', '')) |
915
|
|
|
self.assertEqual(double_metaphone('macher'), ('MKR', '')) |
916
|
|
|
|
917
|
|
|
# Italian words |
918
|
|
|
self.assertEqual(double_metaphone('bacci'), ('PX', '')) |
919
|
|
|
self.assertEqual(double_metaphone('bertucci'), ('PRTX', '')) |
920
|
|
|
self.assertEqual(double_metaphone('bellocchio'), ('PLX', '')) |
921
|
|
|
self.assertEqual(double_metaphone('bacchus'), ('PKS', '')) |
922
|
|
|
self.assertEqual(double_metaphone('focaccia'), ('FKX', '')) |
923
|
|
|
self.assertEqual(double_metaphone('chianti'), ('KNT', '')) |
924
|
|
|
self.assertEqual(double_metaphone('tagliaro'), ('TKLR', 'TLR')) |
925
|
|
|
self.assertEqual(double_metaphone('biaggi'), ('PJ', 'PK')) |
926
|
|
|
|
927
|
|
|
# Spanish words |
928
|
|
|
self.assertEqual(double_metaphone('bajador'), ('PJTR', 'PHTR')) |
929
|
|
|
self.assertEqual(double_metaphone('cabrillo'), ('KPRL', 'KPR')) |
930
|
|
|
self.assertEqual(double_metaphone('gallegos'), ('KLKS', 'KKS')) |
931
|
|
|
self.assertEqual(double_metaphone('San Jacinto'), ('SNHSNT', '')) |
932
|
|
|
|
933
|
|
|
# French words |
934
|
|
|
self.assertEqual(double_metaphone('rogier'), ('RJ', 'RJR')) |
935
|
|
|
self.assertEqual(double_metaphone('breaux'), ('PR', '')) |
936
|
|
|
|
937
|
|
|
# Slavic words |
938
|
|
|
self.assertEqual(double_metaphone('Wewski'), ('ASK', 'FFSK')) |
939
|
|
|
|
940
|
|
|
# Chinese words |
941
|
|
|
self.assertEqual(double_metaphone('zhao'), ('J', '')) |
942
|
|
|
|
943
|
|
|
# Dutch-origin words |
944
|
|
|
self.assertEqual(double_metaphone('school'), ('SKL', '')) |
945
|
|
|
self.assertEqual(double_metaphone('schooner'), ('SKNR', '')) |
946
|
|
|
self.assertEqual(double_metaphone('schermerhorn'), |
947
|
|
|
('XRMRRN', 'SKRMRRN')) |
948
|
|
|
self.assertEqual(double_metaphone('schenker'), ('XNKR', 'SKNKR')) |
949
|
|
|
|
950
|
|
|
# <ch> words |
951
|
|
|
self.assertEqual(double_metaphone('Charac'), ('KRK', '')) |
952
|
|
|
self.assertEqual(double_metaphone('Charis'), ('KRS', '')) |
953
|
|
|
self.assertEqual(double_metaphone('chord'), ('KRT', '')) |
954
|
|
|
self.assertEqual(double_metaphone('Chym'), ('KM', '')) |
955
|
|
|
self.assertEqual(double_metaphone('Chia'), ('K', '')) |
956
|
|
|
self.assertEqual(double_metaphone('chem'), ('KM', '')) |
957
|
|
|
self.assertEqual(double_metaphone('chore'), ('XR', '')) |
958
|
|
|
self.assertEqual(double_metaphone('orchestra'), ('ARKSTR', '')) |
959
|
|
|
self.assertEqual(double_metaphone('architect'), ('ARKTKT', '')) |
960
|
|
|
self.assertEqual(double_metaphone('orchid'), ('ARKT', '')) |
961
|
|
|
|
962
|
|
|
# <cc> words |
963
|
|
|
self.assertEqual(double_metaphone('accident'), ('AKSTNT', '')) |
964
|
|
|
self.assertEqual(double_metaphone('accede'), ('AKST', '')) |
965
|
|
|
self.assertEqual(double_metaphone('succeed'), ('SKST', '')) |
966
|
|
|
|
967
|
|
|
# <mc> words |
968
|
|
|
self.assertEqual(double_metaphone('mac caffrey'), ('MKFR', '')) |
969
|
|
|
self.assertEqual(double_metaphone('mac gregor'), ('MKRKR', '')) |
970
|
|
|
self.assertEqual(double_metaphone('mc crae'), ('MKR', '')) |
971
|
|
|
self.assertEqual(double_metaphone('mcclain'), ('MKLN', '')) |
972
|
|
|
|
973
|
|
|
# <gh> words |
974
|
|
|
self.assertEqual(double_metaphone('laugh'), ('LF', '')) |
975
|
|
|
self.assertEqual(double_metaphone('cough'), ('KF', '')) |
976
|
|
|
self.assertEqual(double_metaphone('rough'), ('RF', '')) |
977
|
|
|
|
978
|
|
|
# <g__> words |
979
|
|
|
self.assertEqual(double_metaphone('gya'), ('K', 'J')) |
980
|
|
|
self.assertEqual(double_metaphone('ges'), ('KS', 'JS')) |
981
|
|
|
self.assertEqual(double_metaphone('gep'), ('KP', 'JP')) |
982
|
|
|
self.assertEqual(double_metaphone('geb'), ('KP', 'JP')) |
983
|
|
|
self.assertEqual(double_metaphone('gel'), ('KL', 'JL')) |
984
|
|
|
self.assertEqual(double_metaphone('gey'), ('K', 'J')) |
985
|
|
|
self.assertEqual(double_metaphone('gib'), ('KP', 'JP')) |
986
|
|
|
self.assertEqual(double_metaphone('gil'), ('KL', 'JL')) |
987
|
|
|
self.assertEqual(double_metaphone('gin'), ('KN', 'JN')) |
988
|
|
|
self.assertEqual(double_metaphone('gie'), ('K', 'J')) |
989
|
|
|
self.assertEqual(double_metaphone('gei'), ('K', 'J')) |
990
|
|
|
self.assertEqual(double_metaphone('ger'), ('KR', 'JR')) |
991
|
|
|
self.assertEqual(double_metaphone('danger'), ('TNJR', 'TNKR')) |
992
|
|
|
self.assertEqual(double_metaphone('manager'), ('MNKR', 'MNJR')) |
993
|
|
|
self.assertEqual(double_metaphone('dowager'), ('TKR', 'TJR')) |
994
|
|
|
|
995
|
|
|
# <pb> words |
996
|
|
|
self.assertEqual(double_metaphone('Campbell'), ('KMPL', '')) |
997
|
|
|
self.assertEqual(double_metaphone('raspberry'), ('RSPR', '')) |
998
|
|
|
|
999
|
|
|
# <th> words |
1000
|
|
|
self.assertEqual(double_metaphone('Thomas'), ('TMS', '')) |
1001
|
|
|
self.assertEqual(double_metaphone('Thames'), ('TMS', '')) |
1002
|
|
|
|
1003
|
|
|
# etc. (for code coverage) |
1004
|
|
|
self.assertEqual(double_metaphone('Xavier'), ('SF', 'SFR')) |
1005
|
|
|
self.assertEqual(double_metaphone('Michael'), ('MKL', 'MXL')) |
1006
|
|
|
self.assertEqual(double_metaphone('Ignacio'), ('AKNS', 'ANX')) |
1007
|
|
|
self.assertEqual(double_metaphone('Ajjam'), ('AJM', '')) |
1008
|
|
|
self.assertEqual(double_metaphone('Akkad'), ('AKT', '')) |
1009
|
|
|
self.assertEqual(double_metaphone('Año'), ('AN', '')) |
1010
|
|
|
self.assertEqual(double_metaphone('Año'), double_metaphone('Anno')) |
1011
|
|
|
self.assertEqual(double_metaphone('Caucasian'), ('KKSN', 'KKXN')) |
1012
|
|
|
self.assertEqual(double_metaphone('Kaukasian'), ('KKSN', '')) |
1013
|
|
|
self.assertEqual(double_metaphone('Zaqqum'), ('SKM', '')) |
1014
|
|
|
self.assertEqual(double_metaphone('stevven'), ('STFN', '')) |
1015
|
|
|
self.assertEqual(double_metaphone('Tuxx'), ('TKS', '')) |
1016
|
|
|
self.assertEqual(double_metaphone('Ghiradelli'), ('JRTL', '')) |
1017
|
|
|
self.assertEqual(double_metaphone('ghoul'), ('KL', '')) |
1018
|
|
|
self.assertEqual(double_metaphone('hej'), ('HJ', 'H')) |
1019
|
|
|
|
1020
|
|
|
# maxlength bounds tests |
1021
|
|
|
self.assertEqual(double_metaphone('Niall', maxlength=float('inf')), |
1022
|
|
|
('NL', '')) |
1023
|
|
|
self.assertEqual(double_metaphone('Niall', maxlength=None), ('NL', '')) |
1024
|
|
|
self.assertEqual(double_metaphone('Niall', maxlength=0), ('NL', '')) |
1025
|
|
|
|
1026
|
|
|
def test_double_metaphone_surnames(self): |
1027
|
|
|
"""Test abydos.phonetic.double_metaphone (surname data).""" |
1028
|
|
|
self.assertEqual(double_metaphone(''), ('', '')) |
1029
|
|
|
self.assertEqual(double_metaphone('ALLERTON'), ('ALRTN', '')) |
1030
|
|
|
self.assertEqual(double_metaphone('Acton'), ('AKTN', '')) |
1031
|
|
|
self.assertEqual(double_metaphone('Adams'), ('ATMS', '')) |
1032
|
|
|
self.assertEqual(double_metaphone('Aggar'), ('AKR', '')) |
1033
|
|
|
self.assertEqual(double_metaphone('Ahl'), ('AL', '')) |
1034
|
|
|
self.assertEqual(double_metaphone('Aiken'), ('AKN', '')) |
1035
|
|
|
self.assertEqual(double_metaphone('Alan'), ('ALN', '')) |
1036
|
|
|
self.assertEqual(double_metaphone('Alcock'), ('ALKK', '')) |
1037
|
|
|
self.assertEqual(double_metaphone('Alden'), ('ALTN', '')) |
1038
|
|
|
self.assertEqual(double_metaphone('Aldham'), ('ALTM', '')) |
1039
|
|
|
self.assertEqual(double_metaphone('Allen'), ('ALN', '')) |
1040
|
|
|
self.assertEqual(double_metaphone('Allerton'), ('ALRTN', '')) |
1041
|
|
|
self.assertEqual(double_metaphone('Alsop'), ('ALSP', '')) |
1042
|
|
|
self.assertEqual(double_metaphone('Alwein'), ('ALN', '')) |
1043
|
|
|
self.assertEqual(double_metaphone('Ambler'), ('AMPLR', '')) |
1044
|
|
|
self.assertEqual(double_metaphone('Andevill'), ('ANTFL', '')) |
1045
|
|
|
self.assertEqual(double_metaphone('Andrews'), ('ANTRS', '')) |
1046
|
|
|
self.assertEqual(double_metaphone('Andreyco'), ('ANTRK', '')) |
1047
|
|
|
self.assertEqual(double_metaphone('Andriesse'), ('ANTRS', '')) |
1048
|
|
|
self.assertEqual(double_metaphone('Angier'), ('ANJ', 'ANJR')) |
1049
|
|
|
self.assertEqual(double_metaphone('Annabel'), ('ANPL', '')) |
1050
|
|
|
self.assertEqual(double_metaphone('Anne'), ('AN', '')) |
1051
|
|
|
self.assertEqual(double_metaphone('Anstye'), ('ANST', '')) |
1052
|
|
|
self.assertEqual(double_metaphone('Appling'), ('APLNK', '')) |
1053
|
|
|
self.assertEqual(double_metaphone('Apuke'), ('APK', '')) |
1054
|
|
|
self.assertEqual(double_metaphone('Arnold'), ('ARNLT', '')) |
1055
|
|
|
self.assertEqual(double_metaphone('Ashby'), ('AXP', '')) |
1056
|
|
|
self.assertEqual(double_metaphone('Astwood'), ('ASTT', '')) |
1057
|
|
|
self.assertEqual(double_metaphone('Atkinson'), ('ATKNSN', '')) |
1058
|
|
|
self.assertEqual(double_metaphone('Audley'), ('ATL', '')) |
1059
|
|
|
self.assertEqual(double_metaphone('Austin'), ('ASTN', '')) |
1060
|
|
|
self.assertEqual(double_metaphone('Avenal'), ('AFNL', '')) |
1061
|
|
|
self.assertEqual(double_metaphone('Ayer'), ('AR', '')) |
1062
|
|
|
self.assertEqual(double_metaphone('Ayot'), ('AT', '')) |
1063
|
|
|
self.assertEqual(double_metaphone('Babbitt'), ('PPT', '')) |
1064
|
|
|
self.assertEqual(double_metaphone('Bachelor'), ('PXLR', 'PKLR')) |
1065
|
|
|
self.assertEqual(double_metaphone('Bachelour'), ('PXLR', 'PKLR')) |
1066
|
|
|
self.assertEqual(double_metaphone('Bailey'), ('PL', '')) |
1067
|
|
|
self.assertEqual(double_metaphone('Baivel'), ('PFL', '')) |
1068
|
|
|
self.assertEqual(double_metaphone('Baker'), ('PKR', '')) |
1069
|
|
|
self.assertEqual(double_metaphone('Baldwin'), ('PLTN', '')) |
1070
|
|
|
self.assertEqual(double_metaphone('Balsley'), ('PLSL', '')) |
1071
|
|
|
self.assertEqual(double_metaphone('Barber'), ('PRPR', '')) |
1072
|
|
|
self.assertEqual(double_metaphone('Barker'), ('PRKR', '')) |
1073
|
|
|
self.assertEqual(double_metaphone('Barlow'), ('PRL', 'PRLF')) |
1074
|
|
|
self.assertEqual(double_metaphone('Barnard'), ('PRNRT', '')) |
1075
|
|
|
self.assertEqual(double_metaphone('Barnes'), ('PRNS', '')) |
1076
|
|
|
self.assertEqual(double_metaphone('Barnsley'), ('PRNSL', '')) |
1077
|
|
|
self.assertEqual(double_metaphone('Barouxis'), ('PRKSS', '')) |
1078
|
|
|
self.assertEqual(double_metaphone('Bartlet'), ('PRTLT', '')) |
1079
|
|
|
self.assertEqual(double_metaphone('Basley'), ('PSL', '')) |
1080
|
|
|
self.assertEqual(double_metaphone('Basset'), ('PST', '')) |
1081
|
|
|
self.assertEqual(double_metaphone('Bassett'), ('PST', '')) |
1082
|
|
|
self.assertEqual(double_metaphone('Batchlor'), ('PXLR', '')) |
1083
|
|
|
self.assertEqual(double_metaphone('Bates'), ('PTS', '')) |
1084
|
|
|
self.assertEqual(double_metaphone('Batson'), ('PTSN', '')) |
1085
|
|
|
self.assertEqual(double_metaphone('Bayes'), ('PS', '')) |
1086
|
|
|
self.assertEqual(double_metaphone('Bayley'), ('PL', '')) |
1087
|
|
|
self.assertEqual(double_metaphone('Beale'), ('PL', '')) |
1088
|
|
|
self.assertEqual(double_metaphone('Beauchamp'), ('PXMP', 'PKMP')) |
1089
|
|
|
self.assertEqual(double_metaphone('Beauclerc'), ('PKLRK', '')) |
1090
|
|
|
self.assertEqual(double_metaphone('Beech'), ('PK', '')) |
1091
|
|
|
self.assertEqual(double_metaphone('Beers'), ('PRS', '')) |
1092
|
|
|
self.assertEqual(double_metaphone('Beke'), ('PK', '')) |
1093
|
|
|
self.assertEqual(double_metaphone('Belcher'), ('PLXR', 'PLKR')) |
1094
|
|
|
self.assertEqual(double_metaphone('Benjamin'), ('PNJMN', '')) |
1095
|
|
|
self.assertEqual(double_metaphone('Benningham'), ('PNNKM', '')) |
1096
|
|
|
self.assertEqual(double_metaphone('Bereford'), ('PRFRT', '')) |
1097
|
|
|
self.assertEqual(double_metaphone('Bergen'), ('PRJN', 'PRKN')) |
1098
|
|
|
self.assertEqual(double_metaphone('Berkeley'), ('PRKL', '')) |
1099
|
|
|
self.assertEqual(double_metaphone('Berry'), ('PR', '')) |
1100
|
|
|
self.assertEqual(double_metaphone('Besse'), ('PS', '')) |
1101
|
|
|
self.assertEqual(double_metaphone('Bessey'), ('PS', '')) |
1102
|
|
|
self.assertEqual(double_metaphone('Bessiles'), ('PSLS', '')) |
1103
|
|
|
self.assertEqual(double_metaphone('Bigelow'), ('PJL', 'PKLF')) |
1104
|
|
|
self.assertEqual(double_metaphone('Bigg'), ('PK', '')) |
1105
|
|
|
self.assertEqual(double_metaphone('Bigod'), ('PKT', '')) |
1106
|
|
|
self.assertEqual(double_metaphone('Billings'), ('PLNKS', '')) |
1107
|
|
|
self.assertEqual(double_metaphone('Bimper'), ('PMPR', '')) |
1108
|
|
|
self.assertEqual(double_metaphone('Binker'), ('PNKR', '')) |
1109
|
|
|
self.assertEqual(double_metaphone('Birdsill'), ('PRTSL', '')) |
1110
|
|
|
self.assertEqual(double_metaphone('Bishop'), ('PXP', '')) |
1111
|
|
|
self.assertEqual(double_metaphone('Black'), ('PLK', '')) |
1112
|
|
|
self.assertEqual(double_metaphone('Blagge'), ('PLK', '')) |
1113
|
|
|
self.assertEqual(double_metaphone('Blake'), ('PLK', '')) |
1114
|
|
|
self.assertEqual(double_metaphone('Blanck'), ('PLNK', '')) |
1115
|
|
|
self.assertEqual(double_metaphone('Bledsoe'), ('PLTS', '')) |
1116
|
|
|
self.assertEqual(double_metaphone('Blennerhasset'), ('PLNRST', '')) |
1117
|
|
|
self.assertEqual(double_metaphone('Blessing'), ('PLSNK', '')) |
1118
|
|
|
self.assertEqual(double_metaphone('Blewett'), ('PLT', '')) |
1119
|
|
|
self.assertEqual(double_metaphone('Bloctgoed'), ('PLKTKT', '')) |
1120
|
|
|
self.assertEqual(double_metaphone('Bloetgoet'), ('PLTKT', '')) |
1121
|
|
|
self.assertEqual(double_metaphone('Bloodgood'), ('PLTKT', '')) |
1122
|
|
|
self.assertEqual(double_metaphone('Blossom'), ('PLSM', '')) |
1123
|
|
|
self.assertEqual(double_metaphone('Blount'), ('PLNT', '')) |
1124
|
|
|
self.assertEqual(double_metaphone('Bodine'), ('PTN', '')) |
1125
|
|
|
self.assertEqual(double_metaphone('Bodman'), ('PTMN', '')) |
1126
|
|
|
self.assertEqual(double_metaphone('BonCoeur'), ('PNKR', '')) |
1127
|
|
|
self.assertEqual(double_metaphone('Bond'), ('PNT', '')) |
1128
|
|
|
self.assertEqual(double_metaphone('Boscawen'), ('PSKN', '')) |
1129
|
|
|
self.assertEqual(double_metaphone('Bosworth'), ('PSR0', 'PSRT')) |
1130
|
|
|
self.assertEqual(double_metaphone('Bouchier'), ('PX', 'PKR')) |
1131
|
|
|
self.assertEqual(double_metaphone('Bowne'), ('PN', '')) |
1132
|
|
|
self.assertEqual(double_metaphone('Bradbury'), ('PRTPR', '')) |
1133
|
|
|
self.assertEqual(double_metaphone('Bradder'), ('PRTR', '')) |
1134
|
|
|
self.assertEqual(double_metaphone('Bradford'), ('PRTFRT', '')) |
1135
|
|
|
self.assertEqual(double_metaphone('Bradstreet'), ('PRTSTRT', '')) |
1136
|
|
|
self.assertEqual(double_metaphone('Braham'), ('PRHM', '')) |
1137
|
|
|
self.assertEqual(double_metaphone('Brailsford'), ('PRLSFRT', '')) |
1138
|
|
|
self.assertEqual(double_metaphone('Brainard'), ('PRNRT', '')) |
1139
|
|
|
self.assertEqual(double_metaphone('Brandish'), ('PRNTX', '')) |
1140
|
|
|
self.assertEqual(double_metaphone('Braun'), ('PRN', '')) |
1141
|
|
|
self.assertEqual(double_metaphone('Brecc'), ('PRK', '')) |
1142
|
|
|
self.assertEqual(double_metaphone('Brent'), ('PRNT', '')) |
1143
|
|
|
self.assertEqual(double_metaphone('Brenton'), ('PRNTN', '')) |
1144
|
|
|
self.assertEqual(double_metaphone('Briggs'), ('PRKS', '')) |
1145
|
|
|
self.assertEqual(double_metaphone('Brigham'), ('PRM', '')) |
1146
|
|
|
self.assertEqual(double_metaphone('Brobst'), ('PRPST', '')) |
1147
|
|
|
self.assertEqual(double_metaphone('Brome'), ('PRM', '')) |
1148
|
|
|
self.assertEqual(double_metaphone('Bronson'), ('PRNSN', '')) |
1149
|
|
|
self.assertEqual(double_metaphone('Brooks'), ('PRKS', '')) |
1150
|
|
|
self.assertEqual(double_metaphone('Brouillard'), ('PRLRT', '')) |
1151
|
|
|
self.assertEqual(double_metaphone('Brown'), ('PRN', '')) |
1152
|
|
|
self.assertEqual(double_metaphone('Browne'), ('PRN', '')) |
1153
|
|
|
self.assertEqual(double_metaphone('Brownell'), ('PRNL', '')) |
1154
|
|
|
self.assertEqual(double_metaphone('Bruley'), ('PRL', '')) |
1155
|
|
|
self.assertEqual(double_metaphone('Bryant'), ('PRNT', '')) |
1156
|
|
|
self.assertEqual(double_metaphone('Brzozowski'), |
1157
|
|
|
('PRSSSK', 'PRTSTSFSK')) |
1158
|
|
|
self.assertEqual(double_metaphone('Buide'), ('PT', '')) |
1159
|
|
|
self.assertEqual(double_metaphone('Bulmer'), ('PLMR', '')) |
1160
|
|
|
self.assertEqual(double_metaphone('Bunker'), ('PNKR', '')) |
1161
|
|
|
self.assertEqual(double_metaphone('Burden'), ('PRTN', '')) |
1162
|
|
|
self.assertEqual(double_metaphone('Burge'), ('PRJ', 'PRK')) |
1163
|
|
|
self.assertEqual(double_metaphone('Burgoyne'), ('PRKN', '')) |
1164
|
|
|
self.assertEqual(double_metaphone('Burke'), ('PRK', '')) |
1165
|
|
|
self.assertEqual(double_metaphone('Burnett'), ('PRNT', '')) |
1166
|
|
|
self.assertEqual(double_metaphone('Burpee'), ('PRP', '')) |
1167
|
|
|
self.assertEqual(double_metaphone('Bursley'), ('PRSL', '')) |
1168
|
|
|
self.assertEqual(double_metaphone('Burton'), ('PRTN', '')) |
1169
|
|
|
self.assertEqual(double_metaphone('Bushnell'), ('PXNL', '')) |
1170
|
|
|
self.assertEqual(double_metaphone('Buss'), ('PS', '')) |
1171
|
|
|
self.assertEqual(double_metaphone('Buswell'), ('PSL', '')) |
1172
|
|
|
self.assertEqual(double_metaphone('Butler'), ('PTLR', '')) |
1173
|
|
|
self.assertEqual(double_metaphone('Calkin'), ('KLKN', '')) |
1174
|
|
|
self.assertEqual(double_metaphone('Canada'), ('KNT', '')) |
1175
|
|
|
self.assertEqual(double_metaphone('Canmore'), ('KNMR', '')) |
1176
|
|
|
self.assertEqual(double_metaphone('Canney'), ('KN', '')) |
1177
|
|
|
self.assertEqual(double_metaphone('Capet'), ('KPT', '')) |
1178
|
|
|
self.assertEqual(double_metaphone('Card'), ('KRT', '')) |
1179
|
|
|
self.assertEqual(double_metaphone('Carman'), ('KRMN', '')) |
1180
|
|
|
self.assertEqual(double_metaphone('Carpenter'), ('KRPNTR', '')) |
1181
|
|
|
self.assertEqual(double_metaphone('Cartwright'), ('KRTRT', '')) |
1182
|
|
|
self.assertEqual(double_metaphone('Casey'), ('KS', '')) |
1183
|
|
|
self.assertEqual(double_metaphone('Catterfield'), ('KTRFLT', '')) |
1184
|
|
|
self.assertEqual(double_metaphone('Ceeley'), ('SL', '')) |
1185
|
|
|
self.assertEqual(double_metaphone('Chambers'), ('XMPRS', '')) |
1186
|
|
|
self.assertEqual(double_metaphone('Champion'), ('XMPN', '')) |
1187
|
|
|
self.assertEqual(double_metaphone('Chapman'), ('XPMN', '')) |
1188
|
|
|
self.assertEqual(double_metaphone('Chase'), ('XS', '')) |
1189
|
|
|
self.assertEqual(double_metaphone('Cheney'), ('XN', '')) |
1190
|
|
|
self.assertEqual(double_metaphone('Chetwynd'), ('XTNT', '')) |
1191
|
|
|
self.assertEqual(double_metaphone('Chevalier'), ('XFL', 'XFLR')) |
1192
|
|
|
self.assertEqual(double_metaphone('Chillingsworth'), |
1193
|
|
|
('XLNKSR0', 'XLNKSRT')) |
1194
|
|
|
self.assertEqual(double_metaphone('Christie'), ('KRST', '')) |
1195
|
|
|
self.assertEqual(double_metaphone('Chubbuck'), ('XPK', '')) |
1196
|
|
|
self.assertEqual(double_metaphone('Church'), ('XRX', 'XRK')) |
1197
|
|
|
self.assertEqual(double_metaphone('Clark'), ('KLRK', '')) |
1198
|
|
|
self.assertEqual(double_metaphone('Clarke'), ('KLRK', '')) |
1199
|
|
|
self.assertEqual(double_metaphone('Cleare'), ('KLR', '')) |
1200
|
|
|
self.assertEqual(double_metaphone('Clement'), ('KLMNT', '')) |
1201
|
|
|
self.assertEqual(double_metaphone('Clerke'), ('KLRK', '')) |
1202
|
|
|
self.assertEqual(double_metaphone('Clibben'), ('KLPN', '')) |
1203
|
|
|
self.assertEqual(double_metaphone('Clifford'), ('KLFRT', '')) |
1204
|
|
|
self.assertEqual(double_metaphone('Clivedon'), ('KLFTN', '')) |
1205
|
|
|
self.assertEqual(double_metaphone('Close'), ('KLS', '')) |
1206
|
|
|
self.assertEqual(double_metaphone('Clothilde'), ('KL0LT', 'KLTLT')) |
1207
|
|
|
self.assertEqual(double_metaphone('Cobb'), ('KP', '')) |
1208
|
|
|
self.assertEqual(double_metaphone('Coburn'), ('KPRN', '')) |
1209
|
|
|
self.assertEqual(double_metaphone('Coburne'), ('KPRN', '')) |
1210
|
|
|
self.assertEqual(double_metaphone('Cocke'), ('KK', '')) |
1211
|
|
|
self.assertEqual(double_metaphone('Coffin'), ('KFN', '')) |
1212
|
|
|
self.assertEqual(double_metaphone('Coffyn'), ('KFN', '')) |
1213
|
|
|
self.assertEqual(double_metaphone('Colborne'), ('KLPRN', '')) |
1214
|
|
|
self.assertEqual(double_metaphone('Colby'), ('KLP', '')) |
1215
|
|
|
self.assertEqual(double_metaphone('Cole'), ('KL', '')) |
1216
|
|
|
self.assertEqual(double_metaphone('Coleman'), ('KLMN', '')) |
1217
|
|
|
self.assertEqual(double_metaphone('Collier'), ('KL', 'KLR')) |
1218
|
|
|
self.assertEqual(double_metaphone('Compton'), ('KMPTN', '')) |
1219
|
|
|
self.assertEqual(double_metaphone('Cone'), ('KN', '')) |
1220
|
|
|
self.assertEqual(double_metaphone('Cook'), ('KK', '')) |
1221
|
|
|
self.assertEqual(double_metaphone('Cooke'), ('KK', '')) |
1222
|
|
|
self.assertEqual(double_metaphone('Cooper'), ('KPR', '')) |
1223
|
|
|
self.assertEqual(double_metaphone('Copperthwaite'), ('KPR0T', 'KPRTT')) |
1224
|
|
|
self.assertEqual(double_metaphone('Corbet'), ('KRPT', '')) |
1225
|
|
|
self.assertEqual(double_metaphone('Corell'), ('KRL', '')) |
1226
|
|
|
self.assertEqual(double_metaphone('Corey'), ('KR', '')) |
1227
|
|
|
self.assertEqual(double_metaphone('Corlies'), ('KRLS', '')) |
1228
|
|
|
self.assertEqual(double_metaphone('Corneliszen'), ('KRNLSN', 'KRNLXN')) |
1229
|
|
|
self.assertEqual(double_metaphone('Cornelius'), ('KRNLS', '')) |
1230
|
|
|
self.assertEqual(double_metaphone('Cornwallis'), ('KRNLS', '')) |
1231
|
|
|
self.assertEqual(double_metaphone('Cosgrove'), ('KSKRF', '')) |
1232
|
|
|
self.assertEqual(double_metaphone('Count of Brionne'), ('KNTFPRN', '')) |
1233
|
|
|
self.assertEqual(double_metaphone('Covill'), ('KFL', '')) |
1234
|
|
|
self.assertEqual(double_metaphone('Cowperthwaite'), ('KPR0T', 'KPRTT')) |
1235
|
|
|
self.assertEqual(double_metaphone('Cowperwaite'), ('KPRT', '')) |
1236
|
|
|
self.assertEqual(double_metaphone('Crane'), ('KRN', '')) |
1237
|
|
|
self.assertEqual(double_metaphone('Creagmile'), ('KRKML', '')) |
1238
|
|
|
self.assertEqual(double_metaphone('Crew'), ('KR', 'KRF')) |
1239
|
|
|
self.assertEqual(double_metaphone('Crispin'), ('KRSPN', '')) |
1240
|
|
|
self.assertEqual(double_metaphone('Crocker'), ('KRKR', '')) |
1241
|
|
|
self.assertEqual(double_metaphone('Crockett'), ('KRKT', '')) |
1242
|
|
|
self.assertEqual(double_metaphone('Crosby'), ('KRSP', '')) |
1243
|
|
|
self.assertEqual(double_metaphone('Crump'), ('KRMP', '')) |
1244
|
|
|
self.assertEqual(double_metaphone('Cunningham'), ('KNNKM', '')) |
1245
|
|
|
self.assertEqual(double_metaphone('Curtis'), ('KRTS', '')) |
1246
|
|
|
self.assertEqual(double_metaphone('Cutha'), ('K0', 'KT')) |
1247
|
|
|
self.assertEqual(double_metaphone('Cutter'), ('KTR', '')) |
1248
|
|
|
self.assertEqual(double_metaphone('D\'Aubigny'), ('TPN', 'TPKN')) |
1249
|
|
|
self.assertEqual(double_metaphone('DAVIS'), ('TFS', '')) |
1250
|
|
|
self.assertEqual(double_metaphone('Dabinott'), ('TPNT', '')) |
1251
|
|
|
self.assertEqual(double_metaphone('Dacre'), ('TKR', '')) |
1252
|
|
|
self.assertEqual(double_metaphone('Daggett'), ('TKT', '')) |
1253
|
|
|
self.assertEqual(double_metaphone('Danvers'), ('TNFRS', '')) |
1254
|
|
|
self.assertEqual(double_metaphone('Darcy'), ('TRS', '')) |
1255
|
|
|
self.assertEqual(double_metaphone('Davis'), ('TFS', '')) |
1256
|
|
|
self.assertEqual(double_metaphone('Dawn'), ('TN', '')) |
1257
|
|
|
self.assertEqual(double_metaphone('Dawson'), ('TSN', '')) |
1258
|
|
|
self.assertEqual(double_metaphone('Day'), ('T', '')) |
1259
|
|
|
self.assertEqual(double_metaphone('Daye'), ('T', '')) |
1260
|
|
|
self.assertEqual(double_metaphone('DeGrenier'), ('TKRN', 'TKRNR')) |
1261
|
|
|
self.assertEqual(double_metaphone('Dean'), ('TN', '')) |
1262
|
|
|
self.assertEqual(double_metaphone('Deekindaugh'), ('TKNT', '')) |
1263
|
|
|
self.assertEqual(double_metaphone('Dennis'), ('TNS', '')) |
1264
|
|
|
self.assertEqual(double_metaphone('Denny'), ('TN', '')) |
1265
|
|
|
self.assertEqual(double_metaphone('Denton'), ('TNTN', '')) |
1266
|
|
|
self.assertEqual(double_metaphone('Desborough'), ('TSPRF', '')) |
1267
|
|
|
self.assertEqual(double_metaphone('Despenser'), ('TSPNSR', '')) |
1268
|
|
|
self.assertEqual(double_metaphone('Deverill'), ('TFRL', '')) |
1269
|
|
|
self.assertEqual(double_metaphone('Devine'), ('TFN', '')) |
1270
|
|
|
self.assertEqual(double_metaphone('Dexter'), ('TKSTR', '')) |
1271
|
|
|
self.assertEqual(double_metaphone('Dillaway'), ('TL', '')) |
1272
|
|
|
self.assertEqual(double_metaphone('Dimmick'), ('TMK', '')) |
1273
|
|
|
self.assertEqual(double_metaphone('Dinan'), ('TNN', '')) |
1274
|
|
|
self.assertEqual(double_metaphone('Dix'), ('TKS', '')) |
1275
|
|
|
self.assertEqual(double_metaphone('Doggett'), ('TKT', '')) |
1276
|
|
|
self.assertEqual(double_metaphone('Donahue'), ('TNH', '')) |
1277
|
|
|
self.assertEqual(double_metaphone('Dorfman'), ('TRFMN', '')) |
1278
|
|
|
self.assertEqual(double_metaphone('Dorris'), ('TRS', '')) |
1279
|
|
|
self.assertEqual(double_metaphone('Dow'), ('T', 'TF')) |
1280
|
|
|
self.assertEqual(double_metaphone('Downey'), ('TN', '')) |
1281
|
|
|
self.assertEqual(double_metaphone('Downing'), ('TNNK', '')) |
1282
|
|
|
self.assertEqual(double_metaphone('Dowsett'), ('TST', '')) |
1283
|
|
|
self.assertEqual(double_metaphone('Duck?'), ('TK', '')) |
1284
|
|
|
self.assertEqual(double_metaphone('Dudley'), ('TTL', '')) |
1285
|
|
|
self.assertEqual(double_metaphone('Duffy'), ('TF', '')) |
1286
|
|
|
self.assertEqual(double_metaphone('Dunn'), ('TN', '')) |
1287
|
|
|
self.assertEqual(double_metaphone('Dunsterville'), ('TNSTRFL', '')) |
1288
|
|
|
self.assertEqual(double_metaphone('Durrant'), ('TRNT', '')) |
1289
|
|
|
self.assertEqual(double_metaphone('Durrin'), ('TRN', '')) |
1290
|
|
|
self.assertEqual(double_metaphone('Dustin'), ('TSTN', '')) |
1291
|
|
|
self.assertEqual(double_metaphone('Duston'), ('TSTN', '')) |
1292
|
|
|
self.assertEqual(double_metaphone('Eames'), ('AMS', '')) |
1293
|
|
|
self.assertEqual(double_metaphone('Early'), ('ARL', '')) |
1294
|
|
|
self.assertEqual(double_metaphone('Easty'), ('AST', '')) |
1295
|
|
|
self.assertEqual(double_metaphone('Ebbett'), ('APT', '')) |
1296
|
|
|
self.assertEqual(double_metaphone('Eberbach'), ('APRPK', '')) |
1297
|
|
|
self.assertEqual(double_metaphone('Eberhard'), ('APRRT', '')) |
1298
|
|
|
self.assertEqual(double_metaphone('Eddy'), ('AT', '')) |
1299
|
|
|
self.assertEqual(double_metaphone('Edenden'), ('ATNTN', '')) |
1300
|
|
|
self.assertEqual(double_metaphone('Edwards'), ('ATRTS', '')) |
1301
|
|
|
self.assertEqual(double_metaphone('Eglinton'), ('AKLNTN', 'ALNTN')) |
1302
|
|
|
self.assertEqual(double_metaphone('Eliot'), ('ALT', '')) |
1303
|
|
|
self.assertEqual(double_metaphone('Elizabeth'), ('ALSP0', 'ALSPT')) |
1304
|
|
|
self.assertEqual(double_metaphone('Ellis'), ('ALS', '')) |
1305
|
|
|
self.assertEqual(double_metaphone('Ellison'), ('ALSN', '')) |
1306
|
|
|
self.assertEqual(double_metaphone('Ellot'), ('ALT', '')) |
1307
|
|
|
self.assertEqual(double_metaphone('Elny'), ('ALN', '')) |
1308
|
|
|
self.assertEqual(double_metaphone('Elsner'), ('ALSNR', '')) |
1309
|
|
|
self.assertEqual(double_metaphone('Emerson'), ('AMRSN', '')) |
1310
|
|
|
self.assertEqual(double_metaphone('Empson'), ('AMPSN', '')) |
1311
|
|
|
self.assertEqual(double_metaphone('Est'), ('AST', '')) |
1312
|
|
|
self.assertEqual(double_metaphone('Estabrook'), ('ASTPRK', '')) |
1313
|
|
|
self.assertEqual(double_metaphone('Estes'), ('ASTS', '')) |
1314
|
|
|
self.assertEqual(double_metaphone('Estey'), ('AST', '')) |
1315
|
|
|
self.assertEqual(double_metaphone('Evans'), ('AFNS', '')) |
1316
|
|
|
self.assertEqual(double_metaphone('Fallowell'), ('FLL', '')) |
1317
|
|
|
self.assertEqual(double_metaphone('Farnsworth'), ('FRNSR0', 'FRNSRT')) |
1318
|
|
|
self.assertEqual(double_metaphone('Feake'), ('FK', '')) |
1319
|
|
|
self.assertEqual(double_metaphone('Feke'), ('FK', '')) |
1320
|
|
|
self.assertEqual(double_metaphone('Fellows'), ('FLS', '')) |
1321
|
|
|
self.assertEqual(double_metaphone('Fettiplace'), ('FTPLS', '')) |
1322
|
|
|
self.assertEqual(double_metaphone('Finney'), ('FN', '')) |
1323
|
|
|
self.assertEqual(double_metaphone('Fischer'), ('FXR', 'FSKR')) |
1324
|
|
|
self.assertEqual(double_metaphone('Fisher'), ('FXR', '')) |
1325
|
|
|
self.assertEqual(double_metaphone('Fisk'), ('FSK', '')) |
1326
|
|
|
self.assertEqual(double_metaphone('Fiske'), ('FSK', '')) |
1327
|
|
|
self.assertEqual(double_metaphone('Fletcher'), ('FLXR', '')) |
1328
|
|
|
self.assertEqual(double_metaphone('Folger'), ('FLKR', 'FLJR')) |
1329
|
|
|
self.assertEqual(double_metaphone('Foliot'), ('FLT', '')) |
1330
|
|
|
self.assertEqual(double_metaphone('Folyot'), ('FLT', '')) |
1331
|
|
|
self.assertEqual(double_metaphone('Fones'), ('FNS', '')) |
1332
|
|
|
self.assertEqual(double_metaphone('Fordham'), ('FRTM', '')) |
1333
|
|
|
self.assertEqual(double_metaphone('Forstner'), ('FRSTNR', '')) |
1334
|
|
|
self.assertEqual(double_metaphone('Fosten'), ('FSTN', '')) |
1335
|
|
|
self.assertEqual(double_metaphone('Foster'), ('FSTR', '')) |
1336
|
|
|
self.assertEqual(double_metaphone('Foulke'), ('FLK', '')) |
1337
|
|
|
self.assertEqual(double_metaphone('Fowler'), ('FLR', '')) |
1338
|
|
|
self.assertEqual(double_metaphone('Foxwell'), ('FKSL', '')) |
1339
|
|
|
self.assertEqual(double_metaphone('Fraley'), ('FRL', '')) |
1340
|
|
|
self.assertEqual(double_metaphone('Franceys'), ('FRNSS', '')) |
1341
|
|
|
self.assertEqual(double_metaphone('Franke'), ('FRNK', '')) |
1342
|
|
|
self.assertEqual(double_metaphone('Frascella'), ('FRSL', '')) |
1343
|
|
|
self.assertEqual(double_metaphone('Frazer'), ('FRSR', '')) |
1344
|
|
|
self.assertEqual(double_metaphone('Fredd'), ('FRT', '')) |
1345
|
|
|
self.assertEqual(double_metaphone('Freeman'), ('FRMN', '')) |
1346
|
|
|
self.assertEqual(double_metaphone('French'), ('FRNX', 'FRNK')) |
1347
|
|
|
self.assertEqual(double_metaphone('Freville'), ('FRFL', '')) |
1348
|
|
|
self.assertEqual(double_metaphone('Frey'), ('FR', '')) |
1349
|
|
|
self.assertEqual(double_metaphone('Frick'), ('FRK', '')) |
1350
|
|
|
self.assertEqual(double_metaphone('Frier'), ('FR', 'FRR')) |
1351
|
|
|
self.assertEqual(double_metaphone('Froe'), ('FR', '')) |
1352
|
|
|
self.assertEqual(double_metaphone('Frorer'), ('FRRR', '')) |
1353
|
|
|
self.assertEqual(double_metaphone('Frost'), ('FRST', '')) |
1354
|
|
|
self.assertEqual(double_metaphone('Frothingham'), ('FR0NKM', 'FRTNKM')) |
1355
|
|
|
self.assertEqual(double_metaphone('Fry'), ('FR', '')) |
1356
|
|
|
self.assertEqual(double_metaphone('Gaffney'), ('KFN', '')) |
1357
|
|
|
self.assertEqual(double_metaphone('Gage'), ('KJ', 'KK')) |
1358
|
|
|
self.assertEqual(double_metaphone('Gallion'), ('KLN', '')) |
1359
|
|
|
self.assertEqual(double_metaphone('Gallishan'), ('KLXN', '')) |
1360
|
|
|
self.assertEqual(double_metaphone('Gamble'), ('KMPL', '')) |
1361
|
|
|
self.assertEqual(double_metaphone('Garbrand'), ('KRPRNT', '')) |
1362
|
|
|
self.assertEqual(double_metaphone('Gardner'), ('KRTNR', '')) |
1363
|
|
|
self.assertEqual(double_metaphone('Garrett'), ('KRT', '')) |
1364
|
|
|
self.assertEqual(double_metaphone('Gassner'), ('KSNR', '')) |
1365
|
|
|
self.assertEqual(double_metaphone('Gater'), ('KTR', '')) |
1366
|
|
|
self.assertEqual(double_metaphone('Gaunt'), ('KNT', '')) |
1367
|
|
|
self.assertEqual(double_metaphone('Gayer'), ('KR', '')) |
1368
|
|
|
self.assertEqual(double_metaphone('Gerken'), ('KRKN', 'JRKN')) |
1369
|
|
|
self.assertEqual(double_metaphone('Gerritsen'), ('KRTSN', 'JRTSN')) |
1370
|
|
|
self.assertEqual(double_metaphone('Gibbs'), ('KPS', 'JPS')) |
1371
|
|
|
self.assertEqual(double_metaphone('Giffard'), ('JFRT', 'KFRT')) |
1372
|
|
|
self.assertEqual(double_metaphone('Gilbert'), ('KLPRT', 'JLPRT')) |
1373
|
|
|
self.assertEqual(double_metaphone('Gill'), ('KL', 'JL')) |
1374
|
|
|
self.assertEqual(double_metaphone('Gilman'), ('KLMN', 'JLMN')) |
1375
|
|
|
self.assertEqual(double_metaphone('Glass'), ('KLS', '')) |
1376
|
|
|
self.assertEqual(double_metaphone('GoddardGifford'), ('KTRJFRT', '')) |
1377
|
|
|
self.assertEqual(double_metaphone('Godfrey'), ('KTFR', '')) |
1378
|
|
|
self.assertEqual(double_metaphone('Godwin'), ('KTN', '')) |
1379
|
|
|
self.assertEqual(double_metaphone('Goodale'), ('KTL', '')) |
1380
|
|
|
self.assertEqual(double_metaphone('Goodnow'), ('KTN', 'KTNF')) |
1381
|
|
|
self.assertEqual(double_metaphone('Gorham'), ('KRM', '')) |
1382
|
|
|
self.assertEqual(double_metaphone('Goseline'), ('KSLN', '')) |
1383
|
|
|
self.assertEqual(double_metaphone('Gott'), ('KT', '')) |
1384
|
|
|
self.assertEqual(double_metaphone('Gould'), ('KLT', '')) |
1385
|
|
|
self.assertEqual(double_metaphone('Grafton'), ('KRFTN', '')) |
1386
|
|
|
self.assertEqual(double_metaphone('Grant'), ('KRNT', '')) |
1387
|
|
|
self.assertEqual(double_metaphone('Gray'), ('KR', '')) |
1388
|
|
|
self.assertEqual(double_metaphone('Green'), ('KRN', '')) |
1389
|
|
|
self.assertEqual(double_metaphone('Griffin'), ('KRFN', '')) |
1390
|
|
|
self.assertEqual(double_metaphone('Grill'), ('KRL', '')) |
1391
|
|
|
self.assertEqual(double_metaphone('Grim'), ('KRM', '')) |
1392
|
|
|
self.assertEqual(double_metaphone('Grisgonelle'), ('KRSKNL', '')) |
1393
|
|
|
self.assertEqual(double_metaphone('Gross'), ('KRS', '')) |
1394
|
|
|
self.assertEqual(double_metaphone('Guba'), ('KP', '')) |
1395
|
|
|
self.assertEqual(double_metaphone('Gybbes'), ('KPS', 'JPS')) |
1396
|
|
|
self.assertEqual(double_metaphone('Haburne'), ('HPRN', '')) |
1397
|
|
|
self.assertEqual(double_metaphone('Hackburne'), ('HKPRN', '')) |
1398
|
|
|
self.assertEqual(double_metaphone('Haddon?'), ('HTN', '')) |
1399
|
|
|
self.assertEqual(double_metaphone('Haines'), ('HNS', '')) |
1400
|
|
|
self.assertEqual(double_metaphone('Hale'), ('HL', '')) |
1401
|
|
|
self.assertEqual(double_metaphone('Hall'), ('HL', '')) |
1402
|
|
|
self.assertEqual(double_metaphone('Hallet'), ('HLT', '')) |
1403
|
|
|
self.assertEqual(double_metaphone('Hallock'), ('HLK', '')) |
1404
|
|
|
self.assertEqual(double_metaphone('Halstead'), ('HLSTT', '')) |
1405
|
|
|
self.assertEqual(double_metaphone('Hammond'), ('HMNT', '')) |
1406
|
|
|
self.assertEqual(double_metaphone('Hance'), ('HNS', '')) |
1407
|
|
|
self.assertEqual(double_metaphone('Handy'), ('HNT', '')) |
1408
|
|
|
self.assertEqual(double_metaphone('Hanson'), ('HNSN', '')) |
1409
|
|
|
self.assertEqual(double_metaphone('Harasek'), ('HRSK', '')) |
1410
|
|
|
self.assertEqual(double_metaphone('Harcourt'), ('HRKRT', '')) |
1411
|
|
|
self.assertEqual(double_metaphone('Hardy'), ('HRT', '')) |
1412
|
|
|
self.assertEqual(double_metaphone('Harlock'), ('HRLK', '')) |
1413
|
|
|
self.assertEqual(double_metaphone('Harris'), ('HRS', '')) |
1414
|
|
|
self.assertEqual(double_metaphone('Hartley'), ('HRTL', '')) |
1415
|
|
|
self.assertEqual(double_metaphone('Harvey'), ('HRF', '')) |
1416
|
|
|
self.assertEqual(double_metaphone('Harvie'), ('HRF', '')) |
1417
|
|
|
self.assertEqual(double_metaphone('Harwood'), ('HRT', '')) |
1418
|
|
|
self.assertEqual(double_metaphone('Hathaway'), ('H0', 'HT')) |
1419
|
|
|
self.assertEqual(double_metaphone('Haukeness'), ('HKNS', '')) |
1420
|
|
|
self.assertEqual(double_metaphone('Hawkes'), ('HKS', '')) |
1421
|
|
|
self.assertEqual(double_metaphone('Hawkhurst'), ('HKRST', '')) |
1422
|
|
|
self.assertEqual(double_metaphone('Hawkins'), ('HKNS', '')) |
1423
|
|
|
self.assertEqual(double_metaphone('Hawley'), ('HL', '')) |
1424
|
|
|
self.assertEqual(double_metaphone('Heald'), ('HLT', '')) |
1425
|
|
|
self.assertEqual(double_metaphone('Helsdon'), ('HLSTN', '')) |
1426
|
|
|
self.assertEqual(double_metaphone('Hemenway'), ('HMN', '')) |
1427
|
|
|
self.assertEqual(double_metaphone('Hemmenway'), ('HMN', '')) |
1428
|
|
|
self.assertEqual(double_metaphone('Henck'), ('HNK', '')) |
1429
|
|
|
self.assertEqual(double_metaphone('Henderson'), ('HNTRSN', '')) |
1430
|
|
|
self.assertEqual(double_metaphone('Hendricks'), ('HNTRKS', '')) |
1431
|
|
|
self.assertEqual(double_metaphone('Hersey'), ('HRS', '')) |
1432
|
|
|
self.assertEqual(double_metaphone('Hewes'), ('HS', '')) |
1433
|
|
|
self.assertEqual(double_metaphone('Heyman'), ('HMN', '')) |
1434
|
|
|
self.assertEqual(double_metaphone('Hicks'), ('HKS', '')) |
1435
|
|
|
self.assertEqual(double_metaphone('Hidden'), ('HTN', '')) |
1436
|
|
|
self.assertEqual(double_metaphone('Higgs'), ('HKS', '')) |
1437
|
|
|
self.assertEqual(double_metaphone('Hill'), ('HL', '')) |
1438
|
|
|
self.assertEqual(double_metaphone('Hills'), ('HLS', '')) |
1439
|
|
|
self.assertEqual(double_metaphone('Hinckley'), ('HNKL', '')) |
1440
|
|
|
self.assertEqual(double_metaphone('Hipwell'), ('HPL', '')) |
1441
|
|
|
self.assertEqual(double_metaphone('Hobart'), ('HPRT', '')) |
1442
|
|
|
self.assertEqual(double_metaphone('Hoben'), ('HPN', '')) |
1443
|
|
|
self.assertEqual(double_metaphone('Hoffmann'), ('HFMN', '')) |
1444
|
|
|
self.assertEqual(double_metaphone('Hogan'), ('HKN', '')) |
1445
|
|
|
self.assertEqual(double_metaphone('Holmes'), ('HLMS', '')) |
1446
|
|
|
self.assertEqual(double_metaphone('Hoo'), ('H', '')) |
1447
|
|
|
self.assertEqual(double_metaphone('Hooker'), ('HKR', '')) |
1448
|
|
|
self.assertEqual(double_metaphone('Hopcott'), ('HPKT', '')) |
1449
|
|
|
self.assertEqual(double_metaphone('Hopkins'), ('HPKNS', '')) |
1450
|
|
|
self.assertEqual(double_metaphone('Hopkinson'), ('HPKNSN', '')) |
1451
|
|
|
self.assertEqual(double_metaphone('Hornsey'), ('HRNS', '')) |
1452
|
|
|
self.assertEqual(double_metaphone('Houckgeest'), ('HKJST', 'HKKST')) |
1453
|
|
|
self.assertEqual(double_metaphone('Hough'), ('H', '')) |
1454
|
|
|
self.assertEqual(double_metaphone('Houstin'), ('HSTN', '')) |
1455
|
|
|
self.assertEqual(double_metaphone('How'), ('H', 'HF')) |
1456
|
|
|
self.assertEqual(double_metaphone('Howe'), ('H', '')) |
1457
|
|
|
self.assertEqual(double_metaphone('Howland'), ('HLNT', '')) |
1458
|
|
|
self.assertEqual(double_metaphone('Hubner'), ('HPNR', '')) |
1459
|
|
|
self.assertEqual(double_metaphone('Hudnut'), ('HTNT', '')) |
1460
|
|
|
self.assertEqual(double_metaphone('Hughes'), ('HS', '')) |
1461
|
|
|
self.assertEqual(double_metaphone('Hull'), ('HL', '')) |
1462
|
|
|
self.assertEqual(double_metaphone('Hulme'), ('HLM', '')) |
1463
|
|
|
self.assertEqual(double_metaphone('Hume'), ('HM', '')) |
1464
|
|
|
self.assertEqual(double_metaphone('Hundertumark'), ('HNTRTMRK', '')) |
1465
|
|
|
self.assertEqual(double_metaphone('Hundley'), ('HNTL', '')) |
1466
|
|
|
self.assertEqual(double_metaphone('Hungerford'), |
1467
|
|
|
('HNKRFRT', 'HNJRFRT')) |
1468
|
|
|
self.assertEqual(double_metaphone('Hunt'), ('HNT', '')) |
1469
|
|
|
self.assertEqual(double_metaphone('Hurst'), ('HRST', '')) |
1470
|
|
|
self.assertEqual(double_metaphone('Husbands'), ('HSPNTS', '')) |
1471
|
|
|
self.assertEqual(double_metaphone('Hussey'), ('HS', '')) |
1472
|
|
|
self.assertEqual(double_metaphone('Husted'), ('HSTT', '')) |
1473
|
|
|
self.assertEqual(double_metaphone('Hutchins'), ('HXNS', '')) |
1474
|
|
|
self.assertEqual(double_metaphone('Hutchinson'), ('HXNSN', '')) |
1475
|
|
|
self.assertEqual(double_metaphone('Huttinger'), ('HTNKR', 'HTNJR')) |
1476
|
|
|
self.assertEqual(double_metaphone('Huybertsen'), ('HPRTSN', '')) |
1477
|
|
|
self.assertEqual(double_metaphone('Iddenden'), ('ATNTN', '')) |
1478
|
|
|
self.assertEqual(double_metaphone('Ingraham'), ('ANKRHM', '')) |
1479
|
|
|
self.assertEqual(double_metaphone('Ives'), ('AFS', '')) |
1480
|
|
|
self.assertEqual(double_metaphone('Jackson'), ('JKSN', 'AKSN')) |
1481
|
|
|
self.assertEqual(double_metaphone('Jacob'), ('JKP', 'AKP')) |
1482
|
|
|
self.assertEqual(double_metaphone('Jans'), ('JNS', 'ANS')) |
1483
|
|
|
self.assertEqual(double_metaphone('Jenkins'), ('JNKNS', 'ANKNS')) |
1484
|
|
|
self.assertEqual(double_metaphone('Jewett'), ('JT', 'AT')) |
1485
|
|
|
self.assertEqual(double_metaphone('Jewitt'), ('JT', 'AT')) |
1486
|
|
|
self.assertEqual(double_metaphone('Johnson'), ('JNSN', 'ANSN')) |
1487
|
|
|
self.assertEqual(double_metaphone('Jones'), ('JNS', 'ANS')) |
1488
|
|
|
self.assertEqual(double_metaphone('Josephine'), ('JSFN', 'HSFN')) |
1489
|
|
|
self.assertEqual(double_metaphone('Judd'), ('JT', 'AT')) |
1490
|
|
|
self.assertEqual(double_metaphone('June'), ('JN', 'AN')) |
1491
|
|
|
self.assertEqual(double_metaphone('Kamarowska'), ('KMRSK', '')) |
1492
|
|
|
self.assertEqual(double_metaphone('Kay'), ('K', '')) |
1493
|
|
|
self.assertEqual(double_metaphone('Kelley'), ('KL', '')) |
1494
|
|
|
self.assertEqual(double_metaphone('Kelly'), ('KL', '')) |
1495
|
|
|
self.assertEqual(double_metaphone('Keymber'), ('KMPR', '')) |
1496
|
|
|
self.assertEqual(double_metaphone('Keynes'), ('KNS', '')) |
1497
|
|
|
self.assertEqual(double_metaphone('Kilham'), ('KLM', '')) |
1498
|
|
|
self.assertEqual(double_metaphone('Kim'), ('KM', '')) |
1499
|
|
|
self.assertEqual(double_metaphone('Kimball'), ('KMPL', '')) |
1500
|
|
|
self.assertEqual(double_metaphone('King'), ('KNK', '')) |
1501
|
|
|
self.assertEqual(double_metaphone('Kinsey'), ('KNS', '')) |
1502
|
|
|
self.assertEqual(double_metaphone('Kirk'), ('KRK', '')) |
1503
|
|
|
self.assertEqual(double_metaphone('Kirton'), ('KRTN', '')) |
1504
|
|
|
self.assertEqual(double_metaphone('Kistler'), ('KSTLR', '')) |
1505
|
|
|
self.assertEqual(double_metaphone('Kitchen'), ('KXN', '')) |
1506
|
|
|
self.assertEqual(double_metaphone('Kitson'), ('KTSN', '')) |
1507
|
|
|
self.assertEqual(double_metaphone('Klett'), ('KLT', '')) |
1508
|
|
|
self.assertEqual(double_metaphone('Kline'), ('KLN', '')) |
1509
|
|
|
self.assertEqual(double_metaphone('Knapp'), ('NP', '')) |
1510
|
|
|
self.assertEqual(double_metaphone('Knight'), ('NT', '')) |
1511
|
|
|
self.assertEqual(double_metaphone('Knote'), ('NT', '')) |
1512
|
|
|
self.assertEqual(double_metaphone('Knott'), ('NT', '')) |
1513
|
|
|
self.assertEqual(double_metaphone('Knox'), ('NKS', '')) |
1514
|
|
|
self.assertEqual(double_metaphone('Koeller'), ('KLR', '')) |
1515
|
|
|
self.assertEqual(double_metaphone('La Pointe'), ('LPNT', '')) |
1516
|
|
|
self.assertEqual(double_metaphone('LaPlante'), ('LPLNT', '')) |
1517
|
|
|
self.assertEqual(double_metaphone('Laimbeer'), ('LMPR', '')) |
1518
|
|
|
self.assertEqual(double_metaphone('Lamb'), ('LMP', '')) |
1519
|
|
|
self.assertEqual(double_metaphone('Lambertson'), ('LMPRTSN', '')) |
1520
|
|
|
self.assertEqual(double_metaphone('Lancto'), ('LNKT', '')) |
1521
|
|
|
self.assertEqual(double_metaphone('Landry'), ('LNTR', '')) |
1522
|
|
|
self.assertEqual(double_metaphone('Lane'), ('LN', '')) |
1523
|
|
|
self.assertEqual(double_metaphone('Langendyck'), ('LNJNTK', 'LNKNTK')) |
1524
|
|
|
self.assertEqual(double_metaphone('Langer'), ('LNKR', 'LNJR')) |
1525
|
|
|
self.assertEqual(double_metaphone('Langford'), ('LNKFRT', '')) |
1526
|
|
|
self.assertEqual(double_metaphone('Lantersee'), ('LNTRS', '')) |
1527
|
|
|
self.assertEqual(double_metaphone('Laquer'), ('LKR', '')) |
1528
|
|
|
self.assertEqual(double_metaphone('Larkin'), ('LRKN', '')) |
1529
|
|
|
self.assertEqual(double_metaphone('Latham'), ('LTM', '')) |
1530
|
|
|
self.assertEqual(double_metaphone('Lathrop'), ('L0RP', 'LTRP')) |
1531
|
|
|
self.assertEqual(double_metaphone('Lauter'), ('LTR', '')) |
1532
|
|
|
self.assertEqual(double_metaphone('Lawrence'), ('LRNS', '')) |
1533
|
|
|
self.assertEqual(double_metaphone('Leach'), ('LK', '')) |
1534
|
|
|
self.assertEqual(double_metaphone('Leager'), ('LKR', 'LJR')) |
1535
|
|
|
self.assertEqual(double_metaphone('Learned'), ('LRNT', '')) |
1536
|
|
|
self.assertEqual(double_metaphone('Leavitt'), ('LFT', '')) |
1537
|
|
|
self.assertEqual(double_metaphone('Lee'), ('L', '')) |
1538
|
|
|
self.assertEqual(double_metaphone('Leete'), ('LT', '')) |
1539
|
|
|
self.assertEqual(double_metaphone('Leggett'), ('LKT', '')) |
1540
|
|
|
self.assertEqual(double_metaphone('Leland'), ('LLNT', '')) |
1541
|
|
|
self.assertEqual(double_metaphone('Leonard'), ('LNRT', '')) |
1542
|
|
|
self.assertEqual(double_metaphone('Lester'), ('LSTR', '')) |
1543
|
|
|
self.assertEqual(double_metaphone('Lestrange'), ('LSTRNJ', 'LSTRNK')) |
1544
|
|
|
self.assertEqual(double_metaphone('Lethem'), ('L0M', 'LTM')) |
1545
|
|
|
self.assertEqual(double_metaphone('Levine'), ('LFN', '')) |
1546
|
|
|
self.assertEqual(double_metaphone('Lewes'), ('LS', '')) |
1547
|
|
|
self.assertEqual(double_metaphone('Lewis'), ('LS', '')) |
1548
|
|
|
self.assertEqual(double_metaphone('Lincoln'), ('LNKLN', '')) |
1549
|
|
|
self.assertEqual(double_metaphone('Lindsey'), ('LNTS', '')) |
1550
|
|
|
self.assertEqual(double_metaphone('Linher'), ('LNR', '')) |
1551
|
|
|
self.assertEqual(double_metaphone('Lippet'), ('LPT', '')) |
1552
|
|
|
self.assertEqual(double_metaphone('Lippincott'), ('LPNKT', '')) |
1553
|
|
|
self.assertEqual(double_metaphone('Lockwood'), ('LKT', '')) |
1554
|
|
|
self.assertEqual(double_metaphone('Loines'), ('LNS', '')) |
1555
|
|
|
self.assertEqual(double_metaphone('Lombard'), ('LMPRT', '')) |
1556
|
|
|
self.assertEqual(double_metaphone('Long'), ('LNK', '')) |
1557
|
|
|
self.assertEqual(double_metaphone('Longespee'), ('LNJSP', 'LNKSP')) |
1558
|
|
|
self.assertEqual(double_metaphone('Look'), ('LK', '')) |
1559
|
|
|
self.assertEqual(double_metaphone('Lounsberry'), ('LNSPR', '')) |
1560
|
|
|
self.assertEqual(double_metaphone('Lounsbury'), ('LNSPR', '')) |
1561
|
|
|
self.assertEqual(double_metaphone('Louthe'), ('L0', 'LT')) |
1562
|
|
|
self.assertEqual(double_metaphone('Loveyne'), ('LFN', '')) |
1563
|
|
|
self.assertEqual(double_metaphone('Lowe'), ('L', '')) |
1564
|
|
|
self.assertEqual(double_metaphone('Ludlam'), ('LTLM', '')) |
1565
|
|
|
self.assertEqual(double_metaphone('Lumbard'), ('LMPRT', '')) |
1566
|
|
|
self.assertEqual(double_metaphone('Lund'), ('LNT', '')) |
1567
|
|
|
self.assertEqual(double_metaphone('Luno'), ('LN', '')) |
1568
|
|
|
self.assertEqual(double_metaphone('Lutz'), ('LTS', '')) |
1569
|
|
|
self.assertEqual(double_metaphone('Lydia'), ('LT', '')) |
1570
|
|
|
self.assertEqual(double_metaphone('Lynne'), ('LN', '')) |
1571
|
|
|
self.assertEqual(double_metaphone('Lyon'), ('LN', '')) |
1572
|
|
|
self.assertEqual(double_metaphone('MacAlpin'), ('MKLPN', '')) |
1573
|
|
|
self.assertEqual(double_metaphone('MacBricc'), ('MKPRK', '')) |
1574
|
|
|
self.assertEqual(double_metaphone('MacCrinan'), ('MKRNN', '')) |
1575
|
|
|
self.assertEqual(double_metaphone('MacKenneth'), ('MKN0', 'MKNT')) |
1576
|
|
|
self.assertEqual(double_metaphone('MacMael nam Bo'), ('MKMLNMP', '')) |
1577
|
|
|
self.assertEqual(double_metaphone('MacMurchada'), ('MKMRXT', 'MKMRKT')) |
1578
|
|
|
self.assertEqual(double_metaphone('Macomber'), ('MKMPR', '')) |
1579
|
|
|
self.assertEqual(double_metaphone('Macy'), ('MS', '')) |
1580
|
|
|
self.assertEqual(double_metaphone('Magnus'), ('MNS', 'MKNS')) |
1581
|
|
|
self.assertEqual(double_metaphone('Mahien'), ('MHN', '')) |
1582
|
|
|
self.assertEqual(double_metaphone('Malmains'), ('MLMNS', '')) |
1583
|
|
|
self.assertEqual(double_metaphone('Malory'), ('MLR', '')) |
1584
|
|
|
self.assertEqual(double_metaphone('Mancinelli'), ('MNSNL', '')) |
1585
|
|
|
self.assertEqual(double_metaphone('Mancini'), ('MNSN', '')) |
1586
|
|
|
self.assertEqual(double_metaphone('Mann'), ('MN', '')) |
1587
|
|
|
self.assertEqual(double_metaphone('Manning'), ('MNNK', '')) |
1588
|
|
|
self.assertEqual(double_metaphone('Manter'), ('MNTR', '')) |
1589
|
|
|
self.assertEqual(double_metaphone('Marion'), ('MRN', '')) |
1590
|
|
|
self.assertEqual(double_metaphone('Marley'), ('MRL', '')) |
1591
|
|
|
self.assertEqual(double_metaphone('Marmion'), ('MRMN', '')) |
1592
|
|
|
self.assertEqual(double_metaphone('Marquart'), ('MRKRT', '')) |
1593
|
|
|
self.assertEqual(double_metaphone('Marsh'), ('MRX', '')) |
1594
|
|
|
self.assertEqual(double_metaphone('Marshal'), ('MRXL', '')) |
1595
|
|
|
self.assertEqual(double_metaphone('Marshall'), ('MRXL', '')) |
1596
|
|
|
self.assertEqual(double_metaphone('Martel'), ('MRTL', '')) |
1597
|
|
|
self.assertEqual(double_metaphone('Martha'), ('MR0', 'MRT')) |
1598
|
|
|
self.assertEqual(double_metaphone('Martin'), ('MRTN', '')) |
1599
|
|
|
self.assertEqual(double_metaphone('Marturano'), ('MRTRN', '')) |
1600
|
|
|
self.assertEqual(double_metaphone('Marvin'), ('MRFN', '')) |
1601
|
|
|
self.assertEqual(double_metaphone('Mary'), ('MR', '')) |
1602
|
|
|
self.assertEqual(double_metaphone('Mason'), ('MSN', '')) |
1603
|
|
|
self.assertEqual(double_metaphone('Maxwell'), ('MKSL', '')) |
1604
|
|
|
self.assertEqual(double_metaphone('Mayhew'), ('MH', 'MHF')) |
1605
|
|
|
self.assertEqual(double_metaphone('McAllaster'), ('MKLSTR', '')) |
1606
|
|
|
self.assertEqual(double_metaphone('McAllister'), ('MKLSTR', '')) |
1607
|
|
|
self.assertEqual(double_metaphone('McConnell'), ('MKNL', '')) |
1608
|
|
|
self.assertEqual(double_metaphone('McFarland'), ('MKFRLNT', '')) |
1609
|
|
|
self.assertEqual(double_metaphone('McIlroy'), ('MSLR', '')) |
1610
|
|
|
self.assertEqual(double_metaphone('McNair'), ('MKNR', '')) |
1611
|
|
|
self.assertEqual(double_metaphone('McNair-Landry'), ('MKNRLNTR', '')) |
1612
|
|
|
self.assertEqual(double_metaphone('McRaven'), ('MKRFN', '')) |
1613
|
|
|
self.assertEqual(double_metaphone('Mead'), ('MT', '')) |
1614
|
|
|
self.assertEqual(double_metaphone('Meade'), ('MT', '')) |
1615
|
|
|
self.assertEqual(double_metaphone('Meck'), ('MK', '')) |
1616
|
|
|
self.assertEqual(double_metaphone('Melton'), ('MLTN', '')) |
1617
|
|
|
self.assertEqual(double_metaphone('Mendenhall'), ('MNTNL', '')) |
1618
|
|
|
self.assertEqual(double_metaphone('Mering'), ('MRNK', '')) |
1619
|
|
|
self.assertEqual(double_metaphone('Merrick'), ('MRK', '')) |
1620
|
|
|
self.assertEqual(double_metaphone('Merry'), ('MR', '')) |
1621
|
|
|
self.assertEqual(double_metaphone('Mighill'), ('ML', '')) |
1622
|
|
|
self.assertEqual(double_metaphone('Miller'), ('MLR', '')) |
1623
|
|
|
self.assertEqual(double_metaphone('Milton'), ('MLTN', '')) |
1624
|
|
|
self.assertEqual(double_metaphone('Mohun'), ('MHN', '')) |
1625
|
|
|
self.assertEqual(double_metaphone('Montague'), ('MNTK', '')) |
1626
|
|
|
self.assertEqual(double_metaphone('Montboucher'), ('MNTPXR', 'MNTPKR')) |
1627
|
|
|
self.assertEqual(double_metaphone('Moore'), ('MR', '')) |
1628
|
|
|
self.assertEqual(double_metaphone('Morrel'), ('MRL', '')) |
1629
|
|
|
self.assertEqual(double_metaphone('Morrill'), ('MRL', '')) |
1630
|
|
|
self.assertEqual(double_metaphone('Morris'), ('MRS', '')) |
1631
|
|
|
self.assertEqual(double_metaphone('Morton'), ('MRTN', '')) |
1632
|
|
|
self.assertEqual(double_metaphone('Moton'), ('MTN', '')) |
1633
|
|
|
self.assertEqual(double_metaphone('Muir'), ('MR', '')) |
1634
|
|
|
self.assertEqual(double_metaphone('Mulferd'), ('MLFRT', '')) |
1635
|
|
|
self.assertEqual(double_metaphone('Mullins'), ('MLNS', '')) |
1636
|
|
|
self.assertEqual(double_metaphone('Mulso'), ('MLS', '')) |
1637
|
|
|
self.assertEqual(double_metaphone('Munger'), ('MNKR', 'MNJR')) |
1638
|
|
|
self.assertEqual(double_metaphone('Munt'), ('MNT', '')) |
1639
|
|
|
self.assertEqual(double_metaphone('Murchad'), ('MRXT', 'MRKT')) |
1640
|
|
|
self.assertEqual(double_metaphone('Murdock'), ('MRTK', '')) |
1641
|
|
|
self.assertEqual(double_metaphone('Murray'), ('MR', '')) |
1642
|
|
|
self.assertEqual(double_metaphone('Muskett'), ('MSKT', '')) |
1643
|
|
|
self.assertEqual(double_metaphone('Myers'), ('MRS', '')) |
1644
|
|
|
self.assertEqual(double_metaphone('Myrick'), ('MRK', '')) |
1645
|
|
|
self.assertEqual(double_metaphone('NORRIS'), ('NRS', '')) |
1646
|
|
|
self.assertEqual(double_metaphone('Nayle'), ('NL', '')) |
1647
|
|
|
self.assertEqual(double_metaphone('Newcomb'), ('NKMP', '')) |
1648
|
|
|
self.assertEqual(double_metaphone('Newcomb(e)'), ('NKMP', '')) |
1649
|
|
|
self.assertEqual(double_metaphone('Newkirk'), ('NKRK', '')) |
1650
|
|
|
self.assertEqual(double_metaphone('Newton'), ('NTN', '')) |
1651
|
|
|
self.assertEqual(double_metaphone('Niles'), ('NLS', '')) |
1652
|
|
|
self.assertEqual(double_metaphone('Noble'), ('NPL', '')) |
1653
|
|
|
self.assertEqual(double_metaphone('Noel'), ('NL', '')) |
1654
|
|
|
self.assertEqual(double_metaphone('Northend'), ('NR0NT', 'NRTNT')) |
1655
|
|
|
self.assertEqual(double_metaphone('Norton'), ('NRTN', '')) |
1656
|
|
|
self.assertEqual(double_metaphone('Nutter'), ('NTR', '')) |
1657
|
|
|
self.assertEqual(double_metaphone('Odding'), ('ATNK', '')) |
1658
|
|
|
self.assertEqual(double_metaphone('Odenbaugh'), ('ATNP', '')) |
1659
|
|
|
self.assertEqual(double_metaphone('Ogborn'), ('AKPRN', '')) |
1660
|
|
|
self.assertEqual(double_metaphone('Oppenheimer'), ('APNMR', '')) |
1661
|
|
|
self.assertEqual(double_metaphone('Otis'), ('ATS', '')) |
1662
|
|
|
self.assertEqual(double_metaphone('Oviatt'), ('AFT', '')) |
1663
|
|
|
self.assertEqual(double_metaphone('PRUST?'), ('PRST', '')) |
1664
|
|
|
self.assertEqual(double_metaphone('Paddock'), ('PTK', '')) |
1665
|
|
|
self.assertEqual(double_metaphone('Page'), ('PJ', 'PK')) |
1666
|
|
|
self.assertEqual(double_metaphone('Paine'), ('PN', '')) |
1667
|
|
|
self.assertEqual(double_metaphone('Paist'), ('PST', '')) |
1668
|
|
|
self.assertEqual(double_metaphone('Palmer'), ('PLMR', '')) |
1669
|
|
|
self.assertEqual(double_metaphone('Park'), ('PRK', '')) |
1670
|
|
|
self.assertEqual(double_metaphone('Parker'), ('PRKR', '')) |
1671
|
|
|
self.assertEqual(double_metaphone('Parkhurst'), ('PRKRST', '')) |
1672
|
|
|
self.assertEqual(double_metaphone('Parrat'), ('PRT', '')) |
1673
|
|
|
self.assertEqual(double_metaphone('Parsons'), ('PRSNS', '')) |
1674
|
|
|
self.assertEqual(double_metaphone('Partridge'), ('PRTRJ', '')) |
1675
|
|
|
self.assertEqual(double_metaphone('Pashley'), ('PXL', '')) |
1676
|
|
|
self.assertEqual(double_metaphone('Pasley'), ('PSL', '')) |
1677
|
|
|
self.assertEqual(double_metaphone('Patrick'), ('PTRK', '')) |
1678
|
|
|
self.assertEqual(double_metaphone('Pattee'), ('PT', '')) |
1679
|
|
|
self.assertEqual(double_metaphone('Patten'), ('PTN', '')) |
1680
|
|
|
self.assertEqual(double_metaphone('Pawley'), ('PL', '')) |
1681
|
|
|
self.assertEqual(double_metaphone('Payne'), ('PN', '')) |
1682
|
|
|
self.assertEqual(double_metaphone('Peabody'), ('PPT', '')) |
1683
|
|
|
self.assertEqual(double_metaphone('Peake'), ('PK', '')) |
1684
|
|
|
self.assertEqual(double_metaphone('Pearson'), ('PRSN', '')) |
1685
|
|
|
self.assertEqual(double_metaphone('Peat'), ('PT', '')) |
1686
|
|
|
self.assertEqual(double_metaphone('Pedersen'), ('PTRSN', '')) |
1687
|
|
|
self.assertEqual(double_metaphone('Percy'), ('PRS', '')) |
1688
|
|
|
self.assertEqual(double_metaphone('Perkins'), ('PRKNS', '')) |
1689
|
|
|
self.assertEqual(double_metaphone('Perrine'), ('PRN', '')) |
1690
|
|
|
self.assertEqual(double_metaphone('Perry'), ('PR', '')) |
1691
|
|
|
self.assertEqual(double_metaphone('Peson'), ('PSN', '')) |
1692
|
|
|
self.assertEqual(double_metaphone('Peterson'), ('PTRSN', '')) |
1693
|
|
|
self.assertEqual(double_metaphone('Peyton'), ('PTN', '')) |
1694
|
|
|
self.assertEqual(double_metaphone('Phinney'), ('FN', '')) |
1695
|
|
|
self.assertEqual(double_metaphone('Pickard'), ('PKRT', '')) |
1696
|
|
|
self.assertEqual(double_metaphone('Pierce'), ('PRS', '')) |
1697
|
|
|
self.assertEqual(double_metaphone('Pierrepont'), ('PRPNT', '')) |
1698
|
|
|
self.assertEqual(double_metaphone('Pike'), ('PK', '')) |
1699
|
|
|
self.assertEqual(double_metaphone('Pinkham'), ('PNKM', '')) |
1700
|
|
|
self.assertEqual(double_metaphone('Pitman'), ('PTMN', '')) |
1701
|
|
|
self.assertEqual(double_metaphone('Pitt'), ('PT', '')) |
1702
|
|
|
self.assertEqual(double_metaphone('Pitts'), ('PTS', '')) |
1703
|
|
|
self.assertEqual(double_metaphone('Plantagenet'), |
1704
|
|
|
('PLNTJNT', 'PLNTKNT')) |
1705
|
|
|
self.assertEqual(double_metaphone('Platt'), ('PLT', '')) |
1706
|
|
|
self.assertEqual(double_metaphone('Platts'), ('PLTS', '')) |
1707
|
|
|
self.assertEqual(double_metaphone('Pleis'), ('PLS', '')) |
1708
|
|
|
self.assertEqual(double_metaphone('Pleiss'), ('PLS', '')) |
1709
|
|
|
self.assertEqual(double_metaphone('Plisko'), ('PLSK', '')) |
1710
|
|
|
self.assertEqual(double_metaphone('Pliskovitch'), ('PLSKFX', '')) |
1711
|
|
|
self.assertEqual(double_metaphone('Plum'), ('PLM', '')) |
1712
|
|
|
self.assertEqual(double_metaphone('Plume'), ('PLM', '')) |
1713
|
|
|
self.assertEqual(double_metaphone('Poitou'), ('PT', '')) |
1714
|
|
|
self.assertEqual(double_metaphone('Pomeroy'), ('PMR', '')) |
1715
|
|
|
self.assertEqual(double_metaphone('Poretiers'), ('PRTRS', '')) |
1716
|
|
|
self.assertEqual(double_metaphone('Pote'), ('PT', '')) |
1717
|
|
|
self.assertEqual(double_metaphone('Potter'), ('PTR', '')) |
1718
|
|
|
self.assertEqual(double_metaphone('Potts'), ('PTS', '')) |
1719
|
|
|
self.assertEqual(double_metaphone('Powell'), ('PL', '')) |
1720
|
|
|
self.assertEqual(double_metaphone('Pratt'), ('PRT', '')) |
1721
|
|
|
self.assertEqual(double_metaphone('Presbury'), ('PRSPR', '')) |
1722
|
|
|
self.assertEqual(double_metaphone('Priest'), ('PRST', '')) |
1723
|
|
|
self.assertEqual(double_metaphone('Prindle'), ('PRNTL', '')) |
1724
|
|
|
self.assertEqual(double_metaphone('Prior'), ('PRR', '')) |
1725
|
|
|
self.assertEqual(double_metaphone('Profumo'), ('PRFM', '')) |
1726
|
|
|
self.assertEqual(double_metaphone('Purdy'), ('PRT', '')) |
1727
|
|
|
self.assertEqual(double_metaphone('Purefoy'), ('PRF', '')) |
1728
|
|
|
self.assertEqual(double_metaphone('Pury'), ('PR', '')) |
1729
|
|
|
self.assertEqual(double_metaphone('Quinter'), ('KNTR', '')) |
1730
|
|
|
self.assertEqual(double_metaphone('Rachel'), ('RXL', 'RKL')) |
1731
|
|
|
self.assertEqual(double_metaphone('Rand'), ('RNT', '')) |
1732
|
|
|
self.assertEqual(double_metaphone('Rankin'), ('RNKN', '')) |
1733
|
|
|
self.assertEqual(double_metaphone('Ravenscroft'), ('RFNSKFT', '')) |
1734
|
|
|
self.assertEqual(double_metaphone('Raynsford'), ('RNSFRT', '')) |
1735
|
|
|
self.assertEqual(double_metaphone('Reakirt'), ('RKRT', '')) |
1736
|
|
|
self.assertEqual(double_metaphone('Reaves'), ('RFS', '')) |
1737
|
|
|
self.assertEqual(double_metaphone('Reeves'), ('RFS', '')) |
1738
|
|
|
self.assertEqual(double_metaphone('Reichert'), ('RXRT', 'RKRT')) |
1739
|
|
|
self.assertEqual(double_metaphone('Remmele'), ('RML', '')) |
1740
|
|
|
self.assertEqual(double_metaphone('Reynolds'), ('RNLTS', '')) |
1741
|
|
|
self.assertEqual(double_metaphone('Rhodes'), ('RTS', '')) |
1742
|
|
|
self.assertEqual(double_metaphone('Richards'), ('RXRTS', 'RKRTS')) |
1743
|
|
|
self.assertEqual(double_metaphone('Richardson'), ('RXRTSN', 'RKRTSN')) |
1744
|
|
|
self.assertEqual(double_metaphone('Ring'), ('RNK', '')) |
1745
|
|
|
self.assertEqual(double_metaphone('Roberts'), ('RPRTS', '')) |
1746
|
|
|
self.assertEqual(double_metaphone('Robertson'), ('RPRTSN', '')) |
1747
|
|
|
self.assertEqual(double_metaphone('Robson'), ('RPSN', '')) |
1748
|
|
|
self.assertEqual(double_metaphone('Rodie'), ('RT', '')) |
1749
|
|
|
self.assertEqual(double_metaphone('Rody'), ('RT', '')) |
1750
|
|
|
self.assertEqual(double_metaphone('Rogers'), ('RKRS', 'RJRS')) |
1751
|
|
|
self.assertEqual(double_metaphone('Ross'), ('RS', '')) |
1752
|
|
|
self.assertEqual(double_metaphone('Rosslevin'), ('RSLFN', '')) |
1753
|
|
|
self.assertEqual(double_metaphone('Rowland'), ('RLNT', '')) |
1754
|
|
|
self.assertEqual(double_metaphone('Ruehl'), ('RL', '')) |
1755
|
|
|
self.assertEqual(double_metaphone('Russell'), ('RSL', '')) |
1756
|
|
|
self.assertEqual(double_metaphone('Ruth'), ('R0', 'RT')) |
1757
|
|
|
self.assertEqual(double_metaphone('Ryan'), ('RN', '')) |
1758
|
|
|
self.assertEqual(double_metaphone('Rysse'), ('RS', '')) |
1759
|
|
|
self.assertEqual(double_metaphone('Sadler'), ('STLR', '')) |
1760
|
|
|
self.assertEqual(double_metaphone('Salmon'), ('SLMN', '')) |
1761
|
|
|
self.assertEqual(double_metaphone('Salter'), ('SLTR', '')) |
1762
|
|
|
self.assertEqual(double_metaphone('Salvatore'), ('SLFTR', '')) |
1763
|
|
|
self.assertEqual(double_metaphone('Sanders'), ('SNTRS', '')) |
1764
|
|
|
self.assertEqual(double_metaphone('Sands'), ('SNTS', '')) |
1765
|
|
|
self.assertEqual(double_metaphone('Sanford'), ('SNFRT', '')) |
1766
|
|
|
self.assertEqual(double_metaphone('Sanger'), ('SNKR', 'SNJR')) |
1767
|
|
|
self.assertEqual(double_metaphone('Sargent'), ('SRJNT', 'SRKNT')) |
1768
|
|
|
self.assertEqual(double_metaphone('Saunders'), ('SNTRS', '')) |
1769
|
|
|
self.assertEqual(double_metaphone('Schilling'), ('XLNK', '')) |
1770
|
|
|
self.assertEqual(double_metaphone('Schlegel'), ('XLKL', 'SLKL')) |
1771
|
|
|
self.assertEqual(double_metaphone('Scott'), ('SKT', '')) |
1772
|
|
|
self.assertEqual(double_metaphone('Sears'), ('SRS', '')) |
1773
|
|
|
self.assertEqual(double_metaphone('Segersall'), ('SJRSL', 'SKRSL')) |
1774
|
|
|
self.assertEqual(double_metaphone('Senecal'), ('SNKL', '')) |
1775
|
|
|
self.assertEqual(double_metaphone('Sergeaux'), ('SRJ', 'SRK')) |
1776
|
|
|
self.assertEqual(double_metaphone('Severance'), ('SFRNS', '')) |
1777
|
|
|
self.assertEqual(double_metaphone('Sharp'), ('XRP', '')) |
1778
|
|
|
self.assertEqual(double_metaphone('Sharpe'), ('XRP', '')) |
1779
|
|
|
self.assertEqual(double_metaphone('Sharply'), ('XRPL', '')) |
1780
|
|
|
self.assertEqual(double_metaphone('Shatswell'), ('XTSL', '')) |
1781
|
|
|
self.assertEqual(double_metaphone('Shattack'), ('XTK', '')) |
1782
|
|
|
self.assertEqual(double_metaphone('Shattock'), ('XTK', '')) |
1783
|
|
|
self.assertEqual(double_metaphone('Shattuck'), ('XTK', '')) |
1784
|
|
|
self.assertEqual(double_metaphone('Shaw'), ('X', 'XF')) |
1785
|
|
|
self.assertEqual(double_metaphone('Sheldon'), ('XLTN', '')) |
1786
|
|
|
self.assertEqual(double_metaphone('Sherman'), ('XRMN', '')) |
1787
|
|
|
self.assertEqual(double_metaphone('Shinn'), ('XN', '')) |
1788
|
|
|
self.assertEqual(double_metaphone('Shirford'), ('XRFRT', '')) |
1789
|
|
|
self.assertEqual(double_metaphone('Shirley'), ('XRL', '')) |
1790
|
|
|
self.assertEqual(double_metaphone('Shively'), ('XFL', '')) |
1791
|
|
|
self.assertEqual(double_metaphone('Shoemaker'), ('XMKR', '')) |
1792
|
|
|
self.assertEqual(double_metaphone('Short'), ('XRT', '')) |
1793
|
|
|
self.assertEqual(double_metaphone('Shotwell'), ('XTL', '')) |
1794
|
|
|
self.assertEqual(double_metaphone('Shute'), ('XT', '')) |
1795
|
|
|
self.assertEqual(double_metaphone('Sibley'), ('SPL', '')) |
1796
|
|
|
self.assertEqual(double_metaphone('Silver'), ('SLFR', '')) |
1797
|
|
|
self.assertEqual(double_metaphone('Simes'), ('SMS', '')) |
1798
|
|
|
self.assertEqual(double_metaphone('Sinken'), ('SNKN', '')) |
1799
|
|
|
self.assertEqual(double_metaphone('Sinn'), ('SN', '')) |
1800
|
|
|
self.assertEqual(double_metaphone('Skelton'), ('SKLTN', '')) |
1801
|
|
|
self.assertEqual(double_metaphone('Skiffe'), ('SKF', '')) |
1802
|
|
|
self.assertEqual(double_metaphone('Skotkonung'), ('SKTKNNK', '')) |
1803
|
|
|
self.assertEqual(double_metaphone('Slade'), ('SLT', 'XLT')) |
1804
|
|
|
self.assertEqual(double_metaphone('Slye'), ('SL', 'XL')) |
1805
|
|
|
self.assertEqual(double_metaphone('Smedley'), ('SMTL', 'XMTL')) |
1806
|
|
|
self.assertEqual(double_metaphone('Smith'), ('SM0', 'XMT')) |
1807
|
|
|
self.assertEqual(double_metaphone('Snow'), ('SN', 'XNF')) |
1808
|
|
|
self.assertEqual(double_metaphone('Soole'), ('SL', '')) |
1809
|
|
|
self.assertEqual(double_metaphone('Soule'), ('SL', '')) |
1810
|
|
|
self.assertEqual(double_metaphone('Southworth'), ('S0R0', 'STRT')) |
1811
|
|
|
self.assertEqual(double_metaphone('Sowles'), ('SLS', '')) |
1812
|
|
|
self.assertEqual(double_metaphone('Spalding'), ('SPLTNK', '')) |
1813
|
|
|
self.assertEqual(double_metaphone('Spark'), ('SPRK', '')) |
1814
|
|
|
self.assertEqual(double_metaphone('Spencer'), ('SPNSR', '')) |
1815
|
|
|
self.assertEqual(double_metaphone('Sperry'), ('SPR', '')) |
1816
|
|
|
self.assertEqual(double_metaphone('Spofford'), ('SPFRT', '')) |
1817
|
|
|
self.assertEqual(double_metaphone('Spooner'), ('SPNR', '')) |
1818
|
|
|
self.assertEqual(double_metaphone('Sprague'), ('SPRK', '')) |
1819
|
|
|
self.assertEqual(double_metaphone('Springer'), ('SPRNKR', 'SPRNJR')) |
1820
|
|
|
self.assertEqual(double_metaphone('St. Clair'), ('STKLR', '')) |
1821
|
|
|
self.assertEqual(double_metaphone('St. Claire'), ('STKLR', '')) |
1822
|
|
|
self.assertEqual(double_metaphone('St. Leger'), ('STLJR', 'STLKR')) |
1823
|
|
|
self.assertEqual(double_metaphone('St. Omer'), ('STMR', '')) |
1824
|
|
|
self.assertEqual(double_metaphone('Stafferton'), ('STFRTN', '')) |
1825
|
|
|
self.assertEqual(double_metaphone('Stafford'), ('STFRT', '')) |
1826
|
|
|
self.assertEqual(double_metaphone('Stalham'), ('STLM', '')) |
1827
|
|
|
self.assertEqual(double_metaphone('Stanford'), ('STNFRT', '')) |
1828
|
|
|
self.assertEqual(double_metaphone('Stanton'), ('STNTN', '')) |
1829
|
|
|
self.assertEqual(double_metaphone('Star'), ('STR', '')) |
1830
|
|
|
self.assertEqual(double_metaphone('Starbuck'), ('STRPK', '')) |
1831
|
|
|
self.assertEqual(double_metaphone('Starkey'), ('STRK', '')) |
1832
|
|
|
self.assertEqual(double_metaphone('Starkweather'), |
1833
|
|
|
('STRK0R', 'STRKTR')) |
1834
|
|
|
self.assertEqual(double_metaphone('Stearns'), ('STRNS', '')) |
1835
|
|
|
self.assertEqual(double_metaphone('Stebbins'), ('STPNS', '')) |
1836
|
|
|
self.assertEqual(double_metaphone('Steele'), ('STL', '')) |
1837
|
|
|
self.assertEqual(double_metaphone('Stephenson'), ('STFNSN', '')) |
1838
|
|
|
self.assertEqual(double_metaphone('Stevens'), ('STFNS', '')) |
1839
|
|
|
self.assertEqual(double_metaphone('Stoddard'), ('STTRT', '')) |
1840
|
|
|
self.assertEqual(double_metaphone('Stodder'), ('STTR', '')) |
1841
|
|
|
self.assertEqual(double_metaphone('Stone'), ('STN', '')) |
1842
|
|
|
self.assertEqual(double_metaphone('Storey'), ('STR', '')) |
1843
|
|
|
self.assertEqual(double_metaphone('Storrada'), ('STRT', '')) |
1844
|
|
|
self.assertEqual(double_metaphone('Story'), ('STR', '')) |
1845
|
|
|
self.assertEqual(double_metaphone('Stoughton'), ('STFTN', '')) |
1846
|
|
|
self.assertEqual(double_metaphone('Stout'), ('STT', '')) |
1847
|
|
|
self.assertEqual(double_metaphone('Stow'), ('ST', 'STF')) |
1848
|
|
|
self.assertEqual(double_metaphone('Strong'), ('STRNK', '')) |
1849
|
|
|
self.assertEqual(double_metaphone('Strutt'), ('STRT', '')) |
1850
|
|
|
self.assertEqual(double_metaphone('Stryker'), ('STRKR', '')) |
1851
|
|
|
self.assertEqual(double_metaphone('Stuckeley'), ('STKL', '')) |
1852
|
|
|
self.assertEqual(double_metaphone('Sturges'), ('STRJS', 'STRKS')) |
1853
|
|
|
self.assertEqual(double_metaphone('Sturgess'), ('STRJS', 'STRKS')) |
1854
|
|
|
self.assertEqual(double_metaphone('Sturgis'), ('STRJS', 'STRKS')) |
1855
|
|
|
self.assertEqual(double_metaphone('Suevain'), ('SFN', '')) |
1856
|
|
|
self.assertEqual(double_metaphone('Sulyard'), ('SLRT', '')) |
1857
|
|
|
self.assertEqual(double_metaphone('Sutton'), ('STN', '')) |
1858
|
|
|
self.assertEqual(double_metaphone('Swain'), ('SN', 'XN')) |
1859
|
|
|
self.assertEqual(double_metaphone('Swayne'), ('SN', 'XN')) |
1860
|
|
|
self.assertEqual(double_metaphone('Swayze'), ('SS', 'XTS')) |
1861
|
|
|
self.assertEqual(double_metaphone('Swift'), ('SFT', 'XFT')) |
1862
|
|
|
self.assertEqual(double_metaphone('Taber'), ('TPR', '')) |
1863
|
|
|
self.assertEqual(double_metaphone('Talcott'), ('TLKT', '')) |
1864
|
|
|
self.assertEqual(double_metaphone('Tarne'), ('TRN', '')) |
1865
|
|
|
self.assertEqual(double_metaphone('Tatum'), ('TTM', '')) |
1866
|
|
|
self.assertEqual(double_metaphone('Taverner'), ('TFRNR', '')) |
1867
|
|
|
self.assertEqual(double_metaphone('Taylor'), ('TLR', '')) |
1868
|
|
|
self.assertEqual(double_metaphone('Tenney'), ('TN', '')) |
1869
|
|
|
self.assertEqual(double_metaphone('Thayer'), ('0R', 'TR')) |
1870
|
|
|
self.assertEqual(double_metaphone('Thember'), ('0MPR', 'TMPR')) |
1871
|
|
|
self.assertEqual(double_metaphone('Thomas'), ('TMS', '')) |
1872
|
|
|
self.assertEqual(double_metaphone('Thompson'), ('TMPSN', '')) |
1873
|
|
|
self.assertEqual(double_metaphone('Thorne'), ('0RN', 'TRN')) |
1874
|
|
|
self.assertEqual(double_metaphone('Thornycraft'), |
1875
|
|
|
('0RNKRFT', 'TRNKRFT')) |
1876
|
|
|
self.assertEqual(double_metaphone('Threlkeld'), ('0RLKLT', 'TRLKLT')) |
1877
|
|
|
self.assertEqual(double_metaphone('Throckmorton'), |
1878
|
|
|
('0RKMRTN', 'TRKMRTN')) |
1879
|
|
|
self.assertEqual(double_metaphone('Thwaits'), ('0TS', 'TTS')) |
1880
|
|
|
self.assertEqual(double_metaphone('Tibbetts'), ('TPTS', '')) |
1881
|
|
|
self.assertEqual(double_metaphone('Tidd'), ('TT', '')) |
1882
|
|
|
self.assertEqual(double_metaphone('Tierney'), ('TRN', '')) |
1883
|
|
|
self.assertEqual(double_metaphone('Tilley'), ('TL', '')) |
1884
|
|
|
self.assertEqual(double_metaphone('Tillieres'), ('TLRS', '')) |
1885
|
|
|
self.assertEqual(double_metaphone('Tilly'), ('TL', '')) |
1886
|
|
|
self.assertEqual(double_metaphone('Tisdale'), ('TSTL', '')) |
1887
|
|
|
self.assertEqual(double_metaphone('Titus'), ('TTS', '')) |
1888
|
|
|
self.assertEqual(double_metaphone('Tobey'), ('TP', '')) |
1889
|
|
|
self.assertEqual(double_metaphone('Tooker'), ('TKR', '')) |
1890
|
|
|
self.assertEqual(double_metaphone('Towle'), ('TL', '')) |
1891
|
|
|
self.assertEqual(double_metaphone('Towne'), ('TN', '')) |
1892
|
|
|
self.assertEqual(double_metaphone('Townsend'), ('TNSNT', '')) |
1893
|
|
|
self.assertEqual(double_metaphone('Treadway'), ('TRT', '')) |
1894
|
|
|
self.assertEqual(double_metaphone('Trelawney'), ('TRLN', '')) |
1895
|
|
|
self.assertEqual(double_metaphone('Trinder'), ('TRNTR', '')) |
1896
|
|
|
self.assertEqual(double_metaphone('Tripp'), ('TRP', '')) |
1897
|
|
|
self.assertEqual(double_metaphone('Trippe'), ('TRP', '')) |
1898
|
|
|
self.assertEqual(double_metaphone('Trott'), ('TRT', '')) |
1899
|
|
|
self.assertEqual(double_metaphone('True'), ('TR', '')) |
1900
|
|
|
self.assertEqual(double_metaphone('Trussebut'), ('TRSPT', '')) |
1901
|
|
|
self.assertEqual(double_metaphone('Tucker'), ('TKR', '')) |
1902
|
|
|
self.assertEqual(double_metaphone('Turgeon'), ('TRJN', 'TRKN')) |
1903
|
|
|
self.assertEqual(double_metaphone('Turner'), ('TRNR', '')) |
1904
|
|
|
self.assertEqual(double_metaphone('Tuttle'), ('TTL', '')) |
1905
|
|
|
self.assertEqual(double_metaphone('Tyler'), ('TLR', '')) |
1906
|
|
|
self.assertEqual(double_metaphone('Tylle'), ('TL', '')) |
1907
|
|
|
self.assertEqual(double_metaphone('Tyrrel'), ('TRL', '')) |
1908
|
|
|
self.assertEqual(double_metaphone('Ua Tuathail'), ('AT0L', 'ATTL')) |
1909
|
|
|
self.assertEqual(double_metaphone('Ulrich'), ('ALRX', 'ALRK')) |
1910
|
|
|
self.assertEqual(double_metaphone('Underhill'), ('ANTRL', '')) |
1911
|
|
|
self.assertEqual(double_metaphone('Underwood'), ('ANTRT', '')) |
1912
|
|
|
self.assertEqual(double_metaphone('Unknown'), ('ANKNN', '')) |
1913
|
|
|
self.assertEqual(double_metaphone('Valentine'), ('FLNTN', '')) |
1914
|
|
|
self.assertEqual(double_metaphone('Van Egmond'), ('FNKMNT', '')) |
1915
|
|
|
self.assertEqual(double_metaphone('Van der Beek'), ('FNTRPK', '')) |
1916
|
|
|
self.assertEqual(double_metaphone('Vaughan'), ('FKN', '')) |
1917
|
|
|
self.assertEqual(double_metaphone('Vermenlen'), ('FRMNLN', '')) |
1918
|
|
|
self.assertEqual(double_metaphone('Vincent'), ('FNSNT', '')) |
1919
|
|
|
self.assertEqual(double_metaphone('Volentine'), ('FLNTN', '')) |
1920
|
|
|
self.assertEqual(double_metaphone('Wagner'), ('AKNR', 'FKNR')) |
1921
|
|
|
self.assertEqual(double_metaphone('Waite'), ('AT', 'FT')) |
1922
|
|
|
self.assertEqual(double_metaphone('Walker'), ('ALKR', 'FLKR')) |
1923
|
|
|
self.assertEqual(double_metaphone('Walter'), ('ALTR', 'FLTR')) |
1924
|
|
|
self.assertEqual(double_metaphone('Wandell'), ('ANTL', 'FNTL')) |
1925
|
|
|
self.assertEqual(double_metaphone('Wandesford'), |
1926
|
|
|
('ANTSFRT', 'FNTSFRT')) |
1927
|
|
|
self.assertEqual(double_metaphone('Warbleton'), ('ARPLTN', 'FRPLTN')) |
1928
|
|
|
self.assertEqual(double_metaphone('Ward'), ('ART', 'FRT')) |
1929
|
|
|
self.assertEqual(double_metaphone('Warde'), ('ART', 'FRT')) |
1930
|
|
|
self.assertEqual(double_metaphone('Ware'), ('AR', 'FR')) |
1931
|
|
|
self.assertEqual(double_metaphone('Wareham'), ('ARHM', 'FRHM')) |
1932
|
|
|
self.assertEqual(double_metaphone('Warner'), ('ARNR', 'FRNR')) |
1933
|
|
|
self.assertEqual(double_metaphone('Warren'), ('ARN', 'FRN')) |
1934
|
|
|
self.assertEqual(double_metaphone('Washburne'), ('AXPRN', 'FXPRN')) |
1935
|
|
|
self.assertEqual(double_metaphone('Waterbury'), ('ATRPR', 'FTRPR')) |
1936
|
|
|
self.assertEqual(double_metaphone('Watson'), ('ATSN', 'FTSN')) |
1937
|
|
|
self.assertEqual(double_metaphone('WatsonEllithorpe'), |
1938
|
|
|
('ATSNL0RP', 'FTSNLTRP')) |
1939
|
|
|
self.assertEqual(double_metaphone('Watts'), ('ATS', 'FTS')) |
1940
|
|
|
self.assertEqual(double_metaphone('Wayne'), ('AN', 'FN')) |
1941
|
|
|
self.assertEqual(double_metaphone('Webb'), ('AP', 'FP')) |
1942
|
|
|
self.assertEqual(double_metaphone('Weber'), ('APR', 'FPR')) |
1943
|
|
|
self.assertEqual(double_metaphone('Webster'), ('APSTR', 'FPSTR')) |
1944
|
|
|
self.assertEqual(double_metaphone('Weed'), ('AT', 'FT')) |
1945
|
|
|
self.assertEqual(double_metaphone('Weeks'), ('AKS', 'FKS')) |
1946
|
|
|
self.assertEqual(double_metaphone('Wells'), ('ALS', 'FLS')) |
1947
|
|
|
self.assertEqual(double_metaphone('Wenzell'), ('ANSL', 'FNTSL')) |
1948
|
|
|
self.assertEqual(double_metaphone('West'), ('AST', 'FST')) |
1949
|
|
|
self.assertEqual(double_metaphone('Westbury'), ('ASTPR', 'FSTPR')) |
1950
|
|
|
self.assertEqual(double_metaphone('Whatlocke'), ('ATLK', '')) |
1951
|
|
|
self.assertEqual(double_metaphone('Wheeler'), ('ALR', '')) |
1952
|
|
|
self.assertEqual(double_metaphone('Whiston'), ('ASTN', '')) |
1953
|
|
|
self.assertEqual(double_metaphone('White'), ('AT', '')) |
1954
|
|
|
self.assertEqual(double_metaphone('Whitman'), ('ATMN', '')) |
1955
|
|
|
self.assertEqual(double_metaphone('Whiton'), ('ATN', '')) |
1956
|
|
|
self.assertEqual(double_metaphone('Whitson'), ('ATSN', '')) |
1957
|
|
|
self.assertEqual(double_metaphone('Wickes'), ('AKS', 'FKS')) |
1958
|
|
|
self.assertEqual(double_metaphone('Wilbur'), ('ALPR', 'FLPR')) |
1959
|
|
|
self.assertEqual(double_metaphone('Wilcotes'), ('ALKTS', 'FLKTS')) |
1960
|
|
|
self.assertEqual(double_metaphone('Wilkinson'), ('ALKNSN', 'FLKNSN')) |
1961
|
|
|
self.assertEqual(double_metaphone('Willets'), ('ALTS', 'FLTS')) |
1962
|
|
|
self.assertEqual(double_metaphone('Willett'), ('ALT', 'FLT')) |
1963
|
|
|
self.assertEqual(double_metaphone('Willey'), ('AL', 'FL')) |
1964
|
|
|
self.assertEqual(double_metaphone('Williams'), ('ALMS', 'FLMS')) |
1965
|
|
|
self.assertEqual(double_metaphone('Williston'), ('ALSTN', 'FLSTN')) |
1966
|
|
|
self.assertEqual(double_metaphone('Wilson'), ('ALSN', 'FLSN')) |
1967
|
|
|
self.assertEqual(double_metaphone('Wimes'), ('AMS', 'FMS')) |
1968
|
|
|
self.assertEqual(double_metaphone('Winch'), ('ANX', 'FNK')) |
1969
|
|
|
self.assertEqual(double_metaphone('Winegar'), ('ANKR', 'FNKR')) |
1970
|
|
|
self.assertEqual(double_metaphone('Wing'), ('ANK', 'FNK')) |
1971
|
|
|
self.assertEqual(double_metaphone('Winsley'), ('ANSL', 'FNSL')) |
1972
|
|
|
self.assertEqual(double_metaphone('Winslow'), ('ANSL', 'FNSLF')) |
1973
|
|
|
self.assertEqual(double_metaphone('Winthrop'), ('AN0RP', 'FNTRP')) |
1974
|
|
|
self.assertEqual(double_metaphone('Wise'), ('AS', 'FS')) |
1975
|
|
|
self.assertEqual(double_metaphone('Wood'), ('AT', 'FT')) |
1976
|
|
|
self.assertEqual(double_metaphone('Woodbridge'), ('ATPRJ', 'FTPRJ')) |
1977
|
|
|
self.assertEqual(double_metaphone('Woodward'), ('ATRT', 'FTRT')) |
1978
|
|
|
self.assertEqual(double_metaphone('Wooley'), ('AL', 'FL')) |
1979
|
|
|
self.assertEqual(double_metaphone('Woolley'), ('AL', 'FL')) |
1980
|
|
|
self.assertEqual(double_metaphone('Worth'), ('AR0', 'FRT')) |
1981
|
|
|
self.assertEqual(double_metaphone('Worthen'), ('AR0N', 'FRTN')) |
1982
|
|
|
self.assertEqual(double_metaphone('Worthley'), ('AR0L', 'FRTL')) |
1983
|
|
|
self.assertEqual(double_metaphone('Wright'), ('RT', '')) |
1984
|
|
|
self.assertEqual(double_metaphone('Wyer'), ('AR', 'FR')) |
1985
|
|
|
self.assertEqual(double_metaphone('Wyere'), ('AR', 'FR')) |
1986
|
|
|
self.assertEqual(double_metaphone('Wynkoop'), ('ANKP', 'FNKP')) |
1987
|
|
|
self.assertEqual(double_metaphone('Yarnall'), ('ARNL', '')) |
1988
|
|
|
self.assertEqual(double_metaphone('Yeoman'), ('AMN', '')) |
1989
|
|
|
self.assertEqual(double_metaphone('Yorke'), ('ARK', '')) |
1990
|
|
|
self.assertEqual(double_metaphone('Young'), ('ANK', '')) |
1991
|
|
|
self.assertEqual(double_metaphone('ab Wennonwen'), ('APNNN', '')) |
1992
|
|
|
self.assertEqual(double_metaphone('ap Llewellyn'), ('APLLN', '')) |
1993
|
|
|
self.assertEqual(double_metaphone('ap Lorwerth'), ('APLRR0', 'APLRRT')) |
1994
|
|
|
self.assertEqual(double_metaphone('d\'Angouleme'), ('TNKLM', '')) |
1995
|
|
|
self.assertEqual(double_metaphone('de Audeham'), ('TTHM', '')) |
1996
|
|
|
self.assertEqual(double_metaphone('de Bavant'), ('TPFNT', '')) |
1997
|
|
|
self.assertEqual(double_metaphone('de Beauchamp'), ('TPXMP', 'TPKMP')) |
1998
|
|
|
self.assertEqual(double_metaphone('de Beaumont'), ('TPMNT', '')) |
1999
|
|
|
self.assertEqual(double_metaphone('de Bolbec'), ('TPLPK', '')) |
2000
|
|
|
self.assertEqual(double_metaphone('de Braiose'), ('TPRS', '')) |
2001
|
|
|
self.assertEqual(double_metaphone('de Braose'), ('TPRS', '')) |
2002
|
|
|
self.assertEqual(double_metaphone('de Briwere'), ('TPRR', '')) |
2003
|
|
|
self.assertEqual(double_metaphone('de Cantelou'), ('TKNTL', '')) |
2004
|
|
|
self.assertEqual(double_metaphone('de Cherelton'), |
2005
|
|
|
('TXRLTN', 'TKRLTN')) |
2006
|
|
|
self.assertEqual(double_metaphone('de Cherleton'), |
2007
|
|
|
('TXRLTN', 'TKRLTN')) |
2008
|
|
|
self.assertEqual(double_metaphone('de Clare'), ('TKLR', '')) |
2009
|
|
|
self.assertEqual(double_metaphone('de Claremont'), ('TKLRMNT', '')) |
2010
|
|
|
self.assertEqual(double_metaphone('de Clifford'), ('TKLFRT', '')) |
2011
|
|
|
self.assertEqual(double_metaphone('de Colville'), ('TKLFL', '')) |
2012
|
|
|
self.assertEqual(double_metaphone('de Courtenay'), ('TKRTN', '')) |
2013
|
|
|
self.assertEqual(double_metaphone('de Fauconberg'), ('TFKNPRK', '')) |
2014
|
|
|
self.assertEqual(double_metaphone('de Forest'), ('TFRST', '')) |
2015
|
|
|
self.assertEqual(double_metaphone('de Gai'), ('TK', '')) |
2016
|
|
|
self.assertEqual(double_metaphone('de Grey'), ('TKR', '')) |
2017
|
|
|
self.assertEqual(double_metaphone('de Guernons'), ('TKRNNS', '')) |
2018
|
|
|
self.assertEqual(double_metaphone('de Haia'), ('T', '')) |
2019
|
|
|
self.assertEqual(double_metaphone('de Harcourt'), ('TRKRT', '')) |
2020
|
|
|
self.assertEqual(double_metaphone('de Hastings'), ('TSTNKS', '')) |
2021
|
|
|
self.assertEqual(double_metaphone('de Hoke'), ('TK', '')) |
2022
|
|
|
self.assertEqual(double_metaphone('de Hooch'), ('TK', '')) |
2023
|
|
|
self.assertEqual(double_metaphone('de Hugelville'), ('TJLFL', 'TKLFL')) |
2024
|
|
|
self.assertEqual(double_metaphone('de Huntingdon'), ('TNTNKTN', '')) |
2025
|
|
|
self.assertEqual(double_metaphone('de Insula'), ('TNSL', '')) |
2026
|
|
|
self.assertEqual(double_metaphone('de Keynes'), ('TKNS', '')) |
2027
|
|
|
self.assertEqual(double_metaphone('de Lacy'), ('TLS', '')) |
2028
|
|
|
self.assertEqual(double_metaphone('de Lexington'), ('TLKSNKTN', '')) |
2029
|
|
|
self.assertEqual(double_metaphone('de Lusignan'), ('TLSNN', 'TLSKNN')) |
2030
|
|
|
self.assertEqual(double_metaphone('de Manvers'), ('TMNFRS', '')) |
2031
|
|
|
self.assertEqual(double_metaphone('de Montagu'), ('TMNTK', '')) |
2032
|
|
|
self.assertEqual(double_metaphone('de Montault'), ('TMNTLT', '')) |
2033
|
|
|
self.assertEqual(double_metaphone('de Montfort'), ('TMNTFRT', '')) |
2034
|
|
|
self.assertEqual(double_metaphone('de Mortimer'), ('TMRTMR', '')) |
2035
|
|
|
self.assertEqual(double_metaphone('de Morville'), ('TMRFL', '')) |
2036
|
|
|
self.assertEqual(double_metaphone('de Morvois'), ('TMRF', 'TMRFS')) |
2037
|
|
|
self.assertEqual(double_metaphone('de Neufmarche'), |
2038
|
|
|
('TNFMRX', 'TNFMRK')) |
2039
|
|
|
self.assertEqual(double_metaphone('de Odingsells'), ('TTNKSLS', '')) |
2040
|
|
|
self.assertEqual(double_metaphone('de Odyngsells'), ('TTNKSLS', '')) |
2041
|
|
|
self.assertEqual(double_metaphone('de Percy'), ('TPRS', '')) |
2042
|
|
|
self.assertEqual(double_metaphone('de Pierrepont'), ('TPRPNT', '')) |
2043
|
|
|
self.assertEqual(double_metaphone('de Plessetis'), ('TPLSTS', '')) |
2044
|
|
|
self.assertEqual(double_metaphone('de Porhoet'), ('TPRT', '')) |
2045
|
|
|
self.assertEqual(double_metaphone('de Prouz'), ('TPRS', '')) |
2046
|
|
|
self.assertEqual(double_metaphone('de Quincy'), ('TKNS', '')) |
2047
|
|
|
self.assertEqual(double_metaphone('de Ripellis'), ('TRPLS', '')) |
2048
|
|
|
self.assertEqual(double_metaphone('de Ros'), ('TRS', '')) |
2049
|
|
|
self.assertEqual(double_metaphone('de Salisbury'), ('TSLSPR', '')) |
2050
|
|
|
self.assertEqual(double_metaphone('de Sanford'), ('TSNFRT', '')) |
2051
|
|
|
self.assertEqual(double_metaphone('de Somery'), ('TSMR', '')) |
2052
|
|
|
self.assertEqual(double_metaphone('de St. Hilary'), ('TSTLR', '')) |
2053
|
|
|
self.assertEqual(double_metaphone('de St. Liz'), ('TSTLS', '')) |
2054
|
|
|
self.assertEqual(double_metaphone('de Sutton'), ('TSTN', '')) |
2055
|
|
|
self.assertEqual(double_metaphone('de Toeni'), ('TTN', '')) |
2056
|
|
|
self.assertEqual(double_metaphone('de Tony'), ('TTN', '')) |
2057
|
|
|
self.assertEqual(double_metaphone('de Umfreville'), ('TMFRFL', '')) |
2058
|
|
|
self.assertEqual(double_metaphone('de Valognes'), ('TFLNS', 'TFLKNS')) |
2059
|
|
|
self.assertEqual(double_metaphone('de Vaux'), ('TF', '')) |
2060
|
|
|
self.assertEqual(double_metaphone('de Vere'), ('TFR', '')) |
2061
|
|
|
self.assertEqual(double_metaphone('de Vermandois'), |
2062
|
|
|
('TFRMNT', 'TFRMNTS')) |
2063
|
|
|
self.assertEqual(double_metaphone('de Vernon'), ('TFRNN', '')) |
2064
|
|
|
self.assertEqual(double_metaphone('de Vexin'), ('TFKSN', '')) |
2065
|
|
|
self.assertEqual(double_metaphone('de Vitre'), ('TFTR', '')) |
2066
|
|
|
self.assertEqual(double_metaphone('de Wandesford'), ('TNTSFRT', '')) |
2067
|
|
|
self.assertEqual(double_metaphone('de Warenne'), ('TRN', '')) |
2068
|
|
|
self.assertEqual(double_metaphone('de Westbury'), ('TSTPR', '')) |
2069
|
|
|
self.assertEqual(double_metaphone('di Saluzzo'), ('TSLS', 'TSLTS')) |
2070
|
|
|
self.assertEqual(double_metaphone('fitz Alan'), ('FTSLN', '')) |
2071
|
|
|
self.assertEqual(double_metaphone('fitz Geoffrey'), |
2072
|
|
|
('FTSJFR', 'FTSKFR')) |
2073
|
|
|
self.assertEqual(double_metaphone('fitz Herbert'), ('FTSRPRT', '')) |
2074
|
|
|
self.assertEqual(double_metaphone('fitz John'), ('FTSJN', '')) |
2075
|
|
|
self.assertEqual(double_metaphone('fitz Patrick'), ('FTSPTRK', '')) |
2076
|
|
|
self.assertEqual(double_metaphone('fitz Payn'), ('FTSPN', '')) |
2077
|
|
|
self.assertEqual(double_metaphone('fitz Piers'), ('FTSPRS', '')) |
2078
|
|
|
self.assertEqual(double_metaphone('fitz Randolph'), ('FTSRNTLF', '')) |
2079
|
|
|
self.assertEqual(double_metaphone('fitz Richard'), |
2080
|
|
|
('FTSRXRT', 'FTSRKRT')) |
2081
|
|
|
self.assertEqual(double_metaphone('fitz Robert'), ('FTSRPRT', '')) |
2082
|
|
|
self.assertEqual(double_metaphone('fitz Roy'), ('FTSR', '')) |
2083
|
|
|
self.assertEqual(double_metaphone('fitz Scrob'), ('FTSSKP', '')) |
2084
|
|
|
self.assertEqual(double_metaphone('fitz Walter'), ('FTSLTR', '')) |
2085
|
|
|
self.assertEqual(double_metaphone('fitz Warin'), ('FTSRN', '')) |
2086
|
|
|
self.assertEqual(double_metaphone('fitz Williams'), ('FTSLMS', '')) |
2087
|
|
|
self.assertEqual(double_metaphone('la Zouche'), ('LSX', 'LSK')) |
2088
|
|
|
self.assertEqual(double_metaphone('le Botiller'), ('LPTLR', '')) |
2089
|
|
|
self.assertEqual(double_metaphone('le Despenser'), ('LTSPNSR', '')) |
2090
|
|
|
self.assertEqual(double_metaphone('le deSpencer'), ('LTSPNSR', '')) |
2091
|
|
|
self.assertEqual(double_metaphone('of Allendale'), ('AFLNTL', '')) |
2092
|
|
|
self.assertEqual(double_metaphone('of Angouleme'), ('AFNKLM', '')) |
2093
|
|
|
self.assertEqual(double_metaphone('of Anjou'), ('AFNJ', '')) |
2094
|
|
|
self.assertEqual(double_metaphone('of Aquitaine'), ('AFKTN', '')) |
2095
|
|
|
self.assertEqual(double_metaphone('of Aumale'), ('AFML', '')) |
2096
|
|
|
self.assertEqual(double_metaphone('of Bavaria'), ('AFPFR', '')) |
2097
|
|
|
self.assertEqual(double_metaphone('of Boulogne'), ('AFPLN', 'AFPLKN')) |
2098
|
|
|
self.assertEqual(double_metaphone('of Brittany'), ('AFPRTN', '')) |
2099
|
|
|
self.assertEqual(double_metaphone('of Brittary'), ('AFPRTR', '')) |
2100
|
|
|
self.assertEqual(double_metaphone('of Castile'), ('AFKSTL', '')) |
2101
|
|
|
self.assertEqual(double_metaphone('of Chester'), ('AFXSTR', 'AFKSTR')) |
2102
|
|
|
self.assertEqual(double_metaphone('of Clermont'), ('AFKLRMNT', '')) |
2103
|
|
|
self.assertEqual(double_metaphone('of Cologne'), ('AFKLN', 'AFKLKN')) |
2104
|
|
|
self.assertEqual(double_metaphone('of Dinan'), ('AFTNN', '')) |
2105
|
|
|
self.assertEqual(double_metaphone('of Dunbar'), ('AFTNPR', '')) |
2106
|
|
|
self.assertEqual(double_metaphone('of England'), ('AFNKLNT', '')) |
2107
|
|
|
self.assertEqual(double_metaphone('of Essex'), ('AFSKS', '')) |
2108
|
|
|
self.assertEqual(double_metaphone('of Falaise'), ('AFFLS', '')) |
2109
|
|
|
self.assertEqual(double_metaphone('of Flanders'), ('AFFLNTRS', '')) |
2110
|
|
|
self.assertEqual(double_metaphone('of Galloway'), ('AFKL', '')) |
2111
|
|
|
self.assertEqual(double_metaphone('of Germany'), ('AFKRMN', 'AFJRMN')) |
2112
|
|
|
self.assertEqual(double_metaphone('of Gloucester'), ('AFKLSSTR', '')) |
2113
|
|
|
self.assertEqual(double_metaphone('of Heristal'), ('AFRSTL', '')) |
2114
|
|
|
self.assertEqual(double_metaphone('of Hungary'), ('AFNKR', '')) |
2115
|
|
|
self.assertEqual(double_metaphone('of Huntington'), ('AFNTNKTN', '')) |
2116
|
|
|
self.assertEqual(double_metaphone('of Kiev'), ('AFKF', '')) |
2117
|
|
|
self.assertEqual(double_metaphone('of Kuno'), ('AFKN', '')) |
2118
|
|
|
self.assertEqual(double_metaphone('of Landen'), ('AFLNTN', '')) |
2119
|
|
|
self.assertEqual(double_metaphone('of Laon'), ('AFLN', '')) |
2120
|
|
|
self.assertEqual(double_metaphone('of Leinster'), ('AFLNSTR', '')) |
2121
|
|
|
self.assertEqual(double_metaphone('of Lens'), ('AFLNS', '')) |
2122
|
|
|
self.assertEqual(double_metaphone('of Lorraine'), ('AFLRN', '')) |
2123
|
|
|
self.assertEqual(double_metaphone('of Louvain'), ('AFLFN', '')) |
2124
|
|
|
self.assertEqual(double_metaphone('of Mercia'), ('AFMRS', 'AFMRX')) |
2125
|
|
|
self.assertEqual(double_metaphone('of Metz'), ('AFMTS', '')) |
2126
|
|
|
self.assertEqual(double_metaphone('of Meulan'), ('AFMLN', '')) |
2127
|
|
|
self.assertEqual(double_metaphone('of Nass'), ('AFNS', '')) |
2128
|
|
|
self.assertEqual(double_metaphone('of Normandy'), ('AFNRMNT', '')) |
2129
|
|
|
self.assertEqual(double_metaphone('of Ohningen'), ('AFNNJN', 'AFNNKN')) |
2130
|
|
|
self.assertEqual(double_metaphone('of Orleans'), ('AFRLNS', '')) |
2131
|
|
|
self.assertEqual(double_metaphone('of Poitou'), ('AFPT', '')) |
2132
|
|
|
self.assertEqual(double_metaphone('of Polotzk'), ('AFPLTSK', '')) |
2133
|
|
|
self.assertEqual(double_metaphone('of Provence'), ('AFPRFNS', '')) |
2134
|
|
|
self.assertEqual(double_metaphone('of Ringelheim'), |
2135
|
|
|
('AFRNJLM', 'AFRNKLM')) |
2136
|
|
|
self.assertEqual(double_metaphone('of Salisbury'), ('AFSLSPR', '')) |
2137
|
|
|
self.assertEqual(double_metaphone('of Saxony'), ('AFSKSN', '')) |
2138
|
|
|
self.assertEqual(double_metaphone('of Scotland'), ('AFSKTLNT', '')) |
2139
|
|
|
self.assertEqual(double_metaphone('of Senlis'), ('AFSNLS', '')) |
2140
|
|
|
self.assertEqual(double_metaphone('of Stafford'), ('AFSTFRT', '')) |
2141
|
|
|
self.assertEqual(double_metaphone('of Swabia'), ('AFSP', '')) |
2142
|
|
|
self.assertEqual(double_metaphone('of Tongres'), ('AFTNKRS', '')) |
2143
|
|
|
self.assertEqual(double_metaphone('of the Tributes'), |
2144
|
|
|
('AF0TRPTS', 'AFTTRPTS')) |
2145
|
|
|
self.assertEqual(double_metaphone('unknown'), ('ANKNN', '')) |
2146
|
|
|
self.assertEqual(double_metaphone('van der Gouda'), ('FNTRKT', '')) |
2147
|
|
|
self.assertEqual(double_metaphone('von Adenbaugh'), ('FNTNP', '')) |
2148
|
|
|
self.assertEqual(double_metaphone('ARCHITure'), ('ARKTR', '')) |
2149
|
|
|
self.assertEqual(double_metaphone('Arnoff'), ('ARNF', '')) |
2150
|
|
|
self.assertEqual(double_metaphone('Arnow'), ('ARN', 'ARNF')) |
2151
|
|
|
self.assertEqual(double_metaphone('DANGER'), ('TNJR', 'TNKR')) |
2152
|
|
|
self.assertEqual(double_metaphone('Jankelowicz'), ('JNKLTS', 'ANKLFX')) |
2153
|
|
|
self.assertEqual(double_metaphone('MANGER'), ('MNJR', 'MNKR')) |
2154
|
|
|
self.assertEqual(double_metaphone('McClellan'), ('MKLLN', '')) |
2155
|
|
|
self.assertEqual(double_metaphone('McHugh'), ('MK', '')) |
2156
|
|
|
self.assertEqual(double_metaphone('McLaughlin'), ('MKLFLN', '')) |
2157
|
|
|
self.assertEqual(double_metaphone('ORCHEStra'), ('ARKSTR', '')) |
2158
|
|
|
self.assertEqual(double_metaphone('ORCHID'), ('ARKT', '')) |
2159
|
|
|
self.assertEqual(double_metaphone('Pierce'), ('PRS', '')) |
2160
|
|
|
self.assertEqual(double_metaphone('RANGER'), ('RNJR', 'RNKR')) |
2161
|
|
|
self.assertEqual(double_metaphone('Schlesinger'), ('XLSNKR', 'SLSNJR')) |
2162
|
|
|
self.assertEqual(double_metaphone('Uomo'), ('AM', '')) |
2163
|
|
|
self.assertEqual(double_metaphone('Vasserman'), ('FSRMN', '')) |
2164
|
|
|
self.assertEqual(double_metaphone('Wasserman'), ('ASRMN', 'FSRMN')) |
2165
|
|
|
self.assertEqual(double_metaphone('Womo'), ('AM', 'FM')) |
2166
|
|
|
self.assertEqual(double_metaphone('Yankelovich'), ('ANKLFX', 'ANKLFK')) |
2167
|
|
|
self.assertEqual(double_metaphone('accede'), ('AKST', '')) |
2168
|
|
|
self.assertEqual(double_metaphone('accident'), ('AKSTNT', '')) |
2169
|
|
|
self.assertEqual(double_metaphone('adelsheim'), ('ATLSM', '')) |
2170
|
|
|
self.assertEqual(double_metaphone('aged'), ('AJT', 'AKT')) |
2171
|
|
|
self.assertEqual(double_metaphone('ageless'), ('AJLS', 'AKLS')) |
2172
|
|
|
self.assertEqual(double_metaphone('agency'), ('AJNS', 'AKNS')) |
2173
|
|
|
self.assertEqual(double_metaphone('aghast'), ('AKST', '')) |
2174
|
|
|
self.assertEqual(double_metaphone('agio'), ('AJ', 'AK')) |
2175
|
|
|
self.assertEqual(double_metaphone('agrimony'), ('AKRMN', '')) |
2176
|
|
|
self.assertEqual(double_metaphone('album'), ('ALPM', '')) |
2177
|
|
|
self.assertEqual(double_metaphone('alcmene'), ('ALKMN', '')) |
2178
|
|
|
self.assertEqual(double_metaphone('alehouse'), ('ALHS', '')) |
2179
|
|
|
self.assertEqual(double_metaphone('antique'), ('ANTK', '')) |
2180
|
|
|
self.assertEqual(double_metaphone('artois'), ('ART', 'ARTS')) |
2181
|
|
|
self.assertEqual(double_metaphone('automation'), ('ATMXN', '')) |
2182
|
|
|
self.assertEqual(double_metaphone('bacchus'), ('PKS', '')) |
2183
|
|
|
self.assertEqual(double_metaphone('bacci'), ('PX', '')) |
2184
|
|
|
self.assertEqual(double_metaphone('bajador'), ('PJTR', 'PHTR')) |
2185
|
|
|
self.assertEqual(double_metaphone('bellocchio'), ('PLX', '')) |
2186
|
|
|
self.assertEqual(double_metaphone('bertucci'), ('PRTX', '')) |
2187
|
|
|
self.assertEqual(double_metaphone('biaggi'), ('PJ', 'PK')) |
2188
|
|
|
self.assertEqual(double_metaphone('bough'), ('P', '')) |
2189
|
|
|
self.assertEqual(double_metaphone('breaux'), ('PR', '')) |
2190
|
|
|
self.assertEqual(double_metaphone('broughton'), ('PRTN', '')) |
2191
|
|
|
self.assertEqual(double_metaphone('cabrillo'), ('KPRL', 'KPR')) |
2192
|
|
|
self.assertEqual(double_metaphone('caesar'), ('SSR', '')) |
2193
|
|
|
self.assertEqual(double_metaphone('cagney'), ('KKN', '')) |
2194
|
|
|
self.assertEqual(double_metaphone('campbell'), ('KMPL', '')) |
2195
|
|
|
self.assertEqual(double_metaphone('carlisle'), ('KRLL', '')) |
2196
|
|
|
self.assertEqual(double_metaphone('carlysle'), ('KRLL', '')) |
2197
|
|
|
self.assertEqual(double_metaphone('chemistry'), ('KMSTR', '')) |
2198
|
|
|
self.assertEqual(double_metaphone('chianti'), ('KNT', '')) |
2199
|
|
|
self.assertEqual(double_metaphone('chorus'), ('KRS', '')) |
2200
|
|
|
self.assertEqual(double_metaphone('cough'), ('KF', '')) |
2201
|
|
|
self.assertEqual(double_metaphone('czerny'), ('SRN', 'XRN')) |
2202
|
|
|
self.assertEqual(double_metaphone('deffenbacher'), ('TFNPKR', '')) |
2203
|
|
|
self.assertEqual(double_metaphone('dumb'), ('TM', '')) |
2204
|
|
|
self.assertEqual(double_metaphone('edgar'), ('ATKR', '')) |
2205
|
|
|
self.assertEqual(double_metaphone('edge'), ('AJ', '')) |
2206
|
|
|
self.assertEqual(double_metaphone('filipowicz'), ('FLPTS', 'FLPFX')) |
2207
|
|
|
self.assertEqual(double_metaphone('focaccia'), ('FKX', '')) |
2208
|
|
|
self.assertEqual(double_metaphone('gallegos'), ('KLKS', 'KKS')) |
2209
|
|
|
self.assertEqual(double_metaphone('gambrelli'), ('KMPRL', '')) |
2210
|
|
|
self.assertEqual(double_metaphone('geithain'), ('K0N', 'JTN')) |
2211
|
|
|
self.assertEqual(double_metaphone('ghiradelli'), ('JRTL', '')) |
2212
|
|
|
self.assertEqual(double_metaphone('ghislane'), ('JLN', '')) |
2213
|
|
|
self.assertEqual(double_metaphone('gough'), ('KF', '')) |
2214
|
|
|
self.assertEqual(double_metaphone('hartheim'), ('HR0M', 'HRTM')) |
2215
|
|
|
self.assertEqual(double_metaphone('heimsheim'), ('HMSM', '')) |
2216
|
|
|
self.assertEqual(double_metaphone('hochmeier'), ('HKMR', '')) |
2217
|
|
|
self.assertEqual(double_metaphone('hugh'), ('H', '')) |
2218
|
|
|
self.assertEqual(double_metaphone('hunger'), ('HNKR', 'HNJR')) |
2219
|
|
|
self.assertEqual(double_metaphone('hungry'), ('HNKR', '')) |
2220
|
|
|
self.assertEqual(double_metaphone('island'), ('ALNT', '')) |
2221
|
|
|
self.assertEqual(double_metaphone('isle'), ('AL', '')) |
2222
|
|
|
self.assertEqual(double_metaphone('jose'), ('HS', '')) |
2223
|
|
|
self.assertEqual(double_metaphone('laugh'), ('LF', '')) |
2224
|
|
|
self.assertEqual(double_metaphone('mac caffrey'), ('MKFR', '')) |
2225
|
|
|
self.assertEqual(double_metaphone('mac gregor'), ('MKRKR', '')) |
2226
|
|
|
self.assertEqual(double_metaphone('pegnitz'), ('PNTS', 'PKNTS')) |
2227
|
|
|
self.assertEqual(double_metaphone('piskowitz'), ('PSKTS', 'PSKFX')) |
2228
|
|
|
self.assertEqual(double_metaphone('queen'), ('KN', '')) |
2229
|
|
|
self.assertEqual(double_metaphone('raspberry'), ('RSPR', '')) |
2230
|
|
|
self.assertEqual(double_metaphone('resnais'), ('RSN', 'RSNS')) |
2231
|
|
|
self.assertEqual(double_metaphone('rogier'), ('RJ', 'RJR')) |
2232
|
|
|
self.assertEqual(double_metaphone('rough'), ('RF', '')) |
2233
|
|
|
self.assertEqual(double_metaphone('san jacinto'), ('SNHSNT', '')) |
2234
|
|
|
self.assertEqual(double_metaphone('schenker'), ('XNKR', 'SKNKR')) |
2235
|
|
|
self.assertEqual(double_metaphone('schermerhorn'), |
2236
|
|
|
('XRMRRN', 'SKRMRRN')) |
2237
|
|
|
self.assertEqual(double_metaphone('schmidt'), ('XMT', 'SMT')) |
2238
|
|
|
self.assertEqual(double_metaphone('schneider'), ('XNTR', 'SNTR')) |
2239
|
|
|
self.assertEqual(double_metaphone('school'), ('SKL', '')) |
2240
|
|
|
self.assertEqual(double_metaphone('schooner'), ('SKNR', '')) |
2241
|
|
|
self.assertEqual(double_metaphone('schrozberg'), ('XRSPRK', 'SRSPRK')) |
2242
|
|
|
self.assertEqual(double_metaphone('schulman'), ('XLMN', '')) |
2243
|
|
|
self.assertEqual(double_metaphone('schwabach'), ('XPK', 'XFPK')) |
2244
|
|
|
self.assertEqual(double_metaphone('schwarzach'), ('XRSK', 'XFRTSK')) |
2245
|
|
|
self.assertEqual(double_metaphone('smith'), ('SM0', 'XMT')) |
2246
|
|
|
self.assertEqual(double_metaphone('snider'), ('SNTR', 'XNTR')) |
2247
|
|
|
self.assertEqual(double_metaphone('succeed'), ('SKST', '')) |
2248
|
|
|
self.assertEqual(double_metaphone('sugarcane'), ('XKRKN', 'SKRKN')) |
2249
|
|
|
self.assertEqual(double_metaphone('svobodka'), ('SFPTK', '')) |
2250
|
|
|
self.assertEqual(double_metaphone('tagliaro'), ('TKLR', 'TLR')) |
2251
|
|
|
self.assertEqual(double_metaphone('thames'), ('TMS', '')) |
2252
|
|
|
self.assertEqual(double_metaphone('theilheim'), ('0LM', 'TLM')) |
2253
|
|
|
self.assertEqual(double_metaphone('thomas'), ('TMS', '')) |
2254
|
|
|
self.assertEqual(double_metaphone('thumb'), ('0M', 'TM')) |
2255
|
|
|
self.assertEqual(double_metaphone('tichner'), ('TXNR', 'TKNR')) |
2256
|
|
|
self.assertEqual(double_metaphone('tough'), ('TF', '')) |
2257
|
|
|
self.assertEqual(double_metaphone('umbrella'), ('AMPRL', '')) |
2258
|
|
|
self.assertEqual(double_metaphone('vilshofen'), ('FLXFN', '')) |
2259
|
|
|
self.assertEqual(double_metaphone('von schuller'), ('FNXLR', '')) |
2260
|
|
|
self.assertEqual(double_metaphone('wachtler'), ('AKTLR', 'FKTLR')) |
2261
|
|
|
self.assertEqual(double_metaphone('wechsler'), ('AKSLR', 'FKSLR')) |
2262
|
|
|
self.assertEqual(double_metaphone('weikersheim'), ('AKRSM', 'FKRSM')) |
2263
|
|
|
self.assertEqual(double_metaphone('zhao'), ('J', '')) |
2264
|
|
|
|
2265
|
|
|
def test_double_metaphone_surnames4(self): |
2266
|
|
|
"""Test abydos.phonetic.double_metaphone (surname data, 4-letter).""" |
2267
|
|
|
self.assertEqual(double_metaphone('', 4), ('', '')) |
2268
|
|
|
self.assertEqual(double_metaphone('ALLERTON', 4), ('ALRT', '')) |
2269
|
|
|
self.assertEqual(double_metaphone('Acton', 4), ('AKTN', '')) |
2270
|
|
|
self.assertEqual(double_metaphone('Adams', 4), ('ATMS', '')) |
2271
|
|
|
self.assertEqual(double_metaphone('Aggar', 4), ('AKR', '')) |
2272
|
|
|
self.assertEqual(double_metaphone('Ahl', 4), ('AL', '')) |
2273
|
|
|
self.assertEqual(double_metaphone('Aiken', 4), ('AKN', '')) |
2274
|
|
|
self.assertEqual(double_metaphone('Alan', 4), ('ALN', '')) |
2275
|
|
|
self.assertEqual(double_metaphone('Alcock', 4), ('ALKK', '')) |
2276
|
|
|
self.assertEqual(double_metaphone('Alden', 4), ('ALTN', '')) |
2277
|
|
|
self.assertEqual(double_metaphone('Aldham', 4), ('ALTM', '')) |
2278
|
|
|
self.assertEqual(double_metaphone('Allen', 4), ('ALN', '')) |
2279
|
|
|
self.assertEqual(double_metaphone('Allerton', 4), ('ALRT', '')) |
2280
|
|
|
self.assertEqual(double_metaphone('Alsop', 4), ('ALSP', '')) |
2281
|
|
|
self.assertEqual(double_metaphone('Alwein', 4), ('ALN', '')) |
2282
|
|
|
self.assertEqual(double_metaphone('Ambler', 4), ('AMPL', '')) |
2283
|
|
|
self.assertEqual(double_metaphone('Andevill', 4), ('ANTF', '')) |
2284
|
|
|
self.assertEqual(double_metaphone('Andrews', 4), ('ANTR', '')) |
2285
|
|
|
self.assertEqual(double_metaphone('Andreyco', 4), ('ANTR', '')) |
2286
|
|
|
self.assertEqual(double_metaphone('Andriesse', 4), ('ANTR', '')) |
2287
|
|
|
self.assertEqual(double_metaphone('Angier', 4), ('ANJ', 'ANJR')) |
2288
|
|
|
self.assertEqual(double_metaphone('Annabel', 4), ('ANPL', '')) |
2289
|
|
|
self.assertEqual(double_metaphone('Anne', 4), ('AN', '')) |
2290
|
|
|
self.assertEqual(double_metaphone('Anstye', 4), ('ANST', '')) |
2291
|
|
|
self.assertEqual(double_metaphone('Appling', 4), ('APLN', '')) |
2292
|
|
|
self.assertEqual(double_metaphone('Apuke', 4), ('APK', '')) |
2293
|
|
|
self.assertEqual(double_metaphone('Arnold', 4), ('ARNL', '')) |
2294
|
|
|
self.assertEqual(double_metaphone('Ashby', 4), ('AXP', '')) |
2295
|
|
|
self.assertEqual(double_metaphone('Astwood', 4), ('ASTT', '')) |
2296
|
|
|
self.assertEqual(double_metaphone('Atkinson', 4), ('ATKN', '')) |
2297
|
|
|
self.assertEqual(double_metaphone('Audley', 4), ('ATL', '')) |
2298
|
|
|
self.assertEqual(double_metaphone('Austin', 4), ('ASTN', '')) |
2299
|
|
|
self.assertEqual(double_metaphone('Avenal', 4), ('AFNL', '')) |
2300
|
|
|
self.assertEqual(double_metaphone('Ayer', 4), ('AR', '')) |
2301
|
|
|
self.assertEqual(double_metaphone('Ayot', 4), ('AT', '')) |
2302
|
|
|
self.assertEqual(double_metaphone('Babbitt', 4), ('PPT', '')) |
2303
|
|
|
self.assertEqual(double_metaphone('Bachelor', 4), ('PXLR', 'PKLR')) |
2304
|
|
|
self.assertEqual(double_metaphone('Bachelour', 4), ('PXLR', 'PKLR')) |
2305
|
|
|
self.assertEqual(double_metaphone('Bailey', 4), ('PL', '')) |
2306
|
|
|
self.assertEqual(double_metaphone('Baivel', 4), ('PFL', '')) |
2307
|
|
|
self.assertEqual(double_metaphone('Baker', 4), ('PKR', '')) |
2308
|
|
|
self.assertEqual(double_metaphone('Baldwin', 4), ('PLTN', '')) |
2309
|
|
|
self.assertEqual(double_metaphone('Balsley', 4), ('PLSL', '')) |
2310
|
|
|
self.assertEqual(double_metaphone('Barber', 4), ('PRPR', '')) |
2311
|
|
|
self.assertEqual(double_metaphone('Barker', 4), ('PRKR', '')) |
2312
|
|
|
self.assertEqual(double_metaphone('Barlow', 4), ('PRL', 'PRLF')) |
2313
|
|
|
self.assertEqual(double_metaphone('Barnard', 4), ('PRNR', '')) |
2314
|
|
|
self.assertEqual(double_metaphone('Barnes', 4), ('PRNS', '')) |
2315
|
|
|
self.assertEqual(double_metaphone('Barnsley', 4), ('PRNS', '')) |
2316
|
|
|
self.assertEqual(double_metaphone('Barouxis', 4), ('PRKS', '')) |
2317
|
|
|
self.assertEqual(double_metaphone('Bartlet', 4), ('PRTL', '')) |
2318
|
|
|
self.assertEqual(double_metaphone('Basley', 4), ('PSL', '')) |
2319
|
|
|
self.assertEqual(double_metaphone('Basset', 4), ('PST', '')) |
2320
|
|
|
self.assertEqual(double_metaphone('Bassett', 4), ('PST', '')) |
2321
|
|
|
self.assertEqual(double_metaphone('Batchlor', 4), ('PXLR', '')) |
2322
|
|
|
self.assertEqual(double_metaphone('Bates', 4), ('PTS', '')) |
2323
|
|
|
self.assertEqual(double_metaphone('Batson', 4), ('PTSN', '')) |
2324
|
|
|
self.assertEqual(double_metaphone('Bayes', 4), ('PS', '')) |
2325
|
|
|
self.assertEqual(double_metaphone('Bayley', 4), ('PL', '')) |
2326
|
|
|
self.assertEqual(double_metaphone('Beale', 4), ('PL', '')) |
2327
|
|
|
self.assertEqual(double_metaphone('Beauchamp', 4), ('PXMP', 'PKMP')) |
2328
|
|
|
self.assertEqual(double_metaphone('Beauclerc', 4), ('PKLR', '')) |
2329
|
|
|
self.assertEqual(double_metaphone('Beech', 4), ('PK', '')) |
2330
|
|
|
self.assertEqual(double_metaphone('Beers', 4), ('PRS', '')) |
2331
|
|
|
self.assertEqual(double_metaphone('Beke', 4), ('PK', '')) |
2332
|
|
|
self.assertEqual(double_metaphone('Belcher', 4), ('PLXR', 'PLKR')) |
2333
|
|
|
self.assertEqual(double_metaphone('Benjamin', 4), ('PNJM', '')) |
2334
|
|
|
self.assertEqual(double_metaphone('Benningham', 4), ('PNNK', '')) |
2335
|
|
|
self.assertEqual(double_metaphone('Bereford', 4), ('PRFR', '')) |
2336
|
|
|
self.assertEqual(double_metaphone('Bergen', 4), ('PRJN', 'PRKN')) |
2337
|
|
|
self.assertEqual(double_metaphone('Berkeley', 4), ('PRKL', '')) |
2338
|
|
|
self.assertEqual(double_metaphone('Berry', 4), ('PR', '')) |
2339
|
|
|
self.assertEqual(double_metaphone('Besse', 4), ('PS', '')) |
2340
|
|
|
self.assertEqual(double_metaphone('Bessey', 4), ('PS', '')) |
2341
|
|
|
self.assertEqual(double_metaphone('Bessiles', 4), ('PSLS', '')) |
2342
|
|
|
self.assertEqual(double_metaphone('Bigelow', 4), ('PJL', 'PKLF')) |
2343
|
|
|
self.assertEqual(double_metaphone('Bigg', 4), ('PK', '')) |
2344
|
|
|
self.assertEqual(double_metaphone('Bigod', 4), ('PKT', '')) |
2345
|
|
|
self.assertEqual(double_metaphone('Billings', 4), ('PLNK', '')) |
2346
|
|
|
self.assertEqual(double_metaphone('Bimper', 4), ('PMPR', '')) |
2347
|
|
|
self.assertEqual(double_metaphone('Binker', 4), ('PNKR', '')) |
2348
|
|
|
self.assertEqual(double_metaphone('Birdsill', 4), ('PRTS', '')) |
2349
|
|
|
self.assertEqual(double_metaphone('Bishop', 4), ('PXP', '')) |
2350
|
|
|
self.assertEqual(double_metaphone('Black', 4), ('PLK', '')) |
2351
|
|
|
self.assertEqual(double_metaphone('Blagge', 4), ('PLK', '')) |
2352
|
|
|
self.assertEqual(double_metaphone('Blake', 4), ('PLK', '')) |
2353
|
|
|
self.assertEqual(double_metaphone('Blanck', 4), ('PLNK', '')) |
2354
|
|
|
self.assertEqual(double_metaphone('Bledsoe', 4), ('PLTS', '')) |
2355
|
|
|
self.assertEqual(double_metaphone('Blennerhasset', 4), ('PLNR', '')) |
2356
|
|
|
self.assertEqual(double_metaphone('Blessing', 4), ('PLSN', '')) |
2357
|
|
|
self.assertEqual(double_metaphone('Blewett', 4), ('PLT', '')) |
2358
|
|
|
self.assertEqual(double_metaphone('Bloctgoed', 4), ('PLKT', '')) |
2359
|
|
|
self.assertEqual(double_metaphone('Bloetgoet', 4), ('PLTK', '')) |
2360
|
|
|
self.assertEqual(double_metaphone('Bloodgood', 4), ('PLTK', '')) |
2361
|
|
|
self.assertEqual(double_metaphone('Blossom', 4), ('PLSM', '')) |
2362
|
|
|
self.assertEqual(double_metaphone('Blount', 4), ('PLNT', '')) |
2363
|
|
|
self.assertEqual(double_metaphone('Bodine', 4), ('PTN', '')) |
2364
|
|
|
self.assertEqual(double_metaphone('Bodman', 4), ('PTMN', '')) |
2365
|
|
|
self.assertEqual(double_metaphone('BonCoeur', 4), ('PNKR', '')) |
2366
|
|
|
self.assertEqual(double_metaphone('Bond', 4), ('PNT', '')) |
2367
|
|
|
self.assertEqual(double_metaphone('Boscawen', 4), ('PSKN', '')) |
2368
|
|
|
self.assertEqual(double_metaphone('Bosworth', 4), ('PSR0', 'PSRT')) |
2369
|
|
|
self.assertEqual(double_metaphone('Bouchier', 4), ('PX', 'PKR')) |
2370
|
|
|
self.assertEqual(double_metaphone('Bowne', 4), ('PN', '')) |
2371
|
|
|
self.assertEqual(double_metaphone('Bradbury', 4), ('PRTP', '')) |
2372
|
|
|
self.assertEqual(double_metaphone('Bradder', 4), ('PRTR', '')) |
2373
|
|
|
self.assertEqual(double_metaphone('Bradford', 4), ('PRTF', '')) |
2374
|
|
|
self.assertEqual(double_metaphone('Bradstreet', 4), ('PRTS', '')) |
2375
|
|
|
self.assertEqual(double_metaphone('Braham', 4), ('PRHM', '')) |
2376
|
|
|
self.assertEqual(double_metaphone('Brailsford', 4), ('PRLS', '')) |
2377
|
|
|
self.assertEqual(double_metaphone('Brainard', 4), ('PRNR', '')) |
2378
|
|
|
self.assertEqual(double_metaphone('Brandish', 4), ('PRNT', '')) |
2379
|
|
|
self.assertEqual(double_metaphone('Braun', 4), ('PRN', '')) |
2380
|
|
|
self.assertEqual(double_metaphone('Brecc', 4), ('PRK', '')) |
2381
|
|
|
self.assertEqual(double_metaphone('Brent', 4), ('PRNT', '')) |
2382
|
|
|
self.assertEqual(double_metaphone('Brenton', 4), ('PRNT', '')) |
2383
|
|
|
self.assertEqual(double_metaphone('Briggs', 4), ('PRKS', '')) |
2384
|
|
|
self.assertEqual(double_metaphone('Brigham', 4), ('PRM', '')) |
2385
|
|
|
self.assertEqual(double_metaphone('Brobst', 4), ('PRPS', '')) |
2386
|
|
|
self.assertEqual(double_metaphone('Brome', 4), ('PRM', '')) |
2387
|
|
|
self.assertEqual(double_metaphone('Bronson', 4), ('PRNS', '')) |
2388
|
|
|
self.assertEqual(double_metaphone('Brooks', 4), ('PRKS', '')) |
2389
|
|
|
self.assertEqual(double_metaphone('Brouillard', 4), ('PRLR', '')) |
2390
|
|
|
self.assertEqual(double_metaphone('Brown', 4), ('PRN', '')) |
2391
|
|
|
self.assertEqual(double_metaphone('Browne', 4), ('PRN', '')) |
2392
|
|
|
self.assertEqual(double_metaphone('Brownell', 4), ('PRNL', '')) |
2393
|
|
|
self.assertEqual(double_metaphone('Bruley', 4), ('PRL', '')) |
2394
|
|
|
self.assertEqual(double_metaphone('Bryant', 4), ('PRNT', '')) |
2395
|
|
|
self.assertEqual(double_metaphone('Brzozowski', 4), ('PRSS', 'PRTS')) |
2396
|
|
|
self.assertEqual(double_metaphone('Buide', 4), ('PT', '')) |
2397
|
|
|
self.assertEqual(double_metaphone('Bulmer', 4), ('PLMR', '')) |
2398
|
|
|
self.assertEqual(double_metaphone('Bunker', 4), ('PNKR', '')) |
2399
|
|
|
self.assertEqual(double_metaphone('Burden', 4), ('PRTN', '')) |
2400
|
|
|
self.assertEqual(double_metaphone('Burge', 4), ('PRJ', 'PRK')) |
2401
|
|
|
self.assertEqual(double_metaphone('Burgoyne', 4), ('PRKN', '')) |
2402
|
|
|
self.assertEqual(double_metaphone('Burke', 4), ('PRK', '')) |
2403
|
|
|
self.assertEqual(double_metaphone('Burnett', 4), ('PRNT', '')) |
2404
|
|
|
self.assertEqual(double_metaphone('Burpee', 4), ('PRP', '')) |
2405
|
|
|
self.assertEqual(double_metaphone('Bursley', 4), ('PRSL', '')) |
2406
|
|
|
self.assertEqual(double_metaphone('Burton', 4), ('PRTN', '')) |
2407
|
|
|
self.assertEqual(double_metaphone('Bushnell', 4), ('PXNL', '')) |
2408
|
|
|
self.assertEqual(double_metaphone('Buss', 4), ('PS', '')) |
2409
|
|
|
self.assertEqual(double_metaphone('Buswell', 4), ('PSL', '')) |
2410
|
|
|
self.assertEqual(double_metaphone('Butler', 4), ('PTLR', '')) |
2411
|
|
|
self.assertEqual(double_metaphone('Calkin', 4), ('KLKN', '')) |
2412
|
|
|
self.assertEqual(double_metaphone('Canada', 4), ('KNT', '')) |
2413
|
|
|
self.assertEqual(double_metaphone('Canmore', 4), ('KNMR', '')) |
2414
|
|
|
self.assertEqual(double_metaphone('Canney', 4), ('KN', '')) |
2415
|
|
|
self.assertEqual(double_metaphone('Capet', 4), ('KPT', '')) |
2416
|
|
|
self.assertEqual(double_metaphone('Card', 4), ('KRT', '')) |
2417
|
|
|
self.assertEqual(double_metaphone('Carman', 4), ('KRMN', '')) |
2418
|
|
|
self.assertEqual(double_metaphone('Carpenter', 4), ('KRPN', '')) |
2419
|
|
|
self.assertEqual(double_metaphone('Cartwright', 4), ('KRTR', '')) |
2420
|
|
|
self.assertEqual(double_metaphone('Casey', 4), ('KS', '')) |
2421
|
|
|
self.assertEqual(double_metaphone('Catterfield', 4), ('KTRF', '')) |
2422
|
|
|
self.assertEqual(double_metaphone('Ceeley', 4), ('SL', '')) |
2423
|
|
|
self.assertEqual(double_metaphone('Chambers', 4), ('XMPR', '')) |
2424
|
|
|
self.assertEqual(double_metaphone('Champion', 4), ('XMPN', '')) |
2425
|
|
|
self.assertEqual(double_metaphone('Chapman', 4), ('XPMN', '')) |
2426
|
|
|
self.assertEqual(double_metaphone('Chase', 4), ('XS', '')) |
2427
|
|
|
self.assertEqual(double_metaphone('Cheney', 4), ('XN', '')) |
2428
|
|
|
self.assertEqual(double_metaphone('Chetwynd', 4), ('XTNT', '')) |
2429
|
|
|
self.assertEqual(double_metaphone('Chevalier', 4), ('XFL', 'XFLR')) |
2430
|
|
|
self.assertEqual(double_metaphone('Chillingsworth', 4), ('XLNK', '')) |
2431
|
|
|
self.assertEqual(double_metaphone('Christie', 4), ('KRST', '')) |
2432
|
|
|
self.assertEqual(double_metaphone('Chubbuck', 4), ('XPK', '')) |
2433
|
|
|
self.assertEqual(double_metaphone('Church', 4), ('XRX', 'XRK')) |
2434
|
|
|
self.assertEqual(double_metaphone('Clark', 4), ('KLRK', '')) |
2435
|
|
|
self.assertEqual(double_metaphone('Clarke', 4), ('KLRK', '')) |
2436
|
|
|
self.assertEqual(double_metaphone('Cleare', 4), ('KLR', '')) |
2437
|
|
|
self.assertEqual(double_metaphone('Clement', 4), ('KLMN', '')) |
2438
|
|
|
self.assertEqual(double_metaphone('Clerke', 4), ('KLRK', '')) |
2439
|
|
|
self.assertEqual(double_metaphone('Clibben', 4), ('KLPN', '')) |
2440
|
|
|
self.assertEqual(double_metaphone('Clifford', 4), ('KLFR', '')) |
2441
|
|
|
self.assertEqual(double_metaphone('Clivedon', 4), ('KLFT', '')) |
2442
|
|
|
self.assertEqual(double_metaphone('Close', 4), ('KLS', '')) |
2443
|
|
|
self.assertEqual(double_metaphone('Clothilde', 4), ('KL0L', 'KLTL')) |
2444
|
|
|
self.assertEqual(double_metaphone('Cobb', 4), ('KP', '')) |
2445
|
|
|
self.assertEqual(double_metaphone('Coburn', 4), ('KPRN', '')) |
2446
|
|
|
self.assertEqual(double_metaphone('Coburne', 4), ('KPRN', '')) |
2447
|
|
|
self.assertEqual(double_metaphone('Cocke', 4), ('KK', '')) |
2448
|
|
|
self.assertEqual(double_metaphone('Coffin', 4), ('KFN', '')) |
2449
|
|
|
self.assertEqual(double_metaphone('Coffyn', 4), ('KFN', '')) |
2450
|
|
|
self.assertEqual(double_metaphone('Colborne', 4), ('KLPR', '')) |
2451
|
|
|
self.assertEqual(double_metaphone('Colby', 4), ('KLP', '')) |
2452
|
|
|
self.assertEqual(double_metaphone('Cole', 4), ('KL', '')) |
2453
|
|
|
self.assertEqual(double_metaphone('Coleman', 4), ('KLMN', '')) |
2454
|
|
|
self.assertEqual(double_metaphone('Collier', 4), ('KL', 'KLR')) |
2455
|
|
|
self.assertEqual(double_metaphone('Compton', 4), ('KMPT', '')) |
2456
|
|
|
self.assertEqual(double_metaphone('Cone', 4), ('KN', '')) |
2457
|
|
|
self.assertEqual(double_metaphone('Cook', 4), ('KK', '')) |
2458
|
|
|
self.assertEqual(double_metaphone('Cooke', 4), ('KK', '')) |
2459
|
|
|
self.assertEqual(double_metaphone('Cooper', 4), ('KPR', '')) |
2460
|
|
|
self.assertEqual(double_metaphone('Copperthwaite', 4), |
2461
|
|
|
('KPR0', 'KPRT')) |
2462
|
|
|
self.assertEqual(double_metaphone('Corbet', 4), ('KRPT', '')) |
2463
|
|
|
self.assertEqual(double_metaphone('Corell', 4), ('KRL', '')) |
2464
|
|
|
self.assertEqual(double_metaphone('Corey', 4), ('KR', '')) |
2465
|
|
|
self.assertEqual(double_metaphone('Corlies', 4), ('KRLS', '')) |
2466
|
|
|
self.assertEqual(double_metaphone('Corneliszen', 4), ('KRNL', '')) |
2467
|
|
|
self.assertEqual(double_metaphone('Cornelius', 4), ('KRNL', '')) |
2468
|
|
|
self.assertEqual(double_metaphone('Cornwallis', 4), ('KRNL', '')) |
2469
|
|
|
self.assertEqual(double_metaphone('Cosgrove', 4), ('KSKR', '')) |
2470
|
|
|
self.assertEqual(double_metaphone('Count of Brionne', 4), ('KNTF', '')) |
2471
|
|
|
self.assertEqual(double_metaphone('Covill', 4), ('KFL', '')) |
2472
|
|
|
self.assertEqual(double_metaphone('Cowperthwaite', 4), |
2473
|
|
|
('KPR0', 'KPRT')) |
2474
|
|
|
self.assertEqual(double_metaphone('Cowperwaite', 4), ('KPRT', '')) |
2475
|
|
|
self.assertEqual(double_metaphone('Crane', 4), ('KRN', '')) |
2476
|
|
|
self.assertEqual(double_metaphone('Creagmile', 4), ('KRKM', '')) |
2477
|
|
|
self.assertEqual(double_metaphone('Crew', 4), ('KR', 'KRF')) |
2478
|
|
|
self.assertEqual(double_metaphone('Crispin', 4), ('KRSP', '')) |
2479
|
|
|
self.assertEqual(double_metaphone('Crocker', 4), ('KRKR', '')) |
2480
|
|
|
self.assertEqual(double_metaphone('Crockett', 4), ('KRKT', '')) |
2481
|
|
|
self.assertEqual(double_metaphone('Crosby', 4), ('KRSP', '')) |
2482
|
|
|
self.assertEqual(double_metaphone('Crump', 4), ('KRMP', '')) |
2483
|
|
|
self.assertEqual(double_metaphone('Cunningham', 4), ('KNNK', '')) |
2484
|
|
|
self.assertEqual(double_metaphone('Curtis', 4), ('KRTS', '')) |
2485
|
|
|
self.assertEqual(double_metaphone('Cutha', 4), ('K0', 'KT')) |
2486
|
|
|
self.assertEqual(double_metaphone('Cutter', 4), ('KTR', '')) |
2487
|
|
|
self.assertEqual(double_metaphone('D\'Aubigny', 4), ('TPN', 'TPKN')) |
2488
|
|
|
self.assertEqual(double_metaphone('DAVIS', 4), ('TFS', '')) |
2489
|
|
|
self.assertEqual(double_metaphone('Dabinott', 4), ('TPNT', '')) |
2490
|
|
|
self.assertEqual(double_metaphone('Dacre', 4), ('TKR', '')) |
2491
|
|
|
self.assertEqual(double_metaphone('Daggett', 4), ('TKT', '')) |
2492
|
|
|
self.assertEqual(double_metaphone('Danvers', 4), ('TNFR', '')) |
2493
|
|
|
self.assertEqual(double_metaphone('Darcy', 4), ('TRS', '')) |
2494
|
|
|
self.assertEqual(double_metaphone('Davis', 4), ('TFS', '')) |
2495
|
|
|
self.assertEqual(double_metaphone('Dawn', 4), ('TN', '')) |
2496
|
|
|
self.assertEqual(double_metaphone('Dawson', 4), ('TSN', '')) |
2497
|
|
|
self.assertEqual(double_metaphone('Day', 4), ('T', '')) |
2498
|
|
|
self.assertEqual(double_metaphone('Daye', 4), ('T', '')) |
2499
|
|
|
self.assertEqual(double_metaphone('DeGrenier', 4), ('TKRN', '')) |
2500
|
|
|
self.assertEqual(double_metaphone('Dean', 4), ('TN', '')) |
2501
|
|
|
self.assertEqual(double_metaphone('Deekindaugh', 4), ('TKNT', '')) |
2502
|
|
|
self.assertEqual(double_metaphone('Dennis', 4), ('TNS', '')) |
2503
|
|
|
self.assertEqual(double_metaphone('Denny', 4), ('TN', '')) |
2504
|
|
|
self.assertEqual(double_metaphone('Denton', 4), ('TNTN', '')) |
2505
|
|
|
self.assertEqual(double_metaphone('Desborough', 4), ('TSPR', '')) |
2506
|
|
|
self.assertEqual(double_metaphone('Despenser', 4), ('TSPN', '')) |
2507
|
|
|
self.assertEqual(double_metaphone('Deverill', 4), ('TFRL', '')) |
2508
|
|
|
self.assertEqual(double_metaphone('Devine', 4), ('TFN', '')) |
2509
|
|
|
self.assertEqual(double_metaphone('Dexter', 4), ('TKST', '')) |
2510
|
|
|
self.assertEqual(double_metaphone('Dillaway', 4), ('TL', '')) |
2511
|
|
|
self.assertEqual(double_metaphone('Dimmick', 4), ('TMK', '')) |
2512
|
|
|
self.assertEqual(double_metaphone('Dinan', 4), ('TNN', '')) |
2513
|
|
|
self.assertEqual(double_metaphone('Dix', 4), ('TKS', '')) |
2514
|
|
|
self.assertEqual(double_metaphone('Doggett', 4), ('TKT', '')) |
2515
|
|
|
self.assertEqual(double_metaphone('Donahue', 4), ('TNH', '')) |
2516
|
|
|
self.assertEqual(double_metaphone('Dorfman', 4), ('TRFM', '')) |
2517
|
|
|
self.assertEqual(double_metaphone('Dorris', 4), ('TRS', '')) |
2518
|
|
|
self.assertEqual(double_metaphone('Dow', 4), ('T', 'TF')) |
2519
|
|
|
self.assertEqual(double_metaphone('Downey', 4), ('TN', '')) |
2520
|
|
|
self.assertEqual(double_metaphone('Downing', 4), ('TNNK', '')) |
2521
|
|
|
self.assertEqual(double_metaphone('Dowsett', 4), ('TST', '')) |
2522
|
|
|
self.assertEqual(double_metaphone('Duck?', 4), ('TK', '')) |
2523
|
|
|
self.assertEqual(double_metaphone('Dudley', 4), ('TTL', '')) |
2524
|
|
|
self.assertEqual(double_metaphone('Duffy', 4), ('TF', '')) |
2525
|
|
|
self.assertEqual(double_metaphone('Dunn', 4), ('TN', '')) |
2526
|
|
|
self.assertEqual(double_metaphone('Dunsterville', 4), ('TNST', '')) |
2527
|
|
|
self.assertEqual(double_metaphone('Durrant', 4), ('TRNT', '')) |
2528
|
|
|
self.assertEqual(double_metaphone('Durrin', 4), ('TRN', '')) |
2529
|
|
|
self.assertEqual(double_metaphone('Dustin', 4), ('TSTN', '')) |
2530
|
|
|
self.assertEqual(double_metaphone('Duston', 4), ('TSTN', '')) |
2531
|
|
|
self.assertEqual(double_metaphone('Eames', 4), ('AMS', '')) |
2532
|
|
|
self.assertEqual(double_metaphone('Early', 4), ('ARL', '')) |
2533
|
|
|
self.assertEqual(double_metaphone('Easty', 4), ('AST', '')) |
2534
|
|
|
self.assertEqual(double_metaphone('Ebbett', 4), ('APT', '')) |
2535
|
|
|
self.assertEqual(double_metaphone('Eberbach', 4), ('APRP', '')) |
2536
|
|
|
self.assertEqual(double_metaphone('Eberhard', 4), ('APRR', '')) |
2537
|
|
|
self.assertEqual(double_metaphone('Eddy', 4), ('AT', '')) |
2538
|
|
|
self.assertEqual(double_metaphone('Edenden', 4), ('ATNT', '')) |
2539
|
|
|
self.assertEqual(double_metaphone('Edwards', 4), ('ATRT', '')) |
2540
|
|
|
self.assertEqual(double_metaphone('Eglinton', 4), ('AKLN', 'ALNT')) |
2541
|
|
|
self.assertEqual(double_metaphone('Eliot', 4), ('ALT', '')) |
2542
|
|
|
self.assertEqual(double_metaphone('Elizabeth', 4), ('ALSP', '')) |
2543
|
|
|
self.assertEqual(double_metaphone('Ellis', 4), ('ALS', '')) |
2544
|
|
|
self.assertEqual(double_metaphone('Ellison', 4), ('ALSN', '')) |
2545
|
|
|
self.assertEqual(double_metaphone('Ellot', 4), ('ALT', '')) |
2546
|
|
|
self.assertEqual(double_metaphone('Elny', 4), ('ALN', '')) |
2547
|
|
|
self.assertEqual(double_metaphone('Elsner', 4), ('ALSN', '')) |
2548
|
|
|
self.assertEqual(double_metaphone('Emerson', 4), ('AMRS', '')) |
2549
|
|
|
self.assertEqual(double_metaphone('Empson', 4), ('AMPS', '')) |
2550
|
|
|
self.assertEqual(double_metaphone('Est', 4), ('AST', '')) |
2551
|
|
|
self.assertEqual(double_metaphone('Estabrook', 4), ('ASTP', '')) |
2552
|
|
|
self.assertEqual(double_metaphone('Estes', 4), ('ASTS', '')) |
2553
|
|
|
self.assertEqual(double_metaphone('Estey', 4), ('AST', '')) |
2554
|
|
|
self.assertEqual(double_metaphone('Evans', 4), ('AFNS', '')) |
2555
|
|
|
self.assertEqual(double_metaphone('Fallowell', 4), ('FLL', '')) |
2556
|
|
|
self.assertEqual(double_metaphone('Farnsworth', 4), ('FRNS', '')) |
2557
|
|
|
self.assertEqual(double_metaphone('Feake', 4), ('FK', '')) |
2558
|
|
|
self.assertEqual(double_metaphone('Feke', 4), ('FK', '')) |
2559
|
|
|
self.assertEqual(double_metaphone('Fellows', 4), ('FLS', '')) |
2560
|
|
|
self.assertEqual(double_metaphone('Fettiplace', 4), ('FTPL', '')) |
2561
|
|
|
self.assertEqual(double_metaphone('Finney', 4), ('FN', '')) |
2562
|
|
|
self.assertEqual(double_metaphone('Fischer', 4), ('FXR', 'FSKR')) |
2563
|
|
|
self.assertEqual(double_metaphone('Fisher', 4), ('FXR', '')) |
2564
|
|
|
self.assertEqual(double_metaphone('Fisk', 4), ('FSK', '')) |
2565
|
|
|
self.assertEqual(double_metaphone('Fiske', 4), ('FSK', '')) |
2566
|
|
|
self.assertEqual(double_metaphone('Fletcher', 4), ('FLXR', '')) |
2567
|
|
|
self.assertEqual(double_metaphone('Folger', 4), ('FLKR', 'FLJR')) |
2568
|
|
|
self.assertEqual(double_metaphone('Foliot', 4), ('FLT', '')) |
2569
|
|
|
self.assertEqual(double_metaphone('Folyot', 4), ('FLT', '')) |
2570
|
|
|
self.assertEqual(double_metaphone('Fones', 4), ('FNS', '')) |
2571
|
|
|
self.assertEqual(double_metaphone('Fordham', 4), ('FRTM', '')) |
2572
|
|
|
self.assertEqual(double_metaphone('Forstner', 4), ('FRST', '')) |
2573
|
|
|
self.assertEqual(double_metaphone('Fosten', 4), ('FSTN', '')) |
2574
|
|
|
self.assertEqual(double_metaphone('Foster', 4), ('FSTR', '')) |
2575
|
|
|
self.assertEqual(double_metaphone('Foulke', 4), ('FLK', '')) |
2576
|
|
|
self.assertEqual(double_metaphone('Fowler', 4), ('FLR', '')) |
2577
|
|
|
self.assertEqual(double_metaphone('Foxwell', 4), ('FKSL', '')) |
2578
|
|
|
self.assertEqual(double_metaphone('Fraley', 4), ('FRL', '')) |
2579
|
|
|
self.assertEqual(double_metaphone('Franceys', 4), ('FRNS', '')) |
2580
|
|
|
self.assertEqual(double_metaphone('Franke', 4), ('FRNK', '')) |
2581
|
|
|
self.assertEqual(double_metaphone('Frascella', 4), ('FRSL', '')) |
2582
|
|
|
self.assertEqual(double_metaphone('Frazer', 4), ('FRSR', '')) |
2583
|
|
|
self.assertEqual(double_metaphone('Fredd', 4), ('FRT', '')) |
2584
|
|
|
self.assertEqual(double_metaphone('Freeman', 4), ('FRMN', '')) |
2585
|
|
|
self.assertEqual(double_metaphone('French', 4), ('FRNX', 'FRNK')) |
2586
|
|
|
self.assertEqual(double_metaphone('Freville', 4), ('FRFL', '')) |
2587
|
|
|
self.assertEqual(double_metaphone('Frey', 4), ('FR', '')) |
2588
|
|
|
self.assertEqual(double_metaphone('Frick', 4), ('FRK', '')) |
2589
|
|
|
self.assertEqual(double_metaphone('Frier', 4), ('FR', 'FRR')) |
2590
|
|
|
self.assertEqual(double_metaphone('Froe', 4), ('FR', '')) |
2591
|
|
|
self.assertEqual(double_metaphone('Frorer', 4), ('FRRR', '')) |
2592
|
|
|
self.assertEqual(double_metaphone('Frost', 4), ('FRST', '')) |
2593
|
|
|
self.assertEqual(double_metaphone('Frothingham', 4), ('FR0N', 'FRTN')) |
2594
|
|
|
self.assertEqual(double_metaphone('Fry', 4), ('FR', '')) |
2595
|
|
|
self.assertEqual(double_metaphone('Gaffney', 4), ('KFN', '')) |
2596
|
|
|
self.assertEqual(double_metaphone('Gage', 4), ('KJ', 'KK')) |
2597
|
|
|
self.assertEqual(double_metaphone('Gallion', 4), ('KLN', '')) |
2598
|
|
|
self.assertEqual(double_metaphone('Gallishan', 4), ('KLXN', '')) |
2599
|
|
|
self.assertEqual(double_metaphone('Gamble', 4), ('KMPL', '')) |
2600
|
|
|
self.assertEqual(double_metaphone('Garbrand', 4), ('KRPR', '')) |
2601
|
|
|
self.assertEqual(double_metaphone('Gardner', 4), ('KRTN', '')) |
2602
|
|
|
self.assertEqual(double_metaphone('Garrett', 4), ('KRT', '')) |
2603
|
|
|
self.assertEqual(double_metaphone('Gassner', 4), ('KSNR', '')) |
2604
|
|
|
self.assertEqual(double_metaphone('Gater', 4), ('KTR', '')) |
2605
|
|
|
self.assertEqual(double_metaphone('Gaunt', 4), ('KNT', '')) |
2606
|
|
|
self.assertEqual(double_metaphone('Gayer', 4), ('KR', '')) |
2607
|
|
|
self.assertEqual(double_metaphone('Gerken', 4), ('KRKN', 'JRKN')) |
2608
|
|
|
self.assertEqual(double_metaphone('Gerritsen', 4), ('KRTS', 'JRTS')) |
2609
|
|
|
self.assertEqual(double_metaphone('Gibbs', 4), ('KPS', 'JPS')) |
2610
|
|
|
self.assertEqual(double_metaphone('Giffard', 4), ('JFRT', 'KFRT')) |
2611
|
|
|
self.assertEqual(double_metaphone('Gilbert', 4), ('KLPR', 'JLPR')) |
2612
|
|
|
self.assertEqual(double_metaphone('Gill', 4), ('KL', 'JL')) |
2613
|
|
|
self.assertEqual(double_metaphone('Gilman', 4), ('KLMN', 'JLMN')) |
2614
|
|
|
self.assertEqual(double_metaphone('Glass', 4), ('KLS', '')) |
2615
|
|
|
self.assertEqual(double_metaphone('GoddardGifford', 4), ('KTRJ', '')) |
2616
|
|
|
self.assertEqual(double_metaphone('Godfrey', 4), ('KTFR', '')) |
2617
|
|
|
self.assertEqual(double_metaphone('Godwin', 4), ('KTN', '')) |
2618
|
|
|
self.assertEqual(double_metaphone('Goodale', 4), ('KTL', '')) |
2619
|
|
|
self.assertEqual(double_metaphone('Goodnow', 4), ('KTN', 'KTNF')) |
2620
|
|
|
self.assertEqual(double_metaphone('Gorham', 4), ('KRM', '')) |
2621
|
|
|
self.assertEqual(double_metaphone('Goseline', 4), ('KSLN', '')) |
2622
|
|
|
self.assertEqual(double_metaphone('Gott', 4), ('KT', '')) |
2623
|
|
|
self.assertEqual(double_metaphone('Gould', 4), ('KLT', '')) |
2624
|
|
|
self.assertEqual(double_metaphone('Grafton', 4), ('KRFT', '')) |
2625
|
|
|
self.assertEqual(double_metaphone('Grant', 4), ('KRNT', '')) |
2626
|
|
|
self.assertEqual(double_metaphone('Gray', 4), ('KR', '')) |
2627
|
|
|
self.assertEqual(double_metaphone('Green', 4), ('KRN', '')) |
2628
|
|
|
self.assertEqual(double_metaphone('Griffin', 4), ('KRFN', '')) |
2629
|
|
|
self.assertEqual(double_metaphone('Grill', 4), ('KRL', '')) |
2630
|
|
|
self.assertEqual(double_metaphone('Grim', 4), ('KRM', '')) |
2631
|
|
|
self.assertEqual(double_metaphone('Grisgonelle', 4), ('KRSK', '')) |
2632
|
|
|
self.assertEqual(double_metaphone('Gross', 4), ('KRS', '')) |
2633
|
|
|
self.assertEqual(double_metaphone('Guba', 4), ('KP', '')) |
2634
|
|
|
self.assertEqual(double_metaphone('Gybbes', 4), ('KPS', 'JPS')) |
2635
|
|
|
self.assertEqual(double_metaphone('Haburne', 4), ('HPRN', '')) |
2636
|
|
|
self.assertEqual(double_metaphone('Hackburne', 4), ('HKPR', '')) |
2637
|
|
|
self.assertEqual(double_metaphone('Haddon?', 4), ('HTN', '')) |
2638
|
|
|
self.assertEqual(double_metaphone('Haines', 4), ('HNS', '')) |
2639
|
|
|
self.assertEqual(double_metaphone('Hale', 4), ('HL', '')) |
2640
|
|
|
self.assertEqual(double_metaphone('Hall', 4), ('HL', '')) |
2641
|
|
|
self.assertEqual(double_metaphone('Hallet', 4), ('HLT', '')) |
2642
|
|
|
self.assertEqual(double_metaphone('Hallock', 4), ('HLK', '')) |
2643
|
|
|
self.assertEqual(double_metaphone('Halstead', 4), ('HLST', '')) |
2644
|
|
|
self.assertEqual(double_metaphone('Hammond', 4), ('HMNT', '')) |
2645
|
|
|
self.assertEqual(double_metaphone('Hance', 4), ('HNS', '')) |
2646
|
|
|
self.assertEqual(double_metaphone('Handy', 4), ('HNT', '')) |
2647
|
|
|
self.assertEqual(double_metaphone('Hanson', 4), ('HNSN', '')) |
2648
|
|
|
self.assertEqual(double_metaphone('Harasek', 4), ('HRSK', '')) |
2649
|
|
|
self.assertEqual(double_metaphone('Harcourt', 4), ('HRKR', '')) |
2650
|
|
|
self.assertEqual(double_metaphone('Hardy', 4), ('HRT', '')) |
2651
|
|
|
self.assertEqual(double_metaphone('Harlock', 4), ('HRLK', '')) |
2652
|
|
|
self.assertEqual(double_metaphone('Harris', 4), ('HRS', '')) |
2653
|
|
|
self.assertEqual(double_metaphone('Hartley', 4), ('HRTL', '')) |
2654
|
|
|
self.assertEqual(double_metaphone('Harvey', 4), ('HRF', '')) |
2655
|
|
|
self.assertEqual(double_metaphone('Harvie', 4), ('HRF', '')) |
2656
|
|
|
self.assertEqual(double_metaphone('Harwood', 4), ('HRT', '')) |
2657
|
|
|
self.assertEqual(double_metaphone('Hathaway', 4), ('H0', 'HT')) |
2658
|
|
|
self.assertEqual(double_metaphone('Haukeness', 4), ('HKNS', '')) |
2659
|
|
|
self.assertEqual(double_metaphone('Hawkes', 4), ('HKS', '')) |
2660
|
|
|
self.assertEqual(double_metaphone('Hawkhurst', 4), ('HKRS', '')) |
2661
|
|
|
self.assertEqual(double_metaphone('Hawkins', 4), ('HKNS', '')) |
2662
|
|
|
self.assertEqual(double_metaphone('Hawley', 4), ('HL', '')) |
2663
|
|
|
self.assertEqual(double_metaphone('Heald', 4), ('HLT', '')) |
2664
|
|
|
self.assertEqual(double_metaphone('Helsdon', 4), ('HLST', '')) |
2665
|
|
|
self.assertEqual(double_metaphone('Hemenway', 4), ('HMN', '')) |
2666
|
|
|
self.assertEqual(double_metaphone('Hemmenway', 4), ('HMN', '')) |
2667
|
|
|
self.assertEqual(double_metaphone('Henck', 4), ('HNK', '')) |
2668
|
|
|
self.assertEqual(double_metaphone('Henderson', 4), ('HNTR', '')) |
2669
|
|
|
self.assertEqual(double_metaphone('Hendricks', 4), ('HNTR', '')) |
2670
|
|
|
self.assertEqual(double_metaphone('Hersey', 4), ('HRS', '')) |
2671
|
|
|
self.assertEqual(double_metaphone('Hewes', 4), ('HS', '')) |
2672
|
|
|
self.assertEqual(double_metaphone('Heyman', 4), ('HMN', '')) |
2673
|
|
|
self.assertEqual(double_metaphone('Hicks', 4), ('HKS', '')) |
2674
|
|
|
self.assertEqual(double_metaphone('Hidden', 4), ('HTN', '')) |
2675
|
|
|
self.assertEqual(double_metaphone('Higgs', 4), ('HKS', '')) |
2676
|
|
|
self.assertEqual(double_metaphone('Hill', 4), ('HL', '')) |
2677
|
|
|
self.assertEqual(double_metaphone('Hills', 4), ('HLS', '')) |
2678
|
|
|
self.assertEqual(double_metaphone('Hinckley', 4), ('HNKL', '')) |
2679
|
|
|
self.assertEqual(double_metaphone('Hipwell', 4), ('HPL', '')) |
2680
|
|
|
self.assertEqual(double_metaphone('Hobart', 4), ('HPRT', '')) |
2681
|
|
|
self.assertEqual(double_metaphone('Hoben', 4), ('HPN', '')) |
2682
|
|
|
self.assertEqual(double_metaphone('Hoffmann', 4), ('HFMN', '')) |
2683
|
|
|
self.assertEqual(double_metaphone('Hogan', 4), ('HKN', '')) |
2684
|
|
|
self.assertEqual(double_metaphone('Holmes', 4), ('HLMS', '')) |
2685
|
|
|
self.assertEqual(double_metaphone('Hoo', 4), ('H', '')) |
2686
|
|
|
self.assertEqual(double_metaphone('Hooker', 4), ('HKR', '')) |
2687
|
|
|
self.assertEqual(double_metaphone('Hopcott', 4), ('HPKT', '')) |
2688
|
|
|
self.assertEqual(double_metaphone('Hopkins', 4), ('HPKN', '')) |
2689
|
|
|
self.assertEqual(double_metaphone('Hopkinson', 4), ('HPKN', '')) |
2690
|
|
|
self.assertEqual(double_metaphone('Hornsey', 4), ('HRNS', '')) |
2691
|
|
|
self.assertEqual(double_metaphone('Houckgeest', 4), ('HKJS', 'HKKS')) |
2692
|
|
|
self.assertEqual(double_metaphone('Hough', 4), ('H', '')) |
2693
|
|
|
self.assertEqual(double_metaphone('Houstin', 4), ('HSTN', '')) |
2694
|
|
|
self.assertEqual(double_metaphone('How', 4), ('H', 'HF')) |
2695
|
|
|
self.assertEqual(double_metaphone('Howe', 4), ('H', '')) |
2696
|
|
|
self.assertEqual(double_metaphone('Howland', 4), ('HLNT', '')) |
2697
|
|
|
self.assertEqual(double_metaphone('Hubner', 4), ('HPNR', '')) |
2698
|
|
|
self.assertEqual(double_metaphone('Hudnut', 4), ('HTNT', '')) |
2699
|
|
|
self.assertEqual(double_metaphone('Hughes', 4), ('HS', '')) |
2700
|
|
|
self.assertEqual(double_metaphone('Hull', 4), ('HL', '')) |
2701
|
|
|
self.assertEqual(double_metaphone('Hulme', 4), ('HLM', '')) |
2702
|
|
|
self.assertEqual(double_metaphone('Hume', 4), ('HM', '')) |
2703
|
|
|
self.assertEqual(double_metaphone('Hundertumark', 4), ('HNTR', '')) |
2704
|
|
|
self.assertEqual(double_metaphone('Hundley', 4), ('HNTL', '')) |
2705
|
|
|
self.assertEqual(double_metaphone('Hungerford', 4), ('HNKR', 'HNJR')) |
2706
|
|
|
self.assertEqual(double_metaphone('Hunt', 4), ('HNT', '')) |
2707
|
|
|
self.assertEqual(double_metaphone('Hurst', 4), ('HRST', '')) |
2708
|
|
|
self.assertEqual(double_metaphone('Husbands', 4), ('HSPN', '')) |
2709
|
|
|
self.assertEqual(double_metaphone('Hussey', 4), ('HS', '')) |
2710
|
|
|
self.assertEqual(double_metaphone('Husted', 4), ('HSTT', '')) |
2711
|
|
|
self.assertEqual(double_metaphone('Hutchins', 4), ('HXNS', '')) |
2712
|
|
|
self.assertEqual(double_metaphone('Hutchinson', 4), ('HXNS', '')) |
2713
|
|
|
self.assertEqual(double_metaphone('Huttinger', 4), ('HTNK', 'HTNJ')) |
2714
|
|
|
self.assertEqual(double_metaphone('Huybertsen', 4), ('HPRT', '')) |
2715
|
|
|
self.assertEqual(double_metaphone('Iddenden', 4), ('ATNT', '')) |
2716
|
|
|
self.assertEqual(double_metaphone('Ingraham', 4), ('ANKR', '')) |
2717
|
|
|
self.assertEqual(double_metaphone('Ives', 4), ('AFS', '')) |
2718
|
|
|
self.assertEqual(double_metaphone('Jackson', 4), ('JKSN', 'AKSN')) |
2719
|
|
|
self.assertEqual(double_metaphone('Jacob', 4), ('JKP', 'AKP')) |
2720
|
|
|
self.assertEqual(double_metaphone('Jans', 4), ('JNS', 'ANS')) |
2721
|
|
|
self.assertEqual(double_metaphone('Jenkins', 4), ('JNKN', 'ANKN')) |
2722
|
|
|
self.assertEqual(double_metaphone('Jewett', 4), ('JT', 'AT')) |
2723
|
|
|
self.assertEqual(double_metaphone('Jewitt', 4), ('JT', 'AT')) |
2724
|
|
|
self.assertEqual(double_metaphone('Johnson', 4), ('JNSN', 'ANSN')) |
2725
|
|
|
self.assertEqual(double_metaphone('Jones', 4), ('JNS', 'ANS')) |
2726
|
|
|
self.assertEqual(double_metaphone('Josephine', 4), ('JSFN', 'HSFN')) |
2727
|
|
|
self.assertEqual(double_metaphone('Judd', 4), ('JT', 'AT')) |
2728
|
|
|
self.assertEqual(double_metaphone('June', 4), ('JN', 'AN')) |
2729
|
|
|
self.assertEqual(double_metaphone('Kamarowska', 4), ('KMRS', '')) |
2730
|
|
|
self.assertEqual(double_metaphone('Kay', 4), ('K', '')) |
2731
|
|
|
self.assertEqual(double_metaphone('Kelley', 4), ('KL', '')) |
2732
|
|
|
self.assertEqual(double_metaphone('Kelly', 4), ('KL', '')) |
2733
|
|
|
self.assertEqual(double_metaphone('Keymber', 4), ('KMPR', '')) |
2734
|
|
|
self.assertEqual(double_metaphone('Keynes', 4), ('KNS', '')) |
2735
|
|
|
self.assertEqual(double_metaphone('Kilham', 4), ('KLM', '')) |
2736
|
|
|
self.assertEqual(double_metaphone('Kim', 4), ('KM', '')) |
2737
|
|
|
self.assertEqual(double_metaphone('Kimball', 4), ('KMPL', '')) |
2738
|
|
|
self.assertEqual(double_metaphone('King', 4), ('KNK', '')) |
2739
|
|
|
self.assertEqual(double_metaphone('Kinsey', 4), ('KNS', '')) |
2740
|
|
|
self.assertEqual(double_metaphone('Kirk', 4), ('KRK', '')) |
2741
|
|
|
self.assertEqual(double_metaphone('Kirton', 4), ('KRTN', '')) |
2742
|
|
|
self.assertEqual(double_metaphone('Kistler', 4), ('KSTL', '')) |
2743
|
|
|
self.assertEqual(double_metaphone('Kitchen', 4), ('KXN', '')) |
2744
|
|
|
self.assertEqual(double_metaphone('Kitson', 4), ('KTSN', '')) |
2745
|
|
|
self.assertEqual(double_metaphone('Klett', 4), ('KLT', '')) |
2746
|
|
|
self.assertEqual(double_metaphone('Kline', 4), ('KLN', '')) |
2747
|
|
|
self.assertEqual(double_metaphone('Knapp', 4), ('NP', '')) |
2748
|
|
|
self.assertEqual(double_metaphone('Knight', 4), ('NT', '')) |
2749
|
|
|
self.assertEqual(double_metaphone('Knote', 4), ('NT', '')) |
2750
|
|
|
self.assertEqual(double_metaphone('Knott', 4), ('NT', '')) |
2751
|
|
|
self.assertEqual(double_metaphone('Knox', 4), ('NKS', '')) |
2752
|
|
|
self.assertEqual(double_metaphone('Koeller', 4), ('KLR', '')) |
2753
|
|
|
self.assertEqual(double_metaphone('La Pointe', 4), ('LPNT', '')) |
2754
|
|
|
self.assertEqual(double_metaphone('LaPlante', 4), ('LPLN', '')) |
2755
|
|
|
self.assertEqual(double_metaphone('Laimbeer', 4), ('LMPR', '')) |
2756
|
|
|
self.assertEqual(double_metaphone('Lamb', 4), ('LMP', '')) |
2757
|
|
|
self.assertEqual(double_metaphone('Lambertson', 4), ('LMPR', '')) |
2758
|
|
|
self.assertEqual(double_metaphone('Lancto', 4), ('LNKT', '')) |
2759
|
|
|
self.assertEqual(double_metaphone('Landry', 4), ('LNTR', '')) |
2760
|
|
|
self.assertEqual(double_metaphone('Lane', 4), ('LN', '')) |
2761
|
|
|
self.assertEqual(double_metaphone('Langendyck', 4), ('LNJN', 'LNKN')) |
2762
|
|
|
self.assertEqual(double_metaphone('Langer', 4), ('LNKR', 'LNJR')) |
2763
|
|
|
self.assertEqual(double_metaphone('Langford', 4), ('LNKF', '')) |
2764
|
|
|
self.assertEqual(double_metaphone('Lantersee', 4), ('LNTR', '')) |
2765
|
|
|
self.assertEqual(double_metaphone('Laquer', 4), ('LKR', '')) |
2766
|
|
|
self.assertEqual(double_metaphone('Larkin', 4), ('LRKN', '')) |
2767
|
|
|
self.assertEqual(double_metaphone('Latham', 4), ('LTM', '')) |
2768
|
|
|
self.assertEqual(double_metaphone('Lathrop', 4), ('L0RP', 'LTRP')) |
2769
|
|
|
self.assertEqual(double_metaphone('Lauter', 4), ('LTR', '')) |
2770
|
|
|
self.assertEqual(double_metaphone('Lawrence', 4), ('LRNS', '')) |
2771
|
|
|
self.assertEqual(double_metaphone('Leach', 4), ('LK', '')) |
2772
|
|
|
self.assertEqual(double_metaphone('Leager', 4), ('LKR', 'LJR')) |
2773
|
|
|
self.assertEqual(double_metaphone('Learned', 4), ('LRNT', '')) |
2774
|
|
|
self.assertEqual(double_metaphone('Leavitt', 4), ('LFT', '')) |
2775
|
|
|
self.assertEqual(double_metaphone('Lee', 4), ('L', '')) |
2776
|
|
|
self.assertEqual(double_metaphone('Leete', 4), ('LT', '')) |
2777
|
|
|
self.assertEqual(double_metaphone('Leggett', 4), ('LKT', '')) |
2778
|
|
|
self.assertEqual(double_metaphone('Leland', 4), ('LLNT', '')) |
2779
|
|
|
self.assertEqual(double_metaphone('Leonard', 4), ('LNRT', '')) |
2780
|
|
|
self.assertEqual(double_metaphone('Lester', 4), ('LSTR', '')) |
2781
|
|
|
self.assertEqual(double_metaphone('Lestrange', 4), ('LSTR', '')) |
2782
|
|
|
self.assertEqual(double_metaphone('Lethem', 4), ('L0M', 'LTM')) |
2783
|
|
|
self.assertEqual(double_metaphone('Levine', 4), ('LFN', '')) |
2784
|
|
|
self.assertEqual(double_metaphone('Lewes', 4), ('LS', '')) |
2785
|
|
|
self.assertEqual(double_metaphone('Lewis', 4), ('LS', '')) |
2786
|
|
|
self.assertEqual(double_metaphone('Lincoln', 4), ('LNKL', '')) |
2787
|
|
|
self.assertEqual(double_metaphone('Lindsey', 4), ('LNTS', '')) |
2788
|
|
|
self.assertEqual(double_metaphone('Linher', 4), ('LNR', '')) |
2789
|
|
|
self.assertEqual(double_metaphone('Lippet', 4), ('LPT', '')) |
2790
|
|
|
self.assertEqual(double_metaphone('Lippincott', 4), ('LPNK', '')) |
2791
|
|
|
self.assertEqual(double_metaphone('Lockwood', 4), ('LKT', '')) |
2792
|
|
|
self.assertEqual(double_metaphone('Loines', 4), ('LNS', '')) |
2793
|
|
|
self.assertEqual(double_metaphone('Lombard', 4), ('LMPR', '')) |
2794
|
|
|
self.assertEqual(double_metaphone('Long', 4), ('LNK', '')) |
2795
|
|
|
self.assertEqual(double_metaphone('Longespee', 4), ('LNJS', 'LNKS')) |
2796
|
|
|
self.assertEqual(double_metaphone('Look', 4), ('LK', '')) |
2797
|
|
|
self.assertEqual(double_metaphone('Lounsberry', 4), ('LNSP', '')) |
2798
|
|
|
self.assertEqual(double_metaphone('Lounsbury', 4), ('LNSP', '')) |
2799
|
|
|
self.assertEqual(double_metaphone('Louthe', 4), ('L0', 'LT')) |
2800
|
|
|
self.assertEqual(double_metaphone('Loveyne', 4), ('LFN', '')) |
2801
|
|
|
self.assertEqual(double_metaphone('Lowe', 4), ('L', '')) |
2802
|
|
|
self.assertEqual(double_metaphone('Ludlam', 4), ('LTLM', '')) |
2803
|
|
|
self.assertEqual(double_metaphone('Lumbard', 4), ('LMPR', '')) |
2804
|
|
|
self.assertEqual(double_metaphone('Lund', 4), ('LNT', '')) |
2805
|
|
|
self.assertEqual(double_metaphone('Luno', 4), ('LN', '')) |
2806
|
|
|
self.assertEqual(double_metaphone('Lutz', 4), ('LTS', '')) |
2807
|
|
|
self.assertEqual(double_metaphone('Lydia', 4), ('LT', '')) |
2808
|
|
|
self.assertEqual(double_metaphone('Lynne', 4), ('LN', '')) |
2809
|
|
|
self.assertEqual(double_metaphone('Lyon', 4), ('LN', '')) |
2810
|
|
|
self.assertEqual(double_metaphone('MacAlpin', 4), ('MKLP', '')) |
2811
|
|
|
self.assertEqual(double_metaphone('MacBricc', 4), ('MKPR', '')) |
2812
|
|
|
self.assertEqual(double_metaphone('MacCrinan', 4), ('MKRN', '')) |
2813
|
|
|
self.assertEqual(double_metaphone('MacKenneth', 4), ('MKN0', 'MKNT')) |
2814
|
|
|
self.assertEqual(double_metaphone('MacMael nam Bo', 4), ('MKML', '')) |
2815
|
|
|
self.assertEqual(double_metaphone('MacMurchada', 4), ('MKMR', '')) |
2816
|
|
|
self.assertEqual(double_metaphone('Macomber', 4), ('MKMP', '')) |
2817
|
|
|
self.assertEqual(double_metaphone('Macy', 4), ('MS', '')) |
2818
|
|
|
self.assertEqual(double_metaphone('Magnus', 4), ('MNS', 'MKNS')) |
2819
|
|
|
self.assertEqual(double_metaphone('Mahien', 4), ('MHN', '')) |
2820
|
|
|
self.assertEqual(double_metaphone('Malmains', 4), ('MLMN', '')) |
2821
|
|
|
self.assertEqual(double_metaphone('Malory', 4), ('MLR', '')) |
2822
|
|
|
self.assertEqual(double_metaphone('Mancinelli', 4), ('MNSN', '')) |
2823
|
|
|
self.assertEqual(double_metaphone('Mancini', 4), ('MNSN', '')) |
2824
|
|
|
self.assertEqual(double_metaphone('Mann', 4), ('MN', '')) |
2825
|
|
|
self.assertEqual(double_metaphone('Manning', 4), ('MNNK', '')) |
2826
|
|
|
self.assertEqual(double_metaphone('Manter', 4), ('MNTR', '')) |
2827
|
|
|
self.assertEqual(double_metaphone('Marion', 4), ('MRN', '')) |
2828
|
|
|
self.assertEqual(double_metaphone('Marley', 4), ('MRL', '')) |
2829
|
|
|
self.assertEqual(double_metaphone('Marmion', 4), ('MRMN', '')) |
2830
|
|
|
self.assertEqual(double_metaphone('Marquart', 4), ('MRKR', '')) |
2831
|
|
|
self.assertEqual(double_metaphone('Marsh', 4), ('MRX', '')) |
2832
|
|
|
self.assertEqual(double_metaphone('Marshal', 4), ('MRXL', '')) |
2833
|
|
|
self.assertEqual(double_metaphone('Marshall', 4), ('MRXL', '')) |
2834
|
|
|
self.assertEqual(double_metaphone('Martel', 4), ('MRTL', '')) |
2835
|
|
|
self.assertEqual(double_metaphone('Martha', 4), ('MR0', 'MRT')) |
2836
|
|
|
self.assertEqual(double_metaphone('Martin', 4), ('MRTN', '')) |
2837
|
|
|
self.assertEqual(double_metaphone('Marturano', 4), ('MRTR', '')) |
2838
|
|
|
self.assertEqual(double_metaphone('Marvin', 4), ('MRFN', '')) |
2839
|
|
|
self.assertEqual(double_metaphone('Mary', 4), ('MR', '')) |
2840
|
|
|
self.assertEqual(double_metaphone('Mason', 4), ('MSN', '')) |
2841
|
|
|
self.assertEqual(double_metaphone('Maxwell', 4), ('MKSL', '')) |
2842
|
|
|
self.assertEqual(double_metaphone('Mayhew', 4), ('MH', 'MHF')) |
2843
|
|
|
self.assertEqual(double_metaphone('McAllaster', 4), ('MKLS', '')) |
2844
|
|
|
self.assertEqual(double_metaphone('McAllister', 4), ('MKLS', '')) |
2845
|
|
|
self.assertEqual(double_metaphone('McConnell', 4), ('MKNL', '')) |
2846
|
|
|
self.assertEqual(double_metaphone('McFarland', 4), ('MKFR', '')) |
2847
|
|
|
self.assertEqual(double_metaphone('McIlroy', 4), ('MSLR', '')) |
2848
|
|
|
self.assertEqual(double_metaphone('McNair', 4), ('MKNR', '')) |
2849
|
|
|
self.assertEqual(double_metaphone('McNair-Landry', 4), ('MKNR', '')) |
2850
|
|
|
self.assertEqual(double_metaphone('McRaven', 4), ('MKRF', '')) |
2851
|
|
|
self.assertEqual(double_metaphone('Mead', 4), ('MT', '')) |
2852
|
|
|
self.assertEqual(double_metaphone('Meade', 4), ('MT', '')) |
2853
|
|
|
self.assertEqual(double_metaphone('Meck', 4), ('MK', '')) |
2854
|
|
|
self.assertEqual(double_metaphone('Melton', 4), ('MLTN', '')) |
2855
|
|
|
self.assertEqual(double_metaphone('Mendenhall', 4), ('MNTN', '')) |
2856
|
|
|
self.assertEqual(double_metaphone('Mering', 4), ('MRNK', '')) |
2857
|
|
|
self.assertEqual(double_metaphone('Merrick', 4), ('MRK', '')) |
2858
|
|
|
self.assertEqual(double_metaphone('Merry', 4), ('MR', '')) |
2859
|
|
|
self.assertEqual(double_metaphone('Mighill', 4), ('ML', '')) |
2860
|
|
|
self.assertEqual(double_metaphone('Miller', 4), ('MLR', '')) |
2861
|
|
|
self.assertEqual(double_metaphone('Milton', 4), ('MLTN', '')) |
2862
|
|
|
self.assertEqual(double_metaphone('Mohun', 4), ('MHN', '')) |
2863
|
|
|
self.assertEqual(double_metaphone('Montague', 4), ('MNTK', '')) |
2864
|
|
|
self.assertEqual(double_metaphone('Montboucher', 4), ('MNTP', '')) |
2865
|
|
|
self.assertEqual(double_metaphone('Moore', 4), ('MR', '')) |
2866
|
|
|
self.assertEqual(double_metaphone('Morrel', 4), ('MRL', '')) |
2867
|
|
|
self.assertEqual(double_metaphone('Morrill', 4), ('MRL', '')) |
2868
|
|
|
self.assertEqual(double_metaphone('Morris', 4), ('MRS', '')) |
2869
|
|
|
self.assertEqual(double_metaphone('Morton', 4), ('MRTN', '')) |
2870
|
|
|
self.assertEqual(double_metaphone('Moton', 4), ('MTN', '')) |
2871
|
|
|
self.assertEqual(double_metaphone('Muir', 4), ('MR', '')) |
2872
|
|
|
self.assertEqual(double_metaphone('Mulferd', 4), ('MLFR', '')) |
2873
|
|
|
self.assertEqual(double_metaphone('Mullins', 4), ('MLNS', '')) |
2874
|
|
|
self.assertEqual(double_metaphone('Mulso', 4), ('MLS', '')) |
2875
|
|
|
self.assertEqual(double_metaphone('Munger', 4), ('MNKR', 'MNJR')) |
2876
|
|
|
self.assertEqual(double_metaphone('Munt', 4), ('MNT', '')) |
2877
|
|
|
self.assertEqual(double_metaphone('Murchad', 4), ('MRXT', 'MRKT')) |
2878
|
|
|
self.assertEqual(double_metaphone('Murdock', 4), ('MRTK', '')) |
2879
|
|
|
self.assertEqual(double_metaphone('Murray', 4), ('MR', '')) |
2880
|
|
|
self.assertEqual(double_metaphone('Muskett', 4), ('MSKT', '')) |
2881
|
|
|
self.assertEqual(double_metaphone('Myers', 4), ('MRS', '')) |
2882
|
|
|
self.assertEqual(double_metaphone('Myrick', 4), ('MRK', '')) |
2883
|
|
|
self.assertEqual(double_metaphone('NORRIS', 4), ('NRS', '')) |
2884
|
|
|
self.assertEqual(double_metaphone('Nayle', 4), ('NL', '')) |
2885
|
|
|
self.assertEqual(double_metaphone('Newcomb', 4), ('NKMP', '')) |
2886
|
|
|
self.assertEqual(double_metaphone('Newcomb(e)', 4), ('NKMP', '')) |
2887
|
|
|
self.assertEqual(double_metaphone('Newkirk', 4), ('NKRK', '')) |
2888
|
|
|
self.assertEqual(double_metaphone('Newton', 4), ('NTN', '')) |
2889
|
|
|
self.assertEqual(double_metaphone('Niles', 4), ('NLS', '')) |
2890
|
|
|
self.assertEqual(double_metaphone('Noble', 4), ('NPL', '')) |
2891
|
|
|
self.assertEqual(double_metaphone('Noel', 4), ('NL', '')) |
2892
|
|
|
self.assertEqual(double_metaphone('Northend', 4), ('NR0N', 'NRTN')) |
2893
|
|
|
self.assertEqual(double_metaphone('Norton', 4), ('NRTN', '')) |
2894
|
|
|
self.assertEqual(double_metaphone('Nutter', 4), ('NTR', '')) |
2895
|
|
|
self.assertEqual(double_metaphone('Odding', 4), ('ATNK', '')) |
2896
|
|
|
self.assertEqual(double_metaphone('Odenbaugh', 4), ('ATNP', '')) |
2897
|
|
|
self.assertEqual(double_metaphone('Ogborn', 4), ('AKPR', '')) |
2898
|
|
|
self.assertEqual(double_metaphone('Oppenheimer', 4), ('APNM', '')) |
2899
|
|
|
self.assertEqual(double_metaphone('Otis', 4), ('ATS', '')) |
2900
|
|
|
self.assertEqual(double_metaphone('Oviatt', 4), ('AFT', '')) |
2901
|
|
|
self.assertEqual(double_metaphone('PRUST?', 4), ('PRST', '')) |
2902
|
|
|
self.assertEqual(double_metaphone('Paddock', 4), ('PTK', '')) |
2903
|
|
|
self.assertEqual(double_metaphone('Page', 4), ('PJ', 'PK')) |
2904
|
|
|
self.assertEqual(double_metaphone('Paine', 4), ('PN', '')) |
2905
|
|
|
self.assertEqual(double_metaphone('Paist', 4), ('PST', '')) |
2906
|
|
|
self.assertEqual(double_metaphone('Palmer', 4), ('PLMR', '')) |
2907
|
|
|
self.assertEqual(double_metaphone('Park', 4), ('PRK', '')) |
2908
|
|
|
self.assertEqual(double_metaphone('Parker', 4), ('PRKR', '')) |
2909
|
|
|
self.assertEqual(double_metaphone('Parkhurst', 4), ('PRKR', '')) |
2910
|
|
|
self.assertEqual(double_metaphone('Parrat', 4), ('PRT', '')) |
2911
|
|
|
self.assertEqual(double_metaphone('Parsons', 4), ('PRSN', '')) |
2912
|
|
|
self.assertEqual(double_metaphone('Partridge', 4), ('PRTR', '')) |
2913
|
|
|
self.assertEqual(double_metaphone('Pashley', 4), ('PXL', '')) |
2914
|
|
|
self.assertEqual(double_metaphone('Pasley', 4), ('PSL', '')) |
2915
|
|
|
self.assertEqual(double_metaphone('Patrick', 4), ('PTRK', '')) |
2916
|
|
|
self.assertEqual(double_metaphone('Pattee', 4), ('PT', '')) |
2917
|
|
|
self.assertEqual(double_metaphone('Patten', 4), ('PTN', '')) |
2918
|
|
|
self.assertEqual(double_metaphone('Pawley', 4), ('PL', '')) |
2919
|
|
|
self.assertEqual(double_metaphone('Payne', 4), ('PN', '')) |
2920
|
|
|
self.assertEqual(double_metaphone('Peabody', 4), ('PPT', '')) |
2921
|
|
|
self.assertEqual(double_metaphone('Peake', 4), ('PK', '')) |
2922
|
|
|
self.assertEqual(double_metaphone('Pearson', 4), ('PRSN', '')) |
2923
|
|
|
self.assertEqual(double_metaphone('Peat', 4), ('PT', '')) |
2924
|
|
|
self.assertEqual(double_metaphone('Pedersen', 4), ('PTRS', '')) |
2925
|
|
|
self.assertEqual(double_metaphone('Percy', 4), ('PRS', '')) |
2926
|
|
|
self.assertEqual(double_metaphone('Perkins', 4), ('PRKN', '')) |
2927
|
|
|
self.assertEqual(double_metaphone('Perrine', 4), ('PRN', '')) |
2928
|
|
|
self.assertEqual(double_metaphone('Perry', 4), ('PR', '')) |
2929
|
|
|
self.assertEqual(double_metaphone('Peson', 4), ('PSN', '')) |
2930
|
|
|
self.assertEqual(double_metaphone('Peterson', 4), ('PTRS', '')) |
2931
|
|
|
self.assertEqual(double_metaphone('Peyton', 4), ('PTN', '')) |
2932
|
|
|
self.assertEqual(double_metaphone('Phinney', 4), ('FN', '')) |
2933
|
|
|
self.assertEqual(double_metaphone('Pickard', 4), ('PKRT', '')) |
2934
|
|
|
self.assertEqual(double_metaphone('Pierce', 4), ('PRS', '')) |
2935
|
|
|
self.assertEqual(double_metaphone('Pierrepont', 4), ('PRPN', '')) |
2936
|
|
|
self.assertEqual(double_metaphone('Pike', 4), ('PK', '')) |
2937
|
|
|
self.assertEqual(double_metaphone('Pinkham', 4), ('PNKM', '')) |
2938
|
|
|
self.assertEqual(double_metaphone('Pitman', 4), ('PTMN', '')) |
2939
|
|
|
self.assertEqual(double_metaphone('Pitt', 4), ('PT', '')) |
2940
|
|
|
self.assertEqual(double_metaphone('Pitts', 4), ('PTS', '')) |
2941
|
|
|
self.assertEqual(double_metaphone('Plantagenet', 4), ('PLNT', '')) |
2942
|
|
|
self.assertEqual(double_metaphone('Platt', 4), ('PLT', '')) |
2943
|
|
|
self.assertEqual(double_metaphone('Platts', 4), ('PLTS', '')) |
2944
|
|
|
self.assertEqual(double_metaphone('Pleis', 4), ('PLS', '')) |
2945
|
|
|
self.assertEqual(double_metaphone('Pleiss', 4), ('PLS', '')) |
2946
|
|
|
self.assertEqual(double_metaphone('Plisko', 4), ('PLSK', '')) |
2947
|
|
|
self.assertEqual(double_metaphone('Pliskovitch', 4), ('PLSK', '')) |
2948
|
|
|
self.assertEqual(double_metaphone('Plum', 4), ('PLM', '')) |
2949
|
|
|
self.assertEqual(double_metaphone('Plume', 4), ('PLM', '')) |
2950
|
|
|
self.assertEqual(double_metaphone('Poitou', 4), ('PT', '')) |
2951
|
|
|
self.assertEqual(double_metaphone('Pomeroy', 4), ('PMR', '')) |
2952
|
|
|
self.assertEqual(double_metaphone('Poretiers', 4), ('PRTR', '')) |
2953
|
|
|
self.assertEqual(double_metaphone('Pote', 4), ('PT', '')) |
2954
|
|
|
self.assertEqual(double_metaphone('Potter', 4), ('PTR', '')) |
2955
|
|
|
self.assertEqual(double_metaphone('Potts', 4), ('PTS', '')) |
2956
|
|
|
self.assertEqual(double_metaphone('Powell', 4), ('PL', '')) |
2957
|
|
|
self.assertEqual(double_metaphone('Pratt', 4), ('PRT', '')) |
2958
|
|
|
self.assertEqual(double_metaphone('Presbury', 4), ('PRSP', '')) |
2959
|
|
|
self.assertEqual(double_metaphone('Priest', 4), ('PRST', '')) |
2960
|
|
|
self.assertEqual(double_metaphone('Prindle', 4), ('PRNT', '')) |
2961
|
|
|
self.assertEqual(double_metaphone('Prior', 4), ('PRR', '')) |
2962
|
|
|
self.assertEqual(double_metaphone('Profumo', 4), ('PRFM', '')) |
2963
|
|
|
self.assertEqual(double_metaphone('Purdy', 4), ('PRT', '')) |
2964
|
|
|
self.assertEqual(double_metaphone('Purefoy', 4), ('PRF', '')) |
2965
|
|
|
self.assertEqual(double_metaphone('Pury', 4), ('PR', '')) |
2966
|
|
|
self.assertEqual(double_metaphone('Quinter', 4), ('KNTR', '')) |
2967
|
|
|
self.assertEqual(double_metaphone('Rachel', 4), ('RXL', 'RKL')) |
2968
|
|
|
self.assertEqual(double_metaphone('Rand', 4), ('RNT', '')) |
2969
|
|
|
self.assertEqual(double_metaphone('Rankin', 4), ('RNKN', '')) |
2970
|
|
|
self.assertEqual(double_metaphone('Ravenscroft', 4), ('RFNS', '')) |
2971
|
|
|
self.assertEqual(double_metaphone('Raynsford', 4), ('RNSF', '')) |
2972
|
|
|
self.assertEqual(double_metaphone('Reakirt', 4), ('RKRT', '')) |
2973
|
|
|
self.assertEqual(double_metaphone('Reaves', 4), ('RFS', '')) |
2974
|
|
|
self.assertEqual(double_metaphone('Reeves', 4), ('RFS', '')) |
2975
|
|
|
self.assertEqual(double_metaphone('Reichert', 4), ('RXRT', 'RKRT')) |
2976
|
|
|
self.assertEqual(double_metaphone('Remmele', 4), ('RML', '')) |
2977
|
|
|
self.assertEqual(double_metaphone('Reynolds', 4), ('RNLT', '')) |
2978
|
|
|
self.assertEqual(double_metaphone('Rhodes', 4), ('RTS', '')) |
2979
|
|
|
self.assertEqual(double_metaphone('Richards', 4), ('RXRT', 'RKRT')) |
2980
|
|
|
self.assertEqual(double_metaphone('Richardson', 4), ('RXRT', 'RKRT')) |
2981
|
|
|
self.assertEqual(double_metaphone('Ring', 4), ('RNK', '')) |
2982
|
|
|
self.assertEqual(double_metaphone('Roberts', 4), ('RPRT', '')) |
2983
|
|
|
self.assertEqual(double_metaphone('Robertson', 4), ('RPRT', '')) |
2984
|
|
|
self.assertEqual(double_metaphone('Robson', 4), ('RPSN', '')) |
2985
|
|
|
self.assertEqual(double_metaphone('Rodie', 4), ('RT', '')) |
2986
|
|
|
self.assertEqual(double_metaphone('Rody', 4), ('RT', '')) |
2987
|
|
|
self.assertEqual(double_metaphone('Rogers', 4), ('RKRS', 'RJRS')) |
2988
|
|
|
self.assertEqual(double_metaphone('Ross', 4), ('RS', '')) |
2989
|
|
|
self.assertEqual(double_metaphone('Rosslevin', 4), ('RSLF', '')) |
2990
|
|
|
self.assertEqual(double_metaphone('Rowland', 4), ('RLNT', '')) |
2991
|
|
|
self.assertEqual(double_metaphone('Ruehl', 4), ('RL', '')) |
2992
|
|
|
self.assertEqual(double_metaphone('Russell', 4), ('RSL', '')) |
2993
|
|
|
self.assertEqual(double_metaphone('Ruth', 4), ('R0', 'RT')) |
2994
|
|
|
self.assertEqual(double_metaphone('Ryan', 4), ('RN', '')) |
2995
|
|
|
self.assertEqual(double_metaphone('Rysse', 4), ('RS', '')) |
2996
|
|
|
self.assertEqual(double_metaphone('Sadler', 4), ('STLR', '')) |
2997
|
|
|
self.assertEqual(double_metaphone('Salmon', 4), ('SLMN', '')) |
2998
|
|
|
self.assertEqual(double_metaphone('Salter', 4), ('SLTR', '')) |
2999
|
|
|
self.assertEqual(double_metaphone('Salvatore', 4), ('SLFT', '')) |
3000
|
|
|
self.assertEqual(double_metaphone('Sanders', 4), ('SNTR', '')) |
3001
|
|
|
self.assertEqual(double_metaphone('Sands', 4), ('SNTS', '')) |
3002
|
|
|
self.assertEqual(double_metaphone('Sanford', 4), ('SNFR', '')) |
3003
|
|
|
self.assertEqual(double_metaphone('Sanger', 4), ('SNKR', 'SNJR')) |
3004
|
|
|
self.assertEqual(double_metaphone('Sargent', 4), ('SRJN', 'SRKN')) |
3005
|
|
|
self.assertEqual(double_metaphone('Saunders', 4), ('SNTR', '')) |
3006
|
|
|
self.assertEqual(double_metaphone('Schilling', 4), ('XLNK', '')) |
3007
|
|
|
self.assertEqual(double_metaphone('Schlegel', 4), ('XLKL', 'SLKL')) |
3008
|
|
|
self.assertEqual(double_metaphone('Scott', 4), ('SKT', '')) |
3009
|
|
|
self.assertEqual(double_metaphone('Sears', 4), ('SRS', '')) |
3010
|
|
|
self.assertEqual(double_metaphone('Segersall', 4), ('SJRS', 'SKRS')) |
3011
|
|
|
self.assertEqual(double_metaphone('Senecal', 4), ('SNKL', '')) |
3012
|
|
|
self.assertEqual(double_metaphone('Sergeaux', 4), ('SRJ', 'SRK')) |
3013
|
|
|
self.assertEqual(double_metaphone('Severance', 4), ('SFRN', '')) |
3014
|
|
|
self.assertEqual(double_metaphone('Sharp', 4), ('XRP', '')) |
3015
|
|
|
self.assertEqual(double_metaphone('Sharpe', 4), ('XRP', '')) |
3016
|
|
|
self.assertEqual(double_metaphone('Sharply', 4), ('XRPL', '')) |
3017
|
|
|
self.assertEqual(double_metaphone('Shatswell', 4), ('XTSL', '')) |
3018
|
|
|
self.assertEqual(double_metaphone('Shattack', 4), ('XTK', '')) |
3019
|
|
|
self.assertEqual(double_metaphone('Shattock', 4), ('XTK', '')) |
3020
|
|
|
self.assertEqual(double_metaphone('Shattuck', 4), ('XTK', '')) |
3021
|
|
|
self.assertEqual(double_metaphone('Shaw', 4), ('X', 'XF')) |
3022
|
|
|
self.assertEqual(double_metaphone('Sheldon', 4), ('XLTN', '')) |
3023
|
|
|
self.assertEqual(double_metaphone('Sherman', 4), ('XRMN', '')) |
3024
|
|
|
self.assertEqual(double_metaphone('Shinn', 4), ('XN', '')) |
3025
|
|
|
self.assertEqual(double_metaphone('Shirford', 4), ('XRFR', '')) |
3026
|
|
|
self.assertEqual(double_metaphone('Shirley', 4), ('XRL', '')) |
3027
|
|
|
self.assertEqual(double_metaphone('Shively', 4), ('XFL', '')) |
3028
|
|
|
self.assertEqual(double_metaphone('Shoemaker', 4), ('XMKR', '')) |
3029
|
|
|
self.assertEqual(double_metaphone('Short', 4), ('XRT', '')) |
3030
|
|
|
self.assertEqual(double_metaphone('Shotwell', 4), ('XTL', '')) |
3031
|
|
|
self.assertEqual(double_metaphone('Shute', 4), ('XT', '')) |
3032
|
|
|
self.assertEqual(double_metaphone('Sibley', 4), ('SPL', '')) |
3033
|
|
|
self.assertEqual(double_metaphone('Silver', 4), ('SLFR', '')) |
3034
|
|
|
self.assertEqual(double_metaphone('Simes', 4), ('SMS', '')) |
3035
|
|
|
self.assertEqual(double_metaphone('Sinken', 4), ('SNKN', '')) |
3036
|
|
|
self.assertEqual(double_metaphone('Sinn', 4), ('SN', '')) |
3037
|
|
|
self.assertEqual(double_metaphone('Skelton', 4), ('SKLT', '')) |
3038
|
|
|
self.assertEqual(double_metaphone('Skiffe', 4), ('SKF', '')) |
3039
|
|
|
self.assertEqual(double_metaphone('Skotkonung', 4), ('SKTK', '')) |
3040
|
|
|
self.assertEqual(double_metaphone('Slade', 4), ('SLT', 'XLT')) |
3041
|
|
|
self.assertEqual(double_metaphone('Slye', 4), ('SL', 'XL')) |
3042
|
|
|
self.assertEqual(double_metaphone('Smedley', 4), ('SMTL', 'XMTL')) |
3043
|
|
|
self.assertEqual(double_metaphone('Smith', 4), ('SM0', 'XMT')) |
3044
|
|
|
self.assertEqual(double_metaphone('Snow', 4), ('SN', 'XNF')) |
3045
|
|
|
self.assertEqual(double_metaphone('Soole', 4), ('SL', '')) |
3046
|
|
|
self.assertEqual(double_metaphone('Soule', 4), ('SL', '')) |
3047
|
|
|
self.assertEqual(double_metaphone('Southworth', 4), ('S0R0', 'STRT')) |
3048
|
|
|
self.assertEqual(double_metaphone('Sowles', 4), ('SLS', '')) |
3049
|
|
|
self.assertEqual(double_metaphone('Spalding', 4), ('SPLT', '')) |
3050
|
|
|
self.assertEqual(double_metaphone('Spark', 4), ('SPRK', '')) |
3051
|
|
|
self.assertEqual(double_metaphone('Spencer', 4), ('SPNS', '')) |
3052
|
|
|
self.assertEqual(double_metaphone('Sperry', 4), ('SPR', '')) |
3053
|
|
|
self.assertEqual(double_metaphone('Spofford', 4), ('SPFR', '')) |
3054
|
|
|
self.assertEqual(double_metaphone('Spooner', 4), ('SPNR', '')) |
3055
|
|
|
self.assertEqual(double_metaphone('Sprague', 4), ('SPRK', '')) |
3056
|
|
|
self.assertEqual(double_metaphone('Springer', 4), ('SPRN', '')) |
3057
|
|
|
self.assertEqual(double_metaphone('St. Clair', 4), ('STKL', '')) |
3058
|
|
|
self.assertEqual(double_metaphone('St. Claire', 4), ('STKL', '')) |
3059
|
|
|
self.assertEqual(double_metaphone('St. Leger', 4), ('STLJ', 'STLK')) |
3060
|
|
|
self.assertEqual(double_metaphone('St. Omer', 4), ('STMR', '')) |
3061
|
|
|
self.assertEqual(double_metaphone('Stafferton', 4), ('STFR', '')) |
3062
|
|
|
self.assertEqual(double_metaphone('Stafford', 4), ('STFR', '')) |
3063
|
|
|
self.assertEqual(double_metaphone('Stalham', 4), ('STLM', '')) |
3064
|
|
|
self.assertEqual(double_metaphone('Stanford', 4), ('STNF', '')) |
3065
|
|
|
self.assertEqual(double_metaphone('Stanton', 4), ('STNT', '')) |
3066
|
|
|
self.assertEqual(double_metaphone('Star', 4), ('STR', '')) |
3067
|
|
|
self.assertEqual(double_metaphone('Starbuck', 4), ('STRP', '')) |
3068
|
|
|
self.assertEqual(double_metaphone('Starkey', 4), ('STRK', '')) |
3069
|
|
|
self.assertEqual(double_metaphone('Starkweather', 4), ('STRK', '')) |
3070
|
|
|
self.assertEqual(double_metaphone('Stearns', 4), ('STRN', '')) |
3071
|
|
|
self.assertEqual(double_metaphone('Stebbins', 4), ('STPN', '')) |
3072
|
|
|
self.assertEqual(double_metaphone('Steele', 4), ('STL', '')) |
3073
|
|
|
self.assertEqual(double_metaphone('Stephenson', 4), ('STFN', '')) |
3074
|
|
|
self.assertEqual(double_metaphone('Stevens', 4), ('STFN', '')) |
3075
|
|
|
self.assertEqual(double_metaphone('Stoddard', 4), ('STTR', '')) |
3076
|
|
|
self.assertEqual(double_metaphone('Stodder', 4), ('STTR', '')) |
3077
|
|
|
self.assertEqual(double_metaphone('Stone', 4), ('STN', '')) |
3078
|
|
|
self.assertEqual(double_metaphone('Storey', 4), ('STR', '')) |
3079
|
|
|
self.assertEqual(double_metaphone('Storrada', 4), ('STRT', '')) |
3080
|
|
|
self.assertEqual(double_metaphone('Story', 4), ('STR', '')) |
3081
|
|
|
self.assertEqual(double_metaphone('Stoughton', 4), ('STFT', '')) |
3082
|
|
|
self.assertEqual(double_metaphone('Stout', 4), ('STT', '')) |
3083
|
|
|
self.assertEqual(double_metaphone('Stow', 4), ('ST', 'STF')) |
3084
|
|
|
self.assertEqual(double_metaphone('Strong', 4), ('STRN', '')) |
3085
|
|
|
self.assertEqual(double_metaphone('Strutt', 4), ('STRT', '')) |
3086
|
|
|
self.assertEqual(double_metaphone('Stryker', 4), ('STRK', '')) |
3087
|
|
|
self.assertEqual(double_metaphone('Stuckeley', 4), ('STKL', '')) |
3088
|
|
|
self.assertEqual(double_metaphone('Sturges', 4), ('STRJ', 'STRK')) |
3089
|
|
|
self.assertEqual(double_metaphone('Sturgess', 4), ('STRJ', 'STRK')) |
3090
|
|
|
self.assertEqual(double_metaphone('Sturgis', 4), ('STRJ', 'STRK')) |
3091
|
|
|
self.assertEqual(double_metaphone('Suevain', 4), ('SFN', '')) |
3092
|
|
|
self.assertEqual(double_metaphone('Sulyard', 4), ('SLRT', '')) |
3093
|
|
|
self.assertEqual(double_metaphone('Sutton', 4), ('STN', '')) |
3094
|
|
|
self.assertEqual(double_metaphone('Swain', 4), ('SN', 'XN')) |
3095
|
|
|
self.assertEqual(double_metaphone('Swayne', 4), ('SN', 'XN')) |
3096
|
|
|
self.assertEqual(double_metaphone('Swayze', 4), ('SS', 'XTS')) |
3097
|
|
|
self.assertEqual(double_metaphone('Swift', 4), ('SFT', 'XFT')) |
3098
|
|
|
self.assertEqual(double_metaphone('Taber', 4), ('TPR', '')) |
3099
|
|
|
self.assertEqual(double_metaphone('Talcott', 4), ('TLKT', '')) |
3100
|
|
|
self.assertEqual(double_metaphone('Tarne', 4), ('TRN', '')) |
3101
|
|
|
self.assertEqual(double_metaphone('Tatum', 4), ('TTM', '')) |
3102
|
|
|
self.assertEqual(double_metaphone('Taverner', 4), ('TFRN', '')) |
3103
|
|
|
self.assertEqual(double_metaphone('Taylor', 4), ('TLR', '')) |
3104
|
|
|
self.assertEqual(double_metaphone('Tenney', 4), ('TN', '')) |
3105
|
|
|
self.assertEqual(double_metaphone('Thayer', 4), ('0R', 'TR')) |
3106
|
|
|
self.assertEqual(double_metaphone('Thember', 4), ('0MPR', 'TMPR')) |
3107
|
|
|
self.assertEqual(double_metaphone('Thomas', 4), ('TMS', '')) |
3108
|
|
|
self.assertEqual(double_metaphone('Thompson', 4), ('TMPS', '')) |
3109
|
|
|
self.assertEqual(double_metaphone('Thorne', 4), ('0RN', 'TRN')) |
3110
|
|
|
self.assertEqual(double_metaphone('Thornycraft', 4), ('0RNK', 'TRNK')) |
3111
|
|
|
self.assertEqual(double_metaphone('Threlkeld', 4), ('0RLK', 'TRLK')) |
3112
|
|
|
self.assertEqual(double_metaphone('Throckmorton', 4), ('0RKM', 'TRKM')) |
3113
|
|
|
self.assertEqual(double_metaphone('Thwaits', 4), ('0TS', 'TTS')) |
3114
|
|
|
self.assertEqual(double_metaphone('Tibbetts', 4), ('TPTS', '')) |
3115
|
|
|
self.assertEqual(double_metaphone('Tidd', 4), ('TT', '')) |
3116
|
|
|
self.assertEqual(double_metaphone('Tierney', 4), ('TRN', '')) |
3117
|
|
|
self.assertEqual(double_metaphone('Tilley', 4), ('TL', '')) |
3118
|
|
|
self.assertEqual(double_metaphone('Tillieres', 4), ('TLRS', '')) |
3119
|
|
|
self.assertEqual(double_metaphone('Tilly', 4), ('TL', '')) |
3120
|
|
|
self.assertEqual(double_metaphone('Tisdale', 4), ('TSTL', '')) |
3121
|
|
|
self.assertEqual(double_metaphone('Titus', 4), ('TTS', '')) |
3122
|
|
|
self.assertEqual(double_metaphone('Tobey', 4), ('TP', '')) |
3123
|
|
|
self.assertEqual(double_metaphone('Tooker', 4), ('TKR', '')) |
3124
|
|
|
self.assertEqual(double_metaphone('Towle', 4), ('TL', '')) |
3125
|
|
|
self.assertEqual(double_metaphone('Towne', 4), ('TN', '')) |
3126
|
|
|
self.assertEqual(double_metaphone('Townsend', 4), ('TNSN', '')) |
3127
|
|
|
self.assertEqual(double_metaphone('Treadway', 4), ('TRT', '')) |
3128
|
|
|
self.assertEqual(double_metaphone('Trelawney', 4), ('TRLN', '')) |
3129
|
|
|
self.assertEqual(double_metaphone('Trinder', 4), ('TRNT', '')) |
3130
|
|
|
self.assertEqual(double_metaphone('Tripp', 4), ('TRP', '')) |
3131
|
|
|
self.assertEqual(double_metaphone('Trippe', 4), ('TRP', '')) |
3132
|
|
|
self.assertEqual(double_metaphone('Trott', 4), ('TRT', '')) |
3133
|
|
|
self.assertEqual(double_metaphone('True', 4), ('TR', '')) |
3134
|
|
|
self.assertEqual(double_metaphone('Trussebut', 4), ('TRSP', '')) |
3135
|
|
|
self.assertEqual(double_metaphone('Tucker', 4), ('TKR', '')) |
3136
|
|
|
self.assertEqual(double_metaphone('Turgeon', 4), ('TRJN', 'TRKN')) |
3137
|
|
|
self.assertEqual(double_metaphone('Turner', 4), ('TRNR', '')) |
3138
|
|
|
self.assertEqual(double_metaphone('Tuttle', 4), ('TTL', '')) |
3139
|
|
|
self.assertEqual(double_metaphone('Tyler', 4), ('TLR', '')) |
3140
|
|
|
self.assertEqual(double_metaphone('Tylle', 4), ('TL', '')) |
3141
|
|
|
self.assertEqual(double_metaphone('Tyrrel', 4), ('TRL', '')) |
3142
|
|
|
self.assertEqual(double_metaphone('Ua Tuathail', 4), ('AT0L', 'ATTL')) |
3143
|
|
|
self.assertEqual(double_metaphone('Ulrich', 4), ('ALRX', 'ALRK')) |
3144
|
|
|
self.assertEqual(double_metaphone('Underhill', 4), ('ANTR', '')) |
3145
|
|
|
self.assertEqual(double_metaphone('Underwood', 4), ('ANTR', '')) |
3146
|
|
|
self.assertEqual(double_metaphone('Unknown', 4), ('ANKN', '')) |
3147
|
|
|
self.assertEqual(double_metaphone('Valentine', 4), ('FLNT', '')) |
3148
|
|
|
self.assertEqual(double_metaphone('Van Egmond', 4), ('FNKM', '')) |
3149
|
|
|
self.assertEqual(double_metaphone('Van der Beek', 4), ('FNTR', '')) |
3150
|
|
|
self.assertEqual(double_metaphone('Vaughan', 4), ('FKN', '')) |
3151
|
|
|
self.assertEqual(double_metaphone('Vermenlen', 4), ('FRMN', '')) |
3152
|
|
|
self.assertEqual(double_metaphone('Vincent', 4), ('FNSN', '')) |
3153
|
|
|
self.assertEqual(double_metaphone('Volentine', 4), ('FLNT', '')) |
3154
|
|
|
self.assertEqual(double_metaphone('Wagner', 4), ('AKNR', 'FKNR')) |
3155
|
|
|
self.assertEqual(double_metaphone('Waite', 4), ('AT', 'FT')) |
3156
|
|
|
self.assertEqual(double_metaphone('Walker', 4), ('ALKR', 'FLKR')) |
3157
|
|
|
self.assertEqual(double_metaphone('Walter', 4), ('ALTR', 'FLTR')) |
3158
|
|
|
self.assertEqual(double_metaphone('Wandell', 4), ('ANTL', 'FNTL')) |
3159
|
|
|
self.assertEqual(double_metaphone('Wandesford', 4), ('ANTS', 'FNTS')) |
3160
|
|
|
self.assertEqual(double_metaphone('Warbleton', 4), ('ARPL', 'FRPL')) |
3161
|
|
|
self.assertEqual(double_metaphone('Ward', 4), ('ART', 'FRT')) |
3162
|
|
|
self.assertEqual(double_metaphone('Warde', 4), ('ART', 'FRT')) |
3163
|
|
|
self.assertEqual(double_metaphone('Ware', 4), ('AR', 'FR')) |
3164
|
|
|
self.assertEqual(double_metaphone('Wareham', 4), ('ARHM', 'FRHM')) |
3165
|
|
|
self.assertEqual(double_metaphone('Warner', 4), ('ARNR', 'FRNR')) |
3166
|
|
|
self.assertEqual(double_metaphone('Warren', 4), ('ARN', 'FRN')) |
3167
|
|
|
self.assertEqual(double_metaphone('Washburne', 4), ('AXPR', 'FXPR')) |
3168
|
|
|
self.assertEqual(double_metaphone('Waterbury', 4), ('ATRP', 'FTRP')) |
3169
|
|
|
self.assertEqual(double_metaphone('Watson', 4), ('ATSN', 'FTSN')) |
3170
|
|
|
self.assertEqual(double_metaphone('WatsonEllithorpe', 4), |
3171
|
|
|
('ATSN', 'FTSN')) |
3172
|
|
|
self.assertEqual(double_metaphone('Watts', 4), ('ATS', 'FTS')) |
3173
|
|
|
self.assertEqual(double_metaphone('Wayne', 4), ('AN', 'FN')) |
3174
|
|
|
self.assertEqual(double_metaphone('Webb', 4), ('AP', 'FP')) |
3175
|
|
|
self.assertEqual(double_metaphone('Weber', 4), ('APR', 'FPR')) |
3176
|
|
|
self.assertEqual(double_metaphone('Webster', 4), ('APST', 'FPST')) |
3177
|
|
|
self.assertEqual(double_metaphone('Weed', 4), ('AT', 'FT')) |
3178
|
|
|
self.assertEqual(double_metaphone('Weeks', 4), ('AKS', 'FKS')) |
3179
|
|
|
self.assertEqual(double_metaphone('Wells', 4), ('ALS', 'FLS')) |
3180
|
|
|
self.assertEqual(double_metaphone('Wenzell', 4), ('ANSL', 'FNTS')) |
3181
|
|
|
self.assertEqual(double_metaphone('West', 4), ('AST', 'FST')) |
3182
|
|
|
self.assertEqual(double_metaphone('Westbury', 4), ('ASTP', 'FSTP')) |
3183
|
|
|
self.assertEqual(double_metaphone('Whatlocke', 4), ('ATLK', '')) |
3184
|
|
|
self.assertEqual(double_metaphone('Wheeler', 4), ('ALR', '')) |
3185
|
|
|
self.assertEqual(double_metaphone('Whiston', 4), ('ASTN', '')) |
3186
|
|
|
self.assertEqual(double_metaphone('White', 4), ('AT', '')) |
3187
|
|
|
self.assertEqual(double_metaphone('Whitman', 4), ('ATMN', '')) |
3188
|
|
|
self.assertEqual(double_metaphone('Whiton', 4), ('ATN', '')) |
3189
|
|
|
self.assertEqual(double_metaphone('Whitson', 4), ('ATSN', '')) |
3190
|
|
|
self.assertEqual(double_metaphone('Wickes', 4), ('AKS', 'FKS')) |
3191
|
|
|
self.assertEqual(double_metaphone('Wilbur', 4), ('ALPR', 'FLPR')) |
3192
|
|
|
self.assertEqual(double_metaphone('Wilcotes', 4), ('ALKT', 'FLKT')) |
3193
|
|
|
self.assertEqual(double_metaphone('Wilkinson', 4), ('ALKN', 'FLKN')) |
3194
|
|
|
self.assertEqual(double_metaphone('Willets', 4), ('ALTS', 'FLTS')) |
3195
|
|
|
self.assertEqual(double_metaphone('Willett', 4), ('ALT', 'FLT')) |
3196
|
|
|
self.assertEqual(double_metaphone('Willey', 4), ('AL', 'FL')) |
3197
|
|
|
self.assertEqual(double_metaphone('Williams', 4), ('ALMS', 'FLMS')) |
3198
|
|
|
self.assertEqual(double_metaphone('Williston', 4), ('ALST', 'FLST')) |
3199
|
|
|
self.assertEqual(double_metaphone('Wilson', 4), ('ALSN', 'FLSN')) |
3200
|
|
|
self.assertEqual(double_metaphone('Wimes', 4), ('AMS', 'FMS')) |
3201
|
|
|
self.assertEqual(double_metaphone('Winch', 4), ('ANX', 'FNK')) |
3202
|
|
|
self.assertEqual(double_metaphone('Winegar', 4), ('ANKR', 'FNKR')) |
3203
|
|
|
self.assertEqual(double_metaphone('Wing', 4), ('ANK', 'FNK')) |
3204
|
|
|
self.assertEqual(double_metaphone('Winsley', 4), ('ANSL', 'FNSL')) |
3205
|
|
|
self.assertEqual(double_metaphone('Winslow', 4), ('ANSL', 'FNSL')) |
3206
|
|
|
self.assertEqual(double_metaphone('Winthrop', 4), ('AN0R', 'FNTR')) |
3207
|
|
|
self.assertEqual(double_metaphone('Wise', 4), ('AS', 'FS')) |
3208
|
|
|
self.assertEqual(double_metaphone('Wood', 4), ('AT', 'FT')) |
3209
|
|
|
self.assertEqual(double_metaphone('Woodbridge', 4), ('ATPR', 'FTPR')) |
3210
|
|
|
self.assertEqual(double_metaphone('Woodward', 4), ('ATRT', 'FTRT')) |
3211
|
|
|
self.assertEqual(double_metaphone('Wooley', 4), ('AL', 'FL')) |
3212
|
|
|
self.assertEqual(double_metaphone('Woolley', 4), ('AL', 'FL')) |
3213
|
|
|
self.assertEqual(double_metaphone('Worth', 4), ('AR0', 'FRT')) |
3214
|
|
|
self.assertEqual(double_metaphone('Worthen', 4), ('AR0N', 'FRTN')) |
3215
|
|
|
self.assertEqual(double_metaphone('Worthley', 4), ('AR0L', 'FRTL')) |
3216
|
|
|
self.assertEqual(double_metaphone('Wright', 4), ('RT', '')) |
3217
|
|
|
self.assertEqual(double_metaphone('Wyer', 4), ('AR', 'FR')) |
3218
|
|
|
self.assertEqual(double_metaphone('Wyere', 4), ('AR', 'FR')) |
3219
|
|
|
self.assertEqual(double_metaphone('Wynkoop', 4), ('ANKP', 'FNKP')) |
3220
|
|
|
self.assertEqual(double_metaphone('Yarnall', 4), ('ARNL', '')) |
3221
|
|
|
self.assertEqual(double_metaphone('Yeoman', 4), ('AMN', '')) |
3222
|
|
|
self.assertEqual(double_metaphone('Yorke', 4), ('ARK', '')) |
3223
|
|
|
self.assertEqual(double_metaphone('Young', 4), ('ANK', '')) |
3224
|
|
|
self.assertEqual(double_metaphone('ab Wennonwen', 4), ('APNN', '')) |
3225
|
|
|
self.assertEqual(double_metaphone('ap Llewellyn', 4), ('APLL', '')) |
3226
|
|
|
self.assertEqual(double_metaphone('ap Lorwerth', 4), ('APLR', '')) |
3227
|
|
|
self.assertEqual(double_metaphone('d\'Angouleme', 4), ('TNKL', '')) |
3228
|
|
|
self.assertEqual(double_metaphone('de Audeham', 4), ('TTHM', '')) |
3229
|
|
|
self.assertEqual(double_metaphone('de Bavant', 4), ('TPFN', '')) |
3230
|
|
|
self.assertEqual(double_metaphone('de Beauchamp', 4), ('TPXM', 'TPKM')) |
3231
|
|
|
self.assertEqual(double_metaphone('de Beaumont', 4), ('TPMN', '')) |
3232
|
|
|
self.assertEqual(double_metaphone('de Bolbec', 4), ('TPLP', '')) |
3233
|
|
|
self.assertEqual(double_metaphone('de Braiose', 4), ('TPRS', '')) |
3234
|
|
|
self.assertEqual(double_metaphone('de Braose', 4), ('TPRS', '')) |
3235
|
|
|
self.assertEqual(double_metaphone('de Briwere', 4), ('TPRR', '')) |
3236
|
|
|
self.assertEqual(double_metaphone('de Cantelou', 4), ('TKNT', '')) |
3237
|
|
|
self.assertEqual(double_metaphone('de Cherelton', 4), ('TXRL', 'TKRL')) |
3238
|
|
|
self.assertEqual(double_metaphone('de Cherleton', 4), ('TXRL', 'TKRL')) |
3239
|
|
|
self.assertEqual(double_metaphone('de Clare', 4), ('TKLR', '')) |
3240
|
|
|
self.assertEqual(double_metaphone('de Claremont', 4), ('TKLR', '')) |
3241
|
|
|
self.assertEqual(double_metaphone('de Clifford', 4), ('TKLF', '')) |
3242
|
|
|
self.assertEqual(double_metaphone('de Colville', 4), ('TKLF', '')) |
3243
|
|
|
self.assertEqual(double_metaphone('de Courtenay', 4), ('TKRT', '')) |
3244
|
|
|
self.assertEqual(double_metaphone('de Fauconberg', 4), ('TFKN', '')) |
3245
|
|
|
self.assertEqual(double_metaphone('de Forest', 4), ('TFRS', '')) |
3246
|
|
|
self.assertEqual(double_metaphone('de Gai', 4), ('TK', '')) |
3247
|
|
|
self.assertEqual(double_metaphone('de Grey', 4), ('TKR', '')) |
3248
|
|
|
self.assertEqual(double_metaphone('de Guernons', 4), ('TKRN', '')) |
3249
|
|
|
self.assertEqual(double_metaphone('de Haia', 4), ('T', '')) |
3250
|
|
|
self.assertEqual(double_metaphone('de Harcourt', 4), ('TRKR', '')) |
3251
|
|
|
self.assertEqual(double_metaphone('de Hastings', 4), ('TSTN', '')) |
3252
|
|
|
self.assertEqual(double_metaphone('de Hoke', 4), ('TK', '')) |
3253
|
|
|
self.assertEqual(double_metaphone('de Hooch', 4), ('TK', '')) |
3254
|
|
|
self.assertEqual(double_metaphone('de Hugelville', 4), |
3255
|
|
|
('TJLF', 'TKLF')) |
3256
|
|
|
self.assertEqual(double_metaphone('de Huntingdon', 4), ('TNTN', '')) |
3257
|
|
|
self.assertEqual(double_metaphone('de Insula', 4), ('TNSL', '')) |
3258
|
|
|
self.assertEqual(double_metaphone('de Keynes', 4), ('TKNS', '')) |
3259
|
|
|
self.assertEqual(double_metaphone('de Lacy', 4), ('TLS', '')) |
3260
|
|
|
self.assertEqual(double_metaphone('de Lexington', 4), ('TLKS', '')) |
3261
|
|
|
self.assertEqual(double_metaphone('de Lusignan', 4), ('TLSN', 'TLSK')) |
3262
|
|
|
self.assertEqual(double_metaphone('de Manvers', 4), ('TMNF', '')) |
3263
|
|
|
self.assertEqual(double_metaphone('de Montagu', 4), ('TMNT', '')) |
3264
|
|
|
self.assertEqual(double_metaphone('de Montault', 4), ('TMNT', '')) |
3265
|
|
|
self.assertEqual(double_metaphone('de Montfort', 4), ('TMNT', '')) |
3266
|
|
|
self.assertEqual(double_metaphone('de Mortimer', 4), ('TMRT', '')) |
3267
|
|
|
self.assertEqual(double_metaphone('de Morville', 4), ('TMRF', '')) |
3268
|
|
|
self.assertEqual(double_metaphone('de Morvois', 4), ('TMRF', '')) |
3269
|
|
|
self.assertEqual(double_metaphone('de Neufmarche', 4), ('TNFM', '')) |
3270
|
|
|
self.assertEqual(double_metaphone('de Odingsells', 4), ('TTNK', '')) |
3271
|
|
|
self.assertEqual(double_metaphone('de Odyngsells', 4), ('TTNK', '')) |
3272
|
|
|
self.assertEqual(double_metaphone('de Percy', 4), ('TPRS', '')) |
3273
|
|
|
self.assertEqual(double_metaphone('de Pierrepont', 4), ('TPRP', '')) |
3274
|
|
|
self.assertEqual(double_metaphone('de Plessetis', 4), ('TPLS', '')) |
3275
|
|
|
self.assertEqual(double_metaphone('de Porhoet', 4), ('TPRT', '')) |
3276
|
|
|
self.assertEqual(double_metaphone('de Prouz', 4), ('TPRS', '')) |
3277
|
|
|
self.assertEqual(double_metaphone('de Quincy', 4), ('TKNS', '')) |
3278
|
|
|
self.assertEqual(double_metaphone('de Ripellis', 4), ('TRPL', '')) |
3279
|
|
|
self.assertEqual(double_metaphone('de Ros', 4), ('TRS', '')) |
3280
|
|
|
self.assertEqual(double_metaphone('de Salisbury', 4), ('TSLS', '')) |
3281
|
|
|
self.assertEqual(double_metaphone('de Sanford', 4), ('TSNF', '')) |
3282
|
|
|
self.assertEqual(double_metaphone('de Somery', 4), ('TSMR', '')) |
3283
|
|
|
self.assertEqual(double_metaphone('de St. Hilary', 4), ('TSTL', '')) |
3284
|
|
|
self.assertEqual(double_metaphone('de St. Liz', 4), ('TSTL', '')) |
3285
|
|
|
self.assertEqual(double_metaphone('de Sutton', 4), ('TSTN', '')) |
3286
|
|
|
self.assertEqual(double_metaphone('de Toeni', 4), ('TTN', '')) |
3287
|
|
|
self.assertEqual(double_metaphone('de Tony', 4), ('TTN', '')) |
3288
|
|
|
self.assertEqual(double_metaphone('de Umfreville', 4), ('TMFR', '')) |
3289
|
|
|
self.assertEqual(double_metaphone('de Valognes', 4), ('TFLN', 'TFLK')) |
3290
|
|
|
self.assertEqual(double_metaphone('de Vaux', 4), ('TF', '')) |
3291
|
|
|
self.assertEqual(double_metaphone('de Vere', 4), ('TFR', '')) |
3292
|
|
|
self.assertEqual(double_metaphone('de Vermandois', 4), ('TFRM', '')) |
3293
|
|
|
self.assertEqual(double_metaphone('de Vernon', 4), ('TFRN', '')) |
3294
|
|
|
self.assertEqual(double_metaphone('de Vexin', 4), ('TFKS', '')) |
3295
|
|
|
self.assertEqual(double_metaphone('de Vitre', 4), ('TFTR', '')) |
3296
|
|
|
self.assertEqual(double_metaphone('de Wandesford', 4), ('TNTS', '')) |
3297
|
|
|
self.assertEqual(double_metaphone('de Warenne', 4), ('TRN', '')) |
3298
|
|
|
self.assertEqual(double_metaphone('de Westbury', 4), ('TSTP', '')) |
3299
|
|
|
self.assertEqual(double_metaphone('di Saluzzo', 4), ('TSLS', 'TSLT')) |
3300
|
|
|
self.assertEqual(double_metaphone('fitz Alan', 4), ('FTSL', '')) |
3301
|
|
|
self.assertEqual(double_metaphone('fitz Geoffrey', 4), |
3302
|
|
|
('FTSJ', 'FTSK')) |
3303
|
|
|
self.assertEqual(double_metaphone('fitz Herbert', 4), ('FTSR', '')) |
3304
|
|
|
self.assertEqual(double_metaphone('fitz John', 4), ('FTSJ', '')) |
3305
|
|
|
self.assertEqual(double_metaphone('fitz Patrick', 4), ('FTSP', '')) |
3306
|
|
|
self.assertEqual(double_metaphone('fitz Payn', 4), ('FTSP', '')) |
3307
|
|
|
self.assertEqual(double_metaphone('fitz Piers', 4), ('FTSP', '')) |
3308
|
|
|
self.assertEqual(double_metaphone('fitz Randolph', 4), ('FTSR', '')) |
3309
|
|
|
self.assertEqual(double_metaphone('fitz Richard', 4), ('FTSR', '')) |
3310
|
|
|
self.assertEqual(double_metaphone('fitz Robert', 4), ('FTSR', '')) |
3311
|
|
|
self.assertEqual(double_metaphone('fitz Roy', 4), ('FTSR', '')) |
3312
|
|
|
self.assertEqual(double_metaphone('fitz Scrob', 4), ('FTSS', '')) |
3313
|
|
|
self.assertEqual(double_metaphone('fitz Walter', 4), ('FTSL', '')) |
3314
|
|
|
self.assertEqual(double_metaphone('fitz Warin', 4), ('FTSR', '')) |
3315
|
|
|
self.assertEqual(double_metaphone('fitz Williams', 4), ('FTSL', '')) |
3316
|
|
|
self.assertEqual(double_metaphone('la Zouche', 4), ('LSX', 'LSK')) |
3317
|
|
|
self.assertEqual(double_metaphone('le Botiller', 4), ('LPTL', '')) |
3318
|
|
|
self.assertEqual(double_metaphone('le Despenser', 4), ('LTSP', '')) |
3319
|
|
|
self.assertEqual(double_metaphone('le deSpencer', 4), ('LTSP', '')) |
3320
|
|
|
self.assertEqual(double_metaphone('of Allendale', 4), ('AFLN', '')) |
3321
|
|
|
self.assertEqual(double_metaphone('of Angouleme', 4), ('AFNK', '')) |
3322
|
|
|
self.assertEqual(double_metaphone('of Anjou', 4), ('AFNJ', '')) |
3323
|
|
|
self.assertEqual(double_metaphone('of Aquitaine', 4), ('AFKT', '')) |
3324
|
|
|
self.assertEqual(double_metaphone('of Aumale', 4), ('AFML', '')) |
3325
|
|
|
self.assertEqual(double_metaphone('of Bavaria', 4), ('AFPF', '')) |
3326
|
|
|
self.assertEqual(double_metaphone('of Boulogne', 4), ('AFPL', '')) |
3327
|
|
|
self.assertEqual(double_metaphone('of Brittany', 4), ('AFPR', '')) |
3328
|
|
|
self.assertEqual(double_metaphone('of Brittary', 4), ('AFPR', '')) |
3329
|
|
|
self.assertEqual(double_metaphone('of Castile', 4), ('AFKS', '')) |
3330
|
|
|
self.assertEqual(double_metaphone('of Chester', 4), ('AFXS', 'AFKS')) |
3331
|
|
|
self.assertEqual(double_metaphone('of Clermont', 4), ('AFKL', '')) |
3332
|
|
|
self.assertEqual(double_metaphone('of Cologne', 4), ('AFKL', '')) |
3333
|
|
|
self.assertEqual(double_metaphone('of Dinan', 4), ('AFTN', '')) |
3334
|
|
|
self.assertEqual(double_metaphone('of Dunbar', 4), ('AFTN', '')) |
3335
|
|
|
self.assertEqual(double_metaphone('of England', 4), ('AFNK', '')) |
3336
|
|
|
self.assertEqual(double_metaphone('of Essex', 4), ('AFSK', '')) |
3337
|
|
|
self.assertEqual(double_metaphone('of Falaise', 4), ('AFFL', '')) |
3338
|
|
|
self.assertEqual(double_metaphone('of Flanders', 4), ('AFFL', '')) |
3339
|
|
|
self.assertEqual(double_metaphone('of Galloway', 4), ('AFKL', '')) |
3340
|
|
|
self.assertEqual(double_metaphone('of Germany', 4), ('AFKR', 'AFJR')) |
3341
|
|
|
self.assertEqual(double_metaphone('of Gloucester', 4), ('AFKL', '')) |
3342
|
|
|
self.assertEqual(double_metaphone('of Heristal', 4), ('AFRS', '')) |
3343
|
|
|
self.assertEqual(double_metaphone('of Hungary', 4), ('AFNK', '')) |
3344
|
|
|
self.assertEqual(double_metaphone('of Huntington', 4), ('AFNT', '')) |
3345
|
|
|
self.assertEqual(double_metaphone('of Kiev', 4), ('AFKF', '')) |
3346
|
|
|
self.assertEqual(double_metaphone('of Kuno', 4), ('AFKN', '')) |
3347
|
|
|
self.assertEqual(double_metaphone('of Landen', 4), ('AFLN', '')) |
3348
|
|
|
self.assertEqual(double_metaphone('of Laon', 4), ('AFLN', '')) |
3349
|
|
|
self.assertEqual(double_metaphone('of Leinster', 4), ('AFLN', '')) |
3350
|
|
|
self.assertEqual(double_metaphone('of Lens', 4), ('AFLN', '')) |
3351
|
|
|
self.assertEqual(double_metaphone('of Lorraine', 4), ('AFLR', '')) |
3352
|
|
|
self.assertEqual(double_metaphone('of Louvain', 4), ('AFLF', '')) |
3353
|
|
|
self.assertEqual(double_metaphone('of Mercia', 4), ('AFMR', '')) |
3354
|
|
|
self.assertEqual(double_metaphone('of Metz', 4), ('AFMT', '')) |
3355
|
|
|
self.assertEqual(double_metaphone('of Meulan', 4), ('AFML', '')) |
3356
|
|
|
self.assertEqual(double_metaphone('of Nass', 4), ('AFNS', '')) |
3357
|
|
|
self.assertEqual(double_metaphone('of Normandy', 4), ('AFNR', '')) |
3358
|
|
|
self.assertEqual(double_metaphone('of Ohningen', 4), ('AFNN', '')) |
3359
|
|
|
self.assertEqual(double_metaphone('of Orleans', 4), ('AFRL', '')) |
3360
|
|
|
self.assertEqual(double_metaphone('of Poitou', 4), ('AFPT', '')) |
3361
|
|
|
self.assertEqual(double_metaphone('of Polotzk', 4), ('AFPL', '')) |
3362
|
|
|
self.assertEqual(double_metaphone('of Provence', 4), ('AFPR', '')) |
3363
|
|
|
self.assertEqual(double_metaphone('of Ringelheim', 4), ('AFRN', '')) |
3364
|
|
|
self.assertEqual(double_metaphone('of Salisbury', 4), ('AFSL', '')) |
3365
|
|
|
self.assertEqual(double_metaphone('of Saxony', 4), ('AFSK', '')) |
3366
|
|
|
self.assertEqual(double_metaphone('of Scotland', 4), ('AFSK', '')) |
3367
|
|
|
self.assertEqual(double_metaphone('of Senlis', 4), ('AFSN', '')) |
3368
|
|
|
self.assertEqual(double_metaphone('of Stafford', 4), ('AFST', '')) |
3369
|
|
|
self.assertEqual(double_metaphone('of Swabia', 4), ('AFSP', '')) |
3370
|
|
|
self.assertEqual(double_metaphone('of Tongres', 4), ('AFTN', '')) |
3371
|
|
|
self.assertEqual(double_metaphone('of the Tributes', 4), |
3372
|
|
|
('AF0T', 'AFTT')) |
3373
|
|
|
self.assertEqual(double_metaphone('unknown', 4), ('ANKN', '')) |
3374
|
|
|
self.assertEqual(double_metaphone('van der Gouda', 4), ('FNTR', '')) |
3375
|
|
|
self.assertEqual(double_metaphone('von Adenbaugh', 4), ('FNTN', '')) |
3376
|
|
|
self.assertEqual(double_metaphone('ARCHITure', 4), ('ARKT', '')) |
3377
|
|
|
self.assertEqual(double_metaphone('Arnoff', 4), ('ARNF', '')) |
3378
|
|
|
self.assertEqual(double_metaphone('Arnow', 4), ('ARN', 'ARNF')) |
3379
|
|
|
self.assertEqual(double_metaphone('DANGER', 4), ('TNJR', 'TNKR')) |
3380
|
|
|
self.assertEqual(double_metaphone('Jankelowicz', 4), ('JNKL', 'ANKL')) |
3381
|
|
|
self.assertEqual(double_metaphone('MANGER', 4), ('MNJR', 'MNKR')) |
3382
|
|
|
self.assertEqual(double_metaphone('McClellan', 4), ('MKLL', '')) |
3383
|
|
|
self.assertEqual(double_metaphone('McHugh', 4), ('MK', '')) |
3384
|
|
|
self.assertEqual(double_metaphone('McLaughlin', 4), ('MKLF', '')) |
3385
|
|
|
self.assertEqual(double_metaphone('ORCHEStra', 4), ('ARKS', '')) |
3386
|
|
|
self.assertEqual(double_metaphone('ORCHID', 4), ('ARKT', '')) |
3387
|
|
|
self.assertEqual(double_metaphone('Pierce', 4), ('PRS', '')) |
3388
|
|
|
self.assertEqual(double_metaphone('RANGER', 4), ('RNJR', 'RNKR')) |
3389
|
|
|
self.assertEqual(double_metaphone('Schlesinger', 4), ('XLSN', 'SLSN')) |
3390
|
|
|
self.assertEqual(double_metaphone('Uomo', 4), ('AM', '')) |
3391
|
|
|
self.assertEqual(double_metaphone('Vasserman', 4), ('FSRM', '')) |
3392
|
|
|
self.assertEqual(double_metaphone('Wasserman', 4), ('ASRM', 'FSRM')) |
3393
|
|
|
self.assertEqual(double_metaphone('Womo', 4), ('AM', 'FM')) |
3394
|
|
|
self.assertEqual(double_metaphone('Yankelovich', 4), ('ANKL', '')) |
3395
|
|
|
self.assertEqual(double_metaphone('accede', 4), ('AKST', '')) |
3396
|
|
|
self.assertEqual(double_metaphone('accident', 4), ('AKST', '')) |
3397
|
|
|
self.assertEqual(double_metaphone('adelsheim', 4), ('ATLS', '')) |
3398
|
|
|
self.assertEqual(double_metaphone('aged', 4), ('AJT', 'AKT')) |
3399
|
|
|
self.assertEqual(double_metaphone('ageless', 4), ('AJLS', 'AKLS')) |
3400
|
|
|
self.assertEqual(double_metaphone('agency', 4), ('AJNS', 'AKNS')) |
3401
|
|
|
self.assertEqual(double_metaphone('aghast', 4), ('AKST', '')) |
3402
|
|
|
self.assertEqual(double_metaphone('agio', 4), ('AJ', 'AK')) |
3403
|
|
|
self.assertEqual(double_metaphone('agrimony', 4), ('AKRM', '')) |
3404
|
|
|
self.assertEqual(double_metaphone('album', 4), ('ALPM', '')) |
3405
|
|
|
self.assertEqual(double_metaphone('alcmene', 4), ('ALKM', '')) |
3406
|
|
|
self.assertEqual(double_metaphone('alehouse', 4), ('ALHS', '')) |
3407
|
|
|
self.assertEqual(double_metaphone('antique', 4), ('ANTK', '')) |
3408
|
|
|
self.assertEqual(double_metaphone('artois', 4), ('ART', 'ARTS')) |
3409
|
|
|
self.assertEqual(double_metaphone('automation', 4), ('ATMX', '')) |
3410
|
|
|
self.assertEqual(double_metaphone('bacchus', 4), ('PKS', '')) |
3411
|
|
|
self.assertEqual(double_metaphone('bacci', 4), ('PX', '')) |
3412
|
|
|
self.assertEqual(double_metaphone('bajador', 4), ('PJTR', 'PHTR')) |
3413
|
|
|
self.assertEqual(double_metaphone('bellocchio', 4), ('PLX', '')) |
3414
|
|
|
self.assertEqual(double_metaphone('bertucci', 4), ('PRTX', '')) |
3415
|
|
|
self.assertEqual(double_metaphone('biaggi', 4), ('PJ', 'PK')) |
3416
|
|
|
self.assertEqual(double_metaphone('bough', 4), ('P', '')) |
3417
|
|
|
self.assertEqual(double_metaphone('breaux', 4), ('PR', '')) |
3418
|
|
|
self.assertEqual(double_metaphone('broughton', 4), ('PRTN', '')) |
3419
|
|
|
self.assertEqual(double_metaphone('cabrillo', 4), ('KPRL', 'KPR')) |
3420
|
|
|
self.assertEqual(double_metaphone('caesar', 4), ('SSR', '')) |
3421
|
|
|
self.assertEqual(double_metaphone('cagney', 4), ('KKN', '')) |
3422
|
|
|
self.assertEqual(double_metaphone('campbell', 4), ('KMPL', '')) |
3423
|
|
|
self.assertEqual(double_metaphone('carlisle', 4), ('KRLL', '')) |
3424
|
|
|
self.assertEqual(double_metaphone('carlysle', 4), ('KRLL', '')) |
3425
|
|
|
self.assertEqual(double_metaphone('chemistry', 4), ('KMST', '')) |
3426
|
|
|
self.assertEqual(double_metaphone('chianti', 4), ('KNT', '')) |
3427
|
|
|
self.assertEqual(double_metaphone('chorus', 4), ('KRS', '')) |
3428
|
|
|
self.assertEqual(double_metaphone('cough', 4), ('KF', '')) |
3429
|
|
|
self.assertEqual(double_metaphone('czerny', 4), ('SRN', 'XRN')) |
3430
|
|
|
self.assertEqual(double_metaphone('deffenbacher', 4), ('TFNP', '')) |
3431
|
|
|
self.assertEqual(double_metaphone('dumb', 4), ('TM', '')) |
3432
|
|
|
self.assertEqual(double_metaphone('edgar', 4), ('ATKR', '')) |
3433
|
|
|
self.assertEqual(double_metaphone('edge', 4), ('AJ', '')) |
3434
|
|
|
self.assertEqual(double_metaphone('filipowicz', 4), ('FLPT', 'FLPF')) |
3435
|
|
|
self.assertEqual(double_metaphone('focaccia', 4), ('FKX', '')) |
3436
|
|
|
self.assertEqual(double_metaphone('gallegos', 4), ('KLKS', 'KKS')) |
3437
|
|
|
self.assertEqual(double_metaphone('gambrelli', 4), ('KMPR', '')) |
3438
|
|
|
self.assertEqual(double_metaphone('geithain', 4), ('K0N', 'JTN')) |
3439
|
|
|
self.assertEqual(double_metaphone('ghiradelli', 4), ('JRTL', '')) |
3440
|
|
|
self.assertEqual(double_metaphone('ghislane', 4), ('JLN', '')) |
3441
|
|
|
self.assertEqual(double_metaphone('gough', 4), ('KF', '')) |
3442
|
|
|
self.assertEqual(double_metaphone('hartheim', 4), ('HR0M', 'HRTM')) |
3443
|
|
|
self.assertEqual(double_metaphone('heimsheim', 4), ('HMSM', '')) |
3444
|
|
|
self.assertEqual(double_metaphone('hochmeier', 4), ('HKMR', '')) |
3445
|
|
|
self.assertEqual(double_metaphone('hugh', 4), ('H', '')) |
3446
|
|
|
self.assertEqual(double_metaphone('hunger', 4), ('HNKR', 'HNJR')) |
3447
|
|
|
self.assertEqual(double_metaphone('hungry', 4), ('HNKR', '')) |
3448
|
|
|
self.assertEqual(double_metaphone('island', 4), ('ALNT', '')) |
3449
|
|
|
self.assertEqual(double_metaphone('isle', 4), ('AL', '')) |
3450
|
|
|
self.assertEqual(double_metaphone('jose', 4), ('HS', '')) |
3451
|
|
|
self.assertEqual(double_metaphone('laugh', 4), ('LF', '')) |
3452
|
|
|
self.assertEqual(double_metaphone('mac caffrey', 4), ('MKFR', '')) |
3453
|
|
|
self.assertEqual(double_metaphone('mac gregor', 4), ('MKRK', '')) |
3454
|
|
|
self.assertEqual(double_metaphone('pegnitz', 4), ('PNTS', 'PKNT')) |
3455
|
|
|
self.assertEqual(double_metaphone('piskowitz', 4), ('PSKT', 'PSKF')) |
3456
|
|
|
self.assertEqual(double_metaphone('queen', 4), ('KN', '')) |
3457
|
|
|
self.assertEqual(double_metaphone('raspberry', 4), ('RSPR', '')) |
3458
|
|
|
self.assertEqual(double_metaphone('resnais', 4), ('RSN', 'RSNS')) |
3459
|
|
|
self.assertEqual(double_metaphone('rogier', 4), ('RJ', 'RJR')) |
3460
|
|
|
self.assertEqual(double_metaphone('rough', 4), ('RF', '')) |
3461
|
|
|
self.assertEqual(double_metaphone('san jacinto', 4), ('SNHS', '')) |
3462
|
|
|
self.assertEqual(double_metaphone('schenker', 4), ('XNKR', 'SKNK')) |
3463
|
|
|
self.assertEqual(double_metaphone('schermerhorn', 4), ('XRMR', 'SKRM')) |
3464
|
|
|
self.assertEqual(double_metaphone('schmidt', 4), ('XMT', 'SMT')) |
3465
|
|
|
self.assertEqual(double_metaphone('schneider', 4), ('XNTR', 'SNTR')) |
3466
|
|
|
self.assertEqual(double_metaphone('school', 4), ('SKL', '')) |
3467
|
|
|
self.assertEqual(double_metaphone('schooner', 4), ('SKNR', '')) |
3468
|
|
|
self.assertEqual(double_metaphone('schrozberg', 4), ('XRSP', 'SRSP')) |
3469
|
|
|
self.assertEqual(double_metaphone('schulman', 4), ('XLMN', '')) |
3470
|
|
|
self.assertEqual(double_metaphone('schwabach', 4), ('XPK', 'XFPK')) |
3471
|
|
|
self.assertEqual(double_metaphone('schwarzach', 4), ('XRSK', 'XFRT')) |
3472
|
|
|
self.assertEqual(double_metaphone('smith', 4), ('SM0', 'XMT')) |
3473
|
|
|
self.assertEqual(double_metaphone('snider', 4), ('SNTR', 'XNTR')) |
3474
|
|
|
self.assertEqual(double_metaphone('succeed', 4), ('SKST', '')) |
3475
|
|
|
self.assertEqual(double_metaphone('sugarcane', 4), ('XKRK', 'SKRK')) |
3476
|
|
|
self.assertEqual(double_metaphone('svobodka', 4), ('SFPT', '')) |
3477
|
|
|
self.assertEqual(double_metaphone('tagliaro', 4), ('TKLR', 'TLR')) |
3478
|
|
|
self.assertEqual(double_metaphone('thames', 4), ('TMS', '')) |
3479
|
|
|
self.assertEqual(double_metaphone('theilheim', 4), ('0LM', 'TLM')) |
3480
|
|
|
self.assertEqual(double_metaphone('thomas', 4), ('TMS', '')) |
3481
|
|
|
self.assertEqual(double_metaphone('thumb', 4), ('0M', 'TM')) |
3482
|
|
|
self.assertEqual(double_metaphone('tichner', 4), ('TXNR', 'TKNR')) |
3483
|
|
|
self.assertEqual(double_metaphone('tough', 4), ('TF', '')) |
3484
|
|
|
self.assertEqual(double_metaphone('umbrella', 4), ('AMPR', '')) |
3485
|
|
|
self.assertEqual(double_metaphone('vilshofen', 4), ('FLXF', '')) |
3486
|
|
|
self.assertEqual(double_metaphone('von schuller', 4), ('FNXL', '')) |
3487
|
|
|
self.assertEqual(double_metaphone('wachtler', 4), ('AKTL', 'FKTL')) |
3488
|
|
|
self.assertEqual(double_metaphone('wechsler', 4), ('AKSL', 'FKSL')) |
3489
|
|
|
self.assertEqual(double_metaphone('weikersheim', 4), ('AKRS', 'FKRS')) |
3490
|
|
|
self.assertEqual(double_metaphone('zhao', 4), ('J', '')) |
3491
|
|
|
|
3492
|
|
|
|
3493
|
|
|
class CaverphoneTestCases(unittest.TestCase): |
3494
|
|
|
"""Test Caverphone functions. |
3495
|
|
|
|
3496
|
|
|
test cases for abydos.phonetic.caverphone |
3497
|
|
|
""" |
3498
|
|
|
|
3499
|
|
|
def test_caverphone2(self): |
3500
|
|
|
"""Test abydos.phonetic.caverphone (Caverphone 2).""" |
3501
|
|
|
self.assertEqual(caverphone(''), '1111111111') |
3502
|
|
|
self.assertEqual(caverphone('', 2), '1111111111') |
3503
|
|
|
self.assertEqual(caverphone('', version=2), '1111111111') |
3504
|
|
|
|
3505
|
|
|
# http://ntz-develop.blogspot.com/2011/03/phonetic-algorithms.html |
3506
|
|
|
self.assertEqual(caverphone('Henrichsen'), 'ANRKSN1111') |
3507
|
|
|
self.assertEqual(caverphone('Henricsson'), 'ANRKSN1111') |
3508
|
|
|
self.assertEqual(caverphone('Henriksson'), 'ANRKSN1111') |
3509
|
|
|
self.assertEqual(caverphone('Hinrichsen'), 'ANRKSN1111') |
3510
|
|
|
self.assertEqual(caverphone('Izchaki'), 'ASKKA11111') |
3511
|
|
|
self.assertEqual(caverphone('Maclaverty'), 'MKLFTA1111') |
3512
|
|
|
self.assertEqual(caverphone('Mccleverty'), 'MKLFTA1111') |
3513
|
|
|
self.assertEqual(caverphone('Mcclifferty'), 'MKLFTA1111') |
3514
|
|
|
self.assertEqual(caverphone('Mclafferty'), 'MKLFTA1111') |
3515
|
|
|
self.assertEqual(caverphone('Mclaverty'), 'MKLFTA1111') |
3516
|
|
|
self.assertEqual(caverphone('Slocomb'), 'SLKM111111') |
3517
|
|
|
self.assertEqual(caverphone('Slocombe'), 'SLKM111111') |
3518
|
|
|
self.assertEqual(caverphone('Slocumb'), 'SLKM111111') |
3519
|
|
|
self.assertEqual(caverphone('Whitlam'), 'WTLM111111') |
3520
|
|
|
|
3521
|
|
|
# http://caversham.otago.ac.nz/files/working/ctp150804.pdf |
3522
|
|
|
self.assertEqual(caverphone('Stevenson'), 'STFNSN1111') |
3523
|
|
|
self.assertEqual(caverphone('Peter'), 'PTA1111111') |
3524
|
|
|
for word in ('Darda', 'Datha', 'Dedie', 'Deedee', 'Deerdre', 'Deidre', |
3525
|
|
|
'Deirdre', 'Detta', 'Didi', 'Didier', 'Dido', 'Dierdre', |
3526
|
|
|
'Dieter', 'Dita', 'Ditter', 'Dodi', 'Dodie', 'Dody', |
3527
|
|
|
'Doherty', 'Dorthea', 'Dorthy', 'Doti', 'Dotti', 'Dottie', |
3528
|
|
|
'Dotty', 'Doty', 'Doughty', 'Douty', 'Dowdell', 'Duthie', |
3529
|
|
|
'Tada', 'Taddeo', 'Tadeo', 'Tadio', 'Tati', 'Teador', |
3530
|
|
|
'Tedda', 'Tedder', 'Teddi', 'Teddie', 'Teddy', 'Tedi', |
3531
|
|
|
'Tedie', 'Teeter', 'Teodoor', 'Teodor', 'Terti', 'Theda', |
3532
|
|
|
'Theodor', 'Theodore', 'Theta', 'Thilda', 'Thordia', |
3533
|
|
|
'Tilda', 'Tildi', 'Tildie', 'Tildy', 'Tita', 'Tito', |
3534
|
|
|
'Tjader', 'Toddie', 'Toddy', 'Torto', 'Tuddor', 'Tudor', |
3535
|
|
|
'Turtle', 'Tuttle', 'Tutto'): |
3536
|
|
|
self.assertEqual(caverphone(word), 'TTA1111111') |
3537
|
|
|
self.assertEqual(caverphone(word, 2), 'TTA1111111') |
3538
|
|
|
self.assertEqual(caverphone(word, version=2), 'TTA1111111') |
3539
|
|
|
for word in ('Cailean', 'Calan', 'Calen', 'Callahan', 'Callan', |
3540
|
|
|
'Callean', 'Carleen', 'Carlen', 'Carlene', 'Carlin', |
3541
|
|
|
'Carline', 'Carlyn', 'Carlynn', 'Carlynne', 'Charlean', |
3542
|
|
|
'Charleen', 'Charlene', 'Charline', 'Cherlyn', 'Chirlin', |
3543
|
|
|
'Clein', 'Cleon', 'Cline', 'Cohleen', 'Colan', 'Coleen', |
3544
|
|
|
'Colene', 'Colin', 'Colleen', 'Collen', 'Collin', |
3545
|
|
|
'Colline', 'Colon', 'Cullan', 'Cullen', 'Cullin', |
3546
|
|
|
'Gaelan', 'Galan', 'Galen', 'Garlan', 'Garlen', 'Gaulin', |
3547
|
|
|
'Gayleen', 'Gaylene', 'Giliane', 'Gillan', 'Gillian', |
3548
|
|
|
'Glen', 'Glenn', 'Glyn', 'Glynn', 'Gollin', 'Gorlin', |
3549
|
|
|
'Kalin', 'Karlan', 'Karleen', 'Karlen', 'Karlene', |
3550
|
|
|
'Karlin', 'Karlyn', 'Kaylyn', 'Keelin', 'Kellen', |
3551
|
|
|
'Kellene', 'Kellyann', 'Kellyn', 'Khalin', 'Kilan', |
3552
|
|
|
'Kilian', 'Killen', 'Killian', 'Killion', 'Klein', |
3553
|
|
|
'Kleon', 'Kline', 'Koerlin', 'Kylen', 'Kylynn', 'Quillan', |
3554
|
|
|
'Quillon', 'Qulllon', 'Xylon'): |
3555
|
|
|
self.assertEqual(caverphone(word), 'KLN1111111') |
3556
|
|
|
self.assertEqual(caverphone(word, 2), 'KLN1111111') |
3557
|
|
|
self.assertEqual(caverphone(word, version=2), 'KLN1111111') |
3558
|
|
|
for word in ('Dan', 'Dane', 'Dann', 'Darn', 'Daune', 'Dawn', 'Ddene', |
3559
|
|
|
'Dean', 'Deane', 'Deanne', 'DeeAnn', 'Deeann', 'Deeanne', |
3560
|
|
|
'Deeyn', 'Den', 'Dene', 'Denn', 'Deonne', 'Diahann', |
3561
|
|
|
'Dian', 'Diane', 'Diann', 'Dianne', 'Diannne', 'Dine', |
3562
|
|
|
'Dion', 'Dione', 'Dionne', 'Doane', 'Doehne', 'Don', |
3563
|
|
|
'Donn', 'Doone', 'Dorn', 'Down', 'Downe', 'Duane', 'Dun', |
3564
|
|
|
'Dunn', 'Duyne', 'Dyan', 'Dyane', 'Dyann', 'Dyanne', |
3565
|
|
|
'Dyun', 'Tan', 'Tann', 'Teahan', 'Ten', 'Tenn', 'Terhune', |
3566
|
|
|
'Thain', 'Thaine', 'Thane', 'Thanh', 'Thayne', 'Theone', |
3567
|
|
|
'Thin', 'Thorn', 'Thorne', 'Thun', 'Thynne', 'Tien', |
3568
|
|
|
'Tine', 'Tjon', 'Town', 'Towne', 'Turne', 'Tyne'): |
3569
|
|
|
self.assertEqual(caverphone(word), 'TN11111111') |
3570
|
|
|
self.assertEqual(caverphone(word, 2), 'TN11111111') |
3571
|
|
|
self.assertEqual(caverphone(word, version=2), 'TN11111111') |
3572
|
|
|
|
3573
|
|
|
# etc. (for code coverage) |
3574
|
|
|
self.assertEqual(caverphone('enough'), 'ANF1111111') |
3575
|
|
|
self.assertEqual(caverphone('trough'), 'TRF1111111') |
3576
|
|
|
self.assertEqual(caverphone('gnu'), 'NA11111111') |
3577
|
|
|
|
3578
|
|
|
def test_caverphone2_php_testset(self): |
3579
|
|
|
"""Test abydos.phonetic.caverphone (PHP version testset).""" |
3580
|
|
|
# https://raw.githubusercontent.com/kiphughes/caverphone/master/unit_tests.php |
3581
|
|
|
with open(TESTDIR + '/corpora/php_caverphone.csv') as php_testset: |
3582
|
|
|
for php_line in php_testset: |
3583
|
|
|
(word, caver) = php_line.strip().split(',') |
3584
|
|
|
self.assertEqual(caverphone(word), caver) |
3585
|
|
|
|
3586
|
|
|
def test_caverphone1(self): |
3587
|
|
|
"""Test abydos.phonetic.caverphone (Caverphone 1).""" |
3588
|
|
|
self.assertEqual(caverphone('', 1), '111111') |
3589
|
|
|
self.assertEqual(caverphone('', version=1), '111111') |
3590
|
|
|
|
3591
|
|
|
# http://caversham.otago.ac.nz/files/working/ctp060902.pdf |
3592
|
|
|
self.assertEqual(caverphone('David', version=1), 'TFT111') |
3593
|
|
|
self.assertEqual(caverphone('Whittle', version=1), 'WTL111') |
3594
|
|
|
|
3595
|
|
|
def test_caversham(self): |
3596
|
|
|
"""Test using Caversham test set (SoundEx, Metaphone, & Caverphone).""" |
3597
|
|
|
with open(TESTDIR + '/corpora/variantNames.csv') as cav_testset: |
3598
|
|
|
next(cav_testset) |
3599
|
|
|
for cav_line in cav_testset: |
3600
|
|
|
(name1, soundex1, metaphone1, caverphone1, |
3601
|
|
|
name2, soundex2, metaphone2, caverphone2, |
3602
|
|
|
soundex_same, metaphone_same, caverphone_same) = \ |
3603
|
|
|
cav_line.strip().split(',') |
3604
|
|
|
|
3605
|
|
|
self.assertEqual(soundex(name1), soundex1) |
3606
|
|
|
self.assertEqual(soundex(name2), soundex2) |
3607
|
|
|
if soundex_same == '1': |
3608
|
|
|
self.assertEqual(soundex(name1), soundex(name2)) |
3609
|
|
|
else: |
3610
|
|
|
self.assertNotEqual(soundex(name1), soundex(name2)) |
3611
|
|
|
|
3612
|
|
|
self.assertEqual(metaphone(name1), metaphone1) |
3613
|
|
|
self.assertEqual(metaphone(name2), metaphone2) |
3614
|
|
|
if metaphone_same == '1': |
3615
|
|
|
self.assertEqual(metaphone(name1), metaphone(name2)) |
3616
|
|
|
else: |
3617
|
|
|
self.assertNotEqual(metaphone(name1), metaphone(name2)) |
3618
|
|
|
|
3619
|
|
|
self.assertEqual(caverphone(name1), caverphone1) |
3620
|
|
|
self.assertEqual(caverphone(name2), caverphone2) |
3621
|
|
|
if caverphone_same == '1': |
3622
|
|
|
self.assertEqual(caverphone(name1), caverphone(name2)) |
3623
|
|
|
else: |
3624
|
|
|
self.assertNotEqual(caverphone(name1), caverphone(name2)) |
3625
|
|
|
|
3626
|
|
|
|
3627
|
|
|
class AlphaSisTestCases(unittest.TestCase): |
3628
|
|
|
"""Test Alpha-SIS functions. |
3629
|
|
|
|
3630
|
|
|
test cases for abydos.phonetic.alpha_sis |
3631
|
|
|
""" |
3632
|
|
|
|
3633
|
|
|
def test_alpha_sis(self): |
3634
|
|
|
"""Test abydos.phonetic.alpha_sis.""" |
3635
|
|
|
self.assertEqual(alpha_sis('')[0], '00000000000000') |
3636
|
|
|
|
3637
|
|
|
self.assertEqual(alpha_sis('Rodgers')[0], '04740000000000') |
3638
|
|
|
self.assertEqual(alpha_sis('Rogers')[0], '04740000000000') |
3639
|
|
|
self.assertEqual(alpha_sis('Kant')[0], '07210000000000') |
3640
|
|
|
self.assertEqual(alpha_sis('Knuth')[0], '02100000000000') |
3641
|
|
|
self.assertEqual(alpha_sis('Harper')[0], '24940000000000') |
3642
|
|
|
self.assertEqual(alpha_sis('Collier')[0], '07540000000000') |
3643
|
|
|
self.assertEqual(alpha_sis('Schultz')[0], '06500000000000') |
3644
|
|
|
self.assertEqual(alpha_sis('Livingston')[0], '05827012000000') |
3645
|
|
|
|
3646
|
|
|
# tests of repeated letters |
3647
|
|
|
self.assertEqual(alpha_sis('Colllier')[0], '07554000000000') |
3648
|
|
|
self.assertEqual(alpha_sis('Collllier')[0], '07554000000000') |
3649
|
|
|
self.assertEqual(alpha_sis('Colllllier')[0], '07555400000000') |
3650
|
|
|
self.assertEqual(alpha_sis('Collllllier')[0], '07555400000000') |
3651
|
|
|
self.assertEqual(alpha_sis('Colalalier')[0], '07555400000000') |
3652
|
|
|
|
3653
|
|
|
# maxlength bounds tests |
3654
|
|
|
self.assertEqual(alpha_sis('Niall', maxlength=float('inf'))[0], |
3655
|
|
|
'02500000000000000000000000000000000000000000000000' + |
3656
|
|
|
'00000000000000') |
3657
|
|
|
self.assertEqual(alpha_sis('Niall', maxlength=None)[0], |
3658
|
|
|
'02500000000000000000000000000000000000000000000000' + |
3659
|
|
|
'00000000000000') |
3660
|
|
|
self.assertEqual(alpha_sis('Niall', maxlength=0)[0], '0250') |
3661
|
|
|
|
3662
|
|
|
|
3663
|
|
|
class FuzzySoundexTestCases(unittest.TestCase): |
3664
|
|
|
"""Test Fuzzy Soundex functions. |
3665
|
|
|
|
3666
|
|
|
test cases for abydos.phonetic.fuzzy_soundex |
3667
|
|
|
""" |
3668
|
|
|
|
3669
|
|
|
def test_fuzzy_soundex(self): |
3670
|
|
|
"""Test abydos.phonetic.fuzzy_soundex.""" |
3671
|
|
|
self.assertEqual(fuzzy_soundex(''), '00000') |
3672
|
|
|
# http://wayback.archive.org/web/20100629121128/http://www.ir.iit.edu/publications/downloads/IEEESoundexV5.pdf |
3673
|
|
|
self.assertEqual(fuzzy_soundex('Kristen'), 'K6935') |
3674
|
|
|
self.assertEqual(fuzzy_soundex('Krissy'), 'K6900') |
3675
|
|
|
self.assertEqual(fuzzy_soundex('Christen'), 'K6935') |
3676
|
|
|
|
3677
|
|
|
# http://books.google.com/books?id=LZrT6eWf9NMC&lpg=PA76&ots=Tex3FqNwGP&dq=%22phonix%20algorithm%22&pg=PA75#v=onepage&q=%22phonix%20algorithm%22&f=false |
3678
|
|
|
self.assertEqual(fuzzy_soundex('peter', 4), 'P360') |
3679
|
|
|
self.assertEqual(fuzzy_soundex('pete', 4), 'P300') |
3680
|
|
|
self.assertEqual(fuzzy_soundex('pedro', 4), 'P360') |
3681
|
|
|
self.assertEqual(fuzzy_soundex('stephen', 4), 'S315') |
3682
|
|
|
self.assertEqual(fuzzy_soundex('steve', 4), 'S310') |
3683
|
|
|
self.assertEqual(fuzzy_soundex('smith', 4), 'S530') |
3684
|
|
|
self.assertEqual(fuzzy_soundex('smythe', 4), 'S530') |
3685
|
|
|
self.assertEqual(fuzzy_soundex('gail', 4), 'G400') |
3686
|
|
|
self.assertEqual(fuzzy_soundex('gayle', 4), 'G400') |
3687
|
|
|
self.assertEqual(fuzzy_soundex('christine', 4), 'K693') |
3688
|
|
|
self.assertEqual(fuzzy_soundex('christina', 4), 'K693') |
3689
|
|
|
self.assertEqual(fuzzy_soundex('kristina', 4), 'K693') |
3690
|
|
|
|
3691
|
|
|
# etc. (for code coverage) |
3692
|
|
|
self.assertEqual(fuzzy_soundex('Wight'), 'W3000') |
3693
|
|
|
self.assertEqual(fuzzy_soundex('Hardt'), 'H6000') |
3694
|
|
|
self.assertEqual(fuzzy_soundex('Knight'), 'N3000') |
3695
|
|
|
self.assertEqual(fuzzy_soundex('Czech'), 'S7000') |
3696
|
|
|
self.assertEqual(fuzzy_soundex('Tsech'), 'S7000') |
3697
|
|
|
self.assertEqual(fuzzy_soundex('gnomic'), 'N5900') |
3698
|
|
|
self.assertEqual(fuzzy_soundex('Wright'), 'R3000') |
3699
|
|
|
self.assertEqual(fuzzy_soundex('Hrothgar'), 'R3760') |
3700
|
|
|
self.assertEqual(fuzzy_soundex('Hwaet'), 'W3000') |
3701
|
|
|
self.assertEqual(fuzzy_soundex('Grant'), 'G6300') |
3702
|
|
|
self.assertEqual(fuzzy_soundex('Hart'), 'H6000') |
3703
|
|
|
self.assertEqual(fuzzy_soundex('Hardt'), 'H6000') |
3704
|
|
|
|
3705
|
|
|
# maxlength bounds tests |
3706
|
|
|
self.assertEqual(fuzzy_soundex('Niall', maxlength=float('inf')), |
3707
|
|
|
'N4000000000000000000000000000000000000000000000000' + |
3708
|
|
|
'00000000000000') |
3709
|
|
|
self.assertEqual(fuzzy_soundex('Niall', maxlength=None), |
3710
|
|
|
'N4000000000000000000000000000000000000000000000000' + |
3711
|
|
|
'00000000000000') |
3712
|
|
|
self.assertEqual(fuzzy_soundex('Niall', maxlength=0), 'N400') |
3713
|
|
|
|
3714
|
|
|
# zero_pad tests |
3715
|
|
|
self.assertEqual(fuzzy_soundex('Niall', maxlength=float('inf'), |
3716
|
|
|
zero_pad=False), 'N4') |
3717
|
|
|
self.assertEqual(fuzzy_soundex('Niall', maxlength=None, |
3718
|
|
|
zero_pad=False), 'N4') |
3719
|
|
|
self.assertEqual(fuzzy_soundex('Niall', maxlength=0, |
3720
|
|
|
zero_pad=False), 'N4') |
3721
|
|
|
self.assertEqual(fuzzy_soundex('Niall', maxlength=0, |
3722
|
|
|
zero_pad=True), 'N400') |
3723
|
|
|
self.assertEqual(fuzzy_soundex('', maxlength=4, zero_pad=False), '0') |
3724
|
|
|
self.assertEqual(fuzzy_soundex('', maxlength=4, zero_pad=True), '0000') |
3725
|
|
|
|
3726
|
|
|
|
3727
|
|
|
class PhonexTestCases(unittest.TestCase): |
3728
|
|
|
"""Test Phonex functions. |
3729
|
|
|
|
3730
|
|
|
test cases for abydos.phonetic.phonex |
3731
|
|
|
""" |
3732
|
|
|
|
3733
|
|
|
def test_phonex(self): |
3734
|
|
|
"""Test abydos.phonetic.phonex.""" |
3735
|
|
|
self.assertEqual(phonex(''), '0000') |
3736
|
|
|
|
3737
|
|
|
# http://homepages.cs.ncl.ac.uk/brian.randell/Genealogy/NameMatching.pdf |
3738
|
|
|
self.assertEqual(phonex('Ewell'), 'A400') |
3739
|
|
|
self.assertEqual(phonex('Filp'), 'F100') |
3740
|
|
|
self.assertEqual(phonex('Heames'), 'A500') |
3741
|
|
|
self.assertEqual(phonex('Kneves'), 'N100') |
3742
|
|
|
self.assertEqual(phonex('River'), 'R160') |
3743
|
|
|
self.assertEqual(phonex('Corley'), 'C400') |
3744
|
|
|
self.assertEqual(phonex('Carton'), 'C350') |
3745
|
|
|
self.assertEqual(phonex('Cachpole'), 'C214') |
3746
|
|
|
|
3747
|
|
|
self.assertEqual(phonex('Ewell'), phonex('Ule')) |
3748
|
|
|
self.assertEqual(phonex('Filp'), phonex('Philp')) |
3749
|
|
|
self.assertEqual(phonex('Yule'), phonex('Ewell')) |
3750
|
|
|
self.assertEqual(phonex('Heames'), phonex('Eames')) |
3751
|
|
|
self.assertEqual(phonex('Kneves'), phonex('Neves')) |
3752
|
|
|
self.assertEqual(phonex('River'), phonex('Rivers')) |
3753
|
|
|
self.assertEqual(phonex('Corley'), phonex('Coley')) |
3754
|
|
|
self.assertEqual(phonex('Carton'), phonex('Carlton')) |
3755
|
|
|
self.assertEqual(phonex('Cachpole'), phonex('Catchpole')) |
3756
|
|
|
|
3757
|
|
|
# etc. (for code coverage) |
3758
|
|
|
self.assertEqual(phonex('Saxon'), 'S250') |
3759
|
|
|
self.assertEqual(phonex('Wright'), 'R230') |
3760
|
|
|
self.assertEqual(phonex('Ai'), 'A000') |
3761
|
|
|
self.assertEqual(phonex('Barth'), 'B300') |
3762
|
|
|
self.assertEqual(phonex('Perry'), 'B600') |
3763
|
|
|
self.assertEqual(phonex('Garth'), 'G300') |
3764
|
|
|
self.assertEqual(phonex('Jerry'), 'G600') |
3765
|
|
|
self.assertEqual(phonex('Gerry'), 'G600') |
3766
|
|
|
self.assertEqual(phonex('Camden'), 'C500') |
3767
|
|
|
self.assertEqual(phonex('Ganges'), 'G500') |
3768
|
|
|
self.assertEqual(phonex('A-1'), 'A000') |
3769
|
|
|
|
3770
|
|
|
# maxlength bounds tests |
3771
|
|
|
self.assertEqual(phonex('Niall', maxlength=float('inf')), |
3772
|
|
|
'N4000000000000000000000000000000000000000000000000' + |
3773
|
|
|
'00000000000000') |
3774
|
|
|
self.assertEqual(phonex('Niall', maxlength=None), |
3775
|
|
|
'N4000000000000000000000000000000000000000000000000' + |
3776
|
|
|
'00000000000000') |
3777
|
|
|
self.assertEqual(phonex('Niall', maxlength=0), 'N400') |
3778
|
|
|
|
3779
|
|
|
# zero_pad tests |
3780
|
|
|
self.assertEqual(phonex('Niall', maxlength=float('inf'), |
3781
|
|
|
zero_pad=False), 'N4') |
3782
|
|
|
self.assertEqual(phonex('Niall', maxlength=None, zero_pad=False), |
3783
|
|
|
'N4') |
3784
|
|
|
self.assertEqual(phonex('Niall', maxlength=0, zero_pad=False), |
3785
|
|
|
'N4') |
3786
|
|
|
self.assertEqual(phonex('Niall', maxlength=0, zero_pad=True), |
3787
|
|
|
'N400') |
3788
|
|
|
self.assertEqual(phonex('', maxlength=4, zero_pad=False), '0') |
3789
|
|
|
self.assertEqual(phonex('', maxlength=4, zero_pad=True), '0000') |
3790
|
|
|
|
3791
|
|
|
|
3792
|
|
|
class PhonemTestCases(unittest.TestCase): |
3793
|
|
|
"""Test Phonem functions. |
3794
|
|
|
|
3795
|
|
|
test cases for abydos.phonetic.phonem |
3796
|
|
|
""" |
3797
|
|
|
|
3798
|
|
|
def test_phonem(self): |
3799
|
|
|
"""Test abydos.phonetic.phonem.""" |
3800
|
|
|
self.assertEqual(phonem(''), '') |
3801
|
|
|
|
3802
|
|
|
# http://phonetik.phil-fak.uni-koeln.de/fileadmin/home/ritters/Allgemeine_Dateien/Martin_Wilz.pdf |
3803
|
|
|
self.assertEqual(phonem('müller'), 'MYLR') |
3804
|
|
|
self.assertEqual(phonem('schmidt'), 'CMYD') |
3805
|
|
|
self.assertEqual(phonem('schneider'), 'CNAYDR') |
3806
|
|
|
self.assertEqual(phonem('fischer'), 'VYCR') |
3807
|
|
|
self.assertEqual(phonem('weber'), 'VBR') |
3808
|
|
|
self.assertEqual(phonem('meyer'), 'MAYR') |
3809
|
|
|
self.assertEqual(phonem('wagner'), 'VACNR') |
3810
|
|
|
self.assertEqual(phonem('schulz'), 'CULC') |
3811
|
|
|
self.assertEqual(phonem('becker'), 'BCR') |
3812
|
|
|
self.assertEqual(phonem('hoffmann'), 'OVMAN') |
3813
|
|
|
self.assertEqual(phonem('schäfer'), 'CVR') |
3814
|
|
|
|
3815
|
|
|
# http://cpansearch.perl.org/src/MAROS/Text-Phonetic-2.05/t/008_phonem.t |
3816
|
|
|
self.assertEqual(phonem('mair'), 'MAYR') |
3817
|
|
|
self.assertEqual(phonem('bäker'), 'BCR') |
3818
|
|
|
self.assertEqual(phonem('schaeffer'), 'CVR') |
3819
|
|
|
self.assertEqual(phonem('computer'), 'COMBUDR') |
3820
|
|
|
self.assertEqual(phonem('pfeifer'), 'VAYVR') |
3821
|
|
|
self.assertEqual(phonem('pfeiffer'), 'VAYVR') |
3822
|
|
|
|
3823
|
|
|
|
3824
|
|
|
class PhonixTestCases(unittest.TestCase): |
3825
|
|
|
"""Test Phonix functions. |
3826
|
|
|
|
3827
|
|
|
test cases for abydos.phonetic.phonix |
3828
|
|
|
""" |
3829
|
|
|
|
3830
|
|
|
def test_phonix(self): |
3831
|
|
|
"""Test abydos.phonetic.phonix.""" |
3832
|
|
|
self.assertEqual(phonix(''), '0000') |
3833
|
|
|
|
3834
|
|
|
# http://cpansearch.perl.org/src/MAROS/Text-Phonetic-2.05/t/007_phonix.t |
3835
|
|
|
self.assertEqual(phonix('Müller'), 'M400') |
3836
|
|
|
self.assertEqual(phonix('schneider'), 'S530') |
3837
|
|
|
self.assertEqual(phonix('fischer'), 'F800') |
3838
|
|
|
self.assertEqual(phonix('weber'), 'W100') |
3839
|
|
|
self.assertEqual(phonix('meyer'), 'M000') |
3840
|
|
|
self.assertEqual(phonix('wagner'), 'W250') |
3841
|
|
|
self.assertEqual(phonix('schulz'), 'S480') |
3842
|
|
|
self.assertEqual(phonix('becker'), 'B200') |
3843
|
|
|
self.assertEqual(phonix('hoffmann'), 'H755') |
3844
|
|
|
self.assertEqual(phonix('schäfer'), 'S700') |
3845
|
|
|
self.assertEqual(phonix('schmidt'), 'S530') |
3846
|
|
|
|
3847
|
|
|
# http://cpansearch.perl.org/src/MAROS/Text-Phonetic-2.05/t/007_phonix.t: |
3848
|
|
|
# testcases from Wais Module |
3849
|
|
|
self.assertEqual(phonix('computer'), 'K513') |
3850
|
|
|
self.assertEqual(phonix('computers'), 'K513') |
3851
|
|
|
self.assertEqual(phonix('computers', 5), 'K5138') |
3852
|
|
|
self.assertEqual(phonix('pfeifer'), 'F700') |
3853
|
|
|
self.assertEqual(phonix('pfeiffer'), 'F700') |
3854
|
|
|
self.assertEqual(phonix('knight'), 'N300') |
3855
|
|
|
self.assertEqual(phonix('night'), 'N300') |
3856
|
|
|
|
3857
|
|
|
# http://cpansearch.perl.org/src/MAROS/Text-Phonetic-2.05/t/007_phonix.t: |
3858
|
|
|
# testcases from |
3859
|
|
|
# http://www.cl.uni-heidelberg.de/~bormann/documents/phono/ |
3860
|
|
|
# They use a sliglty different algorithm (first char is not included in |
3861
|
|
|
# num code here) |
3862
|
|
|
self.assertEqual(phonix('wait'), 'W300') |
3863
|
|
|
self.assertEqual(phonix('weight'), 'W300') |
3864
|
|
|
self.assertEqual(phonix('gnome'), 'N500') |
3865
|
|
|
self.assertEqual(phonix('noam'), 'N500') |
3866
|
|
|
self.assertEqual(phonix('rees'), 'R800') |
3867
|
|
|
self.assertEqual(phonix('reece'), 'R800') |
3868
|
|
|
self.assertEqual(phonix('yaeger'), 'v200') |
3869
|
|
|
|
3870
|
|
|
# http://books.google.com/books?id=xtWPI7Is9wIC&lpg=PA29&ots=DXhaL7ZkvK&dq=phonix%20gadd&pg=PA29#v=onepage&q=phonix%20gadd&f=false |
3871
|
|
|
self.assertEqual(phonix('alam'), 'v450') |
3872
|
|
|
self.assertEqual(phonix('berkpakaian'), 'B212') |
3873
|
|
|
self.assertEqual(phonix('capaian'), 'K150') |
3874
|
|
|
|
3875
|
|
|
# http://books.google.com/books?id=LZrT6eWf9NMC&lpg=PA76&ots=Tex3FqNwGP&dq=%22phonix%20algorithm%22&pg=PA75#v=onepage&q=%22phonix%20algorithm%22&f=false |
3876
|
|
|
self.assertEqual(phonix('peter'), 'P300') |
3877
|
|
|
self.assertEqual(phonix('pete'), 'P300') |
3878
|
|
|
self.assertEqual(phonix('pedro'), 'P360') |
3879
|
|
|
self.assertEqual(phonix('stephen'), 'S375') |
3880
|
|
|
self.assertEqual(phonix('steve'), 'S370') |
3881
|
|
|
self.assertEqual(phonix('smith'), 'S530') |
3882
|
|
|
self.assertEqual(phonix('smythe'), 'S530') |
3883
|
|
|
self.assertEqual(phonix('gail'), 'G400') |
3884
|
|
|
self.assertEqual(phonix('gayle'), 'G400') |
3885
|
|
|
self.assertEqual(phonix('christine'), 'K683') |
3886
|
|
|
self.assertEqual(phonix('christina'), 'K683') |
3887
|
|
|
self.assertEqual(phonix('kristina'), 'K683') |
3888
|
|
|
|
3889
|
|
|
# maxlength bounds tests |
3890
|
|
|
self.assertEqual(phonix('Niall', maxlength=float('inf')), 'N4'+'0'*62) |
3891
|
|
|
self.assertEqual(phonix('Niall', maxlength=None), 'N4'+'0'*62) |
3892
|
|
|
self.assertEqual(phonix('Niall', maxlength=0), 'N400') |
3893
|
|
|
|
3894
|
|
|
# zero_pad tests |
3895
|
|
|
self.assertEqual(phonix('Niall', maxlength=float('inf'), |
3896
|
|
|
zero_pad=False), 'N4') |
3897
|
|
|
self.assertEqual(phonix('Niall', maxlength=None, zero_pad=False), |
3898
|
|
|
'N4') |
3899
|
|
|
self.assertEqual(phonix('Niall', maxlength=0, zero_pad=False), |
3900
|
|
|
'N4') |
3901
|
|
|
self.assertEqual(phonix('Niall', maxlength=0, zero_pad=True), |
3902
|
|
|
'N400') |
3903
|
|
|
self.assertEqual(phonix('', maxlength=4, zero_pad=False), '0') |
3904
|
|
|
self.assertEqual(phonix('', maxlength=4, zero_pad=True), '0000') |
3905
|
|
|
|
3906
|
|
|
|
3907
|
|
|
class SfinxBisTestCases(unittest.TestCase): |
3908
|
|
|
"""Test SfinxBis functions. |
3909
|
|
|
|
3910
|
|
|
test cases for abydos.phonetic.sfinxbis |
3911
|
|
|
""" |
3912
|
|
|
|
3913
|
|
|
def test_sfinxbis(self): |
3914
|
|
|
"""Test abydos.phonetic.sfinxbis.""" |
3915
|
|
|
self.assertEqual(sfinxbis(''), ('',)) |
3916
|
|
|
|
3917
|
|
|
# http://www.swami.se/download/18.248ad5af12aa81365338000106/TestSfinx.txt |
3918
|
|
|
# cases where the gold standard gave clearly wrong values have been |
3919
|
|
|
# corrected below (marked with '# wrong' |
3920
|
|
|
self.assertEqual(sfinxbis('af Sandeberg'), ('S53162',)) |
3921
|
|
|
self.assertEqual(sfinxbis('av Ekenstam'), ('$25835',)) |
3922
|
|
|
self.assertEqual(sfinxbis('Da Costa'), ('K83',)) |
3923
|
|
|
self.assertEqual(sfinxbis('Das Neves'), ('D8', 'N78')) |
3924
|
|
|
self.assertEqual(sfinxbis('de Besche'), ('B8',)) |
3925
|
|
|
self.assertEqual(sfinxbis('de la Motte'), ('M3',)) |
3926
|
|
|
self.assertEqual(sfinxbis('de Las Heras'), ('H68',)) # wrong |
3927
|
|
|
self.assertEqual(sfinxbis('de Los Santos'), ('S538',)) |
3928
|
|
|
self.assertEqual(sfinxbis('del Rosario'), ('R862',)) |
3929
|
|
|
self.assertEqual(sfinxbis('Den Boer'), ('B6',)) |
3930
|
|
|
self.assertEqual(sfinxbis('Der de Kazinczy'), |
3931
|
|
|
('D6', 'K8528',)) # wrong |
3932
|
|
|
self.assertEqual(sfinxbis('des Rieux'), ('R28',)) |
3933
|
|
|
self.assertEqual(sfinxbis('Di Luca'), ('L2',)) |
3934
|
|
|
self.assertEqual(sfinxbis('Do Rosario'), ('R862',)) |
3935
|
|
|
self.assertEqual(sfinxbis('Don Lind'), ('L53',)) |
3936
|
|
|
self.assertEqual(sfinxbis('Dos Santos'), ('S538',)) |
3937
|
|
|
self.assertEqual(sfinxbis('du Rietz'), ('R38',)) |
3938
|
|
|
self.assertEqual(sfinxbis('in de Betou'), ('B3',)) |
3939
|
|
|
self.assertEqual(sfinxbis('La Fleur'), ('F46',)) |
3940
|
|
|
self.assertEqual(sfinxbis('Le Grand'), ('G653',)) |
3941
|
|
|
self.assertEqual(sfinxbis('li Puma'), ('L', 'P5')) |
3942
|
|
|
self.assertEqual(sfinxbis('lo Martire'), ('L', 'M636')) |
3943
|
|
|
self.assertEqual(sfinxbis('mac Donald'), ('D543',)) |
3944
|
|
|
self.assertEqual(sfinxbis('mc Intosh'), ('$538',)) |
3945
|
|
|
self.assertEqual(sfinxbis('S:t Cyr'), ('S6',)) |
3946
|
|
|
self.assertEqual(sfinxbis('Van Doom'), ('D5',)) |
3947
|
|
|
self.assertEqual(sfinxbis('Van de Peppel'), ('P14',)) |
3948
|
|
|
self.assertEqual(sfinxbis('Van den Berg'), ('B62',)) |
3949
|
|
|
self.assertEqual(sfinxbis('Van Der Kwast'), ('K783',)) |
3950
|
|
|
self.assertEqual(sfinxbis('von Ahn'), ('$5',)) |
3951
|
|
|
self.assertEqual(sfinxbis('von Dem Knesebeck'), ('K5812',)) |
3952
|
|
|
self.assertEqual(sfinxbis('von Der Burg'), ('B62',)) |
3953
|
|
|
self.assertEqual(sfinxbis('D\'Angelo'), ('D524',)) |
3954
|
|
|
self.assertEqual(sfinxbis('O\'Conner'), ('$256',)) |
3955
|
|
|
self.assertEqual(sfinxbis('Los'), ('L8',)) |
3956
|
|
|
self.assertEqual(sfinxbis('Mac'), ('M2',)) |
3957
|
|
|
self.assertEqual(sfinxbis('Till'), ('T4',)) |
3958
|
|
|
self.assertEqual(sfinxbis('Van'), ('V5',)) |
3959
|
|
|
self.assertEqual(sfinxbis('Von'), ('V5',)) |
3960
|
|
|
self.assertEqual(sfinxbis('Bernadotte af Wisborg'), ('B6533', 'V8162')) |
3961
|
|
|
self.assertEqual(sfinxbis('Hjort af Ornäs'), ('J63', '$658')) |
3962
|
|
|
self.assertEqual(sfinxbis('Horn af Åminne'), ('H65', '$55')) |
3963
|
|
|
self.assertEqual(sfinxbis('Horn av Åminne'), ('H65', '$55')) |
3964
|
|
|
self.assertEqual(sfinxbis('Hård af Segerstad'), ('H63', 'S26833')) |
3965
|
|
|
self.assertEqual(sfinxbis('Hård av Segerstad'), ('H63', 'S26833')) |
3966
|
|
|
self.assertEqual(sfinxbis('Stael von Holstein'), ('S34', 'H48325')) |
3967
|
|
|
self.assertEqual(sfinxbis('de Oliveira e Silva'), ('$4726', 'S47')) |
3968
|
|
|
self.assertEqual(sfinxbis('de Alfaro y Gómez'), ('$476', 'G58')) |
3969
|
|
|
self.assertEqual(sfinxbis('Arjaliès-de la Lande'), ('$6248', 'L53')) |
3970
|
|
|
self.assertEqual(sfinxbis('Dominicus van den Bussche'), |
3971
|
|
|
('D5528', 'B8')) |
3972
|
|
|
self.assertEqual(sfinxbis('Edebol Eeg-Olofsson'), |
3973
|
|
|
('$314', '$2', '$4785')) |
3974
|
|
|
self.assertEqual(sfinxbis('Jonsson-Blomqvist'), ('J585', 'B452783')) |
3975
|
|
|
self.assertEqual(sfinxbis('Kiviniemi Birgersson'), ('#755', 'B62685')) |
3976
|
|
|
self.assertEqual(sfinxbis('Massena Serpa dos Santos'), |
3977
|
|
|
('M85', 'S61', 'S538')) |
3978
|
|
|
self.assertEqual(sfinxbis('S:t Clair Renard'), ('K426', 'R563')) |
3979
|
|
|
self.assertEqual(sfinxbis('Skoog H Andersson'), ('S22', 'H', '$53685')) |
3980
|
|
|
self.assertEqual(sfinxbis('von Post-Skagegård'), ('P83', 'S22263')) |
3981
|
|
|
self.assertEqual(sfinxbis('von Zur-Mühlen'), ('S6', 'M45')) |
3982
|
|
|
self.assertEqual(sfinxbis('Waltå O:son'), ('V43', '$85')) |
3983
|
|
|
self.assertEqual(sfinxbis('Zardán Gómez de la Torre'), |
3984
|
|
|
('S635', 'G58', 'T6')) |
3985
|
|
|
self.assertEqual(sfinxbis('af Jochnick'), ('J252',)) |
3986
|
|
|
self.assertEqual(sfinxbis('af Ioscnick'), ('J8252',)) |
3987
|
|
|
self.assertEqual(sfinxbis('Aabakken'), ('$125',)) |
3988
|
|
|
self.assertEqual(sfinxbis('Åbacken'), ('$125',)) |
3989
|
|
|
self.assertEqual(sfinxbis('Ahlen'), ('$45',)) |
3990
|
|
|
self.assertEqual(sfinxbis('Aleen'), ('$45',)) |
3991
|
|
|
self.assertEqual(sfinxbis('Braunerhielm'), ('B656245',)) |
3992
|
|
|
self.assertEqual(sfinxbis('Branneerhielm'), ('B656245',)) |
3993
|
|
|
self.assertEqual(sfinxbis('Carlzon'), ('K6485',)) |
3994
|
|
|
self.assertEqual(sfinxbis('Karlsson'), ('K6485',)) |
3995
|
|
|
self.assertEqual(sfinxbis('Enochsson'), ('$5285',)) |
3996
|
|
|
self.assertEqual(sfinxbis('Ericsson'), ('$6285',)) |
3997
|
|
|
self.assertEqual(sfinxbis('Ericksson'), ('$6285',)) |
3998
|
|
|
self.assertEqual(sfinxbis('Erixson'), ('$6285',)) |
3999
|
|
|
self.assertEqual(sfinxbis('Filipsson'), ('F4185',)) |
4000
|
|
|
self.assertEqual(sfinxbis('Philipson'), ('F4185',)) |
4001
|
|
|
self.assertEqual(sfinxbis('Flycht'), ('F423',)) |
4002
|
|
|
self.assertEqual(sfinxbis('Flygt'), ('F423',)) |
4003
|
|
|
self.assertEqual(sfinxbis('Flykt'), ('F423',)) |
4004
|
|
|
self.assertEqual(sfinxbis('Fröijer'), ('F626',)) |
4005
|
|
|
self.assertEqual(sfinxbis('Fröjer'), ('F626',)) |
4006
|
|
|
self.assertEqual(sfinxbis('Gertner'), ('J6356',)) |
4007
|
|
|
self.assertEqual(sfinxbis('Hiertner'), ('J6356',)) |
4008
|
|
|
self.assertEqual(sfinxbis('Hirch'), ('H62',)) |
4009
|
|
|
self.assertEqual(sfinxbis('Hirsch'), ('H68',)) |
4010
|
|
|
self.assertEqual(sfinxbis('Haegermarck'), ('H26562',)) |
4011
|
|
|
self.assertEqual(sfinxbis('Hägermark'), ('H26562',)) |
4012
|
|
|
self.assertEqual(sfinxbis('Isaxon'), ('$8285',)) |
4013
|
|
|
self.assertEqual(sfinxbis('Isacsson'), ('$8285',)) |
4014
|
|
|
self.assertEqual(sfinxbis('Joachimsson'), ('J2585',)) |
4015
|
|
|
self.assertEqual(sfinxbis('Joakimson'), ('J2585',)) |
4016
|
|
|
self.assertEqual(sfinxbis('Kjell'), ('#4',)) |
4017
|
|
|
self.assertEqual(sfinxbis('Käll'), ('#4',)) |
4018
|
|
|
self.assertEqual(sfinxbis('Knapp'), ('K51',)) |
4019
|
|
|
self.assertEqual(sfinxbis('Krans'), ('K658',)) |
4020
|
|
|
self.assertEqual(sfinxbis('Krantz'), ('K6538',)) |
4021
|
|
|
self.assertEqual(sfinxbis('Kvist'), ('K783',)) |
4022
|
|
|
self.assertEqual(sfinxbis('Quist'), ('K783',)) |
4023
|
|
|
self.assertEqual(sfinxbis('Lidbeck'), ('L312',)) |
4024
|
|
|
self.assertEqual(sfinxbis('Lidbäck'), ('L312',)) |
4025
|
|
|
self.assertEqual(sfinxbis('Linnér'), ('L56',)) |
4026
|
|
|
self.assertEqual(sfinxbis('Linner'), ('L56',)) |
4027
|
|
|
self.assertEqual(sfinxbis('Lorenzsonn'), ('L6585',)) |
4028
|
|
|
self.assertEqual(sfinxbis('Lorentzon'), ('L65385',)) |
4029
|
|
|
self.assertEqual(sfinxbis('Lorenßon'), ('L6585',)) |
4030
|
|
|
self.assertEqual(sfinxbis('Lyxell'), ('L284',)) |
4031
|
|
|
self.assertEqual(sfinxbis('Lycksell'), ('L284',)) |
4032
|
|
|
self.assertEqual(sfinxbis('Marcström'), ('M628365',)) |
4033
|
|
|
self.assertEqual(sfinxbis('Markström'), ('M628365',)) |
4034
|
|
|
self.assertEqual(sfinxbis('Michaelsson'), ('M2485',)) |
4035
|
|
|
self.assertEqual(sfinxbis('Mikaelson'), ('M2485',)) |
4036
|
|
|
self.assertEqual(sfinxbis('Mörch'), ('M62',)) |
4037
|
|
|
self.assertEqual(sfinxbis('Mörck'), ('M62',)) |
4038
|
|
|
self.assertEqual(sfinxbis('Mörk'), ('M62',)) |
4039
|
|
|
self.assertEqual(sfinxbis('Mørk'), ('M62',)) |
4040
|
|
|
self.assertEqual(sfinxbis('Nääs'), ('N8',)) |
4041
|
|
|
self.assertEqual(sfinxbis('Naess'), ('N8',)) |
4042
|
|
|
self.assertEqual(sfinxbis('Nordstedt'), ('N63833',)) |
4043
|
|
|
self.assertEqual(sfinxbis('Oxenstierna'), ('$28583265',)) |
4044
|
|
|
self.assertEqual(sfinxbis('Palmçrañtz'), ('P4526538',)) |
4045
|
|
|
self.assertEqual(sfinxbis('Palmcrantz'), ('P4526538',)) |
4046
|
|
|
self.assertEqual(sfinxbis('Palmkrantz'), ('P4526538',)) |
4047
|
|
|
self.assertEqual(sfinxbis('Preuss'), ('P68',)) |
4048
|
|
|
self.assertEqual(sfinxbis('Preutz'), ('P638',)) |
4049
|
|
|
self.assertEqual(sfinxbis('Richardson'), ('R26385',)) |
4050
|
|
|
self.assertEqual(sfinxbis('Rikardson'), ('R26385',)) |
4051
|
|
|
self.assertEqual(sfinxbis('Ruuth'), ('R3',)) |
4052
|
|
|
self.assertEqual(sfinxbis('Ruth'), ('R3',)) |
4053
|
|
|
self.assertEqual(sfinxbis('Sæter'), ('S36',)) |
4054
|
|
|
self.assertEqual(sfinxbis('Zäter'), ('S36',)) |
4055
|
|
|
self.assertEqual(sfinxbis('Schedin'), ('#35',)) |
4056
|
|
|
self.assertEqual(sfinxbis('Sjödin'), ('#35',)) |
4057
|
|
|
self.assertEqual(sfinxbis('Siöö'), ('#',)) |
4058
|
|
|
self.assertEqual(sfinxbis('Sjöh'), ('#',)) |
4059
|
|
|
self.assertEqual(sfinxbis('Svedberg'), ('S73162',)) |
4060
|
|
|
self.assertEqual(sfinxbis('Zwedberg'), ('S73162',)) |
4061
|
|
|
self.assertEqual(sfinxbis('Tjäder'), ('#36',)) |
4062
|
|
|
self.assertEqual(sfinxbis('þornquist'), ('T652783',)) |
4063
|
|
|
self.assertEqual(sfinxbis('Thörnqvist'), ('T652783',)) |
4064
|
|
|
self.assertEqual(sfinxbis('Törnkvist'), ('T652783',)) |
4065
|
|
|
self.assertEqual(sfinxbis('Wichman'), ('V255',)) |
4066
|
|
|
self.assertEqual(sfinxbis('Wickman'), ('V255',)) |
4067
|
|
|
self.assertEqual(sfinxbis('Wictorin'), ('V2365',)) |
4068
|
|
|
self.assertEqual(sfinxbis('Wictorsson'), ('V23685',)) |
4069
|
|
|
self.assertEqual(sfinxbis('Viktorson'), ('V23685',)) |
4070
|
|
|
self.assertEqual(sfinxbis('Zachrisson'), ('S2685',)) |
4071
|
|
|
self.assertEqual(sfinxbis('Zakrison'), ('S2685',)) |
4072
|
|
|
self.assertEqual(sfinxbis('Övragård'), ('$76263',)) |
4073
|
|
|
self.assertEqual(sfinxbis('Öfvragårdh'), ('$76263',)) |
4074
|
|
|
self.assertEqual(sfinxbis('Bogdanovic'), ('B23572',)) |
4075
|
|
|
self.assertEqual(sfinxbis('Bogdanovitch'), ('B235732',)) |
4076
|
|
|
self.assertEqual(sfinxbis('Dieterich'), ('D362',)) |
4077
|
|
|
self.assertEqual(sfinxbis('Eichorn'), ('$265',)) |
4078
|
|
|
self.assertEqual(sfinxbis('Friedrich'), ('F6362',)) |
4079
|
|
|
self.assertEqual(sfinxbis('Grantcharova'), ('G653267',)) |
4080
|
|
|
self.assertEqual(sfinxbis('Ilichev'), ('$427',)) |
4081
|
|
|
self.assertEqual(sfinxbis('Ivankovic'), ('$75272',)) |
4082
|
|
|
self.assertEqual(sfinxbis('Ivangurich'), ('$75262',)) |
4083
|
|
|
self.assertEqual(sfinxbis('Kinch'), ('#52',)) |
4084
|
|
|
self.assertEqual(sfinxbis('Kirchmann'), ('#6255',)) |
4085
|
|
|
self.assertEqual(sfinxbis('Machado'), ('M23',)) |
4086
|
|
|
self.assertEqual(sfinxbis('Reich'), ('R2',)) |
4087
|
|
|
self.assertEqual(sfinxbis('Roche'), ('R2',)) |
4088
|
|
|
self.assertEqual(sfinxbis('Rubaszkin'), ('R1825',)) |
4089
|
|
|
self.assertEqual(sfinxbis('Rubaschkin'), ('R1825',)) |
4090
|
|
|
self.assertEqual(sfinxbis('Sanchez'), ('S528',)) |
4091
|
|
|
self.assertEqual(sfinxbis('Walukiewicz'), ('V42728',)) |
4092
|
|
|
self.assertEqual(sfinxbis('Valukievitch'), ('V42732',)) |
4093
|
|
|
self.assertEqual(sfinxbis('K'), ('K',)) |
4094
|
|
|
self.assertEqual(sfinxbis('2010'), ('',)) |
4095
|
|
|
self.assertEqual(sfinxbis('cese'), ('S8',)) |
4096
|
|
|
|
4097
|
|
|
# a few maxlength tests |
4098
|
|
|
self.assertEqual(sfinxbis('Kiviniemi Birgersson', 3), ('#75', 'B62')) |
4099
|
|
|
self.assertEqual(sfinxbis('Eichorn', 4), ('$265',)) |
4100
|
|
|
self.assertEqual(sfinxbis('Friedrich', 4), ('F636',)) |
4101
|
|
|
self.assertEqual(sfinxbis('Grantcharova', 4), ('G653',)) |
4102
|
|
|
self.assertEqual(sfinxbis('Ilichev', 4), ('$427',)) |
4103
|
|
|
self.assertEqual(sfinxbis('Ivankovic', 4), ('$752',)) |
4104
|
|
|
self.assertEqual(sfinxbis('Ivangurich', 4), ('$752',)) |
4105
|
|
|
self.assertEqual(sfinxbis('Kinch', 4), ('#52',)) |
4106
|
|
|
self.assertEqual(sfinxbis('Kirchmann', 4), ('#625',)) |
4107
|
|
|
self.assertEqual(sfinxbis('Machado', 4), ('M23',)) |
4108
|
|
|
self.assertEqual(sfinxbis('Reich', 4), ('R2',)) |
4109
|
|
|
self.assertEqual(sfinxbis('Roche', 4), ('R2',)) |
4110
|
|
|
self.assertEqual(sfinxbis('Rubaszkin', 4), ('R182',)) |
4111
|
|
|
self.assertEqual(sfinxbis('Rubaschkin', 4), ('R182',)) |
4112
|
|
|
self.assertEqual(sfinxbis('Sanchez', 4), ('S528',)) |
4113
|
|
|
self.assertEqual(sfinxbis('Walukiewicz', 4), ('V427',)) |
4114
|
|
|
self.assertEqual(sfinxbis('Valukievitch', 4), ('V427',)) |
4115
|
|
|
self.assertEqual(sfinxbis('K', 4), ('K',)) |
4116
|
|
|
self.assertEqual(sfinxbis('2010', 4), ('',)) |
4117
|
|
|
self.assertEqual(sfinxbis('cese', 4), ('S8',)) |
4118
|
|
|
|
4119
|
|
|
# etc. (for code coverage) |
4120
|
|
|
self.assertEqual(sfinxbis('chans'), ('#58',)) |
4121
|
|
|
self.assertEqual(sfinxbis('ljud'), ('J3',)) |
4122
|
|
|
self.assertEqual(sfinxbis('qi'), ('K',)) |
4123
|
|
|
self.assertEqual(sfinxbis('xavier'), ('S76',)) |
4124
|
|
|
self.assertEqual(sfinxbis('skjul'), ('#4',)) |
4125
|
|
|
self.assertEqual(sfinxbis('schul'), ('#4',)) |
4126
|
|
|
self.assertEqual(sfinxbis('skil'), ('#4',)) |
4127
|
|
|
|
4128
|
|
|
# maxlength bounds tests |
4129
|
|
|
self.assertEqual(sfinxbis('Niall', maxlength=float('inf')), ('N4',)) |
4130
|
|
|
self.assertEqual(sfinxbis('Niall', maxlength=None), ('N4',)) |
4131
|
|
|
self.assertEqual(sfinxbis('Niall', maxlength=0), ('N4',)) |
4132
|
|
|
|
4133
|
|
|
|
4134
|
|
|
class PhonetTestCases(unittest.TestCase): |
4135
|
|
|
"""Test Phonet functions. |
4136
|
|
|
|
4137
|
|
|
test cases for abydos.phonetic.phonet |
4138
|
|
|
""" |
4139
|
|
|
|
4140
|
|
|
def test_phonet_german(self): |
4141
|
|
|
"""Test abydos.phonetic.phonet (German).""" |
4142
|
|
|
self.assertEqual(phonet(''), '') |
4143
|
|
|
self.assertEqual(phonet('', trace=True), '') |
4144
|
|
|
|
4145
|
|
|
# https://code.google.com/p/phonet4java/source/browse/trunk/src/test/java/com/googlecode/phonet4java/Phonet1Test.java |
4146
|
|
|
self.assertEqual(phonet('', 1), '') |
4147
|
|
|
self.assertEqual(phonet('Zedlitz', 1), 'ZETLIZ') |
4148
|
|
|
self.assertEqual(phonet('Bremerhaven', 1), 'BREMAHAFN') |
4149
|
|
|
self.assertEqual(phonet('Hamburger Hafen', 1), 'HAMBURGA HAFN') |
4150
|
|
|
self.assertEqual(phonet('Jesper', 1), 'IESPA') |
4151
|
|
|
self.assertEqual(phonet('elisabeth', 1), 'ELISABET') |
4152
|
|
|
self.assertEqual(phonet('elisabet', 1), 'ELISABET') |
4153
|
|
|
self.assertEqual(phonet('Ziegler', 1), 'ZIKLA') |
4154
|
|
|
self.assertEqual(phonet('Scherer', 1), 'SHERA') |
4155
|
|
|
self.assertEqual(phonet('Bartels', 1), 'BARTLS') |
4156
|
|
|
self.assertEqual(phonet('Jansen', 1), 'IANSN') |
4157
|
|
|
self.assertEqual(phonet('Sievers', 1), 'SIWAS') |
4158
|
|
|
self.assertEqual(phonet('Michels', 1), 'MICHLS') |
4159
|
|
|
self.assertEqual(phonet('Ewers', 1), 'EWERS') |
4160
|
|
|
self.assertEqual(phonet('Evers', 1), 'EWERS') |
4161
|
|
|
self.assertEqual(phonet('Wessels', 1), 'WESLS') |
4162
|
|
|
self.assertEqual(phonet('Gottschalk', 1), 'GOSHALK') |
4163
|
|
|
self.assertEqual(phonet('Brückmann', 1), 'BRÜKMAN') |
4164
|
|
|
self.assertEqual(phonet('Blechschmidt', 1), 'BLECHSHMIT') |
4165
|
|
|
self.assertEqual(phonet('Kolodziej', 1), 'KOLOTZI') |
4166
|
|
|
self.assertEqual(phonet('Krauße', 1), 'KRAUSE') |
4167
|
|
|
self.assertEqual(phonet('Cachel', 1), 'KESHL') |
4168
|
|
|
|
4169
|
|
|
self.assertEqual(phonet('', 2), '') |
4170
|
|
|
self.assertEqual(phonet('Zedlitz', 2), 'ZETLIZ') |
4171
|
|
|
self.assertEqual(phonet('Bremerhaven', 2), 'BRENAFN') |
4172
|
|
|
self.assertEqual(phonet('Schönberg', 2), 'ZÖNBAK') |
4173
|
|
|
self.assertEqual(phonet('Hamburger Hafen', 2), 'ANBURKA AFN') |
4174
|
|
|
self.assertEqual(phonet('Ziegler', 2), 'ZIKLA') |
4175
|
|
|
self.assertEqual(phonet('Scherer', 2), 'ZERA') |
4176
|
|
|
self.assertEqual(phonet('Jansen', 2), 'IANZN') |
4177
|
|
|
self.assertEqual(phonet('Eberhardt', 2), 'EBART') |
4178
|
|
|
self.assertEqual(phonet('Gottschalk', 2), 'KUZALK') |
4179
|
|
|
self.assertEqual(phonet('Brückmann', 2), 'BRIKNAN') |
4180
|
|
|
self.assertEqual(phonet('Blechschmidt', 2), 'BLEKZNIT') |
4181
|
|
|
self.assertEqual(phonet('Kolodziej', 2), 'KULUTZI') |
4182
|
|
|
self.assertEqual(phonet('Krauße', 2), 'KRAUZE') |
4183
|
|
|
|
4184
|
|
|
self.assertEqual(phonet('', 2, trace=True), '') |
4185
|
|
|
self.assertEqual(phonet('Zedlitz', 2, trace=True), 'ZETLIZ') |
4186
|
|
|
self.assertEqual(phonet('Bremerhaven', 2, trace=True), 'BRENAFN') |
4187
|
|
|
self.assertEqual(phonet('Schönberg', 2, trace=True), 'ZÖNBAK') |
4188
|
|
|
self.assertEqual(phonet('Hamburger Hafen', 2, trace=True), |
4189
|
|
|
'ANBURKA AFN') |
4190
|
|
|
self.assertEqual(phonet('Ziegler', 2, trace=True), 'ZIKLA') |
4191
|
|
|
self.assertEqual(phonet('Scherer', 2, trace=True), 'ZERA') |
4192
|
|
|
self.assertEqual(phonet('Jansen', 2, trace=True), 'IANZN') |
4193
|
|
|
self.assertEqual(phonet('Eberhardt', 2, trace=True), 'EBART') |
4194
|
|
|
self.assertEqual(phonet('Gottschalk', 2, trace=True), 'KUZALK') |
4195
|
|
|
self.assertEqual(phonet('Brückmann', 2, trace=True), 'BRIKNAN') |
4196
|
|
|
self.assertEqual(phonet('Blechschmidt', 2, trace=True), 'BLEKZNIT') |
4197
|
|
|
self.assertEqual(phonet('Kolodziej', 2, trace=True), 'KULUTZI') |
4198
|
|
|
self.assertEqual(phonet('Krauße', 2, trace=True), 'KRAUZE') |
4199
|
|
|
|
4200
|
|
|
# etc. (for code coverage) |
4201
|
|
|
self.assertEqual(phonet('Jesper', 1, trace=True), 'IESPA') |
4202
|
|
|
self.assertEqual(phonet('Glacéhandschuh', 1), 'GLAZANSHU') |
4203
|
|
|
self.assertEqual(phonet('Blechschmidt', 1, trace=True), 'BLECHSHMIT') |
4204
|
|
|
self.assertEqual(phonet('Burgdorf', 1), 'BURKDORF') |
4205
|
|
|
self.assertEqual(phonet('Holzschuh', 1), 'HOLSHU') |
4206
|
|
|
self.assertEqual(phonet('Aachen', 1, trace=True), 'ACHN') |
4207
|
|
|
self.assertEqual(phonet('Abendspaziergang', 1), 'ABENTSPAZIRGANK') |
4208
|
|
|
|
4209
|
|
|
def test_phonet_nolang(self): |
4210
|
|
|
"""Test abydos.phonetic.phonet (no language).""" |
4211
|
|
|
self.assertEqual(phonet('', lang='none'), '') |
4212
|
|
|
|
4213
|
|
|
# https://code.google.com/p/phonet4java/source/browse/trunk/src/test/java/com/googlecode/phonet4java/Phonet1Test.java |
4214
|
|
|
self.assertEqual(phonet('', 1, 'none'), '') |
4215
|
|
|
self.assertEqual(phonet('Zedlitz', 1, 'none'), 'ZEDLITZ') |
4216
|
|
|
self.assertEqual(phonet('Bremerhaven', 1, 'none'), 'BREMERHAVEN') |
4217
|
|
|
self.assertEqual(phonet('Schönberg', 2, 'none'), 'SCHOENBERG') |
4218
|
|
|
self.assertEqual(phonet('Brückmann', 1, 'none'), 'BRUECKMAN') |
4219
|
|
|
self.assertEqual(phonet('Krauße', 1, 'none'), 'KRAUSE') |
4220
|
|
|
|
4221
|
|
|
self.assertEqual(phonet('', 2, 'none'), '') |
4222
|
|
|
self.assertEqual(phonet('Zedlitz', 2, 'none'), 'ZEDLITZ') |
4223
|
|
|
self.assertEqual(phonet('Bremerhaven', 2, 'none'), 'BREMERHAVEN') |
4224
|
|
|
self.assertEqual(phonet('Schönberg', 2, 'none'), 'SCHOENBERG') |
4225
|
|
|
self.assertEqual(phonet('Brückmann', 2, 'none'), 'BRUECKMAN') |
4226
|
|
|
self.assertEqual(phonet('Krauße', 2, 'none'), 'KRAUSE') |
4227
|
|
|
|
4228
|
|
|
self.assertEqual(phonet('', 2, 'none', True), '') |
4229
|
|
|
self.assertEqual(phonet('Zedlitz', 2, 'none', True), 'ZEDLITZ') |
4230
|
|
|
self.assertEqual(phonet('Bremerhaven', 2, 'none', True), 'BREMERHAVEN') |
4231
|
|
|
self.assertEqual(phonet('Schönberg', 2, 'none', True), 'SCHOENBERG') |
4232
|
|
|
self.assertEqual(phonet('Brückmann', 2, 'none', True), 'BRUECKMAN') |
4233
|
|
|
self.assertEqual(phonet('Krauße', 2, 'none', True), 'KRAUSE') |
4234
|
|
|
|
4235
|
|
|
def test_phonet_nachnamen(self): |
4236
|
|
|
"""Test abydos.phonetic.phonet (Nachnamen set).""" |
4237
|
|
|
if not ALLOW_RANDOM: |
4238
|
|
|
return |
4239
|
|
|
with codecs.open(TESTDIR + '/corpora/nachnamen.csv', |
4240
|
|
|
encoding='utf-8') as nachnamen_testset: |
4241
|
|
|
for nn_line in nachnamen_testset: |
4242
|
|
|
if nn_line[0] != '#': |
4243
|
|
|
nn_line = nn_line.strip().split(',') |
4244
|
|
|
# This test set is very large (~10000 entries) |
4245
|
|
|
# so let's just randomly select about 100 for testing |
4246
|
|
|
if len(nn_line) >= 3 and one_in(100): |
4247
|
|
|
(term, ph1, ph2) = nn_line |
4248
|
|
|
self.assertEqual(phonet(term, 1), ph1) |
4249
|
|
|
self.assertEqual(phonet(term, 2), ph2) |
4250
|
|
|
|
4251
|
|
|
def test_phonet_ngerman(self): |
4252
|
|
|
"""Test abydos.phonetic.phonet (ngerman set).""" |
4253
|
|
|
if not ALLOW_RANDOM: |
4254
|
|
|
return |
4255
|
|
|
with codecs.open(TESTDIR + '/corpora/ngerman.csv', |
4256
|
|
|
encoding='utf-8') as ngerman_testset: |
4257
|
|
|
for ng_line in ngerman_testset: |
4258
|
|
|
if ng_line[0] != '#': |
4259
|
|
|
ng_line = ng_line.strip().split(',') |
4260
|
|
|
# This test set is very large (~3000000 entries) |
4261
|
|
|
# so let's just randomly select about 30 for testing |
4262
|
|
|
if len(ng_line) >= 3 and one_in(10000): |
4263
|
|
|
(term, ph1, ph2) = ng_line |
4264
|
|
|
self.assertEqual(phonet(term, 1), ph1) |
4265
|
|
|
self.assertEqual(phonet(term, 2), ph2) |
4266
|
|
|
|
4267
|
|
|
|
4268
|
|
|
class SPFCTestCases(unittest.TestCase): |
4269
|
|
|
"""Test SPFC functions. |
4270
|
|
|
|
4271
|
|
|
test cases for abydos.phonetic.spfc |
4272
|
|
|
""" |
4273
|
|
|
|
4274
|
|
|
def test_spfc(self): |
4275
|
|
|
"""Test abydos.phonetic.spfc.""" |
4276
|
|
|
self.assertEqual(spfc(''), '') |
4277
|
|
|
|
4278
|
|
|
# https://archive.org/stream/accessingindivid00moor#page/19/mode/1up |
4279
|
|
|
self.assertEqual(spfc(('J', 'KUHNS')), '16760') |
4280
|
|
|
self.assertEqual(spfc(('G', 'ALTSHULER')), '35797') |
4281
|
|
|
self.assertEqual(spfc('J KUHNS'), '16760') |
4282
|
|
|
self.assertEqual(spfc('G ALTSHULER'), '35797') |
4283
|
|
|
self.assertEqual(spfc('J. KUHNS'), '16760') |
4284
|
|
|
self.assertEqual(spfc('G. ALTSHULER'), '35797') |
4285
|
|
|
self.assertEqual(spfc('J. Kuhns'), '16760') |
4286
|
|
|
self.assertEqual(spfc('G. Altshuler'), '35797') |
4287
|
|
|
self.assertEqual(spfc('T. Vines'), '16760') |
4288
|
|
|
self.assertEqual(spfc('J. Butler'), '35779') |
4289
|
|
|
self.assertNotEqual(spfc('J. Kuhns'), spfc('J. Kuntz')) |
4290
|
|
|
self.assertEqual(spfc('Jon Kuhns'), '16760') |
4291
|
|
|
self.assertEqual(spfc('James Kuhns'), '16760') |
4292
|
|
|
|
4293
|
|
|
self.assertRaises(AttributeError, spfc, ('J', 'A', 'Kuhns')) |
4294
|
|
|
self.assertRaises(AttributeError, spfc, 'JKuhns') |
4295
|
|
|
self.assertRaises(AttributeError, spfc, 5) |
4296
|
|
|
|
4297
|
|
|
# etc. (for code coverage) |
4298
|
|
|
self.assertEqual(spfc('James Goldstein'), '78795') |
4299
|
|
|
self.assertEqual(spfc('James Hansen'), '58760') |
4300
|
|
|
self.assertEqual(spfc('James Hester'), '59700') |
4301
|
|
|
self.assertEqual(spfc('James Bardot'), '31745') |
4302
|
|
|
self.assertEqual(spfc('James Windsor'), '29765') |
4303
|
|
|
self.assertEqual(spfc('James Wenders'), '27760') |
4304
|
|
|
self.assertEqual(spfc('James Ventor'), '17760') |
4305
|
|
|
self.assertEqual(spfc('þ þ'), '00') |
4306
|
|
|
|
4307
|
|
|
|
4308
|
|
|
class StatisticsCanadaTestCases(unittest.TestCase): |
4309
|
|
|
"""Test Statistics Canada functions. |
4310
|
|
|
|
4311
|
|
|
test cases for abydos.phonetic.statistics_canada |
4312
|
|
|
""" |
4313
|
|
|
|
4314
|
|
|
def test_statistics_canada(self): |
4315
|
|
|
"""Test abydos.phonetic.statistics_canada.""" |
4316
|
|
|
self.assertEqual(statistics_canada(''), '') |
4317
|
|
|
|
4318
|
|
|
# https://naldc.nal.usda.gov/download/27833/PDF |
4319
|
|
|
self.assertEqual(statistics_canada('Daves'), 'DVS') |
4320
|
|
|
self.assertEqual(statistics_canada('Davies'), 'DVS') |
4321
|
|
|
self.assertEqual(statistics_canada('Devese'), 'DVS') |
4322
|
|
|
self.assertEqual(statistics_canada('Devies'), 'DVS') |
4323
|
|
|
self.assertEqual(statistics_canada('Devos'), 'DVS') |
4324
|
|
|
|
4325
|
|
|
self.assertEqual(statistics_canada('Smathers'), 'SMTH') |
4326
|
|
|
self.assertEqual(statistics_canada('Smithart'), 'SMTH') |
4327
|
|
|
self.assertEqual(statistics_canada('Smithbower'), 'SMTH') |
4328
|
|
|
self.assertEqual(statistics_canada('Smitherman'), 'SMTH') |
4329
|
|
|
self.assertEqual(statistics_canada('Smithey'), 'SMTH') |
4330
|
|
|
self.assertEqual(statistics_canada('Smithgall'), 'SMTH') |
4331
|
|
|
self.assertEqual(statistics_canada('Smithingall'), 'SMTH') |
4332
|
|
|
self.assertEqual(statistics_canada('Smithmyer'), 'SMTH') |
4333
|
|
|
self.assertEqual(statistics_canada('Smithpeter'), 'SMTH') |
4334
|
|
|
self.assertEqual(statistics_canada('Smithson'), 'SMTH') |
4335
|
|
|
self.assertEqual(statistics_canada('Smithy'), 'SMTH') |
4336
|
|
|
self.assertEqual(statistics_canada('Smotherman'), 'SMTH') |
4337
|
|
|
self.assertEqual(statistics_canada('Smothers'), 'SMTH') |
4338
|
|
|
self.assertEqual(statistics_canada('Smyth'), 'SMTH') |
4339
|
|
|
|
4340
|
|
|
# Additional tests from @Yomguithereal's talisman |
4341
|
|
|
# https://github.com/Yomguithereal/talisman/blob/master/test/phonetics/statcan.js |
4342
|
|
|
self.assertEqual(statistics_canada('Guillaume'), 'GLM') |
4343
|
|
|
self.assertEqual(statistics_canada('Arlène'), 'ARLN') |
4344
|
|
|
self.assertEqual(statistics_canada('Lüdenscheidt'), 'LDNS') |
4345
|
|
|
|
4346
|
|
|
|
4347
|
|
|
class LeinTestCases(unittest.TestCase): |
4348
|
|
|
"""Test Lein functions. |
4349
|
|
|
|
4350
|
|
|
test cases for abydos.phonetic.lein |
4351
|
|
|
""" |
4352
|
|
|
|
4353
|
|
|
def test_lein(self): |
4354
|
|
|
"""Test abydos.phonetic.lein.""" |
4355
|
|
|
self.assertEqual(lein(''), '') |
4356
|
|
|
|
4357
|
|
|
# https://naldc.nal.usda.gov/download/27833/PDF |
4358
|
|
|
self.assertEqual(lein('Dubose'), 'D450') |
4359
|
|
|
self.assertEqual(lein('Dubs'), 'D450') |
4360
|
|
|
self.assertEqual(lein('Dubbs'), 'D450') |
4361
|
|
|
self.assertEqual(lein('Doviak'), 'D450') |
4362
|
|
|
self.assertEqual(lein('Dubke'), 'D450') |
4363
|
|
|
self.assertEqual(lein('Dubus'), 'D450') |
4364
|
|
|
self.assertEqual(lein('Dubois'), 'D450') |
4365
|
|
|
self.assertEqual(lein('Duboise'), 'D450') |
4366
|
|
|
self.assertEqual(lein('Doubek'), 'D450') |
4367
|
|
|
self.assertEqual(lein('Defigh'), 'D450') |
4368
|
|
|
self.assertEqual(lein('Defazio'), 'D450') |
4369
|
|
|
self.assertEqual(lein('Debaca'), 'D450') |
4370
|
|
|
self.assertEqual(lein('Dabbs'), 'D450') |
4371
|
|
|
self.assertEqual(lein('Davies'), 'D450') |
4372
|
|
|
self.assertEqual(lein('Dubukey'), 'D450') |
4373
|
|
|
self.assertEqual(lein('Debus'), 'D450') |
4374
|
|
|
self.assertEqual(lein('Debose'), 'D450') |
4375
|
|
|
self.assertEqual(lein('Daves'), 'D450') |
4376
|
|
|
self.assertEqual(lein('Dipiazza'), 'D450') |
4377
|
|
|
self.assertEqual(lein('Dobbs'), 'D450') |
4378
|
|
|
self.assertEqual(lein('Dobak'), 'D450') |
4379
|
|
|
self.assertEqual(lein('Dobis'), 'D450') |
4380
|
|
|
self.assertEqual(lein('Dobish'), 'D450') |
4381
|
|
|
self.assertEqual(lein('Doepke'), 'D450') |
4382
|
|
|
self.assertEqual(lein('Divish'), 'D450') |
4383
|
|
|
self.assertEqual(lein('Dobosh'), 'D450') |
4384
|
|
|
self.assertEqual(lein('Dupois'), 'D450') |
4385
|
|
|
self.assertEqual(lein('Dufek'), 'D450') |
4386
|
|
|
self.assertEqual(lein('Duffek'), 'D450') |
4387
|
|
|
self.assertEqual(lein('Dupuis'), 'D450') |
4388
|
|
|
self.assertEqual(lein('Dupas'), 'D450') |
4389
|
|
|
self.assertEqual(lein('Devese'), 'D450') |
4390
|
|
|
self.assertEqual(lein('Devos'), 'D450') |
4391
|
|
|
self.assertEqual(lein('Deveaux'), 'D450') |
4392
|
|
|
self.assertEqual(lein('Devies'), 'D450') |
4393
|
|
|
|
4394
|
|
|
self.assertEqual(lein('Sand'), 'S210') |
4395
|
|
|
self.assertEqual(lein('Sandau'), 'S210') |
4396
|
|
|
self.assertEqual(lein('Sande'), 'S210') |
4397
|
|
|
self.assertEqual(lein('Sandia'), 'S210') |
4398
|
|
|
self.assertEqual(lein('Sando'), 'S210') |
4399
|
|
|
self.assertEqual(lein('Sandoe'), 'S210') |
4400
|
|
|
self.assertEqual(lein('Sandy'), 'S210') |
4401
|
|
|
self.assertEqual(lein('Santee'), 'S210') |
4402
|
|
|
self.assertEqual(lein('Santi'), 'S210') |
4403
|
|
|
self.assertEqual(lein('Santo'), 'S210') |
4404
|
|
|
self.assertEqual(lein('Send'), 'S210') |
4405
|
|
|
self.assertEqual(lein('Sennet'), 'S210') |
4406
|
|
|
self.assertEqual(lein('Shemoit'), 'S210') |
4407
|
|
|
self.assertEqual(lein('Shenot'), 'S210') |
4408
|
|
|
self.assertEqual(lein('Shumate'), 'S210') |
4409
|
|
|
self.assertEqual(lein('Simmet'), 'S210') |
4410
|
|
|
self.assertEqual(lein('Simot'), 'S210') |
4411
|
|
|
self.assertEqual(lein('Sineath'), 'S210') |
4412
|
|
|
self.assertEqual(lein('Sinnott'), 'S210') |
4413
|
|
|
self.assertEqual(lein('Sintay'), 'S210') |
4414
|
|
|
self.assertEqual(lein('Smead'), 'S210') |
4415
|
|
|
self.assertEqual(lein('Smeda'), 'S210') |
4416
|
|
|
self.assertEqual(lein('Smit'), 'S210') |
4417
|
|
|
|
4418
|
|
|
# Additional tests from @Yomguithereal's talisman |
4419
|
|
|
# https://github.com/Yomguithereal/talisman/blob/master/test/phonetics/lein.js |
4420
|
|
|
self.assertEqual(lein('Guillaume'), 'G320') |
4421
|
|
|
self.assertEqual(lein('Arlène'), 'A332') |
4422
|
|
|
self.assertEqual(lein('Lüdenscheidt'), 'L125') |
4423
|
|
|
|
4424
|
|
|
|
4425
|
|
|
class RogerRootTestCases(unittest.TestCase): |
4426
|
|
|
"""Test Roger Root functions. |
4427
|
|
|
|
4428
|
|
|
test cases for abydos.phonetic.roger_root |
4429
|
|
|
""" |
4430
|
|
|
|
4431
|
|
|
def test_roger_root(self): |
4432
|
|
|
"""Test abydos.phonetic.roger_root.""" |
4433
|
|
|
self.assertEqual(roger_root(''), '') |
4434
|
|
|
|
4435
|
|
|
# https://naldc.nal.usda.gov/download/27833/PDF |
4436
|
|
|
self.assertEqual(roger_root('BROWNER'), '09424') |
4437
|
|
|
self.assertEqual(roger_root('STANLEY'), '00125') |
4438
|
|
|
self.assertEqual(roger_root('CHALMAN'), '06532') |
4439
|
|
|
self.assertEqual(roger_root('CHING'), '06270') |
4440
|
|
|
self.assertEqual(roger_root('ANDERSON'), '12140') |
4441
|
|
|
self.assertEqual(roger_root('OVERSTREET'), '18401') |
4442
|
|
|
self.assertEqual(roger_root('HECKEL'), '27500') |
4443
|
|
|
self.assertEqual(roger_root('WYSZYNSKI'), '40207') |
4444
|
|
|
self.assertEqual(roger_root('WHITTED'), '41100') |
4445
|
|
|
self.assertEqual(roger_root('ONGOQO'), '12770') # PDF had a typo? |
4446
|
|
|
self.assertEqual(roger_root('JOHNSON'), '32020') |
4447
|
|
|
self.assertEqual(roger_root('WILLIAMS'), '45300') |
4448
|
|
|
self.assertEqual(roger_root('SMITH'), '00310') |
4449
|
|
|
self.assertEqual(roger_root('JONES'), '32000') |
4450
|
|
|
self.assertEqual(roger_root('BROWN'), '09420') |
4451
|
|
|
self.assertEqual(roger_root('DAVIS'), '01800') |
4452
|
|
|
self.assertEqual(roger_root('JACKSON'), '37020') |
4453
|
|
|
self.assertEqual(roger_root('WILSON'), '45020') |
4454
|
|
|
self.assertEqual(roger_root('LEE'), '05000') |
4455
|
|
|
self.assertEqual(roger_root('THOMAS'), '01300') |
4456
|
|
|
|
4457
|
|
|
self.assertEqual(roger_root('Defouw'), '01800') |
4458
|
|
|
self.assertEqual(roger_root('Dauphi'), '01800') |
4459
|
|
|
self.assertEqual(roger_root('Defazio'), '01800') |
4460
|
|
|
self.assertEqual(roger_root('Defay'), '01800') |
4461
|
|
|
self.assertEqual(roger_root('Davy'), '01800') |
4462
|
|
|
self.assertEqual(roger_root('Defee'), '01800') |
4463
|
|
|
self.assertEqual(roger_root('Dayhoff'), '01800') |
4464
|
|
|
self.assertEqual(roger_root('Davie'), '01800') |
4465
|
|
|
self.assertEqual(roger_root('Davey'), '01800') |
4466
|
|
|
self.assertEqual(roger_root('Davies'), '01800') |
4467
|
|
|
self.assertEqual(roger_root('Daves'), '01800') |
4468
|
|
|
self.assertEqual(roger_root('Deife'), '01800') |
4469
|
|
|
self.assertEqual(roger_root('Dehoff'), '01800') |
4470
|
|
|
self.assertEqual(roger_root('Devese'), '01800') |
4471
|
|
|
self.assertEqual(roger_root('Devoe'), '01800') |
4472
|
|
|
self.assertEqual(roger_root('Devee'), '01800') |
4473
|
|
|
self.assertEqual(roger_root('Devies'), '01800') |
4474
|
|
|
self.assertEqual(roger_root('Devos'), '01800') |
4475
|
|
|
self.assertEqual(roger_root('Dafoe'), '01800') |
4476
|
|
|
self.assertEqual(roger_root('Dove'), '01800') |
4477
|
|
|
self.assertEqual(roger_root('Duff'), '01800') |
4478
|
|
|
self.assertEqual(roger_root('Duffey'), '01800') |
4479
|
|
|
self.assertEqual(roger_root('Duffie'), '01800') |
4480
|
|
|
self.assertEqual(roger_root('Duffy'), '01800') |
4481
|
|
|
self.assertEqual(roger_root('Duyava'), '01800') |
4482
|
|
|
self.assertEqual(roger_root('Tafoya'), '01800') |
4483
|
|
|
self.assertEqual(roger_root('Tevis'), '01800') |
4484
|
|
|
self.assertEqual(roger_root('Tiffee'), '01800') |
4485
|
|
|
self.assertEqual(roger_root('Tivis'), '01800') |
4486
|
|
|
self.assertEqual(roger_root('Thevis'), '01800') |
4487
|
|
|
self.assertEqual(roger_root('Tovey'), '01800') |
4488
|
|
|
self.assertEqual(roger_root('Toeves'), '01800') |
4489
|
|
|
self.assertEqual(roger_root('Tuffs'), '01800') |
4490
|
|
|
|
4491
|
|
|
self.assertEqual(roger_root('Samotid'), '00311') |
4492
|
|
|
self.assertEqual(roger_root('Simmet'), '00310') |
4493
|
|
|
self.assertEqual(roger_root('Simot'), '00310') |
4494
|
|
|
self.assertEqual(roger_root('Smead'), '00310') |
4495
|
|
|
self.assertEqual(roger_root('Smeda'), '00310') |
4496
|
|
|
self.assertEqual(roger_root('Smit'), '00310') |
4497
|
|
|
self.assertEqual(roger_root('Smite'), '00310') |
4498
|
|
|
self.assertEqual(roger_root('Smithe'), '00310') |
4499
|
|
|
self.assertEqual(roger_root('Smithey'), '00310') |
4500
|
|
|
self.assertEqual(roger_root('Smithson'), '00310') |
4501
|
|
|
self.assertEqual(roger_root('Smithy'), '00310') |
4502
|
|
|
self.assertEqual(roger_root('Smoot'), '00310') |
4503
|
|
|
self.assertEqual(roger_root('Smyth'), '00310') |
4504
|
|
|
self.assertEqual(roger_root('Szmodis'), '00310') |
4505
|
|
|
self.assertEqual(roger_root('Zemaitis'), '00310') |
4506
|
|
|
self.assertEqual(roger_root('Zmuda'), '00310') |
4507
|
|
|
|
4508
|
|
|
# Additional tests from @Yomguithereal's talisman |
4509
|
|
|
# https://github.com/Yomguithereal/talisman/blob/master/test/phonetics/roger-root.js |
4510
|
|
|
self.assertEqual(roger_root('Guillaume'), '07530') |
4511
|
|
|
self.assertEqual(roger_root('Arlène'), '14520') |
4512
|
|
|
self.assertEqual(roger_root('Lüdenscheidt'), '05126') |
4513
|
|
|
|
4514
|
|
|
|
4515
|
|
|
class ONCATestCases(unittest.TestCase): |
4516
|
|
|
"""Test ONCA functions. |
4517
|
|
|
|
4518
|
|
|
test cases for abydos.phonetic.onca |
4519
|
|
|
""" |
4520
|
|
|
|
4521
|
|
|
def test_onca(self): |
4522
|
|
|
"""Test abydos.phonetic.onca.""" |
4523
|
|
|
# https://nces.ed.gov/FCSM/pdf/RLT97.pdf |
4524
|
|
|
self.assertEqual(onca('HALL'), 'H400') |
4525
|
|
|
self.assertEqual(onca('SMITH'), 'S530') |
4526
|
|
|
|
4527
|
|
|
# http://nchod.uhce.ox.ac.uk/NCHOD%20Oxford%20E5%20Report%201st%20Feb_VerAM2.pdf |
4528
|
|
|
self.assertEqual(onca('HAWTON'), 'H350') |
4529
|
|
|
self.assertEqual(onca('HORTON'), 'H635') |
4530
|
|
|
self.assertEqual(onca('HOUGHTON'), 'H235') |
4531
|
|
|
|
4532
|
|
|
|
4533
|
|
|
class EudexTestCases(unittest.TestCase): |
4534
|
|
|
"""Test eudex functions. |
4535
|
|
|
|
4536
|
|
|
test cases for abydos.phonetic.eudex |
4537
|
|
|
""" |
4538
|
|
|
def test_eudex(self): |
4539
|
|
|
"""Test abydos.phonetic.eudex.""" |
4540
|
|
|
# exact & mismatch cases from https://github.com/ticki/eudex/blob/master/src/tests.rs |
4541
|
|
|
self.assertEqual(eudex("JAva"), eudex("jAva")) |
4542
|
|
|
self.assertEqual(eudex("co!mputer"), eudex("computer")) |
4543
|
|
|
self.assertEqual(eudex("comp-uter"), eudex("computer")) |
4544
|
|
|
self.assertEqual(eudex("comp@u#te?r"), eudex("computer")) |
4545
|
|
|
self.assertEqual(eudex("lal"), eudex("lel")) |
4546
|
|
|
self.assertEqual(eudex("rindom"), eudex("ryndom")) |
4547
|
|
|
self.assertEqual(eudex("riiiindom"), eudex("ryyyyyndom")) |
4548
|
|
|
self.assertEqual(eudex("riyiyiiindom"), eudex("ryyyyyndom")) |
4549
|
|
|
self.assertEqual(eudex("triggered"), eudex("TRIGGERED")) |
4550
|
|
|
self.assertEqual(eudex("repert"), eudex("ropert")) |
4551
|
|
|
|
4552
|
|
|
self.assertNotEqual(eudex("reddit"), eudex("eddit")) |
4553
|
|
|
self.assertNotEqual(eudex("lol"), eudex("lulz")) |
4554
|
|
|
self.assertNotEqual(eudex("ijava"), eudex("java")) |
4555
|
|
|
self.assertNotEqual(eudex("jiva"), eudex("java")) |
4556
|
|
|
self.assertNotEqual(eudex("jesus"), eudex("iesus")) |
4557
|
|
|
self.assertNotEqual(eudex("aesus"), eudex("iesus")) |
4558
|
|
|
self.assertNotEqual(eudex("iesus"), eudex("yesus")) |
4559
|
|
|
self.assertNotEqual(eudex("rupirt"), eudex("ropert")) |
4560
|
|
|
self.assertNotEqual(eudex("ripert"), eudex("ropyrt")) |
4561
|
|
|
self.assertNotEqual(eudex("rrr"), eudex("rraaaa")) |
4562
|
|
|
self.assertNotEqual(eudex("randomal"), eudex("randomai")) |
4563
|
|
|
|
4564
|
|
|
|
4565
|
|
|
class BeiderMorseTestCases(unittest.TestCase): |
4566
|
|
|
"""Test BMPM functions. |
4567
|
|
|
|
4568
|
|
|
test cases for abydos.phonetic.bmpm and abydos.bm.* |
4569
|
|
|
""" |
4570
|
|
|
|
4571
|
|
|
def test_bmpm(self): |
4572
|
|
|
"""Test abydos.phonetic.bmpm. |
4573
|
|
|
|
4574
|
|
|
Most test cases from: |
4575
|
|
|
http://svn.apache.org/viewvc/commons/proper/codec/trunk/src/test/java/org/apache/commons/codec/language/bm/ |
4576
|
|
|
|
4577
|
|
|
As a rule, the test cases are copied from the above code, but the |
4578
|
|
|
resultant values are not. This is largely because this Python port |
4579
|
|
|
follows the PHP reference implementation much more closely than the |
4580
|
|
|
Java port in Apache Commons Codec does. As a result, these tests have |
4581
|
|
|
been conformed to the output produced by the PHP implementation, |
4582
|
|
|
particularly in terms of formatting and ordering. |
4583
|
|
|
""" |
4584
|
|
|
# base cases |
4585
|
|
|
self.assertEqual(bmpm(''), '') |
4586
|
|
|
|
4587
|
|
|
for langs in ('', 1, 'spanish', 'english,italian', 3): |
4588
|
|
|
for name_mode in ('gen', 'ash', 'sep'): |
4589
|
|
|
for match_mode in ('approx', 'exact'): |
4590
|
|
|
for concat in (False, True): |
4591
|
|
|
if (isinstance(langs, text_type) and |
4592
|
|
|
((name_mode == 'ash' and 'italian' in langs) or |
|
|
|
|
4593
|
|
|
(name_mode == 'sep' and 'english' in langs))): |
4594
|
|
|
self.assertRaises(ValueError, bmpm, '', langs, |
4595
|
|
|
name_mode, match_mode, concat) |
4596
|
|
|
else: |
4597
|
|
|
self.assertEqual(bmpm('', langs, name_mode, |
4598
|
|
|
match_mode, concat), '') |
4599
|
|
|
|
4600
|
|
|
# testSolrGENERIC |
4601
|
|
|
# concat is true, ruleType is EXACT |
4602
|
|
|
self.assertEqual(bmpm('Angelo', '', 'gen', 'exact', True), |
4603
|
|
|
'angelo anxelo anhelo anjelo anZelo andZelo') |
4604
|
|
|
self.assertEqual(bmpm('D\'Angelo', '', 'gen', 'exact', True), |
4605
|
|
|
'angelo anxelo anhelo anjelo anZelo andZelo dangelo' + |
4606
|
|
|
' danxelo danhelo danjelo danZelo dandZelo') |
4607
|
|
|
self.assertEqual(bmpm('Angelo', 'italian,greek,spanish', 'gen', |
4608
|
|
|
'exact', True), |
4609
|
|
|
'angelo anxelo andZelo') |
4610
|
|
|
self.assertEqual(bmpm('1234', '', 'gen', 'exact', True), '') |
4611
|
|
|
|
4612
|
|
|
# concat is false, ruleType is EXACT |
4613
|
|
|
self.assertEqual(bmpm('Angelo', '', 'gen', 'exact', False), |
4614
|
|
|
'angelo anxelo anhelo anjelo anZelo andZelo') |
4615
|
|
|
self.assertEqual(bmpm('D\'Angelo', '', 'gen', 'exact', False), |
4616
|
|
|
'angelo anxelo anhelo anjelo anZelo andZelo dangelo' + |
4617
|
|
|
' danxelo danhelo danjelo danZelo dandZelo') |
4618
|
|
|
self.assertEqual(bmpm('Angelo', 'italian,greek,spanish', 'gen', |
4619
|
|
|
'exact', False), |
4620
|
|
|
'angelo anxelo andZelo') |
4621
|
|
|
self.assertEqual(bmpm('1234', '', 'gen', 'exact', False), '') |
4622
|
|
|
|
4623
|
|
|
# concat is true, ruleType is APPROX |
4624
|
|
|
self.assertEqual(bmpm('Angelo', '', 'gen', 'approx', True), |
4625
|
|
|
'angilo angYlo agilo ongilo ongYlo ogilo Yngilo' + |
4626
|
|
|
' YngYlo anxilo onxilo anilo onilo aniilo oniilo' + |
4627
|
|
|
' anzilo onzilo') |
4628
|
|
|
self.assertEqual(bmpm('D\'Angelo', '', 'gen', 'approx', True), |
4629
|
|
|
'angilo angYlo agilo ongilo ongYlo ogilo Yngilo' + |
4630
|
|
|
' YngYlo anxilo onxilo anilo onilo aniilo oniilo' + |
4631
|
|
|
' anzilo onzilo dangilo dangYlo dagilo dongilo' + |
4632
|
|
|
' dongYlo dogilo dYngilo dYngYlo danxilo donxilo' + |
4633
|
|
|
' danilo donilo daniilo doniilo danzilo donzilo') |
4634
|
|
|
self.assertEqual(bmpm('Angelo', 'italian,greek,spanish', 'gen', |
4635
|
|
|
'approx', True), |
4636
|
|
|
'angilo ongilo anxilo onxilo anzilo onzilo') |
4637
|
|
|
self.assertEqual(bmpm('1234', '', 'gen', 'approx', True), '') |
4638
|
|
|
|
4639
|
|
|
# concat is false, ruleType is APPROX |
4640
|
|
|
self.assertEqual(bmpm('Angelo', '', 'gen', 'approx', False), |
4641
|
|
|
'angilo angYlo agilo ongilo ongYlo ogilo Yngilo' + |
4642
|
|
|
' YngYlo anxilo onxilo anilo onilo aniilo oniilo' + |
4643
|
|
|
' anzilo onzilo') |
4644
|
|
|
self.assertEqual(bmpm('D\'Angelo', '', 'gen', 'approx', False), |
4645
|
|
|
'angilo angYlo agilo ongilo ongYlo ogilo Yngilo' + |
4646
|
|
|
' YngYlo anxilo onxilo anilo onilo aniilo oniilo' + |
4647
|
|
|
' anzilo onzilo dangilo dangYlo dagilo dongilo' + |
4648
|
|
|
' dongYlo dogilo dYngilo dYngYlo danxilo donxilo' + |
4649
|
|
|
' danilo donilo daniilo doniilo danzilo donzilo') |
4650
|
|
|
self.assertEqual(bmpm('Angelo', 'italian,greek,spanish', 'gen', |
4651
|
|
|
'approx', False), |
4652
|
|
|
'angilo ongilo anxilo onxilo anzilo onzilo') |
4653
|
|
|
self.assertEqual(bmpm('1234', '', 'gen', 'approx', False), '') |
4654
|
|
|
|
4655
|
|
|
# testSolrASHKENAZI |
4656
|
|
|
# concat is true, ruleType is EXACT |
4657
|
|
|
self.assertEqual(bmpm('Angelo', '', 'ash', 'exact', True), |
4658
|
|
|
'angelo andZelo anhelo anxelo') |
4659
|
|
|
self.assertEqual(bmpm('D\'Angelo', '', 'ash', 'exact', True), |
4660
|
|
|
'dangelo dandZelo danhelo danxelo') |
4661
|
|
|
self.assertRaises(ValueError, bmpm, 'Angelo', 'italian,greek,spanish', |
4662
|
|
|
'ash', 'exact', True) |
4663
|
|
|
self.assertEqual(bmpm('Angelo', 'italian,greek,spanish', 'ash', |
4664
|
|
|
'exact', True, True), 'anxelo angelo') |
4665
|
|
|
self.assertEqual(bmpm('1234', '', 'ash', 'exact', True), '') |
4666
|
|
|
|
4667
|
|
|
# concat is false, ruleType is EXACT |
4668
|
|
|
self.assertEqual(bmpm('Angelo', '', 'ash', 'exact', False), |
4669
|
|
|
'angelo andZelo anhelo anxelo') |
4670
|
|
|
self.assertEqual(bmpm('D\'Angelo', '', 'ash', 'exact', False), |
4671
|
|
|
'dangelo dandZelo danhelo danxelo') |
4672
|
|
|
self.assertRaises(ValueError, bmpm, 'Angelo', 'italian,greek,spanish', |
4673
|
|
|
'ash', 'exact', False) |
4674
|
|
|
self.assertEqual(bmpm('Angelo', 'italian,greek,spanish', 'ash', |
4675
|
|
|
'exact', False, True), 'anxelo angelo') |
4676
|
|
|
self.assertEqual(bmpm('1234', '', 'ash', 'exact', False), '') |
4677
|
|
|
|
4678
|
|
|
# concat is true, ruleType is APPROX |
4679
|
|
|
self.assertEqual(bmpm('Angelo', '', 'ash', 'approx', True), |
4680
|
|
|
'angilo angYlo ongilo ongYlo Yngilo YngYlo anzilo' + |
4681
|
|
|
' onzilo anilo onilo anxilo onxilo') |
4682
|
|
|
self.assertEqual(bmpm('D\'Angelo', '', 'ash', 'approx', True), |
4683
|
|
|
'dangilo dangYlo dongilo dongYlo dYngilo dYngYlo' + |
4684
|
|
|
' danzilo donzilo danilo donilo danxilo donxilo') |
4685
|
|
|
self.assertRaises(ValueError, bmpm, 'Angelo', 'italian,greek,spanish', |
4686
|
|
|
'ash', 'approx', True) |
4687
|
|
|
self.assertEqual(bmpm('Angelo', 'italian,greek,spanish', 'ash', |
4688
|
|
|
'approx', True, True), |
4689
|
|
|
'anxYlo anxilo onxYlo onxilo angYlo angilo ongYlo' + |
4690
|
|
|
' ongilo') |
4691
|
|
|
self.assertEqual(bmpm('1234', '', 'ash', 'approx', True), '') |
4692
|
|
|
|
4693
|
|
|
# concat is false, ruleType is APPROX |
4694
|
|
|
self.assertEqual(bmpm('Angelo', '', 'ash', 'approx', False), |
4695
|
|
|
'angilo angYlo ongilo ongYlo Yngilo YngYlo anzilo' + |
4696
|
|
|
' onzilo anilo onilo anxilo onxilo') |
4697
|
|
|
self.assertEqual(bmpm('D\'Angelo', '', 'ash', 'approx', False), |
4698
|
|
|
'dangilo dangYlo dongilo dongYlo dYngilo dYngYlo' + |
4699
|
|
|
' danzilo donzilo danilo donilo danxilo donxilo') |
4700
|
|
|
self.assertRaises(ValueError, bmpm, 'Angelo', 'italian,greek,spanish', |
4701
|
|
|
'ash', 'approx', False) |
4702
|
|
|
self.assertEqual(bmpm('Angelo', 'italian,greek,spanish', 'ash', |
4703
|
|
|
'approx', False, True), |
4704
|
|
|
'anxYlo anxilo onxYlo onxilo angYlo angilo ongYlo' + |
4705
|
|
|
' ongilo') |
4706
|
|
|
self.assertEqual(bmpm('1234', '', 'ash', 'approx', False), '') |
4707
|
|
|
|
4708
|
|
|
# testSolrSEPHARDIC |
4709
|
|
|
# concat is true, ruleType is EXACT |
4710
|
|
|
self.assertEqual(bmpm('Angelo', '', 'sep', 'exact', True), |
4711
|
|
|
'anZelo andZelo anxelo') |
4712
|
|
|
self.assertEqual(bmpm('D\'Angelo', '', 'sep', 'exact', True), |
4713
|
|
|
'anZelo andZelo anxelo') |
4714
|
|
|
self.assertRaises(ValueError, bmpm, 'Angelo', 'italian,greek,spanish', |
4715
|
|
|
'sep', 'exact', True) |
4716
|
|
|
self.assertEqual(bmpm('Angelo', 'italian,greek,spanish', 'sep', |
4717
|
|
|
'exact', True, True), |
4718
|
|
|
'andZelo anxelo') |
4719
|
|
|
self.assertEqual(bmpm('1234', '', 'sep', 'exact', True), '') |
4720
|
|
|
|
4721
|
|
|
# concat is false, ruleType is EXACT |
4722
|
|
|
self.assertEqual(bmpm('Angelo', '', 'sep', 'exact', False), |
4723
|
|
|
'anZelo andZelo anxelo') |
4724
|
|
|
self.assertEqual(bmpm('D\'Angelo', '', 'sep', 'exact', False), |
4725
|
|
|
'anZelo andZelo anxelo') |
4726
|
|
|
self.assertRaises(ValueError, bmpm, 'Angelo', 'italian,greek,spanish', |
4727
|
|
|
'sep', 'exact', False) |
4728
|
|
|
self.assertEqual(bmpm('Angelo', 'italian,greek,spanish', 'sep', |
4729
|
|
|
'exact', False, True), 'andZelo anxelo') |
4730
|
|
|
self.assertEqual(bmpm('1234', '', 'sep', 'exact', False), '') |
4731
|
|
|
|
4732
|
|
|
# concat is true, ruleType is APPROX |
4733
|
|
|
self.assertEqual(bmpm('Angelo', '', 'sep', 'approx', True), |
4734
|
|
|
'anzila anzilu nzila nzilu anhila anhilu nhila nhilu') |
4735
|
|
|
self.assertEqual(bmpm('D\'Angelo', '', 'sep', 'approx', True), |
4736
|
|
|
'anzila anzilu nzila nzilu anhila anhilu nhila nhilu') |
4737
|
|
|
self.assertRaises(ValueError, bmpm, 'Angelo', 'italian,greek,spanish', |
4738
|
|
|
'sep', 'approx', True) |
4739
|
|
|
self.assertEqual(bmpm('Angelo', 'italian,greek,spanish', 'sep', |
4740
|
|
|
'approx', True, True), |
4741
|
|
|
'anzila anzilu nzila nzilu anhila anhilu nhila nhilu') |
4742
|
|
|
self.assertEqual(bmpm('1234', '', 'sep', 'approx', True), '') |
4743
|
|
|
|
4744
|
|
|
# concat is false, ruleType is APPROX |
4745
|
|
|
self.assertEqual(bmpm('Angelo', '', 'sep', 'approx', False), |
4746
|
|
|
'anzila anzilu nzila nzilu anhila anhilu nhila nhilu') |
4747
|
|
|
self.assertEqual(bmpm('D\'Angelo', '', 'sep', 'approx', False), |
4748
|
|
|
'anzila anzilu nzila nzilu anhila anhilu nhila nhilu') |
4749
|
|
|
self.assertRaises(ValueError, bmpm, 'Angelo', 'italian,greek,spanish', |
4750
|
|
|
'sep', 'approx', False) |
4751
|
|
|
self.assertEqual(bmpm('Angelo', 'italian,greek,spanish', 'sep', |
4752
|
|
|
'approx', False, True), |
4753
|
|
|
'anzila anzilu nzila nzilu anhila anhilu nhila nhilu') |
4754
|
|
|
self.assertEqual(bmpm('1234', '', 'sep', 'approx', False), '') |
4755
|
|
|
|
4756
|
|
|
# testCompatibilityWithOriginalVersion |
4757
|
|
|
self.assertEqual(bmpm('abram', '', 'gen', 'approx', False), |
4758
|
|
|
'abram abrom avram avrom obram obrom ovram ovrom' + |
4759
|
|
|
' Ybram Ybrom abran abron obran obron') |
4760
|
|
|
self.assertEqual(bmpm('Bendzin', '', 'gen', 'approx', False), |
4761
|
|
|
'binzn bindzn vindzn bintsn vintsn') |
4762
|
|
|
self.assertEqual(bmpm('abram', '', 'ash', 'approx', False), |
4763
|
|
|
'abram abrom avram avrom obram obrom ovram ovrom' + |
4764
|
|
|
' Ybram Ybrom ombram ombrom imbram imbrom') |
4765
|
|
|
self.assertEqual(bmpm('Halpern', '', 'ash', 'approx', False), |
4766
|
|
|
'alpirn alpYrn olpirn olpYrn Ylpirn YlpYrn xalpirn' + |
4767
|
|
|
' xolpirn') |
4768
|
|
|
|
4769
|
|
|
# PhoneticEngineTest |
4770
|
|
|
self.assertEqual(bmpm('Renault', '', 'gen', 'approx', True), |
4771
|
|
|
'rinolt rino rinDlt rinalt rinult rinD rina rinu') |
4772
|
|
|
self.assertEqual(bmpm('Renault', '', 'ash', 'approx', True), |
4773
|
|
|
'rinDlt rinalt rinult rYnDlt rYnalt rYnult rinolt') |
4774
|
|
|
self.assertEqual(bmpm('Renault', '', 'sep', 'approx', True), |
4775
|
|
|
'rinDlt') |
4776
|
|
|
self.assertEqual(bmpm('SntJohn-Smith', '', 'gen', 'exact', True), |
4777
|
|
|
'sntjonsmit') |
4778
|
|
|
self.assertEqual(bmpm('d\'ortley', '', 'gen', 'exact', True), |
4779
|
|
|
'ortlaj ortlej dortlaj dortlej') |
4780
|
|
|
self.assertEqual(bmpm('van helsing', '', 'gen', 'exact', False), |
4781
|
|
|
'helSink helsink helzink xelsink elSink elsink' + |
4782
|
|
|
' vanhelsink vanhelzink vanjelsink fanhelsink' + |
4783
|
|
|
' fanhelzink banhelsink') |
4784
|
|
|
|
4785
|
|
|
def test_bmpm_misc(self): |
4786
|
|
|
"""Test abydos.phonetic.bmpm (miscellaneous tests). |
4787
|
|
|
|
4788
|
|
|
The purpose of this test set is to achieve higher code coverage |
4789
|
|
|
and to hit some of the test cases noted in the BMPM reference code. |
4790
|
|
|
""" |
4791
|
|
|
# test of Ashkenazi with discardable prefix |
4792
|
|
|
self.assertEqual(bmpm('bar Hayim', name_mode='ash'), 'Dm xDm') |
4793
|
|
|
|
4794
|
|
|
# tests of concat behavior |
4795
|
|
|
self.assertEqual(bmpm('Rodham Clinton', concat=False), |
4796
|
|
|
'rodam rodom rYdam rYdom rodan rodon rodxam rodxom' + |
4797
|
|
|
' rodxan rodxon rudam rudom klinton klnton klintun' + |
4798
|
|
|
' klntun tzlinton tzlnton tzlintun tzlntun zlinton' + |
4799
|
|
|
' zlnton') |
4800
|
|
|
self.assertEqual(bmpm('Rodham Clinton', concat=True), |
4801
|
|
|
'rodamklinton rodomklinton rodamklnton rodomklnton' + |
4802
|
|
|
' rodamklintun rodomklintun rodamklntun rodomklntun' + |
4803
|
|
|
' rodamtzlinton rodomtzlinton rodamtzlnton' + |
4804
|
|
|
' rodomtzlnton rodamtzlintun rodomtzlintun' + |
4805
|
|
|
' rodamtzlntun rodomtzlntun rodamzlinton' + |
4806
|
|
|
' rodomzlinton rodamzlnton rodomzlnton rodanklinton' + |
4807
|
|
|
' rodonklinton rodanklnton rodonklnton' + |
4808
|
|
|
' rodxamklinton rodxomklinton rodxamklnton' + |
4809
|
|
|
' rodxomklnton rodxanklinton rodxonklinton' + |
4810
|
|
|
' rodxanklnton rodxonklnton rudamklinton' + |
4811
|
|
|
' rudomklinton rudamklnton rudomklnton rudamklintun' + |
4812
|
|
|
' rudomklintun rudamklntun rudomklntun' + |
4813
|
|
|
' rudamtzlinton rudomtzlinton rudamtzlnton' + |
4814
|
|
|
' rudomtzlnton rudamtzlintun rudomtzlintun' + |
4815
|
|
|
' rudamtzlntun rudomtzlntun') |
4816
|
|
|
|
4817
|
|
|
# tests of name_mode values |
4818
|
|
|
self.assertEqual(bmpm('bar Hayim', name_mode='ash'), 'Dm xDm') |
4819
|
|
|
self.assertEqual(bmpm('bar Hayim', name_mode='ashkenazi'), 'Dm xDm') |
4820
|
|
|
self.assertEqual(bmpm('bar Hayim', name_mode='Ashkenazi'), 'Dm xDm') |
4821
|
|
|
self.assertEqual(bmpm('bar Hayim', name_mode='gen', concat=True), |
4822
|
|
|
'barDm borDm bYrDm varDm vorDm barDn borDn barxDm' + |
4823
|
|
|
' borxDm varxDm vorxDm barxDn borxDn') |
4824
|
|
|
self.assertEqual(bmpm('bar Hayim', name_mode='general', concat=True), |
4825
|
|
|
'barDm borDm bYrDm varDm vorDm barDn borDn barxDm' + |
4826
|
|
|
' borxDm varxDm vorxDm barxDn borxDn') |
4827
|
|
|
self.assertEqual(bmpm('bar Hayim', name_mode='Mizrahi', concat=True), |
4828
|
|
|
'barDm borDm bYrDm varDm vorDm barDn borDn barxDm' + |
4829
|
|
|
' borxDm varxDm vorxDm barxDn borxDn') |
4830
|
|
|
self.assertEqual(bmpm('bar Hayim', name_mode='mizrahi', concat=True), |
4831
|
|
|
'barDm borDm bYrDm varDm vorDm barDn borDn barxDm' + |
4832
|
|
|
' borxDm varxDm vorxDm barxDn borxDn') |
4833
|
|
|
self.assertEqual(bmpm('bar Hayim', name_mode='miz', concat=True), |
4834
|
|
|
'barDm borDm bYrDm varDm vorDm barDn borDn barxDm' + |
4835
|
|
|
' borxDm varxDm vorxDm barxDn borxDn') |
4836
|
|
|
|
4837
|
|
|
# test that out-of-range langauge_arg results in L_ANY |
4838
|
|
|
self.assertEqual(bmpm('Rodham Clinton', language_arg=2**32), |
4839
|
|
|
'rodam rodom rYdam rYdom rodan rodon rodxam rodxom' + |
4840
|
|
|
' rodxan rodxon rudam rudom klinton klnton klintun' + |
4841
|
|
|
' klntun tzlinton tzlnton tzlintun tzlntun zlinton' + |
4842
|
|
|
' zlnton') |
4843
|
|
|
self.assertEqual(bmpm('Rodham Clinton', language_arg=-4), |
4844
|
|
|
'rodam rodom rYdam rYdom rodan rodon rodxam rodxom' + |
4845
|
|
|
' rodxan rodxon rudam rudom klinton klnton klintun' + |
4846
|
|
|
' klntun tzlinton tzlnton tzlintun tzlntun zlinton' + |
4847
|
|
|
' zlnton') |
4848
|
|
|
|
4849
|
|
|
# etc. (for code coverage) |
4850
|
|
|
self.assertEqual(bmpm('van Damme', name_mode='sep'), 'dami mi dam m') |
4851
|
|
|
|
4852
|
|
View Code Duplication |
def test_bmpm_nachnamen(self): |
|
|
|
|
4853
|
|
|
"""Test abydos.phonetic.bmpm (Nachnamen set).""" |
4854
|
|
|
if not ALLOW_RANDOM: |
4855
|
|
|
return |
4856
|
|
|
with codecs.open(TESTDIR + '/corpora/nachnamen.bm.csv', |
4857
|
|
|
encoding='utf-8') as nachnamen_testset: |
4858
|
|
|
next(nachnamen_testset) |
4859
|
|
|
for nn_line in nachnamen_testset: |
4860
|
|
|
nn_line = nn_line.strip().split(',') |
4861
|
|
|
# This test set is very large (~10000 entries) |
4862
|
|
|
# so let's just randomly select about 20 for testing |
4863
|
|
|
if nn_line[0] != '#' and one_in(500): |
4864
|
|
|
self.assertEqual(bmpm(nn_line[0], language_arg='german'), |
4865
|
|
|
nn_line[1]) |
4866
|
|
|
self.assertEqual(bmpm(nn_line[0]), nn_line[2]) |
4867
|
|
|
|
4868
|
|
View Code Duplication |
def test_bmpm_nachnamen_cc(self): |
|
|
|
|
4869
|
|
|
"""Test abydos.phonetic.bmpm (Nachnamen set, corner cases).""" |
4870
|
|
|
with codecs.open(TESTDIR + '/corpora/nachnamen.bm.cc.csv', |
4871
|
|
|
encoding='utf-8') as nachnamen_testset: |
4872
|
|
|
next(nachnamen_testset) |
4873
|
|
|
for nn_line in nachnamen_testset: |
4874
|
|
|
nn_line = nn_line.strip().split(',') |
4875
|
|
|
# This test set is very large (~10000 entries) |
4876
|
|
|
# so let's just randomly select about 20 for testing |
4877
|
|
|
if nn_line[0] != '#': |
4878
|
|
|
self.assertEqual(bmpm(nn_line[0], language_arg='german'), |
4879
|
|
|
nn_line[1]) |
4880
|
|
|
self.assertEqual(bmpm(nn_line[0]), nn_line[2]) |
4881
|
|
|
|
4882
|
|
View Code Duplication |
def test_bmpm_uscensus2000(self): |
|
|
|
|
4883
|
|
|
"""Test abydos.phonetic.bmpm (US Census 2000 set).""" |
4884
|
|
|
if not ALLOW_RANDOM: |
4885
|
|
|
return |
4886
|
|
|
with open(TESTDIR + '/corpora/uscensus2000.bm.csv') as uscensus_ts: |
4887
|
|
|
next(uscensus_ts) |
4888
|
|
|
for cen_line in uscensus_ts: |
4889
|
|
|
cen_line = cen_line.strip().split(',') |
4890
|
|
|
# This test set is very large (~150000 entries) |
4891
|
|
|
# so let's just randomly select about 20 for testing |
4892
|
|
|
if cen_line[0] != '#' and one_in(7500): |
4893
|
|
|
self.assertEqual(bmpm(cen_line[0], match_mode='approx', |
4894
|
|
|
name_mode='gen'), cen_line[1]) |
4895
|
|
|
self.assertEqual(bmpm(cen_line[0], match_mode='approx', |
4896
|
|
|
name_mode='ash'), cen_line[2]) |
4897
|
|
|
self.assertEqual(bmpm(cen_line[0], match_mode='approx', |
4898
|
|
|
name_mode='sep'), cen_line[3]) |
4899
|
|
|
self.assertEqual(bmpm(cen_line[0], match_mode='exact', |
4900
|
|
|
name_mode='gen'), cen_line[4]) |
4901
|
|
|
self.assertEqual(bmpm(cen_line[0], match_mode='exact', |
4902
|
|
|
name_mode='ash'), cen_line[5]) |
4903
|
|
|
self.assertEqual(bmpm(cen_line[0], match_mode='exact', |
4904
|
|
|
name_mode='sep'), cen_line[6]) |
4905
|
|
|
|
4906
|
|
View Code Duplication |
def test_bmpm_uscensus2000_cc(self): |
|
|
|
|
4907
|
|
|
"""Test abydos.phonetic.bmpm (US Census 2000 set, corner cases).""" |
4908
|
|
|
with open(TESTDIR + '/corpora/uscensus2000.bm.cc.csv') as uscensus_ts: |
4909
|
|
|
next(uscensus_ts) |
4910
|
|
|
for cen_line in uscensus_ts: |
4911
|
|
|
cen_line = cen_line.strip().split(',') |
4912
|
|
|
# This test set is very large (~150000 entries) |
4913
|
|
|
# so let's just randomly select about 20 for testing |
4914
|
|
|
if cen_line[0] != '#' and one_in(10): |
4915
|
|
|
self.assertEqual(bmpm(cen_line[0], match_mode='approx', |
4916
|
|
|
name_mode='gen'), cen_line[1]) |
4917
|
|
|
self.assertEqual(bmpm(cen_line[0], match_mode='approx', |
4918
|
|
|
name_mode='ash'), cen_line[2]) |
4919
|
|
|
self.assertEqual(bmpm(cen_line[0], match_mode='approx', |
4920
|
|
|
name_mode='sep'), cen_line[3]) |
4921
|
|
|
self.assertEqual(bmpm(cen_line[0], match_mode='exact', |
4922
|
|
|
name_mode='gen'), cen_line[4]) |
4923
|
|
|
self.assertEqual(bmpm(cen_line[0], match_mode='exact', |
4924
|
|
|
name_mode='ash'), cen_line[5]) |
4925
|
|
|
self.assertEqual(bmpm(cen_line[0], match_mode='exact', |
4926
|
|
|
name_mode='sep'), cen_line[6]) |
4927
|
|
|
|
4928
|
|
|
def test_bm_phonetic_number(self): |
4929
|
|
|
"""Test abydos.bm._bm_phonetic_number.""" |
4930
|
|
|
self.assertEqual(_bm_phonetic_number(''), '') |
4931
|
|
|
self.assertEqual(_bm_phonetic_number('abcd'), 'abcd') |
4932
|
|
|
self.assertEqual(_bm_phonetic_number('abcd[123]'), 'abcd') |
4933
|
|
|
self.assertEqual(_bm_phonetic_number('abcd[123'), 'abcd') |
4934
|
|
|
self.assertEqual(_bm_phonetic_number('abcd['), 'abcd') |
4935
|
|
|
self.assertEqual(_bm_phonetic_number('abcd[[[123]]]'), 'abcd') |
4936
|
|
|
|
4937
|
|
|
def test_bm_apply_rule_if_compat(self): |
4938
|
|
|
"""Test abydos.bm._bm_apply_rule_if_compat.""" |
4939
|
|
|
self.assertEqual(_bm_apply_rule_if_compat('abc', 'def', 4), 'abcdef') |
4940
|
|
|
self.assertEqual(_bm_apply_rule_if_compat('abc', 'def[6]', 4), |
4941
|
|
|
'abcdef[4]') |
4942
|
|
|
self.assertEqual(_bm_apply_rule_if_compat('abc', 'def[4]', 4), |
4943
|
|
|
'abcdef[4]') |
4944
|
|
|
self.assertEqual(_bm_apply_rule_if_compat('abc', 'def[0]', 4), None) |
4945
|
|
|
self.assertEqual(_bm_apply_rule_if_compat('abc', 'def[8]', 4), None) |
4946
|
|
|
self.assertEqual(_bm_apply_rule_if_compat('abc', 'def', 1), 'abcdef') |
4947
|
|
|
self.assertEqual(_bm_apply_rule_if_compat('abc', 'def[4]', 1), |
4948
|
|
|
'abcdef[4]') |
4949
|
|
|
|
4950
|
|
|
def test_bm_language(self): |
4951
|
|
|
"""Test abydos.bm._bm_language. |
4952
|
|
|
|
4953
|
|
|
Most test cases from: |
4954
|
|
|
http://svn.apache.org/viewvc/commons/proper/codec/trunk/src/test/java/org/apache/commons/codec/language/bm/LanguageGuessingTest.java?view=markup |
4955
|
|
|
""" |
4956
|
|
|
self.assertEqual(_bm_language('Renault', 'gen'), L_FRENCH) |
4957
|
|
|
self.assertEqual(_bm_language('Mickiewicz', 'gen'), L_POLISH) |
4958
|
|
|
self.assertEqual(_bm_language('Thompson', 'gen') & L_ENGLISH, |
4959
|
|
|
L_ENGLISH) |
4960
|
|
|
self.assertEqual(_bm_language('Nuñez', 'gen'), L_SPANISH) |
4961
|
|
|
self.assertEqual(_bm_language('Carvalho', 'gen'), L_PORTUGUESE) |
4962
|
|
|
self.assertEqual(_bm_language('Čapek', 'gen'), L_CZECH | L_LATVIAN) |
4963
|
|
|
self.assertEqual(_bm_language('Sjneijder', 'gen'), L_DUTCH) |
4964
|
|
|
self.assertEqual(_bm_language('Klausewitz', 'gen'), L_GERMAN) |
4965
|
|
|
self.assertEqual(_bm_language('Küçük', 'gen'), L_TURKISH) |
4966
|
|
|
self.assertEqual(_bm_language('Giacometti', 'gen'), L_ITALIAN) |
4967
|
|
|
self.assertEqual(_bm_language('Nagy', 'gen'), L_HUNGARIAN) |
4968
|
|
|
self.assertEqual(_bm_language('Ceauşescu', 'gen'), L_ROMANIAN) |
4969
|
|
|
self.assertEqual(_bm_language('Angelopoulos', 'gen'), L_GREEKLATIN) |
4970
|
|
|
self.assertEqual(_bm_language('Αγγελόπουλος', 'gen'), L_GREEK) |
4971
|
|
|
self.assertEqual(_bm_language('Пушкин', 'gen'), L_CYRILLIC) |
4972
|
|
|
self.assertEqual(_bm_language('כהן', 'gen'), L_HEBREW) |
4973
|
|
|
self.assertEqual(_bm_language('ácz', 'gen'), L_ANY) |
4974
|
|
|
self.assertEqual(_bm_language('átz', 'gen'), L_ANY) |
4975
|
|
|
|
4976
|
|
|
def test_bm_expand_alternates(self): |
4977
|
|
|
"""Test abydos.bm._bm_expand_alternates.""" |
4978
|
|
|
self.assertEqual(_bm_expand_alternates(''), '') |
4979
|
|
|
self.assertEqual(_bm_expand_alternates('aa'), 'aa') |
4980
|
|
|
self.assertEqual(_bm_expand_alternates('aa|bb'), 'aa|bb') |
4981
|
|
|
self.assertEqual(_bm_expand_alternates('aa|aa'), 'aa|aa') |
4982
|
|
|
|
4983
|
|
|
self.assertEqual(_bm_expand_alternates('(aa)(bb)'), 'aabb') |
4984
|
|
|
self.assertEqual(_bm_expand_alternates('(aa)(bb[0])'), '') |
4985
|
|
|
self.assertEqual(_bm_expand_alternates('(aa)(bb[4])'), 'aabb[4]') |
4986
|
|
|
self.assertEqual(_bm_expand_alternates('(aa[0])(bb)'), '') |
4987
|
|
|
self.assertEqual(_bm_expand_alternates('(aa[4])(bb)'), 'aabb[4]') |
4988
|
|
|
|
4989
|
|
|
self.assertEqual(_bm_expand_alternates('(a|b|c)(a|b|c)'), |
4990
|
|
|
'aa|ab|ac|ba|bb|bc|ca|cb|cc') |
4991
|
|
|
self.assertEqual(_bm_expand_alternates('(a[1]|b[2])(c|d)'), |
4992
|
|
|
'ac[1]|ad[1]|bc[2]|bd[2]') |
4993
|
|
|
self.assertEqual(_bm_expand_alternates('(a[1]|b[2])(c[4]|d)'), |
4994
|
|
|
'ad[1]|bd[2]') |
4995
|
|
|
|
4996
|
|
|
def test_bm_remove_dupes(self): |
4997
|
|
|
"""Test abydos.bm._bm_remove_dupes.""" |
4998
|
|
|
self.assertEqual(_bm_remove_dupes(''), '') |
4999
|
|
|
self.assertEqual(_bm_remove_dupes('aa'), 'aa') |
5000
|
|
|
self.assertEqual(_bm_remove_dupes('aa|bb'), 'aa|bb') |
5001
|
|
|
self.assertEqual(_bm_remove_dupes('aa|aa'), 'aa') |
5002
|
|
|
self.assertEqual(_bm_remove_dupes('aa|aa|aa|bb|aa'), 'aa|bb') |
5003
|
|
|
self.assertEqual(_bm_remove_dupes('bb|aa|bb|aa|bb'), 'bb|aa') |
5004
|
|
|
|
5005
|
|
|
def test_bm_normalize_lang_attrs(self): |
5006
|
|
|
"""Test abydos.bm._bm_normalize_language_attributes.""" |
5007
|
|
|
self.assertEqual(_bm_normalize_lang_attrs('', False), '') |
5008
|
|
|
self.assertEqual(_bm_normalize_lang_attrs('', True), '') |
5009
|
|
|
|
5010
|
|
|
self.assertRaises(ValueError, _bm_normalize_lang_attrs, 'a[1', False) |
5011
|
|
|
self.assertRaises(ValueError, _bm_normalize_lang_attrs, 'a[1', True) |
5012
|
|
|
|
5013
|
|
|
self.assertEqual(_bm_normalize_lang_attrs('abc', False), 'abc') |
5014
|
|
|
self.assertEqual(_bm_normalize_lang_attrs('abc[0]', False), '[0]') |
5015
|
|
|
self.assertEqual(_bm_normalize_lang_attrs('abc[2]', False), 'abc[2]') |
5016
|
|
|
self.assertEqual(_bm_normalize_lang_attrs('abc[2][4]', False), '[0]') |
5017
|
|
|
self.assertEqual(_bm_normalize_lang_attrs('abc[2][6]', False), |
5018
|
|
|
'abc[2]') |
5019
|
|
|
self.assertEqual(_bm_normalize_lang_attrs('ab[2]c[4]', False), '[0]') |
5020
|
|
|
self.assertEqual(_bm_normalize_lang_attrs('ab[2]c[6]', False), |
5021
|
|
|
'abc[2]') |
5022
|
|
|
|
5023
|
|
|
self.assertEqual(_bm_normalize_lang_attrs('abc', True), 'abc') |
5024
|
|
|
self.assertEqual(_bm_normalize_lang_attrs('abc[0]', True), 'abc') |
5025
|
|
|
self.assertEqual(_bm_normalize_lang_attrs('abc[2]', True), 'abc') |
5026
|
|
|
self.assertEqual(_bm_normalize_lang_attrs('abc[2][4]', True), 'abc') |
5027
|
|
|
self.assertEqual(_bm_normalize_lang_attrs('abc[2][6]', True), 'abc') |
5028
|
|
|
self.assertEqual(_bm_normalize_lang_attrs('ab[2]c[4]', True), 'abc') |
5029
|
|
|
self.assertEqual(_bm_normalize_lang_attrs('ab[2]c[6]', True), 'abc') |
5030
|
|
|
|
5031
|
|
|
|
5032
|
|
|
if __name__ == '__main__': |
5033
|
|
|
unittest.main() |
5034
|
|
|
|