phony 1.9.0 → 2.19.14
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/README.textile +64 -112
- data/lib/phony/config.rb +91 -0
- data/lib/phony/countries/argentina.rb +355 -0
- data/lib/phony/countries/austria.rb +56 -22
- data/lib/phony/countries/bangladesh.rb +57 -0
- data/lib/phony/countries/belarus.rb +133 -0
- data/lib/phony/countries/brazil.rb +101 -95
- data/lib/phony/countries/cambodia.rb +131 -0
- data/lib/phony/countries/china.rb +13 -6
- data/lib/phony/countries/croatia.rb +23 -0
- data/lib/phony/countries/georgia.rb +94 -0
- data/lib/phony/countries/germany.rb +66 -42
- data/lib/phony/countries/guinea.rb +46 -0
- data/lib/phony/countries/india.rb +50 -0
- data/lib/phony/countries/indonesia.rb +55 -0
- data/lib/phony/countries/ireland.rb +35 -28
- data/lib/phony/countries/italy.rb +272 -166
- data/lib/phony/countries/japan.rb +468 -0
- data/lib/phony/countries/kyrgyzstan.rb +120 -0
- data/lib/phony/countries/latvia.rb +43 -0
- data/lib/phony/countries/libya.rb +116 -0
- data/lib/phony/countries/malaysia.rb +31 -7
- data/lib/phony/countries/moldova.rb +53 -0
- data/lib/phony/countries/montenegro.rb +30 -0
- data/lib/phony/countries/myanmar.rb +55 -0
- data/lib/phony/countries/namibia.rb +37 -0
- data/lib/phony/countries/nepal.rb +73 -0
- data/lib/phony/countries/netherlands.rb +17 -5
- data/lib/phony/countries/pakistan.rb +121 -0
- data/lib/phony/countries/paraguay.rb +147 -0
- data/lib/phony/countries/{russia_kazakhstan_abhasia_south_osetia.rb → russia_kazakhstan_abkhasia_south_ossetia.rb} +35 -24
- data/lib/phony/countries/saudi_arabia.rb +40 -0
- data/lib/phony/countries/serbia.rb +47 -0
- data/lib/phony/countries/somalia.rb +26 -0
- data/lib/phony/countries/south_korea.rb +19 -10
- data/lib/phony/countries/sweden.rb +58 -38
- data/lib/phony/countries/taiwan.rb +28 -0
- data/lib/phony/countries/tajikistan.rb +79 -0
- data/lib/phony/countries/turkmenistan.rb +76 -0
- data/lib/phony/countries/ukraine.rb +630 -0
- data/lib/phony/countries/united_kingdom.rb +639 -44
- data/lib/phony/countries/uruguay.rb +53 -0
- data/lib/phony/countries/vietnam.rb +133 -0
- data/lib/phony/countries/zimbabwe.rb +39 -0
- data/lib/phony/countries.rb +901 -301
- data/lib/phony/country.rb +177 -20
- data/lib/phony/country_codes.rb +119 -101
- data/lib/phony/dsl.rb +113 -68
- data/lib/phony/local_splitters/fixed.rb +25 -1
- data/lib/phony/local_splitters/regex.rb +16 -2
- data/lib/phony/national_code.rb +7 -7
- data/lib/phony/national_splitters/default.rb +35 -3
- data/lib/phony/national_splitters/dsl.rb +12 -7
- data/lib/phony/national_splitters/fixed.rb +7 -1
- data/lib/phony/national_splitters/none.rb +7 -3
- data/lib/phony/national_splitters/regex.rb +6 -0
- data/lib/phony/national_splitters/variable.rb +13 -9
- data/lib/phony/trunk_code.rb +57 -0
- data/lib/phony/vanity.rb +3 -3
- data/lib/phony.rb +239 -55
- data/spec/functional/config_spec.rb +44 -0
- data/spec/functional/plausibility_spec.rb +656 -0
- data/spec/lib/phony/countries_spec.rb +1207 -119
- data/spec/lib/phony/country_codes_spec.rb +99 -81
- data/spec/lib/phony/country_spec.rb +54 -14
- data/spec/lib/phony/dsl_spec.rb +2 -2
- data/spec/lib/phony/local_splitters/fixed_spec.rb +4 -4
- data/spec/lib/phony/local_splitters/regex_spec.rb +50 -2
- data/spec/lib/phony/national_code_spec.rb +34 -34
- data/spec/lib/phony/national_splitters/default_spec.rb +34 -0
- data/spec/lib/phony/national_splitters/fixed_spec.rb +12 -6
- data/spec/lib/phony/national_splitters/none_spec.rb +13 -3
- data/spec/lib/phony/national_splitters/regex_spec.rb +1 -1
- data/spec/lib/phony/national_splitters/variable_spec.rb +11 -5
- data/spec/lib/phony/trunk_code_spec.rb +85 -0
- data/spec/lib/phony/vanity_spec.rb +15 -19
- data/spec/lib/phony_spec.rb +59 -277
- metadata +67 -34
- data/lib/phony/validator.rb +0 -26
- data/lib/phony/validators.rb +0 -88
- data/spec/lib/phony/validations_spec.rb +0 -109
@@ -8,54 +8,211 @@ describe 'country descriptions' do
|
|
8
8
|
it { Phony.split(number).should == expected }
|
9
9
|
end
|
10
10
|
|
11
|
+
describe 'regression' do
|
12
|
+
it_splits '33630588659', ["33", "6", "30", "58", "86", "59"]
|
13
|
+
end
|
14
|
+
|
11
15
|
describe 'splitting' do
|
12
16
|
describe 'Ascension Island' do
|
13
17
|
it_splits '2473551', ['247', false, '3551']
|
14
18
|
end
|
19
|
+
|
15
20
|
describe 'Afghanistan' do
|
16
21
|
it_splits '93201234567', ['93', '20', '1234567'] # Kabul
|
17
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
|
+
|
18
30
|
describe 'Algeria' do
|
19
31
|
it_splits '213211231234', ['213', '21', '123', '1234'] # Algiers
|
20
32
|
it_splits '213331231234', ['213', '33', '123', '1234'] # Batna
|
21
33
|
end
|
34
|
+
|
22
35
|
describe 'Argentina' do
|
23
|
-
it_splits '541112345678', ['54', '11', '1234', '5678']
|
24
|
-
it_splits '542911234567', ['54', '291', '123', '4567']
|
25
|
-
it_splits '
|
26
|
-
it_splits '5491112345678', ['54', '911', '1234', '5678']
|
27
|
-
it_splits '5492201234567', ['54', '9220', '123', '4567']
|
28
|
-
it_splits '5492221123456', ['54', '92221', '12', '3456']
|
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
|
29
43
|
end
|
44
|
+
|
30
45
|
describe 'Austria' do
|
31
|
-
it_splits '43198110',
|
32
|
-
it_splits '
|
33
|
-
it_splits '
|
34
|
-
it_splits '
|
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 )
|
35
64
|
end
|
65
|
+
|
36
66
|
describe 'Australia' do
|
37
67
|
it_splits '61512341234', ['61', '5', '1234', '1234'] # Landline
|
38
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']
|
39
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
|
+
|
40
99
|
describe 'Belgium' do
|
41
|
-
it_splits '3235551212', ['32', '3', '555', '
|
42
|
-
it_splits '
|
43
|
-
it_splits '3225551212', ['32', '2', '555', '
|
44
|
-
it_splits '3295551914', ['32', '9', '555', '
|
45
|
-
it_splits '3245551414', ['32', '4', '555', '
|
46
|
-
it_splits '3216473200', ['32', '16', '
|
47
|
-
it_splits '
|
48
|
-
it_splits '
|
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']
|
49
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
|
+
|
50
149
|
describe 'Brazil' do
|
51
150
|
it_splits '551112341234', ['55', '11', '1234', '1234']
|
52
|
-
it_splits '5511981231234', ['55', '11', '
|
151
|
+
it_splits '5511981231234', ['55', '11', '98123', '1234'] # São Paulo's 9 digits mobile
|
152
|
+
it_splits '552181231234', ['55', '21', '8123', '1234']
|
153
|
+
it_splits '5521981231234', ['55', '21', '98123', '1234'] # Rio de Janeiro's 9 digits mobile
|
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
|
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']
|
53
210
|
end
|
54
211
|
describe 'Cambodia' do
|
55
212
|
it_splits '85512236142', ["855", "12", "236", "142"] # mobile (Mobitel)
|
56
213
|
it_splits '855977100872', ["855", "97", "710", "0872"] # mobile (Metfone)
|
57
214
|
it_splits '855234601183', ["855", "23", "460", "1183"] # Long fixed line (Phnom Penh)
|
58
|
-
it_splits '
|
215
|
+
it_splits '85533234567', ["855", "33", "234", "567"] # Regular fixed line (Kampot)
|
59
216
|
end
|
60
217
|
describe 'Chile' do
|
61
218
|
it_splits '5621234567', ['56', '2', '1234567'] # Santiago
|
@@ -66,10 +223,35 @@ describe 'country descriptions' do
|
|
66
223
|
describe 'China' do
|
67
224
|
it_splits '862112345678', ['86', '21', '1234', '5678'] # Shanghai
|
68
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
|
69
245
|
end
|
70
246
|
describe 'Croatia' do
|
71
|
-
it_splits '
|
72
|
-
it_splits '
|
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
|
73
255
|
end
|
74
256
|
describe 'Cuba' do
|
75
257
|
it_splits '5351231234', ['53', '5123', '1234'] # Mobile
|
@@ -89,33 +271,54 @@ describe 'country descriptions' do
|
|
89
271
|
it_splits '20921234567', ['20', '92', '1234567']
|
90
272
|
it_splits '20951234567', ['20', '95', '1234567']
|
91
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
|
92
278
|
describe 'Estonia' do
|
93
279
|
it_splits '3723212345', ['372', '321', '2345'] # Landline
|
94
280
|
it_splits '37251231234', ['372', '5123', '1234'] # Mobile
|
95
281
|
it_splits '3728001234', ['372', '800', '1234'] # Freephone
|
96
282
|
it_splits '37281231234', ['372', '8123', '1234'] # Mobile
|
97
283
|
it_splits '37282231234', ['372', '8223', '1234'] # Mobile
|
98
|
-
it_splits '
|
284
|
+
it_splits '37252212345', ['372', '5221', '2345'] # Mobile
|
285
|
+
it_splits '3725221234', ['372', '5221', '234'] # Mobile
|
286
|
+
it_splits '37270121234', ['372', '7012', '1234'] # Premium
|
99
287
|
end
|
100
288
|
describe 'Finland' do
|
101
289
|
it_splits '3589123123', ['358', '9', '123', '123'] # Helsinki
|
102
290
|
it_splits '3581912312', ['358', '19', '123', '12'] # Nylandia
|
103
291
|
it_splits '3585012312', ['358', '50', '123', '12'] # Mobile
|
104
|
-
it_splits '
|
292
|
+
it_splits '35860012345', ['358', '6001', '23', '45'] # Service
|
105
293
|
end
|
106
294
|
describe 'France' do
|
107
295
|
it_splits '33112345678', ['33', '1', '12','34','56','78'] # Paris
|
108
296
|
it_splits '33812345678', ['33', '8', '12','34','56','78'] # Service number
|
109
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
|
110
304
|
describe 'Germany' do
|
111
|
-
it_splits '493038625454',
|
112
|
-
it_splits '4932221764542',
|
113
|
-
it_splits '4922137683323',
|
114
|
-
it_splits '497614767676',
|
115
|
-
it_splits '4921535100',
|
116
|
-
it_splits '493434144602',
|
117
|
-
|
118
|
-
it_splits '
|
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
|
119
322
|
end
|
120
323
|
describe 'Ghana' do
|
121
324
|
it_splits '233302123456', ['233', '30', '212', '3456'] # Mobile Vodafone, Accra
|
@@ -132,12 +335,28 @@ describe 'country descriptions' do
|
|
132
335
|
it_splits '3508012', ['350', '8012', '' ] # Freephone
|
133
336
|
end
|
134
337
|
describe 'Greece' do
|
135
|
-
it_splits '
|
136
|
-
it_splits '
|
137
|
-
it_splits '
|
138
|
-
it_splits '
|
139
|
-
it_splits '
|
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
|
140
358
|
end
|
359
|
+
|
141
360
|
describe 'Hungary' do
|
142
361
|
it_splits'3612345678', ['36', '1', '234', '5678']
|
143
362
|
it_splits'3622123456', ['36', '22', '123', '456']
|
@@ -149,29 +368,147 @@ describe 'country descriptions' do
|
|
149
368
|
it_splits '3545511234', ['354', false, '551', '1234'] # Reykjavík
|
150
369
|
end
|
151
370
|
describe 'Indonesia' do
|
152
|
-
it_splits '6242323032', [
|
153
|
-
it_splits '6285220119289', ['62', '852', '
|
154
|
-
it_splits '62217815263',
|
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
|
155
422
|
end
|
423
|
+
|
156
424
|
describe 'Ireland' do
|
157
425
|
it_splits '35311234567', ['353', '1', '123', '4567'] # Dublin, 7 digit subscriber #
|
426
|
+
it_splits '353539233333', ['353', '53', '923', '3333'] # Wexford, 7 digit subscriber
|
158
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 #
|
159
429
|
it_splits '35345123456', ['353', '45', '123456'] # Naas, 6 digit subscriber #
|
160
430
|
it_splits '353801234567', ['353', '80', '123', '4567'] # Mobile
|
161
431
|
it_splits '353761234567', ['353', '76', '123', '4567'] # VoIP
|
162
432
|
it_splits '353800123456', ['353', '800', '123456'] # Freefone
|
163
433
|
it_splits '353000123456', ['353', '000', '123456'] # Default fixed 3 split for unrecognized
|
164
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
|
165
457
|
describe 'Italy' do
|
166
|
-
it_splits '
|
167
|
-
it_splits '
|
168
|
-
it_splits '
|
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
|
169
492
|
end
|
170
493
|
describe 'Kenya' do
|
171
494
|
it_splits '254201234567', ['254', '20', '1234567'] # Nairobi
|
172
495
|
it_splits '254111234567', ['254', '11', '1234567'] # Mombasa
|
173
496
|
it_splits '254723100220', ['254', '723', '100220'] # Mombasa
|
174
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
|
175
512
|
describe 'Lithuania' do
|
176
513
|
it_splits '37070012123', ['370', '700', '12', '123'] # Service
|
177
514
|
it_splits '37061212123', ['370', '612', '12', '123'] # Mobile
|
@@ -181,18 +518,38 @@ describe 'country descriptions' do
|
|
181
518
|
end
|
182
519
|
describe 'Luxembourg' do
|
183
520
|
it_splits '352222809', ['352', '22', '28', '09']
|
184
|
-
it_splits '35226222809', ['352', '
|
521
|
+
it_splits '35226222809', ['352', '2622', '28', '09']
|
185
522
|
it_splits '352621123456', ['352', '621', '123', '456']
|
186
|
-
it_splits '3524123456', ['352', '
|
523
|
+
it_splits '3524123456', ['352', '41', '23', '45', '6']
|
187
524
|
it_splits '352602112345678', ['352', '6021', '12', '34', '56', '78']
|
188
525
|
it_splits '352370431', ['352', '37', '04', '31']
|
189
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']
|
190
531
|
end
|
191
|
-
describe '
|
192
|
-
it_splits '
|
193
|
-
it_splits '
|
194
|
-
it_splits '
|
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
|
195
543
|
end
|
544
|
+
describe 'Malaysia' do
|
545
|
+
it_splits '6082123456', ['60', '82', '123456'] # Kuching
|
546
|
+
it_splits '60312345678', ['60', '3', '12345678'] # Kuala Lumpur
|
547
|
+
it_splits '60212345678', ['60', '2', '12345678'] # Singapore
|
548
|
+
it_splits '60111231234', ['60', '11', '123', '1234'] # Mobile
|
549
|
+
it_splits '601112312345', ['60', '11', '123', '12345'] # Mobile
|
550
|
+
it_splits '60800121234', ['60', '800', '12', '1234'] # Freephone
|
551
|
+
# it_splits '60112', ['60', '112'] # Service
|
552
|
+
end
|
196
553
|
describe 'Malta' do
|
197
554
|
it_splits '35621231234', ['356', '2123', '1234'] # Fixed
|
198
555
|
it_splits '35677123456', ['356', '77', '123456'] # Mobile
|
@@ -200,20 +557,41 @@ describe 'country descriptions' do
|
|
200
557
|
it_splits '35651231234', ['356', '5123', '1234'] # Voice Mail
|
201
558
|
end
|
202
559
|
describe 'Mexico' do
|
203
|
-
it_splits '525512121212',
|
204
|
-
it_splits '
|
560
|
+
it_splits '525512121212', ['52', '55', '1212', '1212'] # Mexico City
|
561
|
+
it_splits '5215512121212', ['52', '1', '55', '1212', '1212'] # Mexico City cell phone from abroad
|
562
|
+
it_splits '526641231212', ['52', '664', '123', '1212'] # Tijuana
|
563
|
+
it_splits '5216641231212', ['52', '1', '664', '123', '1212'] # Tijuana cell phone from abroad
|
564
|
+
it_splits '520446641231212', ['52', '044', '664', '123', '1212'] # Tijuana cell phone local from landline
|
205
565
|
end
|
206
566
|
describe 'Monaco' do
|
207
567
|
it_splits '37741123456', ['377', '41', '12', '34', '56'] # Mobile
|
208
568
|
it_splits '377612345678', ['377', '6', '12', '34', '56', '78'] # Mobile
|
209
569
|
end
|
570
|
+
describe 'Montenegro' do
|
571
|
+
it_splits '38280123456', %w(382 80 123 456)
|
572
|
+
it_splits '3822012345', %w(382 20 123 45)
|
573
|
+
it_splits '38220123456', %w(382 20 123 456)
|
574
|
+
it_splits '38232123456', %w(382 32 123 456)
|
575
|
+
it_splits '38278103456', %w(382 78 103 456)
|
576
|
+
it_splits '38263123', %w(382 63 123)
|
577
|
+
it_splits '382631234567890', %w(382 63 123 456 7890)
|
578
|
+
it_splits '38277103456', %w(382 77 103 456)
|
579
|
+
it_splits '38294103456', %w(382 94 103 456)
|
580
|
+
it_splits '38288103456', %w(382 88 103 456)
|
581
|
+
it_splits '3826812', %w(382 68 12)
|
582
|
+
it_splits '382681212345678', %w(382 68 12 1234 5678)
|
583
|
+
it_splits '38270123', %w(382 70 123)
|
584
|
+
it_splits '382701234567890', %w(382 70 123 456 7890)
|
585
|
+
end
|
210
586
|
describe 'Morocco' do
|
211
587
|
it_splits '212537718685', ['212', '53', '7718', '685']
|
588
|
+
it_splits '212612345678', ['212', '6', '12', '34', '56', '78']
|
212
589
|
end
|
213
590
|
describe 'The Netherlands' do
|
214
|
-
it_splits '31612345678', ['31', '6', '
|
215
|
-
it_splits '31201234567', ['31', '20', '
|
216
|
-
it_splits '31222123456', ['31', '222', '
|
591
|
+
it_splits '31612345678', ['31', '6', '12', '34', '56', '78'] # mobile
|
592
|
+
it_splits '31201234567', ['31', '20', '123', '4567']
|
593
|
+
it_splits '31222123456', ['31', '222', '123', '456']
|
594
|
+
it_splits '3197012345678', ['31', '970', '1234', '5678'] # machine-to-machine
|
217
595
|
end
|
218
596
|
describe 'Norway' do
|
219
597
|
it_splits '4721234567', ['47',false,'21','23','45','67']
|
@@ -225,14 +603,40 @@ describe 'country descriptions' do
|
|
225
603
|
it_splits '4781234567', ['47',false,'812','34','567']
|
226
604
|
it_splits '4791234567', ['47',false,'912','34','567']
|
227
605
|
end
|
606
|
+
describe 'Oman' do
|
607
|
+
it_splits '96824423123', %w(968 24 423 123)
|
608
|
+
it_splits '96825423123', %w(968 25 423 123)
|
609
|
+
end
|
610
|
+
describe 'Pakistan' do
|
611
|
+
it_splits '922112345678', %w(92 21 1234 5678)
|
612
|
+
it_splits '92221234567', %w(92 22 1234 567)
|
613
|
+
it_splits '92232123456', %w(92 232 123 456)
|
614
|
+
it_splits '923012345678', %w(92 30 1234 5678)
|
615
|
+
end
|
616
|
+
describe 'Paraguay (Republic of)' do
|
617
|
+
it_splits '59521123456', %w(595 21 123 456)
|
618
|
+
it_splits '595211234567', %w(595 21 123 4567)
|
619
|
+
it_splits '595345123456', %w(595 345 123 456)
|
620
|
+
it_splits '595961611234', %w(595 96 161 1234)
|
621
|
+
end
|
228
622
|
describe 'Peru' do
|
229
|
-
it_splits '
|
623
|
+
it_splits '5111231234', ['51', '1', '123', '1234'] # Lima
|
230
624
|
it_splits '51912341234', ['51', '9', '1234', '1234'] # mobile
|
231
|
-
it_splits '
|
625
|
+
it_splits '5184123123', ['51', '84', '123', '123'] # Cuzco, best effort
|
626
|
+
end
|
627
|
+
describe 'Philippines' do
|
628
|
+
it_splits '6321234567', ['63', '2', '1234567']
|
629
|
+
it_splits '63289889999', ['63', '2', '89889999']
|
630
|
+
it_splits '6321234567890', ['63', '2', '1234567890']
|
631
|
+
it_splits '632123456789012', ['63', '2', '123456789012']
|
632
|
+
it_splits '639121234567', ['63', '912', '1234567']
|
633
|
+
it_splits '63881234567', ['63', '88', '1234567']
|
232
634
|
end
|
233
635
|
describe 'Poland' do
|
234
636
|
it_splits '48123456789', ['48', '12', '345', '67', '89'] # Landline
|
235
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
|
236
640
|
it_splits '48800123456', ['48', '800', '123', '456'] # Free
|
237
641
|
it_splits '48801123456', ['48', '801', '123', '456'] # Shared cost
|
238
642
|
it_splits '48701123456', ['48', '701', '123', '456'] # Premium
|
@@ -242,119 +646,803 @@ describe 'country descriptions' do
|
|
242
646
|
it_splits '351241123123', ['351', '241', '123', '123'] # Abrantes
|
243
647
|
it_splits '351931231234', ['351', '93', '123', '1234'] # mobile
|
244
648
|
end
|
649
|
+
describe 'Qatar' do
|
650
|
+
it_splits '9741245123456', %w(974 1245 123 456)
|
651
|
+
it_splits '9742613456', %w(974 26 134 56)
|
652
|
+
it_splits '97433123456', %w(974 33 123 456)
|
653
|
+
it_splits '97444412456', %w(974 44 412 456)
|
654
|
+
it_splits '9748001234', %w(974 800 12 34)
|
655
|
+
it_splits '9749001234', %w(974 900 12 34)
|
656
|
+
it_splits '97492123', %w(974 92 123)
|
657
|
+
it_splits '97497123', %w(974 97 123)
|
658
|
+
end
|
245
659
|
describe 'Romania' do
|
246
660
|
it_splits '40211231234', ['40', '21', '123', '1234'] # Bucureşti
|
247
661
|
it_splits '40721231234', ['40', '72', '123', '1234'] # mobile
|
662
|
+
it_splits '40791231234', ['40', '79', '123', '1234'] # mobile
|
248
663
|
it_splits '40249123123', ['40', '249', '123', '123'] # Olt
|
249
664
|
end
|
665
|
+
|
250
666
|
describe 'Russia' do
|
251
667
|
it_splits '78122345678', ['7', '812', '234', '56', '78'] # Russia 3-digit
|
252
668
|
it_splits '74012771077', ['7', '4012', '77', '10', '77'] # Russia 4-digit
|
253
669
|
it_splits '78402411212', ['7', '84024', '1', '12', '12'] # Russia 5-digit
|
254
|
-
it_splits '
|
255
|
-
it_splits '
|
256
|
-
it_splits '
|
257
|
-
it_splits '
|
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
|
675
|
+
it_splits '7840121212', ['7', '840', '12', '1212'] # Abhasia
|
676
|
+
it_splits '7799121212', ['7', '799', '12', '1212'] # Kazachstan
|
677
|
+
it_splits '7995344121212', ['7', '995', '344','12','1212'] # South Osetia
|
678
|
+
it_splits '7209175276', ['7', '209', '17', '5276'] # Fantasy number
|
258
679
|
end
|
259
|
-
|
680
|
+
|
681
|
+
describe 'Rwanda' do
|
260
682
|
it_splits '250781234567', ['250', '78', '1234567'] # mobile
|
261
683
|
it_splits '250721234567', ['250', '72', '1234567'] # mobile
|
262
684
|
it_splits '250731234567', ['250', '73', '1234567'] # mobile
|
685
|
+
it_splits '250791234567', ['250', '79', '1234567'] # mobile
|
263
686
|
it_splits '250251234567', ['250', '25', '1234567'] # fixed
|
264
687
|
it_splits '25006123456', ['250', '06', '123456'] # fixed
|
265
688
|
end
|
689
|
+
describe 'Sao Tome and Principe' do
|
690
|
+
it_splits '2392220012', %w(239 2 220 012)
|
691
|
+
it_splits '2399920012', %w(239 9 920 012)
|
692
|
+
end
|
266
693
|
describe 'South Korea' do
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
|
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)
|
698
|
+
it_splits '821027975588', ['82', '10', '2797', '5588'] # mobile
|
699
|
+
it_splits '821087971234', ['82', '10', '8797', '1234'] # mobile
|
700
|
+
end
|
701
|
+
describe 'Serbia' do
|
702
|
+
it_splits '38163512529', ['381', '63', '512', '529']
|
703
|
+
end
|
704
|
+
describe 'South Sudan' do
|
705
|
+
it_splits '211123212345', ['211', '123', '212', '345']
|
706
|
+
it_splits '211973212345', ['211', '973', '212', '345']
|
271
707
|
end
|
272
708
|
describe 'Sudan' do
|
273
709
|
it_splits '249187171100', ['249', '18', '717', '1100']
|
274
710
|
end
|
275
711
|
describe 'Thailand' do
|
276
|
-
|
277
|
-
|
712
|
+
it_splits '6621231234', ['66', '2', '123', '1234'] # Bangkok
|
713
|
+
it_splits '6636123123', ['66', '36', '123', '123'] # Lop Buri
|
714
|
+
it_splits '66851234567', ['66', '851', '234', '567'] # Lop Buri
|
715
|
+
it_splits '66921234567', ['66', '921', '234', '567'] # mobile
|
278
716
|
end
|
279
717
|
describe 'Tunesia' do
|
280
|
-
|
281
|
-
|
718
|
+
it_splits '21611231234', ['216', '1', '123', '1234'] # Ariana
|
719
|
+
it_splits '21621231234', ['216', '2', '123', '1234'] # Bizerte
|
282
720
|
end
|
721
|
+
describe 'Salvador (El)' do
|
722
|
+
it_splits '50321121234', ['503', '2112', '1234'] # Fixed number
|
723
|
+
it_splits '50361121234', ['503', '6112', '1234'] # Mobile number
|
724
|
+
end
|
725
|
+
|
283
726
|
describe 'Singapore' do
|
284
|
-
|
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
|
285
729
|
end
|
286
730
|
describe 'Slovakia' do
|
287
|
-
|
288
|
-
|
289
|
-
|
731
|
+
it_splits '421912123456', ['421', '912', '123456'] # Mobile
|
732
|
+
it_splits '421212345678', ['421', '2', '12345678'] # Bratislava
|
733
|
+
it_splits '4212123', ['421', '2', '123'] # Bratislava Short
|
734
|
+
it_splits '421371234567', ['421', '37', '1234567'] # Nitra / Other
|
735
|
+
it_splits '42137123', ['421', '37', '123'] # Nitra / Other Short
|
290
736
|
end
|
737
|
+
|
738
|
+
describe 'Slovenia' do
|
739
|
+
it_splits '38651234567', ['386', '51', '234', '567'] # Mobile
|
740
|
+
it_splits '38611234567', ['386', '1', '123', '4567'] # LJUBLJANA
|
741
|
+
end
|
742
|
+
|
743
|
+
describe 'Spain' do
|
744
|
+
it_splits '34600123456', ['34', '600', '123', '456'] # Mobile
|
745
|
+
it_splits '34900123456', ['34', '900', '123', '456'] # Special
|
746
|
+
it_splits '34931234567', ['34', '93', '123', '45', '67'] # Landline large regions
|
747
|
+
it_splits '34975123456', ['34', '975', '12', '34', '56'] # Landline
|
748
|
+
it_splits '34123456789', ['34', '123', '456', '789'] # Default
|
749
|
+
end
|
750
|
+
|
751
|
+
describe 'Sri Lanka' do
|
752
|
+
it_splits '94711231212', ['94', '71', '123', '12', '12'] # Mobile
|
753
|
+
end
|
754
|
+
|
291
755
|
describe 'Sweden' do
|
292
|
-
|
293
|
-
|
294
|
-
|
756
|
+
it_splits '46812345678', ['46', '8', '123', '45', '678'] # Stockholm
|
757
|
+
it_splits '46111234567', ['46', '11', '123', '45', '67']
|
758
|
+
it_splits '46721234567', ['46', '72', '123', '45', '67'] # mobile
|
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']
|
295
764
|
end
|
296
765
|
describe 'Switzerland' do
|
297
|
-
|
298
|
-
|
766
|
+
it_splits '41443643532', ['41', '44', '364', '35', '32'] # Zurich (usually)
|
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
|
299
772
|
end
|
300
773
|
describe 'Tanzania' do
|
301
|
-
|
302
|
-
|
303
|
-
|
774
|
+
it_splits '255221231234', ['255', '22', '123', '1234'] # Dar Es Salaam
|
775
|
+
it_splits '255651231234', ['255', '65', '123', '1234'] # TIGO
|
776
|
+
it_splits '255861123123', ['255', '861', '123', '123'] # Special Rates
|
304
777
|
end
|
305
778
|
describe 'Turkey' do
|
306
|
-
|
779
|
+
it_splits '903121234567', ['90', '312', '123', '4567'] # Ankara
|
307
780
|
end
|
308
781
|
describe 'Uganda' do
|
309
|
-
|
310
|
-
|
782
|
+
it_splits '256414123456', ['256', '41', '4123456'] # Kampania
|
783
|
+
it_splits '256464441234', ['256', '464', '441234'] # Mubende
|
311
784
|
end
|
312
785
|
describe 'The UK' do
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
|
318
|
-
|
319
|
-
|
320
|
-
|
321
|
-
|
322
|
-
|
323
|
-
|
324
|
-
|
325
|
-
|
326
|
-
|
327
|
-
|
328
|
-
|
329
|
-
|
330
|
-
|
331
|
-
|
332
|
-
|
333
|
-
|
334
|
-
|
335
|
-
|
336
|
-
|
337
|
-
|
338
|
-
|
339
|
-
|
786
|
+
it_splits '442075671113', ['44', '20', '7567', '1113'] # [2+8] London
|
787
|
+
it_splits '442920229901', ['44', '29', '2022', '9901'] # [2+8] Cardiff
|
788
|
+
it_splits '441134770011', ['44', '113', '477', '0011'] # [3+7] Leeds
|
789
|
+
it_splits '441412770022', ['44', '141', '277', '0022'] # [3+7] Glasgow
|
790
|
+
it_splits '441204500532', ['44', '1204', '500532'] # [4+6] Bolton
|
791
|
+
it_splits '44120462532', ['44', '1204', '62532'] # [4+5] Bolton
|
792
|
+
it_splits '441333247700', ['44', '1333', '247700'] # [4+6] Leven (Fife)
|
793
|
+
it_splits '441382229845', ['44', '1382', '229845'] # [4+6] Dundee
|
794
|
+
it_splits '441420700378', ['44', '1420', '700378'] # [4+6] Alton
|
795
|
+
it_splits '44142080378', ['44', '1420', '80378'] # [4+5] Alton
|
796
|
+
it_splits '441475724688', ['44', '1475', '724688'] # [4+6] Greenock
|
797
|
+
it_splits '441539248756', ['44', '1539', '248756'] # [4+6] Kendal (Mixed area)
|
798
|
+
it_splits '441539648788', ['44', '15396', '48788'] # [5+5] Sedbergh (Mixed area)
|
799
|
+
it_splits '441652757248', ['44', '1652', '757248'] # [4+6] Brigg
|
800
|
+
it_splits '441664333456', ['44', '1664', '333456'] # [4+6] Melton Mowbray
|
801
|
+
it_splits '441697222555', ['44', '1697', '222555'] # [4+6] Brampton (Mixed area)
|
802
|
+
it_splits '441697388555', ['44', '16973', '88555'] # [5+5] Wigton (Mixed area)
|
803
|
+
it_splits '441697433777', ['44', '16974', '33777'] # [5+5] Raughton Head (Mixed area)
|
804
|
+
it_splits '44169772333', ['44', '16977', '2333'] # [5+4] Brampton (Mixed area)
|
805
|
+
it_splits '441697744888', ['44', '16977', '44888'] # [5+5] Brampton (Mixed area)
|
806
|
+
it_splits '441757850526', ['44', '1757', '850526'] # [4+6] Selby
|
807
|
+
it_splits '441890234567', ['44', '1890', '234567'] # [4+6] Coldstream (ELNS area)
|
808
|
+
it_splits '441890595378', ['44', '1890', '595378'] # [4+6] Ayton (ELNS area)
|
809
|
+
it_splits '441931306526', ['44', '1931', '306526'] # [4+6] Shap
|
810
|
+
it_splits '441946555777', ['44', '1946', '555777'] # [4+6] Whitehaven (Mixed area)
|
811
|
+
it_splits '44194662888', ['44', '1946', '62888'] # [4+5] Whitehaven (Mixed area)
|
812
|
+
it_splits '441946722444', ['44', '19467', '22444'] # [5+5] Gosforth (Mixed area)
|
813
|
+
it_splits '441987705337', ['44', '1987', '705337'] # [4+6] Ebbsfleet
|
814
|
+
it_splits '443005828323', ['44', '300', '582', '8323'] # Non-geographic (NTS)
|
815
|
+
it_splits '443334253344', ['44', '333', '425', '3344'] # Non-geographic (NTS)
|
816
|
+
it_splits '443437658834', ['44', '343', '765', '8834'] # Non-geographic (NTS)
|
817
|
+
it_splits '443452273512', ['44', '345', '227', '3512'] # Non-geographic (NTS)
|
818
|
+
it_splits '443707774444', ['44', '370', '777', '4444'] # Non-geographic (NTS)
|
819
|
+
it_splits '443725247722', ['44', '372', '524', '7722'] # Non-geographic (NTS)
|
820
|
+
it_splits '44500557788', ['44', '500', '557788'] # Freefone (500 + 6)
|
821
|
+
it_splits '445575671113', ['44', '55', '7567', '1113'] # Corporate numbers
|
822
|
+
it_splits '445644775533', ['44', '56', '4477', '5533'] # LIECS/VoIP
|
823
|
+
it_splits '447020229901', ['44', '70', '2022', '9901'] # Personal numbers
|
824
|
+
it_splits '447688554246', ['44', '76', '8855', '4246'] # Pager
|
825
|
+
it_splits '447180605207', ['44', '7180', '605207'] # Mobile
|
826
|
+
it_splits '447480605207', ['44', '7480', '605207'] # Mobile
|
827
|
+
it_splits '447624605207', ['44', '7624', '605207'] # Mobile (Isle of Man)
|
828
|
+
it_splits '447780605207', ['44', '7780', '605207'] # Mobile
|
829
|
+
it_splits '447980605207', ['44', '7980', '605207'] # Mobile
|
830
|
+
it_splits '44800557788', ['44', '800', '557788'] # Freefone (800 + 6)
|
831
|
+
it_splits '448084682355', ['44', '808', '468', '2355'] # Freefone (808 + 7)
|
832
|
+
it_splits '448005878323', ['44', '800', '587', '8323'] # Freefone (800 + 7), regression
|
833
|
+
it_splits '448437777334', ['44', '843', '777', '7334'] # Non-geographic (NTS)
|
834
|
+
it_splits '448457777334', ['44', '845', '777', '7334'] # Non-geographic (NTS)
|
835
|
+
it_splits '448707777334', ['44', '870', '777', '7334'] # Non-geographic (NTS)
|
836
|
+
it_splits '448727777334', ['44', '872', '777', '7334'] # Non-geographic (NTS)
|
837
|
+
it_splits '449052463456', ['44', '905', '246', '3456'] # Non-geographic (PRS)
|
838
|
+
it_splits '449122463456', ['44', '912', '246', '3456'] # Non-geographic (PRS)
|
839
|
+
it_splits '449832463456', ['44', '983', '246', '3456'] # Non-geographic (SES)
|
340
840
|
end
|
341
841
|
describe 'US' do
|
342
|
-
|
842
|
+
it_splits '15551115511', ['1', '555', '111', '5511']
|
343
843
|
end
|
344
844
|
describe 'Venezuela' do
|
345
|
-
|
845
|
+
it_splits '582121234567', ['58', '212', '1234567']
|
346
846
|
end
|
347
847
|
describe 'Vietnam' do
|
348
|
-
|
349
|
-
|
350
|
-
|
848
|
+
it_splits '8498123456', ['84', '98', '123456'] # Viettel Mobile
|
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
|
351
854
|
end
|
352
855
|
describe 'Zambia' do
|
353
|
-
it_splits '
|
354
|
-
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
|
355
861
|
end
|
356
862
|
describe 'New Zealand' do
|
357
|
-
|
863
|
+
it_splits '6491234567', ['64', '9', '123', '4567']
|
864
|
+
it_splits '64800123123', ['64', '800', '123', '123']
|
865
|
+
it_splits '648001231234', ['64', '800', '123', '1234']
|
866
|
+
end
|
867
|
+
describe 'Bhutan (Kingdom of)' do
|
868
|
+
it_splits '9759723642', %w(975 9 723 642)
|
869
|
+
end
|
870
|
+
describe 'Brunei Darussalam' do
|
871
|
+
it_splits '6737932744', %w(673 7 932 744)
|
872
|
+
end
|
873
|
+
describe 'Burkina Faso' do
|
874
|
+
it_splits '22667839323', ['226', false, '6783', '9323']
|
875
|
+
end
|
876
|
+
describe 'Burundi' do
|
877
|
+
it_splits '25712345678', ['257', false, '1234', '5678']
|
878
|
+
end
|
879
|
+
describe 'Cameroon' do
|
880
|
+
it_splits '237276593812', ['237', false, '276', '59', '38', '12']
|
881
|
+
end
|
882
|
+
describe 'Cape Verde' do
|
883
|
+
it_splits '2385494177', ['238', false, '549', '4177']
|
884
|
+
end
|
885
|
+
describe 'Central African Republic' do
|
886
|
+
it_splits '23612345678', ['236', false, '1234', '5678']
|
887
|
+
end
|
888
|
+
describe 'Chad' do
|
889
|
+
it_splits '23512345678', ['235', false, '1234', '5678']
|
890
|
+
end
|
891
|
+
describe 'Comoros' do
|
892
|
+
it_splits '2693901234', ['269', false, '3901', '234']
|
893
|
+
it_splits '2693401234', ['269', false, '3401', '234']
|
894
|
+
end
|
895
|
+
describe 'Congo' do
|
896
|
+
it_splits '242123456789', ['242', false, '1234', '56789']
|
897
|
+
end
|
898
|
+
describe 'Cook Islands' do
|
899
|
+
it_splits '68251475', ['682', false, '51', '475']
|
900
|
+
end
|
901
|
+
describe 'Costa Rica' do
|
902
|
+
it_splits '50622345678', %w(506 2 234 5678)
|
903
|
+
end
|
904
|
+
describe "Côte d'Ivoire" do
|
905
|
+
it_splits '2250107335518', ['225', '01', '07', '33', '55', '18']
|
906
|
+
it_splits '2250237335518', ['225', '02', '37', '33', '55', '18']
|
907
|
+
end
|
908
|
+
describe 'Democratic Republic of Timor-Leste' do
|
909
|
+
it_splits '6701742945', ['670', false, '174', '2945']
|
910
|
+
end
|
911
|
+
describe 'Democratic Republic of the Congo' do
|
912
|
+
it_splits '243121995381', %w(243 12 199 5381)
|
913
|
+
end
|
914
|
+
describe 'Diego Garcia' do
|
915
|
+
it_splits '2461234683', ['246', false, '123', '4683']
|
916
|
+
end
|
917
|
+
describe 'Djibouti' do
|
918
|
+
it_splits '25349828978', ['253', false, '4982', '8978']
|
919
|
+
end
|
920
|
+
describe 'Ecuador' do
|
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)
|
945
|
+
end
|
946
|
+
describe 'Eritrea' do
|
947
|
+
it_splits '2916537192', %w(291 6 537 192)
|
948
|
+
end
|
949
|
+
describe 'Ethiopia' do
|
950
|
+
it_splits '251721233486', %w(251 72 123 3486)
|
951
|
+
end
|
952
|
+
describe 'Falkland Islands (Malvinas)' do
|
953
|
+
it_splits '50014963', ['500', false, '14', '963']
|
954
|
+
end
|
955
|
+
describe 'Faroe Islands' do
|
956
|
+
it_splits '298997986', ['298', false, '997', '986']
|
957
|
+
end
|
958
|
+
describe 'Fiji (Republic of)' do
|
959
|
+
it_splits '6798668123', ['679', false, '866', '8123']
|
960
|
+
end
|
961
|
+
describe 'French Guiana (French Department of)' do
|
962
|
+
it_splits '594594123456', %w(594 594 123 456)
|
963
|
+
end
|
964
|
+
describe "French Polynesia (Territoire français d'outre-mer)" do
|
965
|
+
it_splits '68921988900', ['689', false, '21', '98', '89', '00']
|
966
|
+
end
|
967
|
+
describe 'Gabonese Republic' do
|
968
|
+
it_splits '2411834375', ['241', '1', '834', '375']
|
969
|
+
it_splits '24174012345', ['241', '74', '01', '23', '45']
|
970
|
+
end
|
971
|
+
describe 'Gambia' do
|
972
|
+
it_splits '2206683355', ['220', false, '668', '3355']
|
973
|
+
end
|
974
|
+
describe 'Greenland' do
|
975
|
+
it_splits '299314185', ['299', '31', '4185']
|
976
|
+
it_splits '299691123', ['299', '691', '123']
|
977
|
+
end
|
978
|
+
describe 'Guadeloupe (French Department of)' do
|
979
|
+
it_splits '590590456789', %w(590 590 45 67 89)
|
980
|
+
end
|
981
|
+
describe 'Guatemala (Republic of)' do
|
982
|
+
it_splits '50219123456789', ['502', '19', '123', '456', '789']
|
983
|
+
it_splits '50221234567', ['502', '2', '123', '4567']
|
984
|
+
end
|
985
|
+
describe 'Guinea' do
|
986
|
+
it_splits '22430311234', ['224', '3031', '12', '34']
|
987
|
+
it_splits '224662123456', ['224', '662', '12', '34', '56']
|
988
|
+
end
|
989
|
+
describe 'Guinea-Bissau' do
|
990
|
+
it_splits '245443837652', ['245', false, '44', '383', '7652']
|
991
|
+
end
|
992
|
+
describe 'Guyana' do
|
993
|
+
it_splits '5922631234', %w(592 263 1234)
|
994
|
+
end
|
995
|
+
describe 'Honduras (Republic of)' do
|
996
|
+
it_splits '50412961637', %w(504 12 961 637)
|
997
|
+
end
|
998
|
+
describe 'Iraq' do
|
999
|
+
it_splits '96411234567', %w(964 1 123 4567)
|
1000
|
+
it_splits '96421113456', %w(964 21 113 456)
|
1001
|
+
it_splits '9647112345678', %w(964 71 1234 5678)
|
1002
|
+
end
|
1003
|
+
describe 'Jordan (Hashemite Kingdom of)' do
|
1004
|
+
it_splits '96280012345', %w(962 800 123 45)
|
1005
|
+
it_splits '96226201234', %w(962 2 620 1234)
|
1006
|
+
it_splits '962712345678', %w(962 7 1234 5678)
|
1007
|
+
it_splits '962746612345', %w(962 7 4661 2345)
|
1008
|
+
it_splits '96290012345', %w(962 900 123 45)
|
1009
|
+
it_splits '96285123456', %w(962 85 123 456)
|
1010
|
+
it_splits '96270123456', %w(962 70 123 456)
|
1011
|
+
it_splits '96262501456', %w(962 6250 1456)
|
1012
|
+
it_splits '96287901456', %w(962 8790 1456)
|
1013
|
+
end
|
1014
|
+
describe 'Kiribati (Republic of)' do
|
1015
|
+
it_splits '68634814', ['686', false, '34', '814']
|
1016
|
+
end
|
1017
|
+
describe "Democratic People's Republic of Korea" do
|
1018
|
+
it_splits '850212345', %w(850 2 123 45)
|
1019
|
+
it_splits '8502123456789', %w(850 2 123 456 789)
|
1020
|
+
it_splits '85023812356', %w(850 2 381 2356)
|
1021
|
+
#it_splits '85028801123456781256', %w(850 2 8801 1234 5678 1256)
|
1022
|
+
it_splits '8501911234567', %w(850 191 123 4567)
|
1023
|
+
end
|
1024
|
+
describe 'Kuwait (State of)' do
|
1025
|
+
it_splits '96523456789', ['965', false, '2345', '6789']
|
1026
|
+
it_splits '9651812345', ['965', false, '181', '2345']
|
1027
|
+
end
|
1028
|
+
describe "Lao People's Democratic Republic" do
|
1029
|
+
it_splits '85697831195', %w(856 97 831 195)
|
1030
|
+
end
|
1031
|
+
describe 'Latvia' do
|
1032
|
+
it_splits '37180123456', %w(371 801 234 56)
|
1033
|
+
it_splits '37163723456', %w(371 637 234 56)
|
1034
|
+
it_splits '37129412345', %w(371 294 123 45)
|
1035
|
+
end
|
1036
|
+
describe 'Lebanon' do
|
1037
|
+
it_splits '9611123456', %w(961 1 123 456)
|
1038
|
+
it_splits '9614123456', %w(961 4 123 456)
|
1039
|
+
it_splits '9613123456', %w(961 3 123 456)
|
1040
|
+
it_splits '96170123456', %w(961 70 123 456)
|
1041
|
+
it_splits '96190123456', %w(961 90 123 456)
|
1042
|
+
it_splits '96181123456', %w(961 81 123 456)
|
1043
|
+
end
|
1044
|
+
describe 'Lesotho' do
|
1045
|
+
it_splits '26623592495', ['266', false, '2359', '2495']
|
1046
|
+
end
|
1047
|
+
describe 'Liberia' do
|
1048
|
+
it_splits '23121234567', ['231', false, '2123', '4567']
|
1049
|
+
it_splits '2314123456', ['231', false, '4123', '456']
|
1050
|
+
it_splits '231771234567', ['231', false, '77', '123', '4567']
|
1051
|
+
end
|
1052
|
+
describe 'Libya' do
|
1053
|
+
it_splits '21820512345', %w(218 205 123 45)
|
1054
|
+
it_splits '21822123456', %w(218 22 123 456)
|
1055
|
+
it_splits '218211234456', %w(218 21 1234 456)
|
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)
|
1059
|
+
end
|
1060
|
+
describe 'Madagascar' do
|
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)]
|
1065
|
+
end
|
1066
|
+
describe 'Malawi' do
|
1067
|
+
it_splits '2651725123', ['265', false, '1725', '123']
|
1068
|
+
it_splits '265213456789',[ '265', false, '213', '456', '789']
|
1069
|
+
it_splits '2659123456', ['265', false, '9123', '456']
|
1070
|
+
it_splits '265991123456', ['265', false, '991', '123', '456']
|
1071
|
+
end
|
1072
|
+
describe 'Maldives (Republic of)' do
|
1073
|
+
it_splits '9606568279', ['960', '656', '8279']
|
1074
|
+
end
|
1075
|
+
describe 'Mali' do
|
1076
|
+
it_splits '22379249349', ['223', false, '7924', '9349']
|
1077
|
+
end
|
1078
|
+
describe 'Marshall Islands (Republic of the)' do
|
1079
|
+
it_splits '6924226536', ['692', false, '422', '6536']
|
1080
|
+
end
|
1081
|
+
describe 'Martinique (French Department of)' do
|
1082
|
+
it_splits '596596123456', %w(596 596 12 34 56)
|
1083
|
+
end
|
1084
|
+
describe 'Mauritania' do
|
1085
|
+
it_splits '22212345678', ['222', false, '1234', '5678']
|
1086
|
+
end
|
1087
|
+
describe 'Mauritius' do
|
1088
|
+
it_splits '23059518919', ['230', false, '5951', '8919']
|
1089
|
+
end
|
1090
|
+
describe 'Micronesia (Federated States of)' do
|
1091
|
+
it_splits '6911991754', ['691', false, '199', '1754']
|
1092
|
+
end
|
1093
|
+
describe 'Moldova' do
|
1094
|
+
it_splits '37380012345', %w(373 800 123 45)
|
1095
|
+
it_splits '37322123345', %w(373 22 123 345)
|
1096
|
+
it_splits '37324112345', %w(373 241 123 45)
|
1097
|
+
it_splits '37360512345', %w(373 605 123 45)
|
1098
|
+
it_splits '37380312345', %w(373 803 123 45)
|
1099
|
+
end
|
1100
|
+
describe 'Mongolia' do
|
1101
|
+
it_splits '9761112345', %w(976 11 123 45)
|
1102
|
+
it_splits '9761211234', %w(976 121 12 34)
|
1103
|
+
it_splits '97612112345', %w(976 121 12 345)
|
1104
|
+
it_splits '97670123456', %w(976 70 123 456)
|
1105
|
+
it_splits '97675123456', %w(976 75 123 456)
|
1106
|
+
it_splits '97688123456', %w(976 88 123 456)
|
1107
|
+
it_splits '97650123456', %w(976 50 123 456)
|
1108
|
+
end
|
1109
|
+
describe 'Mozambique' do
|
1110
|
+
it_splits '258600123456', %w(258 600 123 456)
|
1111
|
+
it_splits '25825112345', %w(258 251 123 45)
|
1112
|
+
it_splits '258821234456', %w(258 82 1234 456)
|
1113
|
+
it_splits '258712344567', %w(258 7 1234 4567)
|
1114
|
+
end
|
1115
|
+
describe 'Namibia' do
|
1116
|
+
it_splits '264675161324', %w(264 6751 613 24)
|
1117
|
+
it_splits '26467175890', %w(264 67 175 890)
|
1118
|
+
it_splits '26463088612345', %w(264 63 088 612 345)
|
1119
|
+
it_splits '264851234567', %w(264 85 1234 567)
|
1120
|
+
end
|
1121
|
+
describe 'Nauru (Republic of)' do
|
1122
|
+
it_splits '6741288739', ['674', false, '128', '8739']
|
1123
|
+
end
|
1124
|
+
describe 'Nepal' do
|
1125
|
+
it_splits '97714345678', %w(977 1 434 5678)
|
1126
|
+
it_splits '97710123456', %w(977 10 123 456)
|
1127
|
+
it_splits '9779812345678', %w(977 98 1234 5678)
|
1128
|
+
end
|
1129
|
+
describe "New Caledonia (Territoire français d'outre-mer)" do
|
1130
|
+
it_splits '687747184', ['687', false, '747', '184']
|
1131
|
+
end
|
1132
|
+
describe 'Nicaragua' do
|
1133
|
+
it_splits '50512345678', ['505', '12', '345', '678']
|
1134
|
+
end
|
1135
|
+
describe 'Niger' do
|
1136
|
+
it_splits '22712345678', ['227', false, '1234', '5678']
|
1137
|
+
end
|
1138
|
+
describe 'Nigeria' do
|
1139
|
+
it_splits '23411231234', %w(234 1 123 1234) # Lagos
|
1140
|
+
|
1141
|
+
it_splits '23445123456', %w(234 45 123 456) # Ogoja
|
1142
|
+
|
1143
|
+
# mobile numbers
|
1144
|
+
it_splits '2347007661234', %w(234 700 766 1234)
|
1145
|
+
it_splits '2347017661234', %w(234 701 766 1234)
|
1146
|
+
it_splits '2347027661234', %w(234 702 766 1234)
|
1147
|
+
it_splits '2347037661234', %w(234 703 766 1234)
|
1148
|
+
it_splits '2347047661234', %w(234 704 766 1234)
|
1149
|
+
it_splits '2347057661234', %w(234 705 766 1234)
|
1150
|
+
it_splits '2347067661234', %w(234 706 766 1234)
|
1151
|
+
it_splits '2347077661234', %w(234 707 766 1234)
|
1152
|
+
it_splits '2347087661234', %w(234 708 766 1234)
|
1153
|
+
it_splits '2347097661234', %w(234 709 766 1234)
|
1154
|
+
|
1155
|
+
it_splits '2348007661234', %w(234 800 766 1234)
|
1156
|
+
it_splits '2348017661234', %w(234 801 766 1234)
|
1157
|
+
it_splits '2348027661234', %w(234 802 766 1234)
|
1158
|
+
it_splits '2348037661234', %w(234 803 766 1234)
|
1159
|
+
it_splits '2348047661234', %w(234 804 766 1234)
|
1160
|
+
it_splits '2348057661234', %w(234 805 766 1234)
|
1161
|
+
it_splits '2348067661234', %w(234 806 766 1234)
|
1162
|
+
it_splits '2348077661234', %w(234 807 766 1234)
|
1163
|
+
it_splits '2348087661234', %w(234 808 766 1234)
|
1164
|
+
it_splits '2348097661234', %w(234 809 766 1234)
|
1165
|
+
|
1166
|
+
it_splits '2349007661234', %w(234 900 766 1234)
|
1167
|
+
it_splits '2349017661234', %w(234 901 766 1234)
|
1168
|
+
it_splits '2349027661234', %w(234 902 766 1234)
|
1169
|
+
it_splits '2349037661234', %w(234 903 766 1234)
|
1170
|
+
it_splits '2349047661234', %w(234 904 766 1234)
|
1171
|
+
it_splits '2349057661234', %w(234 905 766 1234)
|
1172
|
+
it_splits '2349067661234', %w(234 906 766 1234)
|
1173
|
+
it_splits '2349077661234', %w(234 907 766 1234)
|
1174
|
+
it_splits '2349087661234', %w(234 908 766 1234)
|
1175
|
+
it_splits '2349097661234', %w(234 909 766 1234)
|
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
|
+
|
1188
|
+
it_splits '2348107661234', %w(234 810 766 1234)
|
1189
|
+
it_splits '2348117661234', %w(234 811 766 1234)
|
1190
|
+
it_splits '2348127661234', %w(234 812 766 1234)
|
1191
|
+
it_splits '2348137661234', %w(234 813 766 1234)
|
1192
|
+
it_splits '2348147661234', %w(234 814 766 1234)
|
1193
|
+
it_splits '2348157661234', %w(234 815 766 1234)
|
1194
|
+
it_splits '2348167661234', %w(234 816 766 1234)
|
1195
|
+
it_splits '2348177661234', %w(234 817 766 1234)
|
1196
|
+
it_splits '2348187661234', %w(234 818 766 1234)
|
1197
|
+
it_splits '2348197661234', %w(234 819 766 1234)
|
1198
|
+
end
|
1199
|
+
describe 'Niue' do
|
1200
|
+
it_splits '6833651', ['683', false, '3651']
|
1201
|
+
end
|
1202
|
+
describe 'Palau (Republic of)' do
|
1203
|
+
it_splits '6804873653', ['680', false, '487', '3653']
|
1204
|
+
end
|
1205
|
+
describe 'Panama (Republic of)' do
|
1206
|
+
it_splits '5078001234', %w(507 800 1234)
|
1207
|
+
it_splits '50761234567', %w(507 6 123 4567)
|
1208
|
+
it_splits '5072123456', %w(507 2 123 456)
|
1209
|
+
end
|
1210
|
+
describe 'Papua New Guinea' do
|
1211
|
+
it_splits '6753123567', %w(675 3 123 567)
|
1212
|
+
it_splits '6751801234', %w(675 180 1234)
|
1213
|
+
it_splits '67580123456', %w(675 80 123 456)
|
1214
|
+
it_splits '67591123456', %w(675 91 123 456)
|
1215
|
+
it_splits '6751612345', %w(675 16 123 45)
|
1216
|
+
it_splits '67518412345678', %w(675 184 1234 5678)
|
1217
|
+
it_splits '67517012', %w(675 170 12)
|
1218
|
+
it_splits '6751891', %w(675 189 1)
|
1219
|
+
it_splits '6752701234', %w(675 270 1234)
|
1220
|
+
it_splits '6752751234', %w(675 275 1234)
|
1221
|
+
it_splits '67527912', %w(675 279 12)
|
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)
|
1226
|
+
end
|
1227
|
+
describe 'Reunion / Mayotte (new)' do
|
1228
|
+
it_splits '262594399265', ['262', '594', '39', '92', '65']
|
1229
|
+
end
|
1230
|
+
describe 'Saint Helena' do
|
1231
|
+
it_splits '2903614', ['290', false, '3614']
|
1232
|
+
end
|
1233
|
+
describe 'Saint Pierre and Miquelon (Collectivité territoriale de la République française)' do
|
1234
|
+
it_splits '508418826', ['508', false, '418', '826']
|
1235
|
+
end
|
1236
|
+
describe 'Samoa (Independent State of)' do
|
1237
|
+
it_splits '685800123', ['685', false, '800', '123']
|
1238
|
+
it_splits '68561123', ['685', false, '61', '123']
|
1239
|
+
it_splits '6857112345', ['685', false, '711', '2345']
|
1240
|
+
it_splits '6857212345', ['685', false, '721', '2345']
|
1241
|
+
it_splits '685830123', ['685', false, '830', '123']
|
1242
|
+
it_splits '685601234', ['685', false, '601', '234']
|
1243
|
+
it_splits '6858412345', ['685', false, '841', '2345']
|
1244
|
+
end
|
1245
|
+
describe 'San Marino' do
|
1246
|
+
it_splits '378800123', ['378', false, '800', '123']
|
1247
|
+
it_splits '3788001234567', ['378', false, '800', '123', '4567']
|
1248
|
+
it_splits '378012345', ['378', false, '012', '345']
|
1249
|
+
it_splits '3780123456789', ['378', false, '012', '345', '6789']
|
1250
|
+
it_splits '378512345', ['378', false, '512', '345']
|
1251
|
+
it_splits '3785123456789', ['378', false, '512', '345', '6789']
|
1252
|
+
end
|
1253
|
+
describe 'Saudi Arabia (Kingdom of)' do
|
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
|
1259
|
+
end
|
1260
|
+
describe 'Senegal' do
|
1261
|
+
it_splits '221123456789', ['221', false, '1234', '56789']
|
1262
|
+
end
|
1263
|
+
describe 'Serbia' do
|
1264
|
+
it_splits '38180012345', %w(381 800 123 45)
|
1265
|
+
it_splits '3811012345', %w(381 10 123 45)
|
1266
|
+
it_splits '38110123456', %w(381 10 123 456)
|
1267
|
+
it_splits '38111123456', %w(381 11 123 456)
|
1268
|
+
it_splits '381111234567', %w(381 11 123 4567)
|
1269
|
+
it_splits '381721234567', %w(381 72 123 4567)
|
1270
|
+
it_splits '38160123', %w(381 60 123)
|
1271
|
+
it_splits '381601234567', %w(381 60 123 4567)
|
1272
|
+
it_splits '38142123456', %w(381 42 123 456)
|
1273
|
+
it_splits '38191234567', %w(381 9 123 4567)
|
1274
|
+
it_splits '38160123', %w(381 60 123)
|
1275
|
+
it_splits '381601234567890', %w(381 60 123 456 7890)
|
1276
|
+
it_splits '38170123456', %w(381 70 123 456)
|
1277
|
+
it_splits '38163123456', %w(381 63 123 456)
|
1278
|
+
end
|
1279
|
+
describe 'Sierra Leone' do
|
1280
|
+
it_splits '23264629769', %w(232 64 629 769)
|
1281
|
+
end
|
1282
|
+
describe 'Solomon Islands' do
|
1283
|
+
it_splits '67754692', ['677', false, '54', '692']
|
1284
|
+
it_splits '6777546921', ['677', false, '7546', '921']
|
1285
|
+
end
|
1286
|
+
describe 'Somalia' do
|
1287
|
+
it_splits '252103412345', %w(252 1034 123 45)
|
1288
|
+
it_splits '2521313123', %w(252 1313 123)
|
1289
|
+
it_splits '2521601234', %w(252 160 12 34)
|
1290
|
+
it_splits '25250012345', %w(252 500 123 45)
|
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
|
1301
|
+
end
|
1302
|
+
|
1303
|
+
describe 'Suriname (Republic of)' do
|
1304
|
+
it_splits '597958434', ['597', false, '958', '434']
|
1305
|
+
|
1306
|
+
it_splits '597212345', ['597', false, '212', '345']
|
1307
|
+
it_splits '5976123456', ['597', false, '612', '3456']
|
1308
|
+
end
|
1309
|
+
describe 'Swaziland' do
|
1310
|
+
it_splits '26822071234', ['268', false, '2207', '1234']
|
1311
|
+
it_splits '2685501234', ['268', false, '550', '1234']
|
1312
|
+
end
|
1313
|
+
describe 'Syrian Arab Republic' do
|
1314
|
+
it_splits '963111234567', %w(963 11 123 4567)
|
1315
|
+
it_splits '963311234567', %w(963 31 123 4567)
|
1316
|
+
it_splits '96315731234', %w(963 15 731 234)
|
1317
|
+
it_splits '963912345678', %w(963 9 1234 5678)
|
1318
|
+
end
|
1319
|
+
describe 'Taiwan' do
|
1320
|
+
it_splits '886212345678', %w(886 2 1234 5678)
|
1321
|
+
it_splits '88631234567', %w(886 3 123 4567)
|
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)
|
1336
|
+
end
|
1337
|
+
describe 'Togolese Republic' do
|
1338
|
+
it_splits '22812345678', ['228', false, '1234', '5678']
|
1339
|
+
end
|
1340
|
+
describe 'Tajikistan' do
|
1341
|
+
it_splits '992313012345', %w(992 3130 123 45)
|
1342
|
+
it_splits '992331700123', %w(992 331700 123)
|
1343
|
+
it_splits '992372123345', %w(992 372 123 345)
|
1344
|
+
it_splits '992505123456', %w(992 505 123 456)
|
1345
|
+
it_splits '992973123456', %w(992 973 123 456)
|
1346
|
+
it_splits '992474456123', %w(992 474 456 123)
|
1347
|
+
end
|
1348
|
+
describe 'Tokelau' do
|
1349
|
+
it_splits '6901371', %w(690 1 371)
|
1350
|
+
end
|
1351
|
+
describe 'Tonga (Kingdom of)' do
|
1352
|
+
it_splits '67620123', ['676', false, '20', '123']
|
1353
|
+
it_splits '67684123', ['676', false, '84', '123']
|
1354
|
+
it_splits '6767712345', ['676', false, '77', '123', '45']
|
1355
|
+
it_splits '6768912345', ['676', false, '89', '123', '45']
|
1356
|
+
end
|
1357
|
+
describe 'Tuvalu' do
|
1358
|
+
it_splits '68893741', ['688', false, '93741']
|
1359
|
+
end
|
1360
|
+
describe 'Turkmenistan' do
|
1361
|
+
it_splits '99312456789', %w(993 12 456 789)
|
1362
|
+
it_splits '99313145678', %w(993 131 456 78)
|
1363
|
+
it_splits '99313924567', %w(993 1392 4567)
|
1364
|
+
it_splits '99361234567', %w(993 6 123 4567)
|
1365
|
+
end
|
1366
|
+
describe 'Ukraine' do
|
1367
|
+
it_splits '380800123456', %w(380 800 123 456)
|
1368
|
+
it_splits '380312123456', %w(380 312 123 456)
|
1369
|
+
it_splits '380320123456', %w(380 32 0123 456)
|
1370
|
+
it_splits '380325912345', %w(380 3259 123 45)
|
1371
|
+
it_splits '380326061234', %w(380 32606 1234)
|
1372
|
+
it_splits '380391234567', %w(380 39 123 45 67)
|
1373
|
+
it_splits '380501234567', %w(380 50 123 45 67)
|
1374
|
+
it_splits '380631234567', %w(380 63 123 45 67)
|
1375
|
+
it_splits '380661234567', %w(380 66 123 45 67)
|
1376
|
+
it_splits '380671234567', %w(380 67 123 45 67)
|
1377
|
+
it_splits '380681234567', %w(380 68 123 45 67)
|
1378
|
+
it_splits '380911234567', %w(380 91 123 45 67)
|
1379
|
+
it_splits '380921234567', %w(380 92 123 45 67)
|
1380
|
+
it_splits '380931234567', %w(380 93 123 45 67)
|
1381
|
+
it_splits '380731234567', %w(380 73 123 45 67)
|
1382
|
+
it_splits '380941234567', %w(380 94 123 45 67)
|
1383
|
+
it_splits '380951234567', %w(380 95 123 45 67)
|
1384
|
+
it_splits '380961234567', %w(380 96 123 45 67)
|
1385
|
+
it_splits '380971234567', %w(380 97 123 45 67)
|
1386
|
+
it_splits '380981234567', %w(380 98 123 45 67)
|
1387
|
+
it_splits '380991234567', %w(380 99 123 45 67)
|
1388
|
+
end
|
1389
|
+
describe 'United Arab Emirates' do
|
1390
|
+
it_splits '97180012', %w(971 800 12)
|
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)
|
1394
|
+
it_splits '97121234567', %w(971 2 123 4567)
|
1395
|
+
it_splits '971506412345', %w(971 50 641 2345)
|
1396
|
+
it_splits '971600641234', %w(971 600 641 234)
|
1397
|
+
it_splits '971500641234', %w(971 500 641 234)
|
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)
|
1401
|
+
end
|
1402
|
+
describe 'Uruguay (Eastern Republic of)' do
|
1403
|
+
it_splits '59880012345', %w(598 800 123 45)
|
1404
|
+
it_splits '59820123456', %w(598 2 012 3456)
|
1405
|
+
it_splits '59821123456', %w(598 21 123 456)
|
1406
|
+
it_splits '59890912345', %w(598 909 123 45)
|
1407
|
+
it_splits '59893123456', %w(598 93 123 456)
|
1408
|
+
it_splits '59890812345', %w(598 908 123 45)
|
1409
|
+
it_splits '59880512345', %w(598 805 123 45)
|
1410
|
+
end
|
1411
|
+
describe 'Uzbekistan (Republic of)' do
|
1412
|
+
it_splits '998433527869', %w(998 43 352 7869)
|
1413
|
+
end
|
1414
|
+
describe 'Vanuatu (Republic of)' do
|
1415
|
+
it_splits '67889683', ['678', false, '89', '683']
|
1416
|
+
end
|
1417
|
+
describe 'Yemen' do
|
1418
|
+
it_splits '9671234567', %w(967 1 234 567)
|
1419
|
+
it_splits '96712345678', %w(967 1 234 5678)
|
1420
|
+
it_splits '9677234567', %w(967 7 234 567)
|
1421
|
+
it_splits '967771234567', %w(967 77 123 4567)
|
1422
|
+
it_splits '967581234', %w(967 58 1234)
|
1423
|
+
end
|
1424
|
+
describe 'Zimbabwe' do
|
1425
|
+
it_splits '2632582123456', %w(263 2582 123 456)
|
1426
|
+
it_splits '2632582123', %w(263 2582 123)
|
1427
|
+
it_splits '263147123456', %w(263 147 123 456)
|
1428
|
+
it_splits '263147123', %w(263 147 123)
|
1429
|
+
it_splits '263270123456', %w(263 270 123 456)
|
1430
|
+
it_splits '26327012345', %w(263 270 123 45)
|
1431
|
+
it_splits '2638612354567', %w(263 86 1235 4567)
|
1432
|
+
|
1433
|
+
# mobile numbers (see http://www.itu.int/dms_pub/itu-t/oth/02/02/T02020000E90002PDFE.pdf, Table 4, Page 25)
|
1434
|
+
%w(71 73 77 78).each do |prefix|
|
1435
|
+
number = "263#{prefix}2345678"
|
1436
|
+
it_splits number, ['263', prefix, '234', '5678']
|
1437
|
+
end
|
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']
|
358
1446
|
end
|
359
1447
|
end
|
360
1448
|
|