phony 1.9.0 → 2.19.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +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 |  |