phony 2.15.0 → 2.20.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/README.textile +35 -7
- data/lib/phony/config.rb +91 -0
- data/lib/phony/countries/argentina.rb +355 -0
- data/lib/phony/countries/austria.rb +34 -24
- data/lib/phony/countries/bangladesh.rb +2 -0
- data/lib/phony/countries/belarus.rb +2 -0
- data/lib/phony/countries/brazil.rb +6 -4
- data/lib/phony/countries/cambodia.rb +6 -4
- data/lib/phony/countries/china.rb +7 -2
- data/lib/phony/countries/croatia.rb +13 -16
- data/lib/phony/countries/georgia.rb +6 -4
- data/lib/phony/countries/germany.rb +5 -2
- data/lib/phony/countries/guinea.rb +8 -5
- data/lib/phony/countries/india.rb +2 -0
- data/lib/phony/countries/indonesia.rb +8 -3
- data/lib/phony/countries/ireland.rb +27 -23
- data/lib/phony/countries/italy.rb +30 -17
- data/lib/phony/countries/japan.rb +61 -8
- data/lib/phony/countries/kyrgyzstan.rb +2 -0
- data/lib/phony/countries/latvia.rb +2 -0
- data/lib/phony/countries/libya.rb +3 -1
- data/lib/phony/countries/malaysia.rb +22 -2
- data/lib/phony/countries/moldova.rb +2 -0
- data/lib/phony/countries/montenegro.rb +2 -0
- data/lib/phony/countries/myanmar.rb +2 -0
- data/lib/phony/countries/namibia.rb +2 -0
- data/lib/phony/countries/nepal.rb +2 -0
- data/lib/phony/countries/netherlands.rb +5 -1
- data/lib/phony/countries/pakistan.rb +2 -0
- data/lib/phony/countries/paraguay.rb +2 -0
- data/lib/phony/countries/russia_kazakhstan_abkhasia_south_ossetia.rb +24 -14
- data/lib/phony/countries/saudi_arabia.rb +40 -0
- data/lib/phony/countries/serbia.rb +10 -4
- data/lib/phony/countries/somalia.rb +5 -1
- data/lib/phony/countries/south_korea.rb +16 -9
- data/lib/phony/countries/sweden.rb +53 -38
- data/lib/phony/countries/taiwan.rb +22 -46
- data/lib/phony/countries/tajikistan.rb +2 -0
- data/lib/phony/countries/turkmenistan.rb +2 -0
- data/lib/phony/countries/ukraine.rb +5 -2
- data/lib/phony/countries/united_kingdom.rb +5 -2
- data/lib/phony/countries/uruguay.rb +2 -0
- data/lib/phony/countries/vietnam.rb +94 -92
- data/lib/phony/countries/zimbabwe.rb +2 -0
- data/lib/phony/countries.rb +210 -98
- data/lib/phony/country.rb +15 -3
- data/lib/phony/country_codes.rb +17 -4
- data/lib/phony/dsl.rb +5 -3
- data/lib/phony/local_splitters/fixed.rb +2 -0
- data/lib/phony/national_code.rb +1 -1
- data/lib/phony/national_splitters/none.rb +1 -3
- data/lib/phony/trunk_code.rb +5 -4
- data/lib/phony/vanity.rb +1 -1
- data/lib/phony.rb +94 -59
- data/spec/functional/config_spec.rb +44 -0
- data/spec/functional/plausibility_spec.rb +373 -35
- data/spec/lib/phony/countries_spec.rb +295 -63
- data/spec/lib/phony/country_codes_spec.rb +106 -33
- data/spec/lib/phony/country_spec.rb +54 -15
- data/spec/lib/phony/dsl_spec.rb +2 -2
- data/spec/lib/phony/local_splitters/regex_spec.rb +12 -5
- data/spec/lib/phony/national_splitters/default_spec.rb +1 -1
- data/spec/lib/phony/trunk_code_spec.rb +85 -0
- data/spec/lib/phony/vanity_spec.rb +30 -0
- data/spec/lib/phony_spec.rb +70 -0
- metadata +27 -17
@@ -21,30 +21,40 @@ describe 'country descriptions' do
|
|
21
21
|
it_splits '93201234567', ['93', '20', '1234567'] # Kabul
|
22
22
|
end
|
23
23
|
|
24
|
+
describe 'Albania' do
|
25
|
+
it_splits '355691234567', ['355', '69', '123', '4567'] # Mobile 7 digits
|
26
|
+
it_splits '35569123456', ['355', '69', '123', '456'] # Mobile 6 digits
|
27
|
+
it_splits '35541234567', ['355', '4', '123', '4567'] # Tirana
|
28
|
+
end
|
29
|
+
|
24
30
|
describe 'Algeria' do
|
25
31
|
it_splits '213211231234', ['213', '21', '123', '1234'] # Algiers
|
26
32
|
it_splits '213331231234', ['213', '33', '123', '1234'] # Batna
|
27
33
|
end
|
28
34
|
|
29
35
|
describe 'Argentina' do
|
30
|
-
it_splits '541112345678', ['54', '11', '1234', '5678']
|
31
|
-
it_splits '542911234567', ['54', '291', '123', '4567']
|
32
|
-
it_splits '
|
33
|
-
it_splits '5491112345678', ['54', '911', '1234', '5678']
|
34
|
-
it_splits '5492201234567', ['54', '9220', '123', '4567']
|
35
|
-
it_splits '5492221123456', ['54', '92221', '12', '3456']
|
36
|
-
it_splits '548001234567', ['54', '800', '123', '4567']
|
36
|
+
it_splits '541112345678', ['54', '11', '1234', '5678'] # 2-digit area code / landline
|
37
|
+
it_splits '542911234567', ['54', '291', '123', '4567'] # 3-digit area code / landline
|
38
|
+
it_splits '542903123456', ['54', '2903', '12', '3456'] # 4-digit area code / landline
|
39
|
+
it_splits '5491112345678', ['54', '911', '1234', '5678'] # 2-digit area code / international mobile
|
40
|
+
it_splits '5492201234567', ['54', '9220', '123', '4567'] # 3-digit area code / international mobile
|
41
|
+
it_splits '5492221123456', ['54', '92221', '12', '3456'] # 4-digit area code / international mobile
|
42
|
+
it_splits '548001234567', ['54', '800', '123', '4567'] # Non-geographic number
|
37
43
|
end
|
38
44
|
|
39
45
|
describe 'Austria' do
|
40
46
|
it_splits '43198110', %w( 43 1 98110 ) # Vienna
|
41
47
|
it_splits '4310000000', %w( 43 1 0000000 ) # Vienna
|
42
48
|
it_splits '43800123456789', %w( 43 800 123456789 ) # Free
|
49
|
+
it_splits '436780000000', %w( 43 678 0000 000 ) # Mobile
|
43
50
|
it_splits '4368100000000', %w( 43 681 0000 0000 ) # Mobile
|
44
51
|
it_splits '436880000000', %w( 43 688 0000 000 ) # Mobile
|
45
52
|
it_splits '4366900000000', %w( 43 669 0000 0000 ) # Mobile
|
53
|
+
it_splits '4367000000000', %w( 43 670 0000 0000 ) # Mobile
|
54
|
+
it_splits '4369000000000', %w( 43 690 0000 0000 ) # Mobile
|
46
55
|
it_splits '433161234567891', %w( 43 316 1234567891 ) # Graz
|
47
56
|
it_splits '432164123456789', %w( 43 2164 123456789 ) # Rohrau
|
57
|
+
it_splits '43720116987', %w( 43 720 116987 ) # VoIP
|
48
58
|
|
49
59
|
# mobile numbers can have from 7 to 10 digits in the subscriber number
|
50
60
|
it_splits '436641234567', %w( 43 664 1234 567 )
|
@@ -56,6 +66,9 @@ describe 'country descriptions' do
|
|
56
66
|
describe 'Australia' do
|
57
67
|
it_splits '61512341234', ['61', '5', '1234', '1234'] # Landline
|
58
68
|
it_splits '61423123123', ['61', '423', '123', '123'] # Mobile
|
69
|
+
it_splits '61131212', ['61', '13', '12', '12'] # 13 local rate
|
70
|
+
it_splits '611300123123', ['61', '1300', '123', '123'] # 1300 local rate
|
71
|
+
it_splits '611800123123', ['61', '1800', '123', '123'] # 1800 free call
|
59
72
|
end
|
60
73
|
|
61
74
|
describe 'Bahrain' do
|
@@ -90,9 +103,21 @@ describe 'country descriptions' do
|
|
90
103
|
it_splits '3295551914', ['32', '9', '555', '19', '14'] # Gent
|
91
104
|
it_splits '3245551414', ['32', '4', '555', '14', '14'] # Liège
|
92
105
|
it_splits '3216473200', ['32', '16', '47', '32', '00'] # Leuven
|
93
|
-
it_splits '
|
94
|
-
it_splits '
|
106
|
+
it_splits '32455123456', ['32', '455', '12', '34', '56'] # mobile (Voo)
|
107
|
+
it_splits '32456123456', ['32', '456', '12', '34', '56'] # mobile (MobileViking)
|
108
|
+
it_splits '32460123456', ['32', '460', '12', '34', '56'] # mobile (Proximus)
|
109
|
+
it_splits '32465123456', ['32', '465', '12', '34', '56'] # mobile (Lycamobile)
|
110
|
+
it_splits '32466123456', ['32', '466', '12', '34', '56'] # mobile (Vectone)
|
111
|
+
it_splits '32467123456', ['32', '467', '12', '34', '56'] # mobile (Telenet)
|
112
|
+
it_splits '32468123456', ['32', '468', '12', '34', '56'] # mobile (Telenet)
|
113
|
+
it_splits '32469123456', ['32', '469', '12', '34', '56'] # mobile ()
|
114
|
+
it_splits '32475123456', ['32', '475', '12', '34', '56'] # mobile (Proximus)
|
115
|
+
it_splits '32485123456', ['32', '485', '12', '34', '56'] # mobile (Telenet)
|
116
|
+
it_splits '32495123456', ['32', '495', '12', '34', '56'] # mobile (Orange)
|
95
117
|
it_splits '3270123123', ['32', '70', '123', '123'] # Bus Service?
|
118
|
+
it_splits '3278123123', ['32', '78', '123', '123'] # National rate service
|
119
|
+
it_splits '3290123123', ['32', '901', '23', '123'] # National rate service
|
120
|
+
it_splits '3280080404', ['32', '800', '80', '404'] # Apple support
|
96
121
|
end
|
97
122
|
|
98
123
|
describe 'Belize' do
|
@@ -116,16 +141,36 @@ describe 'country descriptions' do
|
|
116
141
|
it_splits '26781234567', %w(267 8 1234 567)
|
117
142
|
end
|
118
143
|
|
144
|
+
describe 'Bosnia and Herzegovina' do
|
145
|
+
it_splits '38766666666', %w(387 66 666 666)
|
146
|
+
it_splits '38733123456', %w(387 33 123 456)
|
147
|
+
end
|
148
|
+
|
119
149
|
describe 'Brazil' do
|
120
150
|
it_splits '551112341234', ['55', '11', '1234', '1234']
|
121
151
|
it_splits '5511981231234', ['55', '11', '98123', '1234'] # São Paulo's 9 digits mobile
|
122
152
|
it_splits '552181231234', ['55', '21', '8123', '1234']
|
123
153
|
it_splits '5521981231234', ['55', '21', '98123', '1234'] # Rio de Janeiro's 9 digits mobile
|
124
|
-
it_splits '551931311234', ['55', '19', '3131', '1234']
|
125
|
-
it_splits '
|
154
|
+
it_splits '551931311234', ['55', '19', '3131', '1234']
|
155
|
+
it_splits '5531991311234', ['55', '31', '99131', '1234'] # Belo Horizonte's 9th digit
|
156
|
+
it_splits '5571991311234', ['55', '71', '99131', '1234'] # Salvador's 9th digit
|
157
|
+
it_splits '5579991311234', ['55', '79', '99131', '1234'] # Sergipe's 9th digit
|
158
|
+
it_splits '5547991311234', ['55', '47', '99131', '1234'] # Santa Catarina's 9th digit
|
159
|
+
it_splits '5541991311234', ['55', '41', '99131', '1234'] # Parana's 9th digit
|
126
160
|
|
127
|
-
context
|
128
|
-
%w{
|
161
|
+
context 'mobile numbers' do
|
162
|
+
%w{
|
163
|
+
11 12 13 14 15 16 17 18 19
|
164
|
+
21 22 24 27 28
|
165
|
+
31 32 33 34 35 37 38
|
166
|
+
61 62 63 64 65 66 67 68 69
|
167
|
+
71 73 74 75 77 79
|
168
|
+
81 82 83 84 85 86 87 88 89
|
169
|
+
91 92 93 94 95 96 97 98 99
|
170
|
+
41 42 43 44 45 46
|
171
|
+
47 48 49
|
172
|
+
51 53 54 55
|
173
|
+
}.each do |state_code|
|
129
174
|
it_splits "55#{state_code}993051123", ['55', state_code, '99305', '1123']
|
130
175
|
end
|
131
176
|
end
|
@@ -134,6 +179,7 @@ describe 'country descriptions' do
|
|
134
179
|
it_splits '5508002221234', ['55', '0800', '222', '1234']
|
135
180
|
it_splits '5530032221', ['55', '3003', '2221']
|
136
181
|
it_splits '5540209999', ['55', '4020', '9999']
|
182
|
+
it_splits '5540038999', ['55', '4003', '8999']
|
137
183
|
it_splits '5540048999', ['55', '4004', '8999']
|
138
184
|
end
|
139
185
|
|
@@ -142,6 +188,26 @@ describe 'country descriptions' do
|
|
142
188
|
it_splits '55199', ['55', '199', ""]
|
143
189
|
end
|
144
190
|
end
|
191
|
+
describe "Bulgaria" do
|
192
|
+
it_splits '35929284000', ['359', '2', '928', '4000'] # Sofia
|
193
|
+
it_splits '359878357523', ['359', '87', '8357', '523']
|
194
|
+
it_splits '3593012345', ['359', '30', '12345']
|
195
|
+
it_splits '35930123456', ['359', '30', '12', '3456']
|
196
|
+
it_splits '35943312345', ['359', '433', '12345']
|
197
|
+
it_splits '3596012345', ['359', '60', '12345']
|
198
|
+
it_splits '35969123456', ['359', '69', '123456']
|
199
|
+
it_splits '35970512345', ['359', '705', '12345']
|
200
|
+
it_splits '3597051234', ['359', '705', '1234']
|
201
|
+
it_splits '3597112345', ['359', '71', '12345']
|
202
|
+
it_splits '35979123456', ['359', '79', '123456']
|
203
|
+
it_splits '35980112345', ['359', '801', '12345']
|
204
|
+
it_splits '3598112345', ['359', '81', '12345']
|
205
|
+
it_splits '35986123456', ['359', '86', '123456']
|
206
|
+
it_splits '359881234567', ['359', '88', '1234', '567']
|
207
|
+
it_splits '35990123456', ['359', '90', '123456']
|
208
|
+
it_splits '359988123456', ['359', '988', '123456']
|
209
|
+
it_splits '359998123456', ['359', '998', '123456']
|
210
|
+
end
|
145
211
|
describe 'Cambodia' do
|
146
212
|
it_splits '85512236142', ["855", "12", "236", "142"] # mobile (Mobitel)
|
147
213
|
it_splits '855977100872', ["855", "97", "710", "0872"] # mobile (Metfone)
|
@@ -157,15 +223,35 @@ describe 'country descriptions' do
|
|
157
223
|
describe 'China' do
|
158
224
|
it_splits '862112345678', ['86', '21', '1234', '5678'] # Shanghai
|
159
225
|
it_splits '8675582193447', ['86', '755', '8219', '3447'] # Shenzhen
|
226
|
+
it_splits '869511234567', ['86', '951', '123', '4567'] # Yinchuan
|
227
|
+
|
228
|
+
context 'mobile numbers' do
|
229
|
+
%w{
|
230
|
+
130 131 132 133 134 135 136 137 138 139
|
231
|
+
145 146 147 148 149
|
232
|
+
150 151 152 153 155 156 157 158 159
|
233
|
+
162 165 166 167
|
234
|
+
170 171 172 173 174 175 176 177 178
|
235
|
+
180 181 182 183 184 185 186 187 188 189
|
236
|
+
190 191 192 193 195 196 197 198 199
|
237
|
+
}.each do |prefix|
|
238
|
+
it_splits "86#{prefix}12345678", ['86', prefix, '1234', '5678']
|
239
|
+
end
|
240
|
+
end
|
160
241
|
end
|
161
242
|
describe 'Colombia' do
|
162
|
-
it_splits '5711234567', ['57', '1', '123', '4567']
|
243
|
+
it_splits '5711234567', ['57', '1', '123', '4567'] # Outdated.
|
163
244
|
it_splits '573101234567', ['57', '310', '123', '4567'] # mobile
|
164
245
|
end
|
165
246
|
describe 'Croatia' do
|
166
247
|
it_splits '38521695900', %w( 385 21 695 900 ) # Landline
|
167
248
|
it_splits '38514566666', %w( 385 1 4566 666 ) # Landline (Zagreb)
|
249
|
+
it_splits '38599444999', %w( 385 99 444 999 ) # Mobile
|
168
250
|
it_splits '385918967509', %w( 385 91 896 7509 ) # Mobile
|
251
|
+
it_splits '3858001234', %w( 385 800 1234 ) # Toll free
|
252
|
+
it_splits '385800123456', %w( 385 800 123 456 ) # Toll free
|
253
|
+
it_splits '3856012345', %w( 385 60 12 345 ) # Premium rate
|
254
|
+
it_splits '38562123456', %w( 385 62 123 456 ) # Premium, personal and UAN
|
169
255
|
end
|
170
256
|
describe 'Cuba' do
|
171
257
|
it_splits '5351231234', ['53', '5123', '1234'] # Mobile
|
@@ -203,7 +289,7 @@ describe 'country descriptions' do
|
|
203
289
|
it_splits '3589123123', ['358', '9', '123', '123'] # Helsinki
|
204
290
|
it_splits '3581912312', ['358', '19', '123', '12'] # Nylandia
|
205
291
|
it_splits '3585012312', ['358', '50', '123', '12'] # Mobile
|
206
|
-
it_splits '
|
292
|
+
it_splits '35860012345', ['358', '6001', '23', '45'] # Service
|
207
293
|
end
|
208
294
|
describe 'France' do
|
209
295
|
it_splits '33112345678', ['33', '1', '12','34','56','78'] # Paris
|
@@ -229,7 +315,7 @@ describe 'country descriptions' do
|
|
229
315
|
it_splits '49800222340010', ['49', '800', '222', '340010'] # Service number
|
230
316
|
|
231
317
|
it_splits '4915111231234', ['49', '151', '1123', '1234'] # Mobile number
|
232
|
-
it_splits '4915771231234', ['49', '
|
318
|
+
it_splits '4915771231234', ['49', '1577', '123', '1234'] # Mobile number
|
233
319
|
it_splits '491601234567', ['49', '160', '1234', '567'] # Mobile number
|
234
320
|
it_splits '4916312345678', ['49', '163', '1234', '5678'] # Mobile number
|
235
321
|
it_splits '4915211231234', ['49', '1521', '123', '1234'] # Mobile number
|
@@ -267,7 +353,8 @@ describe 'country descriptions' do
|
|
267
353
|
end
|
268
354
|
|
269
355
|
describe 'Hong Kong' do
|
270
|
-
it_splits '85212341234', ['852', false, '1234', '1234']
|
356
|
+
it_splits '85212341234', ['852', false, '1234', '1234'] #Other Numbers
|
357
|
+
it_splits '852800121234', ['852', '800', '12', '1234'] #Toll Free
|
271
358
|
end
|
272
359
|
|
273
360
|
describe 'Hungary' do
|
@@ -296,6 +383,8 @@ describe 'country descriptions' do
|
|
296
383
|
it_splits '622112345567', %w(62 21 1234 5567)
|
297
384
|
it_splits '622212345', %w(62 22 123 45)
|
298
385
|
it_splits '62221234567', %w(62 22 123 4567)
|
386
|
+
it_splits '622200000000', %w(62 22 0000 0000)
|
387
|
+
it_splits '6222000000000', %w(62 22 000 000 000)
|
299
388
|
it_splits '624311234', %w(62 4 311 234)
|
300
389
|
it_splits '62431123456', %w(62 4 3112 3456)
|
301
390
|
it_splits '6262212345', %w(62 6 221 2345)
|
@@ -313,6 +402,8 @@ describe 'country descriptions' do
|
|
313
402
|
it_splits '62877123456', %w(62 877 123 456)
|
314
403
|
it_splits '62881123456', %w(62 881 123 456)
|
315
404
|
it_splits '6288112345656', %w(62 881 1234 5656)
|
405
|
+
it_splits '62881123456567', %w(62 881 1234 56567)
|
406
|
+
it_splits '628990344805', %w(62 899 034 4805)
|
316
407
|
it_splits '6291234567', %w(62 9 1234 567)
|
317
408
|
it_splits '629123456789', %w(62 9 123 456 789)
|
318
409
|
end
|
@@ -334,6 +425,7 @@ describe 'country descriptions' do
|
|
334
425
|
it_splits '35311234567', ['353', '1', '123', '4567'] # Dublin, 7 digit subscriber #
|
335
426
|
it_splits '353539233333', ['353', '53', '923', '3333'] # Wexford, 7 digit subscriber
|
336
427
|
it_splits '3532212345', ['353', '22', '12345'] # Mallow, 5 digit subscriber #
|
428
|
+
it_splits '353441234567', ['353', '44', '123', '4567'] # Mullingar, Castlepollard, Tyrellspass 7 digit subscriber #
|
337
429
|
it_splits '35345123456', ['353', '45', '123456'] # Naas, 6 digit subscriber #
|
338
430
|
it_splits '353801234567', ['353', '80', '123', '4567'] # Mobile
|
339
431
|
it_splits '353761234567', ['353', '76', '123', '4567'] # VoIP
|
@@ -342,14 +434,16 @@ describe 'country descriptions' do
|
|
342
434
|
end
|
343
435
|
|
344
436
|
describe 'Israel (972)' do
|
345
|
-
it_splits '972100', ['972', '1', '00']
|
346
|
-
it_splits '97221231234', ['972', '2', '123', '1234']
|
347
|
-
it_splits '97282411234', ['972', '8', '241', '1234']
|
348
|
-
it_splits '97291231234', ['972', '9', '123', '1234']
|
349
|
-
it_splits '972501231234', ['972', '50', '123', '1234']
|
350
|
-
it_splits '972591231234', ['972', '59', '123', '1234']
|
351
|
-
it_splits '972771231234', ['972', '77', '123', '1234']
|
437
|
+
it_splits '972100', ['972', '1', '00'] # Police
|
438
|
+
it_splits '97221231234', ['972', '2', '123', '1234'] # Jerusalem Area
|
439
|
+
it_splits '97282411234', ['972', '8', '241', '1234'] # Gaza Strip (Palestine)
|
440
|
+
it_splits '97291231234', ['972', '9', '123', '1234'] # Sharon Area
|
441
|
+
it_splits '972501231234', ['972', '50', '123', '1234'] # Mobile (Pelephone)
|
442
|
+
it_splits '972591231234', ['972', '59', '123', '1234'] # Mobile Jawwal (Palestine)
|
443
|
+
it_splits '972771231234', ['972', '77', '123', '1234'] # Cable Phone Services
|
352
444
|
it_splits '9721700123123', ['972', '1', '700', '123', '123'] # Cable Phone Services
|
445
|
+
it_splits '972511234567', ['972', '51', '123', '4567'] # Mobile (We4G)
|
446
|
+
it_splits '972791111111', ['972', '79', '111', '1111'] # Landline (Hallo, Cellact, Telzar)
|
353
447
|
end
|
354
448
|
describe 'Israel (970)' do
|
355
449
|
it_splits '97021231234', ['970', '2', '123', '1234'] # Jerusalem Area
|
@@ -366,16 +460,23 @@ describe 'country descriptions' do
|
|
366
460
|
it_splits '3934869528123',['39', '348', '695', '2812', '3'] # Mobile (8-digit subscriber no - new)
|
367
461
|
it_splits '393357210488', ['39', '335', '721', '0488'] # Mobile
|
368
462
|
it_splits '393248644272', ['39', '324', '864', '4272'] # Mobile
|
369
|
-
it_splits '
|
370
|
-
it_splits '
|
463
|
+
it_splits '390612341', ['39', '06', '12341'] # Roma 5 digit
|
464
|
+
it_splits '3906123412', ['39', '06', '1234', '12'] # Roma 6 digit
|
465
|
+
it_splits '39061234123', ['39', '06', '1234', '123'] # Roma 7 digit
|
466
|
+
it_splits '390612341234', ['39', '06', '1234', '1234'] # Roma 8 digit
|
467
|
+
it_splits '3902888388', ['39', '02', '8883', '88'] # Milano 6 digit
|
468
|
+
it_splits '39028883888', ['39', '02', '8883', '888'] # Milano 7 digit
|
469
|
+
it_splits '390288838883', ['39', '02', '8883', '8883'] # Milano 8 digit
|
371
470
|
it_splits '390141595661', ['39', '0141', '595', '661'] # Asti
|
372
471
|
it_splits '3903123391', ['39', '031', '23391'] # Como
|
373
472
|
it_splits '390909709511', ['39', '090', '9709511'] # Barcellona
|
374
473
|
it_splits '390471811353', ['39', '0471', '811', '353'] # Bolzano
|
474
|
+
it_splits '3905745730', ['39', '0574', '5730'] # Prato
|
375
475
|
end
|
376
476
|
describe 'Japan' do
|
377
477
|
it_splits '81312345678', %w(81 3 1234 5678) # Tokyo
|
378
478
|
it_splits '81612345678', %w(81 6 1234 5678) # Osaka
|
479
|
+
it_splits '818001001234', %w(81 800 100 1234) # Freephone
|
379
480
|
it_splits '81120123456', %w(81 120 123 456) # Freephone
|
380
481
|
it_splits '81111234567', %w(81 11 123 4567)
|
381
482
|
it_splits '81123123456', %w(81 123 12 3456)
|
@@ -386,12 +487,18 @@ describe 'country descriptions' do
|
|
386
487
|
it_splits '817012345678', %w(81 70 1234 5678) # PHS
|
387
488
|
it_splits '818012345678', %w(81 80 1234 5678) # Cellular
|
388
489
|
it_splits '819012345678', %w(81 90 1234 5678) # Cellular
|
490
|
+
it_splits '810570123456', %w(81 570 123 456) # Navi-dial
|
491
|
+
it_splits '810180123456', %w(81 180 123 456) # Tele-gong/Tele-dome
|
389
492
|
end
|
390
493
|
describe 'Kenya' do
|
391
494
|
it_splits '254201234567', ['254', '20', '1234567'] # Nairobi
|
392
495
|
it_splits '254111234567', ['254', '11', '1234567'] # Mombasa
|
393
496
|
it_splits '254723100220', ['254', '723', '100220'] # Mombasa
|
394
497
|
end
|
498
|
+
describe 'Kosovo' do
|
499
|
+
it_splits '38329000000', ['383', '29', '000', '000'] # Landline
|
500
|
+
it_splits '38344000000', ['383', '44', '000', '000'] # Mobile
|
501
|
+
end
|
395
502
|
describe 'Kyrgyzstan' do
|
396
503
|
it_splits '996312212345', %w(996 312 212 345)
|
397
504
|
it_splits '996315212345', %w(996 315 212 345)
|
@@ -411,12 +518,28 @@ describe 'country descriptions' do
|
|
411
518
|
end
|
412
519
|
describe 'Luxembourg' do
|
413
520
|
it_splits '352222809', ['352', '22', '28', '09']
|
414
|
-
it_splits '35226222809', ['352', '
|
521
|
+
it_splits '35226222809', ['352', '2622', '28', '09']
|
415
522
|
it_splits '352621123456', ['352', '621', '123', '456']
|
416
|
-
it_splits '3524123456', ['352', '
|
523
|
+
it_splits '3524123456', ['352', '41', '23', '45', '6']
|
417
524
|
it_splits '352602112345678', ['352', '6021', '12', '34', '56', '78']
|
418
525
|
it_splits '352370431', ['352', '37', '04', '31']
|
419
526
|
it_splits '35227855', ['352', '27', '85', '5']
|
527
|
+
it_splits '352445566', ['352', '44', '55', '66']
|
528
|
+
it_splits '352545258', ['352', '54', '52', '58']
|
529
|
+
it_splits '352818181', ['352', '81', '81', '81']
|
530
|
+
it_splits '3523572141', ['352', '35', '72', '14', '1']
|
531
|
+
end
|
532
|
+
describe 'Macedonia' do
|
533
|
+
it_splits '38921234567', ['389', '2', '123', '4567'] # Skopje
|
534
|
+
it_splits '38931234567', ['389', '3', '123', '4567'] # Eastern Macedonia
|
535
|
+
it_splits '38941234567', ['389', '4', '123', '4567'] # Western Macedonia
|
536
|
+
it_splits '38951234567', ['389', '5', '123', '4567'] # Premium
|
537
|
+
it_splits '38971234567', ['389', '7', '123', '4567'] # Mobile
|
538
|
+
end
|
539
|
+
describe 'Macao' do
|
540
|
+
it_splits '85328123456', ["853", "28", "12", "3456"] # Landline
|
541
|
+
it_splits '85381234567', ["853", "8", "123", "4567"] # Landline
|
542
|
+
it_splits '85361234567', ["853", "6", "123", "4567"] # Mobile
|
420
543
|
end
|
421
544
|
describe 'Malaysia' do
|
422
545
|
it_splits '6082123456', ['60', '82', '123456'] # Kuching
|
@@ -468,6 +591,7 @@ describe 'country descriptions' do
|
|
468
591
|
it_splits '31612345678', ['31', '6', '12', '34', '56', '78'] # mobile
|
469
592
|
it_splits '31201234567', ['31', '20', '123', '4567']
|
470
593
|
it_splits '31222123456', ['31', '222', '123', '456']
|
594
|
+
it_splits '3197012345678', ['31', '970', '1234', '5678'] # machine-to-machine
|
471
595
|
end
|
472
596
|
describe 'Norway' do
|
473
597
|
it_splits '4721234567', ['47',false,'21','23','45','67']
|
@@ -496,12 +620,13 @@ describe 'country descriptions' do
|
|
496
620
|
it_splits '595961611234', %w(595 96 161 1234)
|
497
621
|
end
|
498
622
|
describe 'Peru' do
|
499
|
-
it_splits '
|
623
|
+
it_splits '5111231234', ['51', '1', '123', '1234'] # Lima
|
500
624
|
it_splits '51912341234', ['51', '9', '1234', '1234'] # mobile
|
501
|
-
it_splits '
|
625
|
+
it_splits '5184123123', ['51', '84', '123', '123'] # Cuzco, best effort
|
502
626
|
end
|
503
627
|
describe 'Philippines' do
|
504
628
|
it_splits '6321234567', ['63', '2', '1234567']
|
629
|
+
it_splits '63289889999', ['63', '2', '89889999']
|
505
630
|
it_splits '6321234567890', ['63', '2', '1234567890']
|
506
631
|
it_splits '632123456789012', ['63', '2', '123456789012']
|
507
632
|
it_splits '639121234567', ['63', '912', '1234567']
|
@@ -510,6 +635,8 @@ describe 'country descriptions' do
|
|
510
635
|
describe 'Poland' do
|
511
636
|
it_splits '48123456789', ['48', '12', '345', '67', '89'] # Landline
|
512
637
|
it_splits '48501123456', ['48', '501', '123', '456'] # Mobile
|
638
|
+
it_splits '48571123456', ['48', '571', '123', '456'] # Mobile
|
639
|
+
it_splits '48451123456', ['48', '451', '123', '456'] # Mobile
|
513
640
|
it_splits '48800123456', ['48', '800', '123', '456'] # Free
|
514
641
|
it_splits '48801123456', ['48', '801', '123', '456'] # Shared cost
|
515
642
|
it_splits '48701123456', ['48', '701', '123', '456'] # Premium
|
@@ -535,20 +662,27 @@ describe 'country descriptions' do
|
|
535
662
|
it_splits '40791231234', ['40', '79', '123', '1234'] # mobile
|
536
663
|
it_splits '40249123123', ['40', '249', '123', '123'] # Olt
|
537
664
|
end
|
665
|
+
|
538
666
|
describe 'Russia' do
|
539
667
|
it_splits '78122345678', ['7', '812', '234', '56', '78'] # Russia 3-digit
|
540
668
|
it_splits '74012771077', ['7', '4012', '77', '10', '77'] # Russia 4-digit
|
541
669
|
it_splits '78402411212', ['7', '84024', '1', '12', '12'] # Russia 5-digit
|
542
|
-
it_splits '79296119119', ['7', '929', '611', '91', '19'] # Russia 3-digit, Megafon Mobile
|
670
|
+
it_splits '79296119119', ['7', '929', '611', '91', '19'] # Russia 3-digit, Megafon Mobile
|
671
|
+
it_splits '79691234567', ['7', '969', '123', '45', '67'] # Russia 3-digit, Beeline
|
672
|
+
it_splits '79771234567', ['7', '977', '123', '45', '67'] # Russia 3-digit
|
673
|
+
it_splits '79961234567', ['7', '996', '123', '45', '67'] # Russia 3-digit
|
674
|
+
it_splits '79991234567', ['7', '999', '123', '45', '67'] # Russia 3-digit
|
543
675
|
it_splits '7840121212', ['7', '840', '12', '1212'] # Abhasia
|
544
676
|
it_splits '7799121212', ['7', '799', '12', '1212'] # Kazachstan
|
545
|
-
it_splits '7995344121212', ['7','
|
677
|
+
it_splits '7995344121212', ['7', '995', '344','12','1212'] # South Osetia
|
546
678
|
it_splits '7209175276', ['7', '209', '17', '5276'] # Fantasy number
|
547
679
|
end
|
548
|
-
|
680
|
+
|
681
|
+
describe 'Rwanda' do
|
549
682
|
it_splits '250781234567', ['250', '78', '1234567'] # mobile
|
550
683
|
it_splits '250721234567', ['250', '72', '1234567'] # mobile
|
551
684
|
it_splits '250731234567', ['250', '73', '1234567'] # mobile
|
685
|
+
it_splits '250791234567', ['250', '79', '1234567'] # mobile
|
552
686
|
it_splits '250251234567', ['250', '25', '1234567'] # fixed
|
553
687
|
it_splits '25006123456', ['250', '06', '123456'] # fixed
|
554
688
|
end
|
@@ -557,8 +691,10 @@ describe 'country descriptions' do
|
|
557
691
|
it_splits '2399920012', %w(239 9 920 012)
|
558
692
|
end
|
559
693
|
describe 'South Korea' do
|
560
|
-
it_splits '82212345678', ['82', '2', '1234', '5678'] # Seoul
|
561
|
-
it_splits '
|
694
|
+
it_splits '82212345678', ['82', '2', '1234', '5678'] # Seoul (8 digits)
|
695
|
+
it_splits '8227111222', ['82', '2', '711', '1222'] # Seoul (7 digits)
|
696
|
+
it_splits '825112345678', ['82', '51', '1234', '5678'] # Busan (8 digits)
|
697
|
+
it_splits '82511234567', ['82', '51', '123', '4567'] # Busan (7 digits)
|
562
698
|
it_splits '821027975588', ['82', '10', '2797', '5588'] # mobile
|
563
699
|
it_splits '821087971234', ['82', '10', '8797', '1234'] # mobile
|
564
700
|
end
|
@@ -588,12 +724,15 @@ describe 'country descriptions' do
|
|
588
724
|
end
|
589
725
|
|
590
726
|
describe 'Singapore' do
|
591
|
-
it_splits '6561231234',
|
727
|
+
it_splits '6561231234', ['65', false, '6123', '1234'] # Fixed line
|
728
|
+
it_splits '658008521234', ['65', false, '800', '852', '1234'] # International Toll Free Service (ITFS) and Home Country Direct Service (HCDS) Numbers
|
592
729
|
end
|
593
730
|
describe 'Slovakia' do
|
594
731
|
it_splits '421912123456', ['421', '912', '123456'] # Mobile
|
595
732
|
it_splits '421212345678', ['421', '2', '12345678'] # Bratislava
|
733
|
+
it_splits '4212123', ['421', '2', '123'] # Bratislava Short
|
596
734
|
it_splits '421371234567', ['421', '37', '1234567'] # Nitra / Other
|
735
|
+
it_splits '42137123', ['421', '37', '123'] # Nitra / Other Short
|
597
736
|
end
|
598
737
|
|
599
738
|
describe 'Slovenia' do
|
@@ -617,11 +756,19 @@ describe 'country descriptions' do
|
|
617
756
|
it_splits '46812345678', ['46', '8', '123', '45', '678'] # Stockholm
|
618
757
|
it_splits '46111234567', ['46', '11', '123', '45', '67']
|
619
758
|
it_splits '46721234567', ['46', '72', '123', '45', '67'] # mobile
|
620
|
-
it_splits '
|
759
|
+
it_splits '46791234567', ['46', '79', '123', '45', '67'] # mobile
|
760
|
+
it_splits '46125123456', ['46', '125', '12', '34', '56']
|
761
|
+
it_splits '46770820180', ['46', '77', '082', '01', '80']
|
762
|
+
it_splits '4641712345', ['46', '417', '123', '45']
|
763
|
+
it_splits '46513123456', ['46', '513', '12', '34', '56']
|
621
764
|
end
|
622
765
|
describe 'Switzerland' do
|
623
766
|
it_splits '41443643532', ['41', '44', '364', '35', '32'] # Zurich (usually)
|
624
767
|
it_splits '41800334455', ['41', '800', '334', '455'] # Service number
|
768
|
+
it_splits '41860443643532', ['41', '860', '44', '364', '35', '32'] # Voicemail access
|
769
|
+
it_splits '41900123456', ['41', '900', '123', '456'] # Business Number
|
770
|
+
it_splits '41901123456', ['41', '901', '123', '456'] # Business Number Entertainment
|
771
|
+
it_splits '41906123456', ['41', '906', '123', '456'] # Business Number Adult Entertainment
|
625
772
|
end
|
626
773
|
describe 'Tanzania' do
|
627
774
|
it_splits '255221231234', ['255', '22', '123', '1234'] # Dar Es Salaam
|
@@ -699,15 +846,23 @@ describe 'country descriptions' do
|
|
699
846
|
end
|
700
847
|
describe 'Vietnam' do
|
701
848
|
it_splits '8498123456', ['84', '98', '123456'] # Viettel Mobile
|
702
|
-
it_splits '8499612345', ['84', '
|
703
|
-
it_splits '
|
849
|
+
it_splits '8499612345', ['84', '99', '612345'] # GTel
|
850
|
+
it_splits '842421234567', ['84', '24', '2123', '4567'] # Hanoi
|
851
|
+
it_splits '842841234567', ['84', '28', '4123', '4567'] # Ho Chi Minh City
|
852
|
+
it_splits '84341234567', ['84', '34', '1234567'] # Viettel
|
853
|
+
it_splits '84841234567', ['84', '84', '1234567'] # Vinaphone
|
704
854
|
end
|
705
855
|
describe 'Zambia' do
|
706
|
-
it_splits '
|
707
|
-
it_splits '
|
856
|
+
it_splits '260211123456', ['260', '211', '123456'] # Fixed
|
857
|
+
it_splits '260955123456', ['260', '95', '512', '3456'] # Mobile
|
858
|
+
it_splits '260967123456', ['260', '96', '712', '3456'] # Mobile
|
859
|
+
it_splits '260978123456', ['260', '97', '812', '3456'] # Mobile
|
860
|
+
it_splits '260800123456', ['260', '800', '123', '456'] # Toll free
|
708
861
|
end
|
709
862
|
describe 'New Zealand' do
|
710
863
|
it_splits '6491234567', ['64', '9', '123', '4567']
|
864
|
+
it_splits '64800123123', ['64', '800', '123', '123']
|
865
|
+
it_splits '648001231234', ['64', '800', '123', '1234']
|
711
866
|
end
|
712
867
|
describe 'Bhutan (Kingdom of)' do
|
713
868
|
it_splits '9759723642', %w(975 9 723 642)
|
@@ -722,7 +877,7 @@ describe 'country descriptions' do
|
|
722
877
|
it_splits '25712345678', ['257', false, '1234', '5678']
|
723
878
|
end
|
724
879
|
describe 'Cameroon' do
|
725
|
-
it_splits '
|
880
|
+
it_splits '237276593812', ['237', false, '276', '59', '38', '12']
|
726
881
|
end
|
727
882
|
describe 'Cape Verde' do
|
728
883
|
it_splits '2385494177', ['238', false, '549', '4177']
|
@@ -747,14 +902,14 @@ describe 'country descriptions' do
|
|
747
902
|
it_splits '50622345678', %w(506 2 234 5678)
|
748
903
|
end
|
749
904
|
describe "Côte d'Ivoire" do
|
750
|
-
it_splits '
|
751
|
-
it_splits '
|
905
|
+
it_splits '2250107335518', ['225', '01', '07', '33', '55', '18']
|
906
|
+
it_splits '2250237335518', ['225', '02', '37', '33', '55', '18']
|
752
907
|
end
|
753
908
|
describe 'Democratic Republic of Timor-Leste' do
|
754
909
|
it_splits '6701742945', ['670', false, '174', '2945']
|
755
910
|
end
|
756
911
|
describe 'Democratic Republic of the Congo' do
|
757
|
-
it_splits '
|
912
|
+
it_splits '243121995381', %w(243 12 199 5381)
|
758
913
|
end
|
759
914
|
describe 'Diego Garcia' do
|
760
915
|
it_splits '2461234683', ['246', false, '123', '4683']
|
@@ -763,7 +918,30 @@ describe 'country descriptions' do
|
|
763
918
|
it_splits '25349828978', ['253', false, '4982', '8978']
|
764
919
|
end
|
765
920
|
describe 'Ecuador' do
|
766
|
-
it_splits '
|
921
|
+
it_splits '593220000000', %w(593 22 000 0000)
|
922
|
+
it_splits '59322000000', %w(593 2 200 0000)
|
923
|
+
it_splits '593230000000', %w(593 23 000 0000)
|
924
|
+
it_splits '59323000000', %w(593 2 300 0000)
|
925
|
+
it_splits '59324000000', %w(593 2 400 0000)
|
926
|
+
it_splits '59325000000', %w(593 2 500 0000)
|
927
|
+
it_splits '593260000000', %w(593 26 000 0000)
|
928
|
+
it_splits '59327000000', %w(593 2 700 0000)
|
929
|
+
it_splits '593270000000', %w(593 27 000 0000)
|
930
|
+
it_splits '59330000000', %w(593 3 000 0000)
|
931
|
+
it_splits '59340000000', %w(593 4 000 0000)
|
932
|
+
it_splits '593440000000', %w(593 44 000 0000)
|
933
|
+
it_splits '593450000000', %w(593 45 000 0000)
|
934
|
+
it_splits '59345000000', %w(593 4 500 0000)
|
935
|
+
it_splits '59346000000', %w(593 4 600 0000)
|
936
|
+
it_splits '593470000000', %w(593 47 000 0000)
|
937
|
+
it_splits '59352000000', %w(593 5 200 0000)
|
938
|
+
it_splits '59353000000', %w(593 5 300 0000)
|
939
|
+
it_splits '59362000000', %w(593 6 200 0000)
|
940
|
+
it_splits '59372000000', %w(593 7 200 0000)
|
941
|
+
it_splits '59373000000', %w(593 7 300 0000)
|
942
|
+
it_splits '59374000000', %w(593 7 400 0000)
|
943
|
+
it_splits '59376000000', %w(593 7 600 0000)
|
944
|
+
it_splits '593900000000', %w(593 9 0000 0000)
|
767
945
|
end
|
768
946
|
describe 'Eritrea' do
|
769
947
|
it_splits '2916537192', %w(291 6 537 192)
|
@@ -788,6 +966,7 @@ describe 'country descriptions' do
|
|
788
966
|
end
|
789
967
|
describe 'Gabonese Republic' do
|
790
968
|
it_splits '2411834375', ['241', '1', '834', '375']
|
969
|
+
it_splits '24174012345', ['241', '74', '01', '23', '45']
|
791
970
|
end
|
792
971
|
describe 'Gambia' do
|
793
972
|
it_splits '2206683355', ['220', false, '668', '3355']
|
@@ -808,7 +987,7 @@ describe 'country descriptions' do
|
|
808
987
|
it_splits '224662123456', ['224', '662', '12', '34', '56']
|
809
988
|
end
|
810
989
|
describe 'Guinea-Bissau' do
|
811
|
-
it_splits '
|
990
|
+
it_splits '245443837652', ['245', false, '44', '383', '7652']
|
812
991
|
end
|
813
992
|
describe 'Guyana' do
|
814
993
|
it_splits '5922631234', %w(592 263 1234)
|
@@ -875,11 +1054,14 @@ describe 'country descriptions' do
|
|
875
1054
|
it_splits '21822123456', %w(218 22 123 456)
|
876
1055
|
it_splits '218211234456', %w(218 21 1234 456)
|
877
1056
|
it_splits '218911234456', %w(218 91 1234 456)
|
1057
|
+
it_splits '218941234456', %w(218 94 1234 456)
|
1058
|
+
it_splits '218951234456', %w(218 95 1234 456)
|
878
1059
|
end
|
879
1060
|
describe 'Madagascar' do
|
880
|
-
it_splits '
|
881
|
-
it_splits '
|
882
|
-
it_splits '
|
1061
|
+
it_splits '261202254716', ['261', '20', *%w(22 547 16)]
|
1062
|
+
it_splits '261320254716', ['261', '32', *%w(02 547 16)]
|
1063
|
+
it_splits '261330254716', ['261', '33', *%w(02 547 16)]
|
1064
|
+
it_splits '261340254716', ['261', '34', *%w(02 547 16)]
|
883
1065
|
end
|
884
1066
|
describe 'Malawi' do
|
885
1067
|
it_splits '2651725123', ['265', false, '1725', '123']
|
@@ -903,7 +1085,7 @@ describe 'country descriptions' do
|
|
903
1085
|
it_splits '22212345678', ['222', false, '1234', '5678']
|
904
1086
|
end
|
905
1087
|
describe 'Mauritius' do
|
906
|
-
it_splits '
|
1088
|
+
it_splits '23059518919', ['230', false, '5951', '8919']
|
907
1089
|
end
|
908
1090
|
describe 'Micronesia (Federated States of)' do
|
909
1091
|
it_splits '6911991754', ['691', false, '199', '1754']
|
@@ -956,6 +1138,8 @@ describe 'country descriptions' do
|
|
956
1138
|
describe 'Nigeria' do
|
957
1139
|
it_splits '23411231234', %w(234 1 123 1234) # Lagos
|
958
1140
|
|
1141
|
+
it_splits '23445123456', %w(234 45 123 456) # Ogoja
|
1142
|
+
|
959
1143
|
# mobile numbers
|
960
1144
|
it_splits '2347007661234', %w(234 700 766 1234)
|
961
1145
|
it_splits '2347017661234', %w(234 701 766 1234)
|
@@ -990,6 +1174,17 @@ describe 'country descriptions' do
|
|
990
1174
|
it_splits '2349087661234', %w(234 908 766 1234)
|
991
1175
|
it_splits '2349097661234', %w(234 909 766 1234)
|
992
1176
|
|
1177
|
+
it_splits '2349107661234', %w(234 910 766 1234)
|
1178
|
+
it_splits '2349117661234', %w(234 911 766 1234)
|
1179
|
+
it_splits '2349127661234', %w(234 912 766 1234)
|
1180
|
+
it_splits '2349137661234', %w(234 913 766 1234)
|
1181
|
+
it_splits '2349147661234', %w(234 914 766 1234)
|
1182
|
+
it_splits '2349157661234', %w(234 915 766 1234)
|
1183
|
+
it_splits '2349167661234', %w(234 916 766 1234)
|
1184
|
+
it_splits '2349177661234', %w(234 917 766 1234)
|
1185
|
+
it_splits '2349187661234', %w(234 918 766 1234)
|
1186
|
+
it_splits '2349197661234', %w(234 919 766 1234)
|
1187
|
+
|
993
1188
|
it_splits '2348107661234', %w(234 810 766 1234)
|
994
1189
|
it_splits '2348117661234', %w(234 811 766 1234)
|
995
1190
|
it_splits '2348127661234', %w(234 812 766 1234)
|
@@ -1025,6 +1220,9 @@ describe 'country descriptions' do
|
|
1025
1220
|
it_splits '6752751234', %w(675 275 1234)
|
1026
1221
|
it_splits '67527912', %w(675 279 12)
|
1027
1222
|
it_splits '67511512345678', %w(675 115 1234 5678)
|
1223
|
+
it_splits '67574123456', %w(675 74 123 456)
|
1224
|
+
it_splits '67573123456', %w(675 731 23 456)
|
1225
|
+
it_splits '67577301234', %w(675 7730 1 234)
|
1028
1226
|
end
|
1029
1227
|
describe 'Reunion / Mayotte (new)' do
|
1030
1228
|
it_splits '262594399265', ['262', '594', '39', '92', '65']
|
@@ -1038,6 +1236,7 @@ describe 'country descriptions' do
|
|
1038
1236
|
describe 'Samoa (Independent State of)' do
|
1039
1237
|
it_splits '685800123', ['685', false, '800', '123']
|
1040
1238
|
it_splits '68561123', ['685', false, '61', '123']
|
1239
|
+
it_splits '6857112345', ['685', false, '711', '2345']
|
1041
1240
|
it_splits '6857212345', ['685', false, '721', '2345']
|
1042
1241
|
it_splits '685830123', ['685', false, '830', '123']
|
1043
1242
|
it_splits '685601234', ['685', false, '601', '234']
|
@@ -1052,8 +1251,11 @@ describe 'country descriptions' do
|
|
1052
1251
|
it_splits '3785123456789', ['378', false, '512', '345', '6789']
|
1053
1252
|
end
|
1054
1253
|
describe 'Saudi Arabia (Kingdom of)' do
|
1055
|
-
it_splits '9660208528423', %w(966 020 852 8423)
|
1056
|
-
it_splits '966506306201', %w(966 50 630 6201)
|
1254
|
+
it_splits '9660208528423', %w(966 020 852 8423) # Fixed
|
1255
|
+
it_splits '966506306201', %w(966 50 630 6201) # NDC Mobile
|
1256
|
+
it_splits '966112345678', %w(966 11 234 5678) # NDC Region
|
1257
|
+
it_splits '9668001234567', %w(966 800 123 4567) # Toll Free
|
1258
|
+
it_splits '966920012345', %w(966 9200 12345) # Univeral Access
|
1057
1259
|
end
|
1058
1260
|
describe 'Senegal' do
|
1059
1261
|
it_splits '221123456789', ['221', false, '1234', '56789']
|
@@ -1072,6 +1274,7 @@ describe 'country descriptions' do
|
|
1072
1274
|
it_splits '38160123', %w(381 60 123)
|
1073
1275
|
it_splits '381601234567890', %w(381 60 123 456 7890)
|
1074
1276
|
it_splits '38170123456', %w(381 70 123 456)
|
1277
|
+
it_splits '38163123456', %w(381 63 123 456)
|
1075
1278
|
end
|
1076
1279
|
describe 'Sierra Leone' do
|
1077
1280
|
it_splits '23264629769', %w(232 64 629 769)
|
@@ -1080,13 +1283,23 @@ describe 'country descriptions' do
|
|
1080
1283
|
it_splits '67754692', ['677', false, '54', '692']
|
1081
1284
|
it_splits '6777546921', ['677', false, '7546', '921']
|
1082
1285
|
end
|
1083
|
-
describe '
|
1286
|
+
describe 'Somalia' do
|
1084
1287
|
it_splits '252103412345', %w(252 1034 123 45)
|
1085
1288
|
it_splits '2521313123', %w(252 1313 123)
|
1086
1289
|
it_splits '2521601234', %w(252 160 12 34)
|
1087
1290
|
it_splits '25250012345', %w(252 500 123 45)
|
1088
|
-
it_splits '
|
1291
|
+
it_splits '252612345678', %w(252 61 234 5678) # Hormuud
|
1292
|
+
it_splits '252622345678', %w(252 62 234 5678) # Somtel Mogadishu
|
1293
|
+
it_splits '252634000613', %w(252 63 400 0613) # Telesom
|
1294
|
+
it_splits '252642345678', %w(252 64 234 5678) # Hormuud
|
1295
|
+
it_splits '252652345678', %w(252 65 234 5678) # Somtel
|
1296
|
+
it_splits '252662345678', %w(252 66 234 5678) # Somtel Puntland
|
1297
|
+
it_splits '252672345678', %w(252 67 234 5678) # Nationlink Mogadishu
|
1298
|
+
it_splits '252682345678', %w(252 68 234 5678) # Nationlink Mogadishu
|
1299
|
+
it_splits '252692345678', %w(252 69 234 5678) # Nationlink
|
1300
|
+
it_splits '252902345678', %w(252 90 234 5678) # Golis
|
1089
1301
|
end
|
1302
|
+
|
1090
1303
|
describe 'Suriname (Republic of)' do
|
1091
1304
|
it_splits '597958434', ['597', false, '958', '434']
|
1092
1305
|
|
@@ -1104,16 +1317,22 @@ describe 'country descriptions' do
|
|
1104
1317
|
it_splits '963912345678', %w(963 9 1234 5678)
|
1105
1318
|
end
|
1106
1319
|
describe 'Taiwan' do
|
1107
|
-
it_splits '88618123456', %w(886 18 123 456)
|
1108
|
-
it_splits '8866121234567', %w(886 612 123 4567)
|
1109
1320
|
it_splits '886212345678', %w(886 2 1234 5678)
|
1110
1321
|
it_splits '88631234567', %w(886 3 123 4567)
|
1111
|
-
it_splits '
|
1112
|
-
it_splits '
|
1113
|
-
it_splits '
|
1114
|
-
it_splits '
|
1115
|
-
it_splits '
|
1116
|
-
it_splits '
|
1322
|
+
it_splits '88651234567', %w(886 5 123 4567)
|
1323
|
+
it_splits '88661234567', %w(886 6 123 4567)
|
1324
|
+
it_splits '88671234567', %w(886 7 123 4567)
|
1325
|
+
it_splits '88633123456', %w(886 3 312 3456)
|
1326
|
+
it_splits '88637123456', %w(886 37 12 3456)
|
1327
|
+
it_splits '88682712345', %w(886 82 71 2345)
|
1328
|
+
it_splits '886801123123', %w(886 801 123 123)
|
1329
|
+
it_splits '88689712345', %w(886 89 71 2345)
|
1330
|
+
it_splits '88682672345', %w(886 826 7 2345)
|
1331
|
+
it_splits '88683672345', %w(886 836 7 2345)
|
1332
|
+
it_splits '88641212345', %w(886 4 121 2345)
|
1333
|
+
it_splits '886412123456', %w(886 4 1212 3456)
|
1334
|
+
it_splits '886491234567', %w(886 49 123 4567)
|
1335
|
+
it_splits '886901234567', %w(886 901 234 567)
|
1117
1336
|
end
|
1118
1337
|
describe 'Togolese Republic' do
|
1119
1338
|
it_splits '22812345678', ['228', false, '1234', '5678']
|
@@ -1159,6 +1378,7 @@ describe 'country descriptions' do
|
|
1159
1378
|
it_splits '380911234567', %w(380 91 123 45 67)
|
1160
1379
|
it_splits '380921234567', %w(380 92 123 45 67)
|
1161
1380
|
it_splits '380931234567', %w(380 93 123 45 67)
|
1381
|
+
it_splits '380731234567', %w(380 73 123 45 67)
|
1162
1382
|
it_splits '380941234567', %w(380 94 123 45 67)
|
1163
1383
|
it_splits '380951234567', %w(380 95 123 45 67)
|
1164
1384
|
it_splits '380961234567', %w(380 96 123 45 67)
|
@@ -1169,11 +1389,15 @@ describe 'country descriptions' do
|
|
1169
1389
|
describe 'United Arab Emirates' do
|
1170
1390
|
it_splits '97180012', %w(971 800 12)
|
1171
1391
|
it_splits '971800123456789', %w(971 800 12 345 6789)
|
1392
|
+
it_splits '97180012345678', %w(971 800 12 345 678)
|
1393
|
+
it_splits '9718001234567', %w(971 800 12 345 67)
|
1172
1394
|
it_splits '97121234567', %w(971 2 123 4567)
|
1173
1395
|
it_splits '971506412345', %w(971 50 641 2345)
|
1174
1396
|
it_splits '971600641234', %w(971 600 641 234)
|
1175
1397
|
it_splits '971500641234', %w(971 500 641 234)
|
1176
1398
|
it_splits '971200641234', %w(971 200 641 234)
|
1399
|
+
it_splits '971549999999', %w(971 54 999 9999)
|
1400
|
+
it_splits '971589999999', %w(971 58 999 9999)
|
1177
1401
|
end
|
1178
1402
|
describe 'Uruguay (Eastern Republic of)' do
|
1179
1403
|
it_splits '59880012345', %w(598 800 123 45)
|
@@ -1212,6 +1436,14 @@ describe 'country descriptions' do
|
|
1212
1436
|
it_splits number, ['263', prefix, '234', '5678']
|
1213
1437
|
end
|
1214
1438
|
end
|
1439
|
+
|
1440
|
+
describe 'Universal International Freephone' do
|
1441
|
+
it_splits '80012345678', ['800', false, '12345678']
|
1442
|
+
end
|
1443
|
+
|
1444
|
+
describe 'Shared-Cost Service' do
|
1445
|
+
it_splits '80812345678', ['808', false, '12345678']
|
1446
|
+
end
|
1215
1447
|
end
|
1216
1448
|
|
1217
1449
|
end
|