phony 2.20.13 → 2.22.2

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.
Files changed (79) hide show
  1. checksums.yaml +4 -4
  2. data/README.textile +1 -1
  3. data/lib/phony/config.rb +25 -26
  4. data/lib/phony/countries/argentina.rb +311 -314
  5. data/lib/phony/countries/austria.rb +71 -72
  6. data/lib/phony/countries/bangladesh.rb +27 -28
  7. data/lib/phony/countries/belarus.rb +110 -111
  8. data/lib/phony/countries/brazil.rb +92 -92
  9. data/lib/phony/countries/cambodia.rb +9 -9
  10. data/lib/phony/countries/china.rb +22 -21
  11. data/lib/phony/countries/croatia.rb +6 -5
  12. data/lib/phony/countries/georgia.rb +84 -84
  13. data/lib/phony/countries/germany.rb +4067 -4068
  14. data/lib/phony/countries/guinea.rb +8 -8
  15. data/lib/phony/countries/india.rb +31 -34
  16. data/lib/phony/countries/indonesia.rb +57 -46
  17. data/lib/phony/countries/ireland.rb +4 -5
  18. data/lib/phony/countries/italy.rb +54 -53
  19. data/lib/phony/countries/japan.rb +456 -456
  20. data/lib/phony/countries/kyrgyzstan.rb +109 -109
  21. data/lib/phony/countries/latvia.rb +34 -34
  22. data/lib/phony/countries/libya.rb +106 -106
  23. data/lib/phony/countries/malaysia.rb +12 -12
  24. data/lib/phony/countries/moldova.rb +42 -42
  25. data/lib/phony/countries/montenegro.rb +24 -20
  26. data/lib/phony/countries/myanmar.rb +39 -39
  27. data/lib/phony/countries/namibia.rb +35 -29
  28. data/lib/phony/countries/nepal.rb +60 -62
  29. data/lib/phony/countries/netherlands.rb +13 -13
  30. data/lib/phony/countries/pakistan.rb +135 -111
  31. data/lib/phony/countries/paraguay.rb +135 -135
  32. data/lib/phony/countries/russia_kazakhstan_abkhasia_south_ossetia.rb +125 -128
  33. data/lib/phony/countries/saudi_arabia.rb +5 -5
  34. data/lib/phony/countries/serbia.rb +47 -39
  35. data/lib/phony/countries/somalia.rb +18 -18
  36. data/lib/phony/countries/south_korea.rb +16 -13
  37. data/lib/phony/countries/sweden.rb +28 -28
  38. data/lib/phony/countries/taiwan.rb +20 -19
  39. data/lib/phony/countries/tajikistan.rb +70 -70
  40. data/lib/phony/countries/turkmenistan.rb +65 -65
  41. data/lib/phony/countries/ukraine.rb +607 -607
  42. data/lib/phony/countries/united_kingdom.rb +66 -66
  43. data/lib/phony/countries/uruguay.rb +40 -41
  44. data/lib/phony/countries/vietnam.rb +19 -17
  45. data/lib/phony/countries/zimbabwe.rb +31 -31
  46. data/lib/phony/countries.rb +457 -443
  47. data/lib/phony/country.rb +44 -44
  48. data/lib/phony/country_codes.rb +67 -60
  49. data/lib/phony/dsl.rb +23 -26
  50. data/lib/phony/local_splitters/fixed.rb +23 -30
  51. data/lib/phony/local_splitters/regex.rb +30 -31
  52. data/lib/phony/national_code.rb +7 -10
  53. data/lib/phony/national_splitters/default.rb +9 -11
  54. data/lib/phony/national_splitters/dsl.rb +8 -18
  55. data/lib/phony/national_splitters/fixed.rb +12 -15
  56. data/lib/phony/national_splitters/none.rb +7 -11
  57. data/lib/phony/national_splitters/regex.rb +13 -17
  58. data/lib/phony/national_splitters/variable.rb +37 -38
  59. data/lib/phony/trunk_code.rb +20 -20
  60. data/lib/phony/vanity.rb +12 -13
  61. data/lib/phony.rb +84 -84
  62. metadata +5 -42
  63. data/spec/functional/config_spec.rb +0 -44
  64. data/spec/functional/plausibility_spec.rb +0 -689
  65. data/spec/lib/phony/countries_spec.rb +0 -1459
  66. data/spec/lib/phony/country_codes_spec.rb +0 -227
  67. data/spec/lib/phony/country_spec.rb +0 -104
  68. data/spec/lib/phony/dsl_spec.rb +0 -28
  69. data/spec/lib/phony/local_splitters/fixed_spec.rb +0 -56
  70. data/spec/lib/phony/local_splitters/regex_spec.rb +0 -94
  71. data/spec/lib/phony/national_code_spec.rb +0 -61
  72. data/spec/lib/phony/national_splitters/default_spec.rb +0 -34
  73. data/spec/lib/phony/national_splitters/fixed_spec.rb +0 -45
  74. data/spec/lib/phony/national_splitters/none_spec.rb +0 -28
  75. data/spec/lib/phony/national_splitters/regex_spec.rb +0 -23
  76. data/spec/lib/phony/national_splitters/variable_spec.rb +0 -35
  77. data/spec/lib/phony/trunk_code_spec.rb +0 -85
  78. data/spec/lib/phony/vanity_spec.rb +0 -30
  79. data/spec/lib/phony_spec.rb +0 -70
@@ -1,1459 +0,0 @@
1
- # encoding: utf-8
2
- #
3
- require 'spec_helper'
4
-
5
- describe 'country descriptions' do
6
-
7
- def self.it_splits number, expected
8
- it { expect(Phony.split(number)).to eq expected }
9
- end
10
-
11
- describe 'regression' do
12
- it_splits '33630588659', ["33", "6", "30", "58", "86", "59"]
13
- end
14
-
15
- describe 'splitting' do
16
- describe 'Ascension Island' do
17
- it_splits '2473551', ['247', false, '3551']
18
- end
19
-
20
- describe 'Afghanistan' do
21
- it_splits '93201234567', ['93', '20', '1234567'] # Kabul
22
- end
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
-
30
- describe 'Algeria' do
31
- it_splits '213211231234', ['213', '21', '123', '1234'] # Algiers
32
- it_splits '213331231234', ['213', '33', '123', '1234'] # Batna
33
- end
34
-
35
- describe 'Argentina' do
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
43
- end
44
-
45
- describe 'Austria' do
46
- it_splits '43198110', %w( 43 1 98110 ) # Vienna
47
- it_splits '4310000000', %w( 43 1 0000000 ) # Vienna
48
- it_splits '43800123456789', %w( 43 800 123456789 ) # Free
49
- it_splits '436780000000', %w( 43 678 0000 000 ) # Mobile
50
- it_splits '4368100000000', %w( 43 681 0000 0000 ) # Mobile
51
- it_splits '436880000000', %w( 43 688 0000 000 ) # Mobile
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
55
- it_splits '433161234567891', %w( 43 316 1234567891 ) # Graz
56
- it_splits '432164123456789', %w( 43 2164 123456789 ) # Rohrau
57
- it_splits '43720116987', %w( 43 720 116987 ) # VoIP
58
-
59
- # mobile numbers can have from 7 to 10 digits in the subscriber number
60
- it_splits '436641234567', %w( 43 664 1234 567 )
61
- it_splits '4366412345678', %w( 43 664 1234 5678 )
62
- it_splits '43664123456789', %w( 43 664 1234 56789 )
63
- it_splits '436641234567890', %w( 43 664 1234 567890 )
64
- end
65
-
66
- describe 'Australia' do
67
- it_splits '61512341234', ['61', '5', '1234', '1234'] # Landline
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
72
- end
73
-
74
- describe 'Bahrain' do
75
- it_splits '97312345678', ['973', false, '1234', '5678']
76
- end
77
-
78
- describe 'Bangladesh' do
79
- it_splits '88021234567', %w(880 2 1234567)
80
- it_splits '8805112345', %w(880 51 12345)
81
- it_splits '88031123456', %w(880 31 123456)
82
- it_splits '88032112345', %w(880 321 12345)
83
- it_splits '8804311234567', %w(880 431 1234567)
84
- it_splits '880902012345', %w(880 9020 12345)
85
- end
86
-
87
- describe 'Belarus' do
88
- it_splits '375152123456', %w(375 152 123456)
89
- it_splits '375151512345', %w(375 1515 12345)
90
- it_splits '375163423456', %w(375 163 423456)
91
- it_splits '375163112345', %w(375 1631 12345)
92
- it_splits '375291234567', %w(375 29 1234567)
93
- it_splits '375800123', %w(375 800 123)
94
- it_splits '3758001234', %w(375 800 1234)
95
- it_splits '3758001234567', %w(375 800 1234567)
96
- it_splits '37582012345678', %w(375 820 12345678)
97
- end
98
-
99
- describe 'Belgium' do
100
- it_splits '3235551212', ['32', '3', '555', '12', '12'] # Antwerpen
101
- it_splits '3250551212', ['32', '50', '55', '12', '12'] # Brugge
102
- it_splits '3225551212', ['32', '2', '555', '12', '12'] # Brussels
103
- it_splits '3295551914', ['32', '9', '555', '19', '14'] # Gent
104
- it_splits '3245551414', ['32', '4', '555', '14', '14'] # Liège
105
- it_splits '3216473200', ['32', '16', '47', '32', '00'] # Leuven
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)
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
121
- end
122
-
123
- describe 'Belize' do
124
- it_splits '5012051234', %w(501 205 1234)
125
- end
126
-
127
- describe 'Benin' do
128
- it_splits '22912345678', ['229', false, '1234', '5678']
129
- end
130
-
131
- describe 'Bolivia' do
132
- it_splits '59122772266', %w(591 2 277 2266)
133
- end
134
-
135
- describe 'Botswana' do
136
- it_splits '26780123456', %w(267 80 123 456)
137
- it_splits '2672956789', %w(267 29 567 89)
138
- it_splits '2674634567', %w(267 463 4567)
139
- it_splits '2675812345', %w(267 58 123 45)
140
- it_splits '26776712345', %w(267 7 6712 345)
141
- it_splits '26781234567', %w(267 8 1234 567)
142
- end
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
-
149
- describe 'Brazil' do
150
- it_splits '551122341234', ['55', '11', '2234', '1234']
151
- it_splits '5511981231234', ['55', '11', '98123', '1234'] # São Paulo's 9 digits mobile
152
- it_splits '5521981231234', ['55', '21', '98123', '1234'] # Rio de Janeiro's 9 digits mobile
153
- it_splits '551931311234', ['55', '19', '3131', '1234']
154
- it_splits '5531991311234', ['55', '31', '99131', '1234'] # Belo Horizonte's 9th digit
155
- it_splits '5571991311234', ['55', '71', '99131', '1234'] # Salvador's 9th digit
156
- it_splits '5579991311234', ['55', '79', '99131', '1234'] # Sergipe's 9th digit
157
- it_splits '5547991311234', ['55', '47', '99131', '1234'] # Santa Catarina's 9th digit
158
- it_splits '5541991311234', ['55', '41', '99131', '1234'] # Parana's 9th digit
159
- it_splits '556734212121', ['55', '67', '3421', '2121']
160
-
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|
174
- it_splits "55#{state_code}993051123", ['55', state_code, '99305', '1123']
175
- end
176
- end
177
-
178
- context "special numbers" do
179
- it_splits '5508002221234', ['55', '0800', '222', '1234']
180
- it_splits '5530032221', ['55', '3003', '2221']
181
- it_splits '5540209999', ['55', '4020', '9999']
182
- it_splits '5540038999', ['55', '4003', '8999']
183
- it_splits '5540048999', ['55', '4004', '8999']
184
- end
185
-
186
- context "service numbers" do
187
- it_splits '55100', ['55', '100', ""]
188
- it_splits '55199', ['55', '199', ""]
189
- end
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
211
- describe 'Cambodia' do
212
- it_splits '85512236142', ["855", "12", "236", "142"] # mobile (Mobitel)
213
- it_splits '855977100872', ["855", "97", "710", "0872"] # mobile (Metfone)
214
- it_splits '855234601183', ["855", "23", "460", "1183"] # Long fixed line (Phnom Penh)
215
- it_splits '85533234567', ["855", "33", "234", "567"] # Regular fixed line (Kampot)
216
- end
217
- describe 'Chile' do
218
- it_splits '5621234567', ['56', '2', '1234567'] # Santiago
219
- it_splits '5675123456', ['56', '75', '123456'] # Curico
220
- it_splits '56912345678', ['56', '9', '12345678'] # Mobile
221
- it_splits '56137123456', ['56', '137', '123', '456'] # Service
222
- end
223
- describe 'China' do
224
- it_splits '862112345678', ['86', '21', '1234', '5678'] # Shanghai
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
241
- end
242
- describe 'Colombia' do
243
- it_splits '5711234567', ['57', '1', '123', '4567'] # Outdated.
244
- it_splits '573101234567', ['57', '310', '123', '4567'] # mobile
245
- end
246
- describe 'Croatia' do
247
- it_splits '38521695900', %w( 385 21 695 900 ) # Landline
248
- it_splits '38514566666', %w( 385 1 4566 666 ) # Landline (Zagreb)
249
- it_splits '38599444999', %w( 385 99 444 999 ) # Mobile
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
255
- end
256
- describe 'Cuba' do
257
- it_splits '5351231234', ['53', '5123', '1234'] # Mobile
258
- it_splits '5371234567', ['53', '7', '1234567'] # Havana
259
- it_splits '5342123456', ['53', '42', '123456'] # Villa Clara
260
- end
261
- describe 'Cyprus' do
262
- it_splits '35712322123456', ['357', '123', '22', '123456'] # Voicemail
263
- it_splits '35722123456', ['357', '22', '123456'] # Fixed
264
- it_splits '35791123456', ['357', '91', '123456'] # Mobile
265
- end
266
- describe 'Denmark' do
267
- it_splits '4532121212', ['45', false, '32', '12', '12', '12']
268
- end
269
- describe 'Egypt' do
270
- it_splits '20212345678', ['20', '2', '12345678']
271
- it_splits '20921234567', ['20', '92', '1234567']
272
- it_splits '20951234567', ['20', '95', '1234567']
273
- end
274
- describe 'Equatorial Guinea' do
275
- it_splits '240222201123', ['240', false, '222', '201', '123']
276
- it_splits '240335201123', ['240', false, '335', '201', '123']
277
- end
278
- describe 'Estonia' do
279
- it_splits '3723212345', ['372', '321', '2345'] # Landline
280
- it_splits '37251231234', ['372', '5123', '1234'] # Mobile
281
- it_splits '3728001234', ['372', '800', '1234'] # Freephone
282
- it_splits '37281231234', ['372', '8123', '1234'] # Mobile
283
- it_splits '37282231234', ['372', '8223', '1234'] # Mobile
284
- it_splits '37252212345', ['372', '5221', '2345'] # Mobile
285
- it_splits '3725221234', ['372', '5221', '234'] # Mobile
286
- it_splits '37270121234', ['372', '7012', '1234'] # Premium
287
- end
288
- describe 'Finland' do
289
- it_splits '3589123123', ['358', '9', '123', '123'] # Helsinki
290
- it_splits '3581912312', ['358', '19', '123', '12'] # Nylandia
291
- it_splits '3585012312', ['358', '50', '123', '12'] # Mobile
292
- it_splits '35860012345', ['358', '6001', '23', '45'] # Service
293
- end
294
- describe 'France' do
295
- it_splits '33112345678', ['33', '1', '12','34','56','78'] # Paris
296
- it_splits '33812345678', ['33', '8', '12','34','56','78'] # Service number
297
- end
298
- describe 'Georgia' do
299
- it_splits '99522012345', %w(995 220 123 45)
300
- it_splits '995321234567', %w(995 32 123 4567)
301
- it_splits '995342123456', %w(995 342 123 456)
302
- it_splits '995596123456', %w(995 596 123 456)
303
- end
304
- describe 'Germany' do
305
- it_splits '493038625454', ['49', '30', '386', '25454'] # Berlin
306
- it_splits '4932221764542', ['49', '32', '221', '764542'] # Non-Geographical
307
- it_splits '4922137683323', ['49', '221', '376', '83323'] # Cologne
308
- it_splits '497614767676', ['49', '761', '476', '7676'] # Freiburg im Breisgau
309
- it_splits '4921535100', ['49', '2153', '510', '0'] # Nettetal-Lobberich
310
- it_splits '493434144602', ['49', '34341', '446', '02'] # Geithain
311
-
312
- it_splits '491805878323', ['49', '180', '587', '8323'] # Service number
313
- it_splits '491815878323', ['49', '181', '587', '8323'] # Service number
314
- it_splits '498001234567', ['49', '800', '123', '4567'] # Service number
315
- it_splits '49800222340010', ['49', '800', '222', '340010'] # Service number
316
-
317
- it_splits '4915111231234', ['49', '151', '1123', '1234'] # Mobile number
318
- it_splits '4915771231234', ['49', '1577', '123', '1234'] # Mobile number
319
- it_splits '491601234567', ['49', '160', '1234', '567'] # Mobile number
320
- it_splits '4916312345678', ['49', '163', '1234', '5678'] # Mobile number
321
- it_splits '4915211231234', ['49', '1521', '123', '1234'] # Mobile number
322
- end
323
- describe 'Ghana' do
324
- it_splits '233302123456', ['233', '30', '212', '3456'] # Mobile Vodafone, Accra
325
- end
326
- describe 'Gibraltar' do
327
- it_splits '35020012345', ['350', '200', '12345'] # Fixed
328
- it_splits '35021112345', ['350', '211', '12345'] # Fixed
329
- it_splits '35022212345', ['350', '222', '12345'] # Fixed
330
- it_splits '35054123456', ['350', '54', '123456'] # Mobile
331
- it_splits '35056123456', ['350', '56', '123456'] # Mobile
332
- it_splits '35057123456', ['350', '57', '123456'] # Mobile
333
- it_splits '35058123456', ['350', '58', '123456'] # Mobile
334
- it_splits '35060123456', ['350', '60', '123456'] # Mobile
335
- it_splits '3508012', ['350', '8012', '' ] # Freephone
336
- end
337
- describe 'Greece' do
338
- it_splits '302142345678', %w(30 21 4234 5678)
339
- it_splits '302442345678', %w(30 24 4234 5678)
340
- it_splits '305034571234', %w(30 50 3457 1234)
341
- it_splits '306901234567', %w(30 690 123 4567)
342
- it_splits '307001234567', %w(30 70 0123 4567)
343
- it_splits '308001001234', %w(30 800 100 1234)
344
- it_splits '308011001234', %w(30 801 100 1234)
345
- it_splits '308071001234', %w(30 807 100 1234)
346
- it_splits '308961001234', %w(30 896 100 1234)
347
- it_splits '309011234565', %w(30 901 123 4565)
348
- it_splits '309091234565', %w(30 909 123 4565)
349
- end
350
-
351
- describe 'Haiti' do
352
- it_splits '50922121234', ['509', '22', '12', '1234']
353
- end
354
-
355
- describe 'Hong Kong' do
356
- it_splits '85212341234', ['852', false, '1234', '1234'] #Other Numbers
357
- it_splits '852800121234', ['852', '800', '12', '1234'] #Toll Free
358
- end
359
-
360
- describe 'Hungary' do
361
- it_splits'3612345678', ['36', '1', '234', '5678']
362
- it_splits'3622123456', ['36', '22', '123', '456']
363
- end
364
- describe 'Iceland' do
365
- it_splits '354112', ['354', false, '112'] # Emergency TODO
366
- it_splits '3544211234', ['354', false, '421', '1234'] # Keflavík
367
- it_splits '3544621234', ['354', false, '462', '1234'] # Akureyri
368
- it_splits '3545511234', ['354', false, '551', '1234'] # Reykjavík
369
- end
370
- describe 'Indonesia' do
371
- it_splits '6242323032', ["62", "4", "2323", "032"]
372
- it_splits '6285220119289', ['62', '852', '2011', '9289']
373
- it_splits '62217815263', %w(62 21 781 5263)
374
- it_splits '6213123', %w(62 13 123)
375
- it_splits '6213123456', %w(62 13 123 456)
376
- it_splits '6217412', %w(62 174 12)
377
- it_splits '6217412345', %w(62 174 12 345)
378
- it_splits '6217712', %w(62 177 12)
379
- it_splits '6217712123456', %w(62 177 1212 3456)
380
- it_splits '62178123', %w(62 178 123)
381
- it_splits '6217812345', %w(62 178 123 45)
382
- it_splits '622112345', %w(62 21 123 45)
383
- it_splits '622112345567', %w(62 21 1234 5567)
384
- it_splits '622212345', %w(62 22 123 45)
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)
388
- it_splits '624311234', %w(62 4 311 234)
389
- it_splits '62431123456', %w(62 4 3112 3456)
390
- it_splits '6262212345', %w(62 6 221 2345)
391
- it_splits '62622123456', %w(62 6 2212 3456)
392
- it_splits '6270123456', %w(62 70 123 456)
393
- it_splits '6271123456', %w(62 71 123 456)
394
- it_splits '62711234567', %w(62 71 123 4567)
395
- it_splits '62810123456', %w(62 810 123 456)
396
- it_splits '6281012345678', %w(62 810 1234 5678)
397
- it_splits '628151234567', %w(62 815 123 4567)
398
- it_splits '62820123456', %w(62 820 123 456)
399
- it_splits '628231234567', %w(62 823 123 4567)
400
- it_splits '6282312345678', %w(62 823 1234 5678)
401
- it_splits '6287012345', %w(62 870 123 45)
402
- it_splits '62877123456', %w(62 877 123 456)
403
- it_splits '62881123456', %w(62 881 123 456)
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)
407
- it_splits '6291234567', %w(62 9 1234 567)
408
- it_splits '629123456789', %w(62 9 123 456 789)
409
- end
410
-
411
- describe 'India' do
412
- it_splits '919911182111', ['91', '99', '111', '82', '111'] # mobile
413
- it_splits '912212345678', ['91', '22', '123', '45', '678'] # New Delhi
414
- it_splits '911411234567', ['91', '141', '123', '45', '67'] # Jaipur
415
- it_splits '913525123456', ['91', '3525', '123', '456'] # DALKHOLA
416
- it_splits '914433993939', ['91', '44', '339', '93', '939'] #
417
- end
418
-
419
- describe 'Iran' do
420
- it_splits '982112341234', ['98', '21', '1234', '1234'] # Teheran
421
- it_splits '989191231234', ['98', '919', '123', '1234'] # Example Cell Phone
422
- end
423
-
424
- describe 'Ireland' do
425
- it_splits '35311234567', ['353', '1', '123', '4567'] # Dublin, 7 digit subscriber #
426
- it_splits '353539233333', ['353', '53', '923', '3333'] # Wexford, 7 digit subscriber
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 #
429
- it_splits '35345123456', ['353', '45', '123456'] # Naas, 6 digit subscriber #
430
- it_splits '353801234567', ['353', '80', '123', '4567'] # Mobile
431
- it_splits '353761234567', ['353', '76', '123', '4567'] # VoIP
432
- it_splits '353800123456', ['353', '800', '123456'] # Freefone
433
- it_splits '353000123456', ['353', '000', '123456'] # Default fixed 3 split for unrecognized
434
- end
435
-
436
- describe 'Israel (972)' do
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
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)
447
- end
448
- describe 'Israel (970)' do
449
- it_splits '97021231234', ['970', '2', '123', '1234'] # Jerusalem Area
450
- it_splits '97082411234', ['970', '8', '241', '1234'] # Gaza Strip (Palestine)
451
- it_splits '97091231234', ['970', '9', '123', '1234'] # Sharon Area
452
- it_splits '970501231234', ['970', '50', '123', '1234'] # Mobile (Pelephone)
453
- it_splits '970591231234', ['970', '59', '123', '1234'] # Mobile Jawwal (Palestine)
454
- it_splits '970771231234', ['970', '77', '123', '1234'] # Cable Phone Services
455
- it_splits '9701700123123', ['970', '1', '700', '123', '123'] # Cable Phone Services
456
- end
457
- describe 'Italy' do
458
- it_splits '39348695281', ['39', '348', '695', '281'] # Mobile (6-digit subscriber no. - rare, but still used)
459
- it_splits '393486952812', ['39', '348', '695', '2812'] # Mobile (7-digit subscriber no. - common)
460
- it_splits '3934869528123',['39', '348', '695', '2812', '3'] # Mobile (8-digit subscriber no - new)
461
- it_splits '393357210488', ['39', '335', '721', '0488'] # Mobile
462
- it_splits '393248644272', ['39', '324', '864', '4272'] # Mobile
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
470
- it_splits '390141595661', ['39', '0141', '595', '661'] # Asti
471
- it_splits '3903123391', ['39', '031', '23391'] # Como
472
- it_splits '390909709511', ['39', '090', '9709511'] # Barcellona
473
- it_splits '390471811353', ['39', '0471', '811', '353'] # Bolzano
474
- it_splits '3905745730', ['39', '0574', '5730'] # Prato
475
- end
476
- describe 'Japan' do
477
- it_splits '81312345678', %w(81 3 1234 5678) # Tokyo
478
- it_splits '81612345678', %w(81 6 1234 5678) # Osaka
479
- it_splits '818001001234', %w(81 800 100 1234) # Freephone
480
- it_splits '81120123456', %w(81 120 123 456) # Freephone
481
- it_splits '81111234567', %w(81 11 123 4567)
482
- it_splits '81123123456', %w(81 123 12 3456)
483
- it_splits '81126712345', %w(81 1267 1 2345)
484
- it_splits '812012345678', %w(81 20 1234 5678) # Pager(Calling Party Pay)
485
- it_splits '815012345678', %w(81 50 1234 5678) # IP Telephone
486
- it_splits '816012345678', %w(81 60 1234 5678) # UPT
487
- it_splits '817012345678', %w(81 70 1234 5678) # PHS
488
- it_splits '818012345678', %w(81 80 1234 5678) # Cellular
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
492
- end
493
- describe 'Kenya' do
494
- it_splits '254201234567', ['254', '20', '1234567'] # Nairobi
495
- it_splits '254111234567', ['254', '11', '1234567'] # Mombasa
496
- it_splits '254723100220', ['254', '723', '100220'] # Mombasa
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
502
- describe 'Kyrgyzstan' do
503
- it_splits '996312212345', %w(996 312 212 345)
504
- it_splits '996315212345', %w(996 315 212 345)
505
- it_splits '996313121234', %w(996 3131 212 34)
506
- it_splits '996394621234', %w(996 3946 212 34)
507
- it_splits '996501234567', %w(996 50 123 4567)
508
- it_splits '996521234567', %w(996 52 123 4567)
509
- it_splits '996581234567', %w(996 58 123 4567)
510
- it_splits '996800123456', %w(996 800 123 456)
511
- end
512
- describe 'Lithuania' do
513
- it_splits '37070012123', ['370', '700', '12', '123'] # Service
514
- it_splits '37061212123', ['370', '612', '12', '123'] # Mobile
515
- it_splits '37051231212', ['370', '5', '123', '12', '12'] # Vilnius
516
- it_splits '37037121212', ['370', '37', '12', '12', '12'] # Kaunas
517
- it_splits '37044011212', ['370', '440', '1', '12', '12'] # Skuodas
518
- end
519
- describe 'Luxembourg' do
520
- it_splits '352222809', ['352', '22', '28', '09']
521
- it_splits '35226222809', ['352', '2622', '28', '09']
522
- it_splits '352621123456', ['352', '621', '123', '456']
523
- it_splits '3524123456', ['352', '41', '23', '45', '6']
524
- it_splits '352602112345678', ['352', '6021', '12', '34', '56', '78']
525
- it_splits '352370431', ['352', '37', '04', '31']
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
- it_splits '3522634731', ['352', '26', '34', '73', '1']
532
- it_splits '352264412701', ['352', '26', '44', '12', '701']
533
- end
534
- describe 'Macedonia' do
535
- it_splits '38921234567', ['389', '2', '123', '4567'] # Skopje
536
- it_splits '38931234567', ['389', '3', '123', '4567'] # Eastern Macedonia
537
- it_splits '38941234567', ['389', '4', '123', '4567'] # Western Macedonia
538
- it_splits '38951234567', ['389', '5', '123', '4567'] # Premium
539
- it_splits '38971234567', ['389', '7', '123', '4567'] # Mobile
540
- end
541
- describe 'Macao' do
542
- it_splits '85328123456', ["853", "28", "12", "3456"] # Landline
543
- it_splits '85381234567', ["853", "8", "123", "4567"] # Landline
544
- it_splits '85361234567', ["853", "6", "123", "4567"] # Mobile
545
- end
546
- describe 'Malaysia' do
547
- it_splits '6082123456', ['60', '82', '123456'] # Kuching
548
- it_splits '60312345678', ['60', '3', '12345678'] # Kuala Lumpur
549
- it_splits '60212345678', ['60', '2', '12345678'] # Singapore
550
- it_splits '60111231234', ['60', '11', '123', '1234'] # Mobile
551
- it_splits '601112312345', ['60', '11', '123', '12345'] # Mobile
552
- it_splits '60800121234', ['60', '800', '12', '1234'] # Freephone
553
- # it_splits '60112', ['60', '112'] # Service
554
- end
555
- describe 'Malta' do
556
- it_splits '35621231234', ['356', '2123', '1234'] # Fixed
557
- it_splits '35677123456', ['356', '77', '123456'] # Mobile
558
- it_splits '35698123456', ['356', '98', '123456'] # Mobile
559
- it_splits '35651231234', ['356', '5123', '1234'] # Voice Mail
560
- end
561
- describe 'Mexico' do
562
- it_splits '525512121212', ['52', '55', '1212', '1212'] # Mexico City
563
- it_splits '5215512121212', ['52', '1', '55', '1212', '1212'] # Mexico City cell phone from abroad
564
- it_splits '526641231212', ['52', '664', '123', '1212'] # Tijuana
565
- it_splits '5216641231212', ['52', '1', '664', '123', '1212'] # Tijuana cell phone from abroad
566
- it_splits '520446641231212', ['52', '044', '664', '123', '1212'] # Tijuana cell phone local from landline
567
- end
568
- describe 'Monaco' do
569
- it_splits '37741123456', ['377', '41', '12', '34', '56'] # Mobile
570
- it_splits '377612345678', ['377', '6', '12', '34', '56', '78'] # Mobile
571
- end
572
- describe 'Montenegro' do
573
- it_splits '38280123456', %w(382 80 123 456)
574
- it_splits '3822012345', %w(382 20 123 45)
575
- it_splits '38220123456', %w(382 20 123 456)
576
- it_splits '38232123456', %w(382 32 123 456)
577
- it_splits '38278103456', %w(382 78 103 456)
578
- it_splits '38263123', %w(382 63 123)
579
- it_splits '382631234567890', %w(382 63 123 456 7890)
580
- it_splits '38277103456', %w(382 77 103 456)
581
- it_splits '38294103456', %w(382 94 103 456)
582
- it_splits '38288103456', %w(382 88 103 456)
583
- it_splits '3826812', %w(382 68 12)
584
- it_splits '382681212345678', %w(382 68 12 1234 5678)
585
- it_splits '38270123', %w(382 70 123)
586
- it_splits '382701234567890', %w(382 70 123 456 7890)
587
- end
588
- describe 'Morocco' do
589
- it_splits '212537718685', ['212', '53', '7718', '685']
590
- it_splits '212612345678', ['212', '6', '12', '34', '56', '78']
591
- end
592
- describe 'The Netherlands' do
593
- it_splits '31612345678', ['31', '6', '12', '34', '56', '78'] # mobile
594
- it_splits '31201234567', ['31', '20', '123', '4567']
595
- it_splits '31222123456', ['31', '222', '123', '456']
596
- it_splits '3197012345678', ['31', '970', '1234', '5678'] # machine-to-machine
597
- end
598
- describe 'Norfolk Island' do
599
- it_splits '672321234', ['672', '3', '21', '234'] # fixed
600
- it_splits '672351234', ['672', '3', '51', '234'] # mobile
601
- end
602
- describe 'Norway' do
603
- it_splits '4721234567', ['47',false,'21','23','45','67']
604
- it_splits '4731234567', ['47',false,'31','23','45','67']
605
- it_splits '4741234567', ['47',false,'412','34','567']
606
- it_splits '4751234567', ['47',false,'51','23','45','67']
607
- it_splits '4761234567', ['47',false,'61','23','45','67']
608
- it_splits '4771234567', ['47',false,'71','23','45','67']
609
- it_splits '4781234567', ['47',false,'812','34','567']
610
- it_splits '4791234567', ['47',false,'912','34','567']
611
- end
612
- describe 'Oman' do
613
- it_splits '96824423123', %w(968 24 423 123)
614
- it_splits '96825423123', %w(968 25 423 123)
615
- end
616
- describe 'Pakistan' do
617
- it_splits '922112345678', %w(92 21 1234 5678)
618
- it_splits '92221234567', %w(92 22 1234 567)
619
- it_splits '92232123456', %w(92 232 123 456)
620
- it_splits '923012345678', %w(92 30 1234 5678)
621
- end
622
- describe 'Paraguay (Republic of)' do
623
- it_splits '59521123456', %w(595 21 123 456)
624
- it_splits '595211234567', %w(595 21 123 4567)
625
- it_splits '595345123456', %w(595 345 123 456)
626
- it_splits '595961611234', %w(595 96 161 1234)
627
- end
628
- describe 'Peru' do
629
- it_splits '5111231234', ['51', '1', '123', '1234'] # Lima
630
- it_splits '51912341234', ['51', '9', '1234', '1234'] # mobile
631
- it_splits '5184123123', ['51', '84', '123', '123'] # Cuzco, best effort
632
- end
633
- describe 'Philippines' do
634
- it_splits '6321234567', ['63', '2', '1234567']
635
- it_splits '63289889999', ['63', '2', '89889999']
636
- it_splits '6321234567890', ['63', '2', '1234567890']
637
- it_splits '632123456789012', ['63', '2', '123456789012']
638
- it_splits '639121234567', ['63', '912', '1234567']
639
- it_splits '63881234567', ['63', '88', '1234567']
640
- end
641
- describe 'Poland' do
642
- it_splits '48123456789', ['48', '12', '345', '67', '89'] # Landline
643
- it_splits '48501123456', ['48', '501', '123', '456'] # Mobile
644
- it_splits '48571123456', ['48', '571', '123', '456'] # Mobile
645
- it_splits '48451123456', ['48', '451', '123', '456'] # Mobile
646
- it_splits '48800123456', ['48', '800', '123', '456'] # Free
647
- it_splits '48801123456', ['48', '801', '123', '456'] # Shared cost
648
- it_splits '48701123456', ['48', '701', '123', '456'] # Premium
649
- end
650
- describe 'Portugal' do
651
- it_splits '351211231234', ['351', '21', '123', '1234'] # Lisboa
652
- it_splits '351241123123', ['351', '241', '123', '123'] # Abrantes
653
- it_splits '351931231234', ['351', '93', '123', '1234'] # mobile
654
- end
655
- describe 'Qatar' do
656
- it_splits '9741245123456', %w(974 1245 123 456)
657
- it_splits '9742613456', %w(974 26 134 56)
658
- it_splits '97433123456', %w(974 33 123 456)
659
- it_splits '97444412456', %w(974 44 412 456)
660
- it_splits '9748001234', %w(974 800 12 34)
661
- it_splits '9749001234', %w(974 900 12 34)
662
- it_splits '97492123', %w(974 92 123)
663
- it_splits '97497123', %w(974 97 123)
664
- end
665
- describe 'Romania' do
666
- it_splits '40211231234', ['40', '21', '123', '1234'] # Bucureşti
667
- it_splits '40721231234', ['40', '72', '123', '1234'] # mobile
668
- it_splits '40791231234', ['40', '79', '123', '1234'] # mobile
669
- it_splits '40249123123', ['40', '249', '123', '123'] # Olt
670
- end
671
-
672
- describe 'Russia' do
673
- it_splits '78122345678', ['7', '812', '234', '56', '78'] # Russia 3-digit
674
- it_splits '74012771077', ['7', '4012', '77', '10', '77'] # Russia 4-digit
675
- it_splits '78402411212', ['7', '84024', '1', '12', '12'] # Russia 5-digit
676
- it_splits '79296119119', ['7', '929', '611', '91', '19'] # Russia 3-digit, Megafon Mobile
677
- it_splits '79691234567', ['7', '969', '123', '45', '67'] # Russia 3-digit, Beeline
678
- it_splits '79771234567', ['7', '977', '123', '45', '67'] # Russia 3-digit
679
- it_splits '79961234567', ['7', '996', '123', '45', '67'] # Russia 3-digit
680
- it_splits '79991234567', ['7', '999', '123', '45', '67'] # Russia 3-digit
681
- it_splits '7840121212', ['7', '840', '12', '1212'] # Abhasia
682
- it_splits '7799121212', ['7', '799', '12', '1212'] # Kazachstan
683
- it_splits '7995344121212', ['7', '995', '344','12','1212'] # South Osetia
684
- it_splits '7209175276', ['7', '209', '17', '5276'] # Fantasy number
685
- end
686
-
687
- describe 'Rwanda' do
688
- it_splits '250781234567', ['250', '78', '1234567'] # mobile
689
- it_splits '250721234567', ['250', '72', '1234567'] # mobile
690
- it_splits '250731234567', ['250', '73', '1234567'] # mobile
691
- it_splits '250791234567', ['250', '79', '1234567'] # mobile
692
- it_splits '250251234567', ['250', '25', '1234567'] # fixed
693
- it_splits '25006123456', ['250', '06', '123456'] # fixed
694
- end
695
- describe 'Sao Tome and Principe' do
696
- it_splits '2392220012', %w(239 2 220 012)
697
- it_splits '2399920012', %w(239 9 920 012)
698
- end
699
- describe 'South Korea' do
700
- it_splits '82212345678', ['82', '2', '1234', '5678'] # Seoul (8 digits)
701
- it_splits '8227111222', ['82', '2', '711', '1222'] # Seoul (7 digits)
702
- it_splits '825112345678', ['82', '51', '1234', '5678'] # Busan (8 digits)
703
- it_splits '82511234567', ['82', '51', '123', '4567'] # Busan (7 digits)
704
- it_splits '821027975588', ['82', '10', '2797', '5588'] # mobile
705
- it_splits '821087971234', ['82', '10', '8797', '1234'] # mobile
706
- end
707
- describe 'Serbia' do
708
- it_splits '38163512529', ['381', '63', '512', '529']
709
- end
710
- describe 'South Sudan' do
711
- it_splits '211123212345', ['211', '123', '212', '345']
712
- it_splits '211973212345', ['211', '973', '212', '345']
713
- end
714
- describe 'Sudan' do
715
- it_splits '249187171100', ['249', '18', '717', '1100']
716
- end
717
- describe 'Thailand' do
718
- it_splits '6621231234', ['66', '2', '123', '1234'] # Bangkok
719
- it_splits '6636123123', ['66', '36', '123', '123'] # Lop Buri
720
- it_splits '66851234567', ['66', '851', '234', '567'] # Lop Buri
721
- it_splits '66921234567', ['66', '921', '234', '567'] # mobile
722
- end
723
- describe 'Tunesia' do
724
- it_splits '21611231234', ['216', '1', '123', '1234'] # Ariana
725
- it_splits '21621231234', ['216', '2', '123', '1234'] # Bizerte
726
- end
727
- describe 'Salvador (El)' do
728
- it_splits '50321121234', ['503', '2112', '1234'] # Fixed number
729
- it_splits '50361121234', ['503', '6112', '1234'] # Mobile number
730
- end
731
-
732
- describe 'Singapore' do
733
- it_splits '6561231234', ['65', false, '6123', '1234'] # Fixed line
734
- it_splits '658008521234', ['65', false, '800', '852', '1234'] # International Toll Free Service (ITFS) and Home Country Direct Service (HCDS) Numbers
735
- end
736
- describe 'Slovakia' do
737
- it_splits '421912123456', ['421', '912', '123456'] # Mobile
738
- it_splits '421212345678', ['421', '2', '12345678'] # Bratislava
739
- it_splits '4212123', ['421', '2', '123'] # Bratislava Short
740
- it_splits '421371234567', ['421', '37', '1234567'] # Nitra / Other
741
- it_splits '42137123', ['421', '37', '123'] # Nitra / Other Short
742
- end
743
-
744
- describe 'Slovenia' do
745
- it_splits '38651234567', ['386', '51', '234', '567'] # Mobile
746
- it_splits '38611234567', ['386', '1', '123', '4567'] # LJUBLJANA
747
- end
748
-
749
- describe 'Spain' do
750
- it_splits '34600123456', ['34', '600', '123', '456'] # Mobile
751
- it_splits '34900123456', ['34', '900', '123', '456'] # Special
752
- it_splits '34931234567', ['34', '93', '123', '45', '67'] # Landline large regions
753
- it_splits '34975123456', ['34', '975', '12', '34', '56'] # Landline
754
- it_splits '34123456789', ['34', '123', '456', '789'] # Default
755
- end
756
-
757
- describe 'Sri Lanka' do
758
- it_splits '94711231212', ['94', '71', '123', '12', '12'] # Mobile
759
- end
760
-
761
- describe 'Sweden' do
762
- it_splits '46812345678', ['46', '8', '123', '45', '678'] # Stockholm
763
- it_splits '46111234567', ['46', '11', '123', '45', '67']
764
- it_splits '46721234567', ['46', '72', '123', '45', '67'] # mobile
765
- it_splits '46791234567', ['46', '79', '123', '45', '67'] # mobile
766
- it_splits '46125123456', ['46', '125', '12', '34', '56']
767
- it_splits '46770820180', ['46', '77', '082', '01', '80']
768
- it_splits '4641712345', ['46', '417', '123', '45']
769
- it_splits '46513123456', ['46', '513', '12', '34', '56']
770
- end
771
- describe 'Switzerland' do
772
- it_splits '41443643532', ['41', '44', '364', '35', '32'] # Zurich (usually)
773
- it_splits '41800334455', ['41', '800', '334', '455'] # Service number
774
- it_splits '41860443643532', ['41', '860', '44', '364', '35', '32'] # Voicemail access
775
- it_splits '41900123456', ['41', '900', '123', '456'] # Business Number
776
- it_splits '41901123456', ['41', '901', '123', '456'] # Business Number Entertainment
777
- it_splits '41906123456', ['41', '906', '123', '456'] # Business Number Adult Entertainment
778
- end
779
- describe 'Tanzania' do
780
- it_splits '255221231234', ['255', '22', '123', '1234'] # Dar Es Salaam
781
- it_splits '255651231234', ['255', '65', '123', '1234'] # TIGO
782
- it_splits '255861123123', ['255', '861', '123', '123'] # Special Rates
783
- end
784
- describe 'Turkey' do
785
- it_splits '903121234567', ['90', '312', '123', '4567'] # Ankara
786
- end
787
- describe 'Uganda' do
788
- it_splits '256414123456', ['256', '41', '4123456'] # Kampania
789
- it_splits '256464441234', ['256', '464', '441234'] # Mubende
790
- end
791
- describe 'The UK' do
792
- it_splits '442075671113', ['44', '20', '7567', '1113'] # [2+8] London
793
- it_splits '442920229901', ['44', '29', '2022', '9901'] # [2+8] Cardiff
794
- it_splits '441134770011', ['44', '113', '477', '0011'] # [3+7] Leeds
795
- it_splits '441412770022', ['44', '141', '277', '0022'] # [3+7] Glasgow
796
- it_splits '441204500532', ['44', '1204', '500532'] # [4+6] Bolton
797
- it_splits '44120462532', ['44', '1204', '62532'] # [4+5] Bolton
798
- it_splits '441333247700', ['44', '1333', '247700'] # [4+6] Leven (Fife)
799
- it_splits '441382229845', ['44', '1382', '229845'] # [4+6] Dundee
800
- it_splits '441420700378', ['44', '1420', '700378'] # [4+6] Alton
801
- it_splits '44142080378', ['44', '1420', '80378'] # [4+5] Alton
802
- it_splits '441475724688', ['44', '1475', '724688'] # [4+6] Greenock
803
- it_splits '441539248756', ['44', '1539', '248756'] # [4+6] Kendal (Mixed area)
804
- it_splits '441539648788', ['44', '15396', '48788'] # [5+5] Sedbergh (Mixed area)
805
- it_splits '441652757248', ['44', '1652', '757248'] # [4+6] Brigg
806
- it_splits '441664333456', ['44', '1664', '333456'] # [4+6] Melton Mowbray
807
- it_splits '441697222555', ['44', '1697', '222555'] # [4+6] Brampton (Mixed area)
808
- it_splits '441697388555', ['44', '16973', '88555'] # [5+5] Wigton (Mixed area)
809
- it_splits '441697433777', ['44', '16974', '33777'] # [5+5] Raughton Head (Mixed area)
810
- it_splits '44169772333', ['44', '16977', '2333'] # [5+4] Brampton (Mixed area)
811
- it_splits '441697744888', ['44', '16977', '44888'] # [5+5] Brampton (Mixed area)
812
- it_splits '441757850526', ['44', '1757', '850526'] # [4+6] Selby
813
- it_splits '441890234567', ['44', '1890', '234567'] # [4+6] Coldstream (ELNS area)
814
- it_splits '441890595378', ['44', '1890', '595378'] # [4+6] Ayton (ELNS area)
815
- it_splits '441931306526', ['44', '1931', '306526'] # [4+6] Shap
816
- it_splits '441946555777', ['44', '1946', '555777'] # [4+6] Whitehaven (Mixed area)
817
- it_splits '44194662888', ['44', '1946', '62888'] # [4+5] Whitehaven (Mixed area)
818
- it_splits '441946722444', ['44', '19467', '22444'] # [5+5] Gosforth (Mixed area)
819
- it_splits '441987705337', ['44', '1987', '705337'] # [4+6] Ebbsfleet
820
- it_splits '443005828323', ['44', '300', '582', '8323'] # Non-geographic (NTS)
821
- it_splits '443334253344', ['44', '333', '425', '3344'] # Non-geographic (NTS)
822
- it_splits '443437658834', ['44', '343', '765', '8834'] # Non-geographic (NTS)
823
- it_splits '443452273512', ['44', '345', '227', '3512'] # Non-geographic (NTS)
824
- it_splits '443707774444', ['44', '370', '777', '4444'] # Non-geographic (NTS)
825
- it_splits '443725247722', ['44', '372', '524', '7722'] # Non-geographic (NTS)
826
- it_splits '44500557788', ['44', '500', '557788'] # Freefone (500 + 6)
827
- it_splits '445575671113', ['44', '55', '7567', '1113'] # Corporate numbers
828
- it_splits '445644775533', ['44', '56', '4477', '5533'] # LIECS/VoIP
829
- it_splits '447020229901', ['44', '70', '2022', '9901'] # Personal numbers
830
- it_splits '447688554246', ['44', '76', '8855', '4246'] # Pager
831
- it_splits '447180605207', ['44', '7180', '605207'] # Mobile
832
- it_splits '447480605207', ['44', '7480', '605207'] # Mobile
833
- it_splits '447624605207', ['44', '7624', '605207'] # Mobile (Isle of Man)
834
- it_splits '447780605207', ['44', '7780', '605207'] # Mobile
835
- it_splits '447980605207', ['44', '7980', '605207'] # Mobile
836
- it_splits '44800557788', ['44', '800', '557788'] # Freefone (800 + 6)
837
- it_splits '448084682355', ['44', '808', '468', '2355'] # Freefone (808 + 7)
838
- it_splits '448005878323', ['44', '800', '587', '8323'] # Freefone (800 + 7), regression
839
- it_splits '448437777334', ['44', '843', '777', '7334'] # Non-geographic (NTS)
840
- it_splits '448457777334', ['44', '845', '777', '7334'] # Non-geographic (NTS)
841
- it_splits '448707777334', ['44', '870', '777', '7334'] # Non-geographic (NTS)
842
- it_splits '448727777334', ['44', '872', '777', '7334'] # Non-geographic (NTS)
843
- it_splits '449052463456', ['44', '905', '246', '3456'] # Non-geographic (PRS)
844
- it_splits '449122463456', ['44', '912', '246', '3456'] # Non-geographic (PRS)
845
- it_splits '449832463456', ['44', '983', '246', '3456'] # Non-geographic (SES)
846
- end
847
- describe 'US' do
848
- it_splits '15551115511', ['1', '555', '111', '5511']
849
- end
850
- describe 'Venezuela' do
851
- it_splits '582121234567', ['58', '212', '1234567']
852
- end
853
- describe 'Vietnam' do
854
- it_splits '8498123456', ['84', '98', '123456'] # Viettel Mobile
855
- it_splits '8499612345', ['84', '99', '612345'] # GTel
856
- it_splits '842421234567', ['84', '24', '2123', '4567'] # Hanoi
857
- it_splits '842841234567', ['84', '28', '4123', '4567'] # Ho Chi Minh City
858
- it_splits '84341234567', ['84', '34', '1234567'] # Viettel
859
- it_splits '84841234567', ['84', '84', '1234567'] # Vinaphone
860
- it_splits '8419001212', ['84', '1900', '1212'] # Vinaphone
861
- it_splits '841900541234', ['84', '1900', '541234'] # Vinaphone
862
- end
863
- describe 'Zambia' do
864
- it_splits '260211123456', ['260', '211', '123456'] # Fixed
865
- it_splits '260955123456', ['260', '95', '512', '3456'] # Mobile
866
- it_splits '260967123456', ['260', '96', '712', '3456'] # Mobile
867
- it_splits '260978123456', ['260', '97', '812', '3456'] # Mobile
868
- it_splits '260800123456', ['260', '800', '123', '456'] # Toll free
869
- end
870
- describe 'New Zealand' do
871
- it_splits '6491234567', ['64', '9', '123', '4567']
872
- it_splits '64800123123', ['64', '800', '123', '123']
873
- it_splits '648001231234', ['64', '800', '123', '1234']
874
- end
875
- describe 'Bhutan (Kingdom of)' do
876
- it_splits '9759723642', %w(975 9 723 642)
877
- end
878
- describe 'Brunei Darussalam' do
879
- it_splits '6737932744', %w(673 7 932 744)
880
- end
881
- describe 'Burkina Faso' do
882
- it_splits '22667839323', ['226', false, '67', '83', '93', '23']
883
- it_splits '22601234567', ['226', false, '01', '23', '45', '67'] # 0 not removed.
884
- end
885
- describe 'Burundi' do
886
- it_splits '25712345678', ['257', false, '1234', '5678']
887
- end
888
- describe 'Cameroon' do
889
- it_splits '237276593812', ['237', false, '276', '59', '38', '12']
890
- end
891
- describe 'Cape Verde' do
892
- it_splits '2385494177', ['238', false, '549', '4177']
893
- end
894
- describe 'Central African Republic' do
895
- it_splits '23612345678', ['236', false, '1234', '5678']
896
- end
897
- describe 'Chad' do
898
- it_splits '23512345678', ['235', false, '1234', '5678']
899
- end
900
- describe 'Comoros' do
901
- it_splits '2693901234', ['269', false, '3901', '234']
902
- it_splits '2693401234', ['269', false, '3401', '234']
903
- end
904
- describe 'Congo' do
905
- it_splits '242123456789', ['242', false, '1234', '56789']
906
- end
907
- describe 'Cook Islands' do
908
- it_splits '68251475', ['682', false, '51', '475']
909
- end
910
- describe 'Costa Rica' do
911
- it_splits '50622345678', %w(506 2 234 5678)
912
- end
913
- describe "Côte d'Ivoire" do
914
- it_splits '2250107335518', ['225', '01', '07', '33', '55', '18']
915
- it_splits '2250237335518', ['225', '02', '37', '33', '55', '18']
916
- end
917
- describe 'Democratic Republic of Timor-Leste' do
918
- it_splits '6701742945', ['670', false, '174', '2945']
919
- end
920
- describe 'Democratic Republic of the Congo' do
921
- it_splits '243121995381', %w(243 12 199 5381)
922
- end
923
- describe 'Diego Garcia' do
924
- it_splits '2461234683', ['246', false, '123', '4683']
925
- end
926
- describe 'Djibouti' do
927
- it_splits '25349828978', ['253', false, '4982', '8978']
928
- end
929
- describe 'Ecuador' do
930
- it_splits '593220000000', %w(593 22 000 0000)
931
- it_splits '59322000000', %w(593 2 200 0000)
932
- it_splits '593230000000', %w(593 23 000 0000)
933
- it_splits '59323000000', %w(593 2 300 0000)
934
- it_splits '59324000000', %w(593 2 400 0000)
935
- it_splits '59325000000', %w(593 2 500 0000)
936
- it_splits '593260000000', %w(593 26 000 0000)
937
- it_splits '59327000000', %w(593 2 700 0000)
938
- it_splits '593270000000', %w(593 27 000 0000)
939
- it_splits '59330000000', %w(593 3 000 0000)
940
- it_splits '59340000000', %w(593 4 000 0000)
941
- it_splits '593440000000', %w(593 44 000 0000)
942
- it_splits '593450000000', %w(593 45 000 0000)
943
- it_splits '59345000000', %w(593 4 500 0000)
944
- it_splits '59346000000', %w(593 4 600 0000)
945
- it_splits '593470000000', %w(593 47 000 0000)
946
- it_splits '59352000000', %w(593 5 200 0000)
947
- it_splits '59353000000', %w(593 5 300 0000)
948
- it_splits '59362000000', %w(593 6 200 0000)
949
- it_splits '59372000000', %w(593 7 200 0000)
950
- it_splits '59373000000', %w(593 7 300 0000)
951
- it_splits '59374000000', %w(593 7 400 0000)
952
- it_splits '59376000000', %w(593 7 600 0000)
953
- it_splits '593900000000', %w(593 9 0000 0000)
954
- end
955
- describe 'Eritrea' do
956
- it_splits '2916537192', %w(291 6 537 192)
957
- end
958
- describe 'Ethiopia' do
959
- it_splits '251721233486', %w(251 72 123 3486)
960
- end
961
- describe 'Falkland Islands (Malvinas)' do
962
- it_splits '50014963', ['500', false, '14', '963']
963
- end
964
- describe 'Faroe Islands' do
965
- it_splits '298997986', ['298', false, '997', '986']
966
- end
967
- describe 'Fiji (Republic of)' do
968
- it_splits '6798668123', ['679', false, '866', '8123']
969
- end
970
- describe 'French Guiana (French Department of)' do
971
- it_splits '594594123456', %w(594 594 123 456)
972
- end
973
- describe "French Polynesia (Territoire français d'outre-mer)" do
974
- it_splits '68921988900', ['689', false, '21', '98', '89', '00']
975
- end
976
- describe 'Gabonese Republic' do
977
- it_splits '2411834375', ['241', '1', '834', '375']
978
- it_splits '24174012345', ['241', '74', '01', '23', '45']
979
- end
980
- describe 'Gambia' do
981
- it_splits '2206683355', ['220', false, '668', '3355']
982
- end
983
- describe 'Greenland' do
984
- it_splits '299314185', ['299', '31', '4185']
985
- it_splits '299691123', ['299', '691', '123']
986
- end
987
- describe 'Guadeloupe (French Department of)' do
988
- it_splits '590590456789', %w(590 590 45 67 89)
989
- end
990
- describe 'Guatemala (Republic of)' do
991
- it_splits '50219123456789', ['502', '19', '123', '456', '789']
992
- it_splits '50221234567', ['502', '2', '123', '4567']
993
- end
994
- describe 'Guinea' do
995
- it_splits '22430311234', ['224', '3031', '12', '34']
996
- it_splits '224662123456', ['224', '662', '12', '34', '56']
997
- end
998
- describe 'Guinea-Bissau' do
999
- it_splits '245443837652', ['245', false, '44', '383', '7652']
1000
- end
1001
- describe 'Guyana' do
1002
- it_splits '5922631234', %w(592 263 1234)
1003
- end
1004
- describe 'Honduras (Republic of)' do
1005
- it_splits '50412961637', %w(504 12 961 637)
1006
- end
1007
- describe 'Iraq' do
1008
- it_splits '96411234567', %w(964 1 123 4567)
1009
- it_splits '96421113456', %w(964 21 113 456)
1010
- it_splits '9647112345678', %w(964 71 1234 5678)
1011
- end
1012
- describe 'Jordan (Hashemite Kingdom of)' do
1013
- it_splits '96280012345', %w(962 800 123 45)
1014
- it_splits '96226201234', %w(962 2 620 1234)
1015
- it_splits '962712345678', %w(962 7 1234 5678)
1016
- it_splits '962746612345', %w(962 7 4661 2345)
1017
- it_splits '96290012345', %w(962 900 123 45)
1018
- it_splits '96285123456', %w(962 85 123 456)
1019
- it_splits '96270123456', %w(962 70 123 456)
1020
- it_splits '96262501456', %w(962 6250 1456)
1021
- it_splits '96287901456', %w(962 8790 1456)
1022
- end
1023
- describe 'Kiribati (Republic of)' do
1024
- it_splits '68634814527', ['686', false, '34814527']
1025
- end
1026
- describe "Democratic People's Republic of Korea" do
1027
- it_splits '850212345', %w(850 2 123 45)
1028
- it_splits '8502123456789', %w(850 2 123 456 789)
1029
- it_splits '85023812356', %w(850 2 381 2356)
1030
- #it_splits '85028801123456781256', %w(850 2 8801 1234 5678 1256)
1031
- it_splits '8501911234567', %w(850 191 123 4567)
1032
- end
1033
- describe 'Kuwait (State of)' do
1034
- it_splits '96523456789', ['965', false, '2345', '6789']
1035
- it_splits '9651812345', ['965', false, '181', '2345']
1036
- end
1037
- describe "Lao People's Democratic Republic" do
1038
- it_splits '85697831195', %w(856 97 831 195)
1039
- end
1040
- describe 'Latvia' do
1041
- it_splits '37180123456', %w(371 801 234 56)
1042
- it_splits '37163723456', %w(371 637 234 56)
1043
- it_splits '37129412345', %w(371 294 123 45)
1044
- end
1045
- describe 'Lebanon' do
1046
- it_splits '9611123456', %w(961 1 123 456)
1047
- it_splits '9614123456', %w(961 4 123 456)
1048
- it_splits '9613123456', %w(961 3 123 456)
1049
- it_splits '96170123456', %w(961 70 123 456)
1050
- it_splits '96190123456', %w(961 90 123 456)
1051
- it_splits '96181123456', %w(961 81 123 456)
1052
- end
1053
- describe 'Lesotho' do
1054
- it_splits '26623592495', ['266', false, '2359', '2495']
1055
- end
1056
- describe 'Liberia' do
1057
- it_splits '23121234567', ['231', false, '2123', '4567']
1058
- it_splits '2314123456', ['231', false, '4123', '456']
1059
- it_splits '231771234567', ['231', false, '77', '123', '4567']
1060
- end
1061
- describe 'Libya' do
1062
- it_splits '21820512345', %w(218 205 123 45)
1063
- it_splits '21822123456', %w(218 22 123 456)
1064
- it_splits '218211234456', %w(218 21 1234 456)
1065
- it_splits '218911234456', %w(218 91 1234 456)
1066
- it_splits '218941234456', %w(218 94 1234 456)
1067
- it_splits '218951234456', %w(218 95 1234 456)
1068
- end
1069
- describe 'Madagascar' do
1070
- it_splits '261202254716', ['261', '20', *%w(22 547 16)]
1071
- it_splits '261320254716', ['261', '32', *%w(02 547 16)]
1072
- it_splits '261330254716', ['261', '33', *%w(02 547 16)]
1073
- it_splits '261340254716', ['261', '34', *%w(02 547 16)]
1074
- end
1075
- describe 'Malawi' do
1076
- it_splits '2651725123', ['265', false, '1725', '123']
1077
- it_splits '265213456789',[ '265', false, '213', '456', '789']
1078
- it_splits '2659123456', ['265', false, '9123', '456']
1079
- it_splits '265991123456', ['265', false, '991', '123', '456']
1080
- end
1081
- describe 'Maldives (Republic of)' do
1082
- it_splits '9606568279', ['960', '656', '8279']
1083
- end
1084
- describe 'Mali' do
1085
- it_splits '22379249349', ['223', false, '7924', '9349']
1086
- end
1087
- describe 'Marshall Islands (Republic of the)' do
1088
- it_splits '6924226536', ['692', false, '422', '6536']
1089
- end
1090
- describe 'Martinique (French Department of)' do
1091
- it_splits '596596123456', %w(596 596 12 34 56)
1092
- end
1093
- describe 'Mauritania' do
1094
- it_splits '22212345678', ['222', false, '1234', '5678']
1095
- end
1096
- describe 'Mauritius' do
1097
- it_splits '23059518919', ['230', false, '5', '951', '8919']
1098
- it_splits '2302600070', ['230', false, '260', '0070']
1099
- end
1100
- describe 'Micronesia (Federated States of)' do
1101
- it_splits '6911991754', ['691', false, '199', '1754']
1102
- end
1103
- describe 'Moldova' do
1104
- it_splits '37380012345', %w(373 800 123 45)
1105
- it_splits '37322123345', %w(373 22 123 345)
1106
- it_splits '37324112345', %w(373 241 123 45)
1107
- it_splits '37360512345', %w(373 605 123 45)
1108
- it_splits '37380312345', %w(373 803 123 45)
1109
- end
1110
- describe 'Mongolia' do
1111
- it_splits '9761112345', %w(976 11 123 45)
1112
- it_splits '9761211234', %w(976 121 12 34)
1113
- it_splits '97612112345', %w(976 121 12 345)
1114
- it_splits '97670123456', %w(976 70 123 456)
1115
- it_splits '97675123456', %w(976 75 123 456)
1116
- it_splits '97688123456', %w(976 88 123 456)
1117
- it_splits '97650123456', %w(976 50 123 456)
1118
- end
1119
- describe 'Mozambique' do
1120
- it_splits '258600123456', %w(258 600 123 456)
1121
- it_splits '25825112345', %w(258 251 123 45)
1122
- it_splits '258821234456', %w(258 82 1234 456)
1123
- it_splits '258712344567', %w(258 7 1234 4567)
1124
- end
1125
- describe 'Namibia' do
1126
- it_splits '264675161324', %w(264 6751 613 24)
1127
- it_splits '26467175890', %w(264 67 175 890)
1128
- it_splits '26463088612345', %w(264 63 088 612 345)
1129
- it_splits '264851234567', %w(264 85 1234 567)
1130
- end
1131
- describe 'Nauru (Republic of)' do
1132
- it_splits '6741288739', ['674', false, '128', '8739']
1133
- end
1134
- describe 'Nepal' do
1135
- it_splits '97714345678', %w(977 1 434 5678)
1136
- it_splits '97710123456', %w(977 10 123 456)
1137
- it_splits '9779812345678', %w(977 98 1234 5678)
1138
- end
1139
- describe "New Caledonia (Territoire français d'outre-mer)" do
1140
- it_splits '687747184', ['687', false, '747', '184']
1141
- end
1142
- describe 'Nicaragua' do
1143
- it_splits '50512345678', ['505', '12', '345', '678']
1144
- end
1145
- describe 'Niger' do
1146
- it_splits '22712345678', ['227', false, '1234', '5678']
1147
- end
1148
- describe 'Nigeria' do
1149
- it_splits '23411231234', %w(234 1 123 1234) # Lagos
1150
-
1151
- it_splits '23445123456', %w(234 45 123 456) # Ogoja
1152
-
1153
- # mobile numbers
1154
- it_splits '2347007661234', %w(234 700 766 1234)
1155
- it_splits '2347017661234', %w(234 701 766 1234)
1156
- it_splits '2347027661234', %w(234 702 766 1234)
1157
- it_splits '2347037661234', %w(234 703 766 1234)
1158
- it_splits '2347047661234', %w(234 704 766 1234)
1159
- it_splits '2347057661234', %w(234 705 766 1234)
1160
- it_splits '2347067661234', %w(234 706 766 1234)
1161
- it_splits '2347077661234', %w(234 707 766 1234)
1162
- it_splits '2347087661234', %w(234 708 766 1234)
1163
- it_splits '2347097661234', %w(234 709 766 1234)
1164
-
1165
- it_splits '2348007661234', %w(234 800 766 1234)
1166
- it_splits '2348017661234', %w(234 801 766 1234)
1167
- it_splits '2348027661234', %w(234 802 766 1234)
1168
- it_splits '2348037661234', %w(234 803 766 1234)
1169
- it_splits '2348047661234', %w(234 804 766 1234)
1170
- it_splits '2348057661234', %w(234 805 766 1234)
1171
- it_splits '2348067661234', %w(234 806 766 1234)
1172
- it_splits '2348077661234', %w(234 807 766 1234)
1173
- it_splits '2348087661234', %w(234 808 766 1234)
1174
- it_splits '2348097661234', %w(234 809 766 1234)
1175
-
1176
- it_splits '2349007661234', %w(234 900 766 1234)
1177
- it_splits '2349017661234', %w(234 901 766 1234)
1178
- it_splits '2349027661234', %w(234 902 766 1234)
1179
- it_splits '2349037661234', %w(234 903 766 1234)
1180
- it_splits '2349047661234', %w(234 904 766 1234)
1181
- it_splits '2349057661234', %w(234 905 766 1234)
1182
- it_splits '2349067661234', %w(234 906 766 1234)
1183
- it_splits '2349077661234', %w(234 907 766 1234)
1184
- it_splits '2349087661234', %w(234 908 766 1234)
1185
- it_splits '2349097661234', %w(234 909 766 1234)
1186
-
1187
- it_splits '2349107661234', %w(234 910 766 1234)
1188
- it_splits '2349117661234', %w(234 911 766 1234)
1189
- it_splits '2349127661234', %w(234 912 766 1234)
1190
- it_splits '2349137661234', %w(234 913 766 1234)
1191
- it_splits '2349147661234', %w(234 914 766 1234)
1192
- it_splits '2349157661234', %w(234 915 766 1234)
1193
- it_splits '2349167661234', %w(234 916 766 1234)
1194
- it_splits '2349177661234', %w(234 917 766 1234)
1195
- it_splits '2349187661234', %w(234 918 766 1234)
1196
- it_splits '2349197661234', %w(234 919 766 1234)
1197
-
1198
- it_splits '2348107661234', %w(234 810 766 1234)
1199
- it_splits '2348117661234', %w(234 811 766 1234)
1200
- it_splits '2348127661234', %w(234 812 766 1234)
1201
- it_splits '2348137661234', %w(234 813 766 1234)
1202
- it_splits '2348147661234', %w(234 814 766 1234)
1203
- it_splits '2348157661234', %w(234 815 766 1234)
1204
- it_splits '2348167661234', %w(234 816 766 1234)
1205
- it_splits '2348177661234', %w(234 817 766 1234)
1206
- it_splits '2348187661234', %w(234 818 766 1234)
1207
- it_splits '2348197661234', %w(234 819 766 1234)
1208
- end
1209
- describe 'Niue' do
1210
- it_splits '6833651', ['683', false, '3651']
1211
- end
1212
- describe 'Palau (Republic of)' do
1213
- it_splits '6804873653', ['680', false, '487', '3653']
1214
- end
1215
- describe 'Panama (Republic of)' do
1216
- it_splits '5078001234', %w(507 800 1234)
1217
- it_splits '50761234567', %w(507 6 123 4567)
1218
- it_splits '5072123456', %w(507 2 123 456)
1219
- end
1220
- describe 'Papua New Guinea' do
1221
- it_splits '6753123567', %w(675 3 123 567)
1222
- it_splits '6751801234', %w(675 180 1234)
1223
- it_splits '67580123456', %w(675 80 123 456)
1224
- it_splits '67591123456', %w(675 91 123 456)
1225
- it_splits '6751612345', %w(675 16 123 45)
1226
- it_splits '67518412345678', %w(675 184 1234 5678)
1227
- it_splits '67517012', %w(675 170 12)
1228
- it_splits '6751891', %w(675 189 1)
1229
- it_splits '6752701234', %w(675 270 1234)
1230
- it_splits '6752751234', %w(675 275 1234)
1231
- it_splits '67527912', %w(675 279 12)
1232
- it_splits '67511512345678', %w(675 115 1234 5678)
1233
- it_splits '67574123456', %w(675 74 123 456)
1234
- it_splits '67573123456', %w(675 731 23 456)
1235
- it_splits '67577301234', %w(675 7730 1 234)
1236
- end
1237
- describe 'Reunion / Mayotte (new)' do
1238
- it_splits '262594399265', ['262', '594', '39', '92', '65']
1239
- end
1240
- describe 'Saint Helena' do
1241
- it_splits '2903614', ['290', false, '3614']
1242
- end
1243
- describe 'Saint Pierre and Miquelon (Collectivité territoriale de la République française)' do
1244
- it_splits '508418826', ['508', false, '418', '826']
1245
- end
1246
- describe 'Samoa (Independent State of)' do
1247
- it_splits '685800123', ['685', false, '800', '123']
1248
- it_splits '68561123', ['685', false, '61', '123']
1249
- it_splits '6857112345', ['685', false, '711', '2345']
1250
- it_splits '6857212345', ['685', false, '721', '2345']
1251
- it_splits '685830123', ['685', false, '830', '123']
1252
- it_splits '685601234', ['685', false, '601', '234']
1253
- it_splits '6858412345', ['685', false, '841', '2345']
1254
- end
1255
- describe 'San Marino' do
1256
- it_splits '378800123', ['378', false, '800', '123']
1257
- it_splits '3788001234567', ['378', false, '800', '123', '4567']
1258
- it_splits '378012345', ['378', false, '012', '345']
1259
- it_splits '3780123456789', ['378', false, '012', '345', '6789']
1260
- it_splits '378512345', ['378', false, '512', '345']
1261
- it_splits '3785123456789', ['378', false, '512', '345', '6789']
1262
- end
1263
- describe 'Saudi Arabia (Kingdom of)' do
1264
- it_splits '9660208528423', %w(966 020 852 8423) # Fixed
1265
- it_splits '966506306201', %w(966 50 630 6201) # NDC Mobile
1266
- it_splits '966112345678', %w(966 11 234 5678) # NDC Region
1267
- it_splits '9668001234567', %w(966 800 123 4567) # Toll Free
1268
- it_splits '966920012345', %w(966 9200 12345) # Univeral Access
1269
- end
1270
- describe 'Senegal' do
1271
- it_splits '221123456789', ['221', false, '1234', '56789']
1272
- end
1273
- describe 'Serbia' do
1274
- it_splits '38180012345', %w(381 800 123 45)
1275
- it_splits '3811012345', %w(381 10 123 45)
1276
- it_splits '38110123456', %w(381 10 123 456)
1277
- it_splits '38111123456', %w(381 11 123 456)
1278
- it_splits '381111234567', %w(381 11 123 4567)
1279
- it_splits '381721234567', %w(381 72 123 4567)
1280
- it_splits '38160123', %w(381 60 123)
1281
- it_splits '381601234567', %w(381 60 123 4567)
1282
- it_splits '38142123456', %w(381 42 123 456)
1283
- it_splits '38191234567', %w(381 9 123 4567)
1284
- it_splits '38160123', %w(381 60 123)
1285
- it_splits '381601234567890', %w(381 60 123 456 7890)
1286
- it_splits '38170123456', %w(381 70 123 456)
1287
- it_splits '38163123456', %w(381 63 123 456)
1288
- end
1289
- describe 'Sierra Leone' do
1290
- it_splits '23264629769', %w(232 64 629 769)
1291
- end
1292
- describe 'Solomon Islands' do
1293
- it_splits '67754692', ['677', false, '54', '692']
1294
- it_splits '6777546921', ['677', false, '7546', '921']
1295
- end
1296
- describe 'Somalia' do
1297
- it_splits '252103412345', %w(252 1034 123 45)
1298
- it_splits '2521313123', %w(252 1313 123)
1299
- it_splits '2521601234', %w(252 160 12 34)
1300
- it_splits '25250012345', %w(252 500 123 45)
1301
- it_splits '252612345678', %w(252 61 234 5678) # Hormuud
1302
- it_splits '252622345678', %w(252 62 234 5678) # Somtel Mogadishu
1303
- it_splits '252634000613', %w(252 63 400 0613) # Telesom
1304
- it_splits '252642345678', %w(252 64 234 5678) # Hormuud
1305
- it_splits '252652345678', %w(252 65 234 5678) # Somtel
1306
- it_splits '252662345678', %w(252 66 234 5678) # Somtel Puntland
1307
- it_splits '252672345678', %w(252 67 234 5678) # Nationlink Mogadishu
1308
- it_splits '252682345678', %w(252 68 234 5678) # Nationlink Mogadishu
1309
- it_splits '252692345678', %w(252 69 234 5678) # Nationlink
1310
- it_splits '252902345678', %w(252 90 234 5678) # Golis
1311
- end
1312
-
1313
- describe 'Suriname (Republic of)' do
1314
- it_splits '597958434', ['597', false, '958', '434']
1315
-
1316
- it_splits '597212345', ['597', false, '212', '345']
1317
- it_splits '5976123456', ['597', false, '612', '3456']
1318
- end
1319
- describe 'Swaziland' do
1320
- it_splits '26822071234', ['268', false, '2207', '1234']
1321
- it_splits '2685501234', ['268', false, '550', '1234']
1322
- end
1323
- describe 'Syrian Arab Republic' do
1324
- it_splits '963111234567', %w(963 11 123 4567)
1325
- it_splits '963311234567', %w(963 31 123 4567)
1326
- it_splits '96315731234', %w(963 15 731 234)
1327
- it_splits '963912345678', %w(963 9 1234 5678)
1328
- end
1329
- describe 'Taiwan' do
1330
- it_splits '886212345678', %w(886 2 1234 5678)
1331
- it_splits '88631234567', %w(886 3 123 4567)
1332
- it_splits '88651234567', %w(886 5 123 4567)
1333
- it_splits '88661234567', %w(886 6 123 4567)
1334
- it_splits '88671234567', %w(886 7 123 4567)
1335
- it_splits '88633123456', %w(886 3 312 3456)
1336
- it_splits '88637123456', %w(886 37 12 3456)
1337
- it_splits '88682712345', %w(886 82 71 2345)
1338
- it_splits '886801123123', %w(886 801 123 123)
1339
- it_splits '88689712345', %w(886 89 71 2345)
1340
- it_splits '88682672345', %w(886 826 7 2345)
1341
- it_splits '88683672345', %w(886 836 7 2345)
1342
- it_splits '88641212345', %w(886 4 121 2345)
1343
- it_splits '886412123456', %w(886 4 1212 3456)
1344
- it_splits '886491234567', %w(886 49 123 4567)
1345
- it_splits '886901234567', %w(886 901 234 567)
1346
- end
1347
- describe 'Togolese Republic' do
1348
- it_splits '22812345678', ['228', false, '1234', '5678']
1349
- end
1350
- describe 'Tajikistan' do
1351
- it_splits '992313012345', %w(992 3130 123 45)
1352
- it_splits '992331700123', %w(992 331700 123)
1353
- it_splits '992372123345', %w(992 372 123 345)
1354
- it_splits '992505123456', %w(992 505 123 456)
1355
- it_splits '992973123456', %w(992 973 123 456)
1356
- it_splits '992474456123', %w(992 474 456 123)
1357
- end
1358
- describe 'Tokelau' do
1359
- it_splits '6901371', %w(690 1 371)
1360
- end
1361
- describe 'Tonga (Kingdom of)' do
1362
- it_splits '67620123', ['676', false, '20', '123']
1363
- it_splits '67684123', ['676', false, '84', '123']
1364
- it_splits '6767712345', ['676', false, '77', '123', '45']
1365
- it_splits '6768912345', ['676', false, '89', '123', '45']
1366
- end
1367
- describe 'Tuvalu' do
1368
- it_splits '68893741', ['688', false, '93741']
1369
- end
1370
- describe 'Turkmenistan' do
1371
- it_splits '99312456789', %w(993 12 456 789)
1372
- it_splits '99313145678', %w(993 131 456 78)
1373
- it_splits '99313924567', %w(993 1392 4567)
1374
- it_splits '99361234567', %w(993 6 123 4567)
1375
- end
1376
- describe 'Ukraine' do
1377
- it_splits '380800123456', %w(380 800 123 456)
1378
- it_splits '380312123456', %w(380 312 123 456)
1379
- it_splits '380320123456', %w(380 32 0123 456)
1380
- it_splits '380325912345', %w(380 3259 123 45)
1381
- it_splits '380326061234', %w(380 32606 1234)
1382
- it_splits '380391234567', %w(380 39 123 45 67)
1383
- it_splits '380501234567', %w(380 50 123 45 67)
1384
- it_splits '380631234567', %w(380 63 123 45 67)
1385
- it_splits '380661234567', %w(380 66 123 45 67)
1386
- it_splits '380671234567', %w(380 67 123 45 67)
1387
- it_splits '380681234567', %w(380 68 123 45 67)
1388
- it_splits '380911234567', %w(380 91 123 45 67)
1389
- it_splits '380921234567', %w(380 92 123 45 67)
1390
- it_splits '380931234567', %w(380 93 123 45 67)
1391
- it_splits '380731234567', %w(380 73 123 45 67)
1392
- it_splits '380941234567', %w(380 94 123 45 67)
1393
- it_splits '380951234567', %w(380 95 123 45 67)
1394
- it_splits '380961234567', %w(380 96 123 45 67)
1395
- it_splits '380971234567', %w(380 97 123 45 67)
1396
- it_splits '380981234567', %w(380 98 123 45 67)
1397
- it_splits '380991234567', %w(380 99 123 45 67)
1398
- end
1399
- describe 'United Arab Emirates' do
1400
- it_splits '97180012', %w(971 800 12)
1401
- it_splits '971800123456789', %w(971 800 12 345 6789)
1402
- it_splits '97180012345678', %w(971 800 12 345 678)
1403
- it_splits '9718001234567', %w(971 800 12 345 67)
1404
- it_splits '97121234567', %w(971 2 123 4567)
1405
- it_splits '971506412345', %w(971 50 641 2345)
1406
- it_splits '971600641234', %w(971 600 641 234)
1407
- it_splits '971500641234', %w(971 500 641 234)
1408
- it_splits '971200641234', %w(971 200 641 234)
1409
- it_splits '971549999999', %w(971 54 999 9999)
1410
- it_splits '971589999999', %w(971 58 999 9999)
1411
- end
1412
- describe 'Uruguay (Eastern Republic of)' do
1413
- it_splits '59880012345', %w(598 800 123 45)
1414
- it_splits '59820123456', %w(598 2 012 3456)
1415
- it_splits '59821123456', %w(598 21 123 456)
1416
- it_splits '59890912345', %w(598 909 123 45)
1417
- it_splits '59893123456', %w(598 93 123 456)
1418
- it_splits '59890812345', %w(598 908 123 45)
1419
- it_splits '59880512345', %w(598 805 123 45)
1420
- end
1421
- describe 'Uzbekistan (Republic of)' do
1422
- it_splits '998433527869', %w(998 43 352 7869)
1423
- end
1424
- describe 'Vanuatu (Republic of)' do
1425
- it_splits '67889683', ['678', false, '89', '683']
1426
- end
1427
- describe 'Yemen' do
1428
- it_splits '9671234567', %w(967 1 234 567)
1429
- it_splits '96712345678', %w(967 1 234 5678)
1430
- it_splits '9677234567', %w(967 7 234 567)
1431
- it_splits '967771234567', %w(967 77 123 4567)
1432
- it_splits '967581234', %w(967 58 1234)
1433
- end
1434
- describe 'Zimbabwe' do
1435
- it_splits '2632582123456', %w(263 2582 123 456)
1436
- it_splits '2632582123', %w(263 2582 123)
1437
- it_splits '263147123456', %w(263 147 123 456)
1438
- it_splits '263147123', %w(263 147 123)
1439
- it_splits '263270123456', %w(263 270 123 456)
1440
- it_splits '26327012345', %w(263 270 123 45)
1441
- it_splits '2638612354567', %w(263 86 1235 4567)
1442
-
1443
- # mobile numbers (see http://www.itu.int/dms_pub/itu-t/oth/02/02/T02020000E90002PDFE.pdf, Table 4, Page 25)
1444
- %w(71 73 77 78).each do |prefix|
1445
- number = "263#{prefix}2345678"
1446
- it_splits number, ['263', prefix, '234', '5678']
1447
- end
1448
- end
1449
-
1450
- describe 'Universal International Freephone' do
1451
- it_splits '80012345678', ['800', false, '12345678']
1452
- end
1453
-
1454
- describe 'Shared-Cost Service' do
1455
- it_splits '80812345678', ['808', false, '12345678']
1456
- end
1457
- end
1458
-
1459
- end