| 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 |