Conditions | 2 |
Total Lines | 134 |
Code Lines | 127 |
Lines | 0 |
Ratio | 0 % |
Changes | 0 |
Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.
For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.
Commonly applied refactorings include:
If many parameters/temporary variables are present:
1 | # -*- coding: utf-8 -*- |
||
37 | def test_fonem(self): |
||
38 | """Test abydos.phonetic.fonem.""" |
||
39 | # Base cases |
||
40 | self.assertEqual(fonem(''), '') |
||
41 | |||
42 | # Test cases, mostly from the FONEM specification, |
||
43 | # but copied from Talisman: |
||
44 | # https://github.com/Yomguithereal/talisman/blob/master/test/phonetics/french/fonem.js |
||
45 | test_cases = ( |
||
46 | ('BEAULAC', 'BOLAK'), |
||
47 | ('BAULAC', 'BOLAK'), |
||
48 | ('IMBEAULT', 'INBO'), |
||
49 | ('DUFAUT', 'DUFO'), |
||
50 | ('THIBOUTOT', 'TIBOUTOT'), |
||
51 | ('DEVAUX', 'DEVO'), |
||
52 | ('RONDEAUX', 'RONDO'), |
||
53 | ('BOURGAULX', 'BOURGO'), |
||
54 | ('PINCHAUD', 'PINCHO'), |
||
55 | ('PEDNAULD', 'PEDNO'), |
||
56 | ('MAZENOD', 'MASENOD'), |
||
57 | ('ARNOLD', 'ARNOL'), |
||
58 | ('BERTOLD', 'BERTOL'), |
||
59 | ('BELLAY', 'BELE'), |
||
60 | ('SANDAY', 'SENDE'), |
||
61 | ('GAY', 'GAI'), |
||
62 | ('FAYARD', 'FAYAR'), |
||
63 | ('LEMIEUX', 'LEMIEU'), |
||
64 | ('LHEUREUX', 'LEUREU'), |
||
65 | ('BELLEY', 'BELE'), |
||
66 | ('WELLEY', 'WELE'), |
||
67 | ('MEYER', 'MEYER'), |
||
68 | ('BOILY', 'BOILI'), |
||
69 | ('LOYSEAU', 'LOISO'), |
||
70 | ('MAYRAND', 'MAIREN'), |
||
71 | ('GUYON', 'GUYON'), |
||
72 | ('FAILLARD', 'FAYAR'), |
||
73 | ('FAIARD', 'FAYAR'), |
||
74 | ('MEIER', 'MEYER'), |
||
75 | ('MEILLER', 'MEYER'), |
||
76 | ('GUILLON', 'GUYON'), |
||
77 | ('LAVILLE', 'LAVILLE'), |
||
78 | ('COUET', 'CWET'), |
||
79 | ('EDOUARD', 'EDWAR'), |
||
80 | ('GIROUARD', 'JIRWAR'), |
||
81 | ('OZOUADE', 'OSWADE'), # differs from test set |
||
82 | ('BOUILLE', 'BOUYE'), |
||
83 | ('POUYEZ', 'POUYES'), # differs from test set |
||
84 | ('LEMEE', 'LEME'), |
||
85 | ('ABRAAM', 'ABRAM'), |
||
86 | ('ARCHEMBAULT', 'ARCHENBO'), |
||
87 | ('AMTHIME', 'ENTIME'), |
||
88 | ('ROMPRE', 'RONPRE'), |
||
89 | ('BOMSECOURS', 'BONSECOURS'), |
||
90 | ('BOULANGER', 'BOULENJER'), |
||
91 | ('TANCREDE', 'TENKREDE'), |
||
92 | ('BLAIN', 'BLIN'), |
||
93 | ('BLAINVILLE', 'BLINVILLE'), |
||
94 | ('MAINARD', 'MAINAR'), |
||
95 | ('RAIMOND', 'RAIMON'), |
||
96 | ('BLACKBORN', 'BLAKBURN'), |
||
97 | ('SEABOURNE', 'SEABURN'), |
||
98 | ('IMBO', 'INBO'), |
||
99 | ('RIMFRET', 'RINFRET'), |
||
100 | ('LEFEBVRE', 'LEFEVRE'), |
||
101 | ('MACE', 'MASSE'), |
||
102 | ('MACON', 'MACON'), |
||
103 | ('MARCELIN', 'MARSELIN'), |
||
104 | ('MARCEAU', 'MARSO'), |
||
105 | ('VINCELETTE', 'VINSELETE'), |
||
106 | ('FORCADE', 'FORCADE'), |
||
107 | ('CELINE', 'SELINE'), |
||
108 | ('CERAPHIN', 'SERAFIN'), |
||
109 | ('CAMILLE', 'KAMILLE'), |
||
110 | ('CAYETTE', 'KAYETE'), |
||
111 | ('CARINE', 'KARINE'), |
||
112 | ('LUC', 'LUK'), |
||
113 | ('LEBLANC', 'LEBLEN'), |
||
114 | ('VICTOR', 'VIKTOR'), |
||
115 | ('LACCOULINE', 'LAKOULINE'), |
||
116 | ('MACCIMILIEN', 'MAXIMILIEN'), |
||
117 | ('MAGELLA', 'MAJELA'), |
||
118 | ('GINETTE', 'JINETE'), |
||
119 | ('GANDET', 'GANDET'), |
||
120 | ('GEORGES', 'JORJES'), |
||
121 | ('GEOFFROID', 'JOFROID'), |
||
122 | ('PAGEAU', 'PAJO'), |
||
123 | ('GAGNION', 'GAGNON'), |
||
124 | ('MIGNIER', 'MIGNER'), |
||
125 | ('HALLEY', 'ALE'), |
||
126 | ('GAUTHIER', 'GOTIER'), |
||
127 | ('CHARTIER', 'CHARTIER'), |
||
128 | ('JEANNE', 'JANE'), |
||
129 | ('MACGREGOR', 'MACGREGOR'), |
||
130 | ('MACKAY', 'MACKE'), |
||
131 | ('MCNICOL', 'MACNICOL'), |
||
132 | ('MCNEIL', 'MACNEIL'), |
||
133 | ('PHANEUF', 'FANEUF'), |
||
134 | ('PHILIPPE', 'FILIPE'), |
||
135 | ('QUENNEVILLE', 'KENEVILLE'), |
||
136 | ('LAROCQUE', 'LAROKE'), |
||
137 | ('SCIPION', 'SIPION'), |
||
138 | ('ASCELIN', 'ASSELIN'), |
||
139 | ('VASCO', 'VASKO'), |
||
140 | ('PASCALINE', 'PASKALINE'), |
||
141 | ('ESHEMBACK', 'ECHENBAK'), |
||
142 | ('ASHED', 'ACHED'), |
||
143 | ('GRATIA', 'GRASSIA'), |
||
144 | ('PATRITIA', 'PATRISSIA'), |
||
145 | ('BERTIO', 'BERTIO'), |
||
146 | ('MATIEU', 'MATIEU'), |
||
147 | ('BERTIAUME', 'BERTIOME'), |
||
148 | ('MUNROW', 'MUNRO'), |
||
149 | ('BRANISLAW', 'BRANISLA'), |
||
150 | ('LOWMEN', 'LOMEN'), |
||
151 | ('ANDREW', 'ENDREW'), |
||
152 | ('EXCEL', 'EXEL'), |
||
153 | ('EXCERINE', 'EXERINE'), |
||
154 | ('EXSILDA', 'EXILDA'), |
||
155 | ('EXZELDA', 'EXELDA'), |
||
156 | ('CAZEAU', 'KASO'), |
||
157 | ('BRAZEAU', 'BRASO'), |
||
158 | ('FITZPATRICK', 'FITSPATRIK'), |
||
159 | ('SINGELAIS', 'ST-JELAIS'), |
||
160 | ('CINQMARS', 'ST-MARS'), |
||
161 | ('SAINT-AMAND', 'ST-AMEN'), |
||
162 | ('SAINTECROIX', 'STE-KROIX'), |
||
163 | ('ST-HILAIRE', 'ST-ILAIRE'), |
||
164 | ('STE-CROIX', 'STE-KROIX'), |
||
165 | ('LAVALLEE', 'LAVALE'), |
||
166 | ('CORINNE', 'KORINE'), |
||
167 | ('DUTILE', 'DUTILLE') |
||
168 | ) |
||
169 | for name, encoding in test_cases: |
||
170 | self.assertEqual(fonem(name), encoding) |
||
171 | |||
246 |