Test Failed
Push — master ( 87774f...87ccc1 )
by Chris
16:19 queued 03:01
created

tests.phonetic.test_phonetic_hybrid   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 111
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 58
dl 0
loc 111
rs 10
c 0
b 0
f 0
wmc 2
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_hybrid.
20
21
This module contains unit tests for abydos.phonetic.hybrid
22
"""
23
24
from __future__ import unicode_literals
25
26
import unittest
27
28
from abydos.phonetic.hybrid import metasoundex, onca
29
30
31
class ONCATestCases(unittest.TestCase):
32
    """Test ONCA functions.
33
34
    test cases for abydos.phonetic.onca
35
    """
36
37
    def test_onca(self):
38
        """Test abydos.phonetic.onca."""
39
        # https://nces.ed.gov/FCSM/pdf/RLT97.pdf
40
        self.assertEqual(onca('HALL'), 'H400')
41
        self.assertEqual(onca('SMITH'), 'S530')
42
43
        # http://nchod.uhce.ox.ac.uk/NCHOD%20Oxford%20E5%20Report%201st%20Feb_VerAM2.pdf
44
        self.assertEqual(onca('HAWTON'), 'H350')
45
        self.assertEqual(onca('HORTON'), 'H635')
46
        self.assertEqual(onca('HOUGHTON'), 'H235')
47
48
49
class MetaSoundexTestCases(unittest.TestCase):
50
    """Test MetaSoundex functions.
51
52
    test cases for abydos.phonetic.metasoundex
53
    """
54
55
    def test_metasoundex(self):
56
        """Test abydos.phonetic.metasoundex."""
57
        # Base cases
58
        self.assertEqual(metasoundex(''), '0000')
59
        self.assertEqual(metasoundex('', lang='en'), '0000')
60
        self.assertEqual(metasoundex('', lang='es'), '')
61
62
        # Top 10 Anglo surnames in US
63
        self.assertEqual(metasoundex('Smith', lang='en'), '4500')
64
        self.assertEqual(metasoundex('Johnson', lang='en'), '1525')
65
        self.assertEqual(metasoundex('Williams', lang='en'), '7452')
66
        self.assertEqual(metasoundex('Brown', lang='en'), '7650')
67
        self.assertEqual(metasoundex('Jones', lang='en'), '1520')
68
        self.assertEqual(metasoundex('Miller', lang='en'), '6460')
69
        self.assertEqual(metasoundex('Davis', lang='en'), '3120')
70
        self.assertEqual(metasoundex('Wilson', lang='en'), '7425')
71
        self.assertEqual(metasoundex('Anderson', lang='en'), '0536')
72
        self.assertEqual(metasoundex('Thomas', lang='en'), '6200')
73
74
        self.assertEqual(metasoundex('Smith', lang='es'), '4632')
75
        self.assertEqual(metasoundex('Johnson', lang='es'), '82646')
76
        self.assertEqual(metasoundex('Williams', lang='es'), '564')
77
        self.assertEqual(metasoundex('Brown', lang='es'), '196')
78
        self.assertEqual(metasoundex('Jones', lang='es'), '864')
79
        self.assertEqual(metasoundex('Miller', lang='es'), '659')
80
        self.assertEqual(metasoundex('Davis', lang='es'), '314')
81
        self.assertEqual(metasoundex('Wilson', lang='es'), '546')
82
        self.assertEqual(metasoundex('Anderson', lang='es'), '63946')
83
        self.assertEqual(metasoundex('Thomas', lang='es'), '364')
84
85
        # Top 10 Mexican surnames
86
        self.assertEqual(metasoundex('Hernández', lang='en'), '5653')
87
        self.assertEqual(metasoundex('García', lang='en'), '5620')
88
        self.assertEqual(metasoundex('Lòpez', lang='en'), '8120')
89
        self.assertEqual(metasoundex('Martìnez', lang='en'), '6635')
90
        self.assertEqual(metasoundex('Rodrìguez', lang='en'), '9362')
91
        self.assertEqual(metasoundex('González', lang='en'), '5524')
92
        self.assertEqual(metasoundex('Pérez', lang='en'), '7620')
93
        self.assertEqual(metasoundex('Sánchez', lang='en'), '4520')
94
        self.assertEqual(metasoundex('Gómez', lang='en'), '5520')
95
        self.assertEqual(metasoundex('Flores', lang='en'), '7462')
96
97
        self.assertEqual(metasoundex('Hernández', lang='es'), '96634')
98
        self.assertEqual(metasoundex('García', lang='es'), '894')
99
        self.assertEqual(metasoundex('Lòpez', lang='es'), '504')
100
        self.assertEqual(metasoundex('Martìnez', lang='es'), '69364')
101
        self.assertEqual(metasoundex('Rodrìguez', lang='es'), '93984')
102
        self.assertEqual(metasoundex('González', lang='es'), '86454')
103
        self.assertEqual(metasoundex('Pérez', lang='es'), '094')
104
        self.assertEqual(metasoundex('Sánchez', lang='es'), '4644')
105
        self.assertEqual(metasoundex('Gómez', lang='es'), '864')
106
        self.assertEqual(metasoundex('Flores', lang='es'), '2594')
107
108
109
if __name__ == '__main__':
110
    unittest.main()
111