Completed
Branch master (87ccc1)
by Chris
10:18
created

tests.phonetic.test_phonetic_roger_root   A

Complexity

Total Complexity 1

Size/Duplication

Total Lines 145
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 101
dl 0
loc 145
rs 10
c 0
b 0
f 0
wmc 1
1
# -*- coding: utf-8 -*-
2
3
# Copyright 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_roger_root.
20
21
This module contains unit tests for abydos.phonetic.roger_root
22
"""
23
24
from __future__ import unicode_literals
25
26
import unittest
27
28
from abydos.phonetic.roger_root import roger_root
29
30
31
class RogerRootTestCases(unittest.TestCase):
32
    """Test Roger Root functions.
33
34
    test cases for abydos.phonetic.roger_root
35
    """
36
37
    def test_roger_root(self):
38
        """Test abydos.phonetic.roger_root."""
39
        self.assertEqual(roger_root(''), '00000')
40
41
        # https://naldc.nal.usda.gov/download/27833/PDF
42
        self.assertEqual(roger_root('BROWNER'), '09424')
43
        self.assertEqual(roger_root('STANLEY'), '00125')
44
        self.assertEqual(roger_root('CHALMAN'), '06532')
45
        self.assertEqual(roger_root('CHING'), '06270')
46
        self.assertEqual(roger_root('ANDERSON'), '12140')
47
        self.assertEqual(roger_root('OVERSTREET'), '18401')
48
        self.assertEqual(roger_root('HECKEL'), '27500')
49
        self.assertEqual(roger_root('WYSZYNSKI'), '40207')
50
        self.assertEqual(roger_root('WHITTED'), '41100')
51
        self.assertEqual(roger_root('ONGOQO'), '12770')  # PDF had a typo?
52
        self.assertEqual(roger_root('JOHNSON'), '32020')
53
        self.assertEqual(roger_root('WILLIAMS'), '45300')
54
        self.assertEqual(roger_root('SMITH'), '00310')
55
        self.assertEqual(roger_root('JONES'), '32000')
56
        self.assertEqual(roger_root('BROWN'), '09420')
57
        self.assertEqual(roger_root('DAVIS'), '01800')
58
        self.assertEqual(roger_root('JACKSON'), '37020')
59
        self.assertEqual(roger_root('WILSON'), '45020')
60
        self.assertEqual(roger_root('LEE'), '05000')
61
        self.assertEqual(roger_root('THOMAS'), '01300')
62
63
        self.assertEqual(roger_root('Defouw'), '01800')
64
        self.assertEqual(roger_root('Dauphi'), '01800')
65
        self.assertEqual(roger_root('Defazio'), '01800')
66
        self.assertEqual(roger_root('Defay'), '01800')
67
        self.assertEqual(roger_root('Davy'), '01800')
68
        self.assertEqual(roger_root('Defee'), '01800')
69
        self.assertEqual(roger_root('Dayhoff'), '01800')
70
        self.assertEqual(roger_root('Davie'), '01800')
71
        self.assertEqual(roger_root('Davey'), '01800')
72
        self.assertEqual(roger_root('Davies'), '01800')
73
        self.assertEqual(roger_root('Daves'), '01800')
74
        self.assertEqual(roger_root('Deife'), '01800')
75
        self.assertEqual(roger_root('Dehoff'), '01800')
76
        self.assertEqual(roger_root('Devese'), '01800')
77
        self.assertEqual(roger_root('Devoe'), '01800')
78
        self.assertEqual(roger_root('Devee'), '01800')
79
        self.assertEqual(roger_root('Devies'), '01800')
80
        self.assertEqual(roger_root('Devos'), '01800')
81
        self.assertEqual(roger_root('Dafoe'), '01800')
82
        self.assertEqual(roger_root('Dove'), '01800')
83
        self.assertEqual(roger_root('Duff'), '01800')
84
        self.assertEqual(roger_root('Duffey'), '01800')
85
        self.assertEqual(roger_root('Duffie'), '01800')
86
        self.assertEqual(roger_root('Duffy'), '01800')
87
        self.assertEqual(roger_root('Duyava'), '01800')
88
        self.assertEqual(roger_root('Tafoya'), '01800')
89
        self.assertEqual(roger_root('Tevis'), '01800')
90
        self.assertEqual(roger_root('Tiffee'), '01800')
91
        self.assertEqual(roger_root('Tivis'), '01800')
92
        self.assertEqual(roger_root('Thevis'), '01800')
93
        self.assertEqual(roger_root('Tovey'), '01800')
94
        self.assertEqual(roger_root('Toeves'), '01800')
95
        self.assertEqual(roger_root('Tuffs'), '01800')
96
97
        self.assertEqual(roger_root('Samotid'), '00311')
98
        self.assertEqual(roger_root('Simmet'), '00310')
99
        self.assertEqual(roger_root('Simot'), '00310')
100
        self.assertEqual(roger_root('Smead'), '00310')
101
        self.assertEqual(roger_root('Smeda'), '00310')
102
        self.assertEqual(roger_root('Smit'), '00310')
103
        self.assertEqual(roger_root('Smite'), '00310')
104
        self.assertEqual(roger_root('Smithe'), '00310')
105
        self.assertEqual(roger_root('Smithey'), '00310')
106
        self.assertEqual(roger_root('Smithson'), '00310')
107
        self.assertEqual(roger_root('Smithy'), '00310')
108
        self.assertEqual(roger_root('Smoot'), '00310')
109
        self.assertEqual(roger_root('Smyth'), '00310')
110
        self.assertEqual(roger_root('Szmodis'), '00310')
111
        self.assertEqual(roger_root('Zemaitis'), '00310')
112
        self.assertEqual(roger_root('Zmuda'), '00310')
113
114
        # Additional tests from @Yomguithereal's talisman
115
        # https://github.com/Yomguithereal/talisman/blob/master/test/phonetics/roger-root.js
116
        self.assertEqual(roger_root('Guillaume'), '07530')
117
        self.assertEqual(roger_root('Arlène'), '14520')
118
        self.assertEqual(roger_root('Lüdenscheidt'), '05126')
119
120
        # no zero_pad
121
        self.assertEqual(roger_root('BROWNER', zero_pad=False), '09424')
122
        self.assertEqual(roger_root('STANLEY', zero_pad=False), '00125')
123
        self.assertEqual(roger_root('CHALMAN', zero_pad=False), '06532')
124
        self.assertEqual(roger_root('CHING', zero_pad=False), '0627')
125
        self.assertEqual(roger_root('ANDERSON', zero_pad=False), '12140')
126
        self.assertEqual(roger_root('OVERSTREET, zero_pad=False'), '18401')
127
        self.assertEqual(roger_root('HECKEL', zero_pad=False), '275')
128
        self.assertEqual(roger_root('WYSZYNSKI', zero_pad=False), '40207')
129
        self.assertEqual(roger_root('WHITTED', zero_pad=False), '411')
130
        self.assertEqual(roger_root('ONGOQO', zero_pad=False), '1277')
131
        self.assertEqual(roger_root('JOHNSON', zero_pad=False), '3202')
132
        self.assertEqual(roger_root('WILLIAMS', zero_pad=False), '4530')
133
        self.assertEqual(roger_root('SMITH', zero_pad=False), '0031')
134
        self.assertEqual(roger_root('JONES', zero_pad=False), '320')
135
        self.assertEqual(roger_root('BROWN', zero_pad=False), '0942')
136
        self.assertEqual(roger_root('DAVIS', zero_pad=False), '0180')
137
        self.assertEqual(roger_root('JACKSON', zero_pad=False), '3702')
138
        self.assertEqual(roger_root('WILSON', zero_pad=False), '4502')
139
        self.assertEqual(roger_root('LEE', zero_pad=False), '05')
140
        self.assertEqual(roger_root('THOMAS', zero_pad=False), '0130')
141
142
143
if __name__ == '__main__':
144
    unittest.main()
145