phonelib 0.3.6 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1894) hide show
  1. checksums.yaml +8 -8
  2. data/README.rdoc +11 -0
  3. data/data/extended_data.dat +0 -0
  4. data/data/libphonenumber/AUTHORS +4 -0
  5. data/data/libphonenumber/CONTRIBUTORS +68 -0
  6. data/data/libphonenumber/LICENSE +176 -0
  7. data/data/libphonenumber/LICENSE.Chromium +37 -0
  8. data/data/libphonenumber/README.md +112 -0
  9. data/data/libphonenumber/codereview.settings +4 -0
  10. data/data/libphonenumber/cpp/CMakeLists.txt +573 -0
  11. data/data/libphonenumber/cpp/LICENSE +13 -0
  12. data/data/libphonenumber/cpp/README +284 -0
  13. data/data/libphonenumber/cpp/src/phonenumbers/alternate_format.cc +960 -0
  14. data/data/libphonenumber/cpp/src/phonenumbers/alternate_format.h +29 -0
  15. data/data/libphonenumber/cpp/src/phonenumbers/asyoutypeformatter.cc +774 -0
  16. data/data/libphonenumber/cpp/src/phonenumbers/asyoutypeformatter.h +243 -0
  17. data/data/libphonenumber/cpp/src/phonenumbers/base/basictypes.h +208 -0
  18. data/data/libphonenumber/cpp/src/phonenumbers/base/logging.h +41 -0
  19. data/data/libphonenumber/cpp/src/phonenumbers/base/memory/scoped_ptr.h +450 -0
  20. data/data/libphonenumber/cpp/src/phonenumbers/base/memory/singleton.h +95 -0
  21. data/data/libphonenumber/cpp/src/phonenumbers/base/memory/singleton_posix.h +53 -0
  22. data/data/libphonenumber/cpp/src/phonenumbers/base/strings/string_piece.cc +221 -0
  23. data/data/libphonenumber/cpp/src/phonenumbers/base/strings/string_piece.h +194 -0
  24. data/data/libphonenumber/cpp/src/phonenumbers/base/synchronization/lock.h +89 -0
  25. data/data/libphonenumber/cpp/src/phonenumbers/base/synchronization/lock_posix.h +63 -0
  26. data/data/libphonenumber/cpp/src/phonenumbers/base/template_util.h +108 -0
  27. data/data/libphonenumber/cpp/src/phonenumbers/base/thread_checker.h +70 -0
  28. data/data/libphonenumber/cpp/src/phonenumbers/callback.h +88 -0
  29. data/data/libphonenumber/cpp/src/phonenumbers/default_logger.cc +58 -0
  30. data/data/libphonenumber/cpp/src/phonenumbers/default_logger.h +105 -0
  31. data/data/libphonenumber/cpp/src/phonenumbers/encoding_utils.h +51 -0
  32. data/data/libphonenumber/cpp/src/phonenumbers/geocoding/area_code_map.cc +94 -0
  33. data/data/libphonenumber/cpp/src/phonenumbers/geocoding/area_code_map.h +75 -0
  34. data/data/libphonenumber/cpp/src/phonenumbers/geocoding/default_map_storage.cc +65 -0
  35. data/data/libphonenumber/cpp/src/phonenumbers/geocoding/default_map_storage.h +76 -0
  36. data/data/libphonenumber/cpp/src/phonenumbers/geocoding/geocoding_data.h +77 -0
  37. data/data/libphonenumber/cpp/src/phonenumbers/geocoding/mapping_file_provider.cc +175 -0
  38. data/data/libphonenumber/cpp/src/phonenumbers/geocoding/mapping_file_provider.h +75 -0
  39. data/data/libphonenumber/cpp/src/phonenumbers/geocoding/phonenumber_offline_geocoder.cc +216 -0
  40. data/data/libphonenumber/cpp/src/phonenumbers/geocoding/phonenumber_offline_geocoder.h +165 -0
  41. data/data/libphonenumber/cpp/src/phonenumbers/lite_metadata.cc +11422 -0
  42. data/data/libphonenumber/cpp/src/phonenumbers/logger.cc +27 -0
  43. data/data/libphonenumber/cpp/src/phonenumbers/logger.h +103 -0
  44. data/data/libphonenumber/cpp/src/phonenumbers/matcher_api.h +54 -0
  45. data/data/libphonenumber/cpp/src/phonenumbers/metadata.cc +12330 -0
  46. data/data/libphonenumber/cpp/src/phonenumbers/metadata.h +29 -0
  47. data/data/libphonenumber/cpp/src/phonenumbers/normalize_utf8.h +50 -0
  48. data/data/libphonenumber/cpp/src/phonenumbers/phonenumber.cc +87 -0
  49. data/data/libphonenumber/cpp/src/phonenumbers/phonenumber.h +40 -0
  50. data/data/libphonenumber/cpp/src/phonenumbers/phonenumbermatch.cc +91 -0
  51. data/data/libphonenumber/cpp/src/phonenumbers/phonenumbermatch.h +125 -0
  52. data/data/libphonenumber/cpp/src/phonenumbers/phonenumbermatcher.cc +908 -0
  53. data/data/libphonenumber/cpp/src/phonenumbers/phonenumbermatcher.h +201 -0
  54. data/data/libphonenumber/cpp/src/phonenumbers/phonenumberutil.cc +2799 -0
  55. data/data/libphonenumber/cpp/src/phonenumbers/phonenumberutil.h +826 -0
  56. data/data/libphonenumber/cpp/src/phonenumbers/regex_based_matcher.cc +68 -0
  57. data/data/libphonenumber/cpp/src/phonenumbers/regex_based_matcher.h +61 -0
  58. data/data/libphonenumber/cpp/src/phonenumbers/regexp_adapter.h +168 -0
  59. data/data/libphonenumber/cpp/src/phonenumbers/regexp_adapter_icu.cc +237 -0
  60. data/data/libphonenumber/cpp/src/phonenumbers/regexp_adapter_icu.h +41 -0
  61. data/data/libphonenumber/cpp/src/phonenumbers/regexp_adapter_re2.cc +161 -0
  62. data/data/libphonenumber/cpp/src/phonenumbers/regexp_adapter_re2.h +40 -0
  63. data/data/libphonenumber/cpp/src/phonenumbers/regexp_cache.cc +60 -0
  64. data/data/libphonenumber/cpp/src/phonenumbers/regexp_cache.h +77 -0
  65. data/data/libphonenumber/cpp/src/phonenumbers/regexp_factory.h +44 -0
  66. data/data/libphonenumber/cpp/src/phonenumbers/region_code.h +40 -0
  67. data/data/libphonenumber/cpp/src/phonenumbers/short_metadata.cc +2795 -0
  68. data/data/libphonenumber/cpp/src/phonenumbers/short_metadata.h +29 -0
  69. data/data/libphonenumber/cpp/src/phonenumbers/shortnumberinfo.cc +403 -0
  70. data/data/libphonenumber/cpp/src/phonenumbers/shortnumberinfo.h +237 -0
  71. data/data/libphonenumber/cpp/src/phonenumbers/stl_util.h +51 -0
  72. data/data/libphonenumber/cpp/src/phonenumbers/string_byte_sink.cc +33 -0
  73. data/data/libphonenumber/cpp/src/phonenumbers/string_byte_sink.h +40 -0
  74. data/data/libphonenumber/cpp/src/phonenumbers/stringutil.cc +448 -0
  75. data/data/libphonenumber/cpp/src/phonenumbers/stringutil.h +176 -0
  76. data/data/libphonenumber/cpp/src/phonenumbers/test_metadata.cc +888 -0
  77. data/data/libphonenumber/cpp/src/phonenumbers/unicodestring.cc +114 -0
  78. data/data/libphonenumber/cpp/src/phonenumbers/unicodestring.h +133 -0
  79. data/data/libphonenumber/cpp/src/phonenumbers/utf/README +1 -0
  80. data/data/libphonenumber/cpp/src/phonenumbers/utf/rune.c +358 -0
  81. data/data/libphonenumber/cpp/src/phonenumbers/utf/stringpiece.h +23 -0
  82. data/data/libphonenumber/cpp/src/phonenumbers/utf/stringprintf.h +22 -0
  83. data/data/libphonenumber/cpp/src/phonenumbers/utf/unicodetext.cc +520 -0
  84. data/data/libphonenumber/cpp/src/phonenumbers/utf/unicodetext.h +461 -0
  85. data/data/libphonenumber/cpp/src/phonenumbers/utf/unilib.cc +68 -0
  86. data/data/libphonenumber/cpp/src/phonenumbers/utf/unilib.h +99 -0
  87. data/data/libphonenumber/cpp/src/phonenumbers/utf/utf.h +240 -0
  88. data/data/libphonenumber/cpp/src/phonenumbers/utf/utfdef.h +27 -0
  89. data/data/libphonenumber/cpp/test/phonenumbers/asyoutypeformatter_test.cc +1237 -0
  90. data/data/libphonenumber/cpp/test/phonenumbers/geocoding/area_code_map_test.cc +201 -0
  91. data/data/libphonenumber/cpp/test/phonenumbers/geocoding/geocoding_data_test.cc +176 -0
  92. data/data/libphonenumber/cpp/test/phonenumbers/geocoding/geocoding_test_data.h +50 -0
  93. data/data/libphonenumber/cpp/test/phonenumbers/geocoding/geocoding_test_program.cc +43 -0
  94. data/data/libphonenumber/cpp/test/phonenumbers/geocoding/mapping_file_provider_test.cc +91 -0
  95. data/data/libphonenumber/cpp/test/phonenumbers/geocoding/phonenumber_offline_geocoder_test.cc +205 -0
  96. data/data/libphonenumber/cpp/test/phonenumbers/logger_test.cc +172 -0
  97. data/data/libphonenumber/cpp/test/phonenumbers/phonenumbermatch_test.cc +92 -0
  98. data/data/libphonenumber/cpp/test/phonenumbers/phonenumbermatcher_test.cc +1226 -0
  99. data/data/libphonenumber/cpp/test/phonenumbers/phonenumberutil_test.cc +3915 -0
  100. data/data/libphonenumber/cpp/test/phonenumbers/regexp_adapter_test.cc +322 -0
  101. data/data/libphonenumber/cpp/test/phonenumbers/regexp_cache_test.cc +60 -0
  102. data/data/libphonenumber/cpp/test/phonenumbers/run_tests.cc +21 -0
  103. data/data/libphonenumber/cpp/test/phonenumbers/shortnumberinfo_test.cc +468 -0
  104. data/data/libphonenumber/cpp/test/phonenumbers/stringutil_test.cc +306 -0
  105. data/data/libphonenumber/cpp/test/phonenumbers/test_util.cc +63 -0
  106. data/data/libphonenumber/cpp/test/phonenumbers/test_util.h +199 -0
  107. data/data/libphonenumber/cpp/test/phonenumbers/unicodestring_test.cc +236 -0
  108. data/data/libphonenumber/cpp/test/phonenumbers/utf/unicodetext_test.cc +45 -0
  109. data/data/libphonenumber/debian/README.source +21 -0
  110. data/data/libphonenumber/debian/changelog +5 -0
  111. data/data/libphonenumber/debian/compat +1 -0
  112. data/data/libphonenumber/debian/control +73 -0
  113. data/data/libphonenumber/debian/copyright +74 -0
  114. data/data/libphonenumber/debian/libphonenumber6-dev.install +3 -0
  115. data/data/libphonenumber/debian/libphonenumber6-java.jlibs +1 -0
  116. data/data/libphonenumber/debian/libphonenumber6-java.poms +39 -0
  117. data/data/libphonenumber/debian/libphonenumber6.install +1 -0
  118. data/data/libphonenumber/debian/maven.cleanIgnoreRules +17 -0
  119. data/data/libphonenumber/debian/maven.ignoreRules +23 -0
  120. data/data/libphonenumber/debian/maven.properties +4 -0
  121. data/data/libphonenumber/debian/maven.publishedRules +19 -0
  122. data/data/libphonenumber/debian/maven.rules +31 -0
  123. data/data/libphonenumber/debian/patches/0003-maven-exclude-demo.patch +13 -0
  124. data/data/libphonenumber/debian/patches/series +1 -0
  125. data/data/libphonenumber/debian/rules +89 -0
  126. data/data/libphonenumber/debian/source/format +1 -0
  127. data/data/libphonenumber/debian/watch +3 -0
  128. data/data/libphonenumber/java/build.xml +303 -0
  129. data/data/libphonenumber/java/carrier/pom.xml +46 -0
  130. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/PhoneNumberToCarrierMapper.java +124 -0
  131. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/1242_en +0 -0
  132. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/1246_en +0 -0
  133. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/1264_en +0 -0
  134. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/1441_en +0 -0
  135. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/1473_en +0 -0
  136. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/1649_en +0 -0
  137. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/1671_en +0 -0
  138. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/1684_en +0 -0
  139. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/1758_en +0 -0
  140. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/1767_en +0 -0
  141. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/1784_en +0 -0
  142. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/1787_en +0 -0
  143. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/1809_en +0 -0
  144. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/1868_en +0 -0
  145. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/1869_en +0 -0
  146. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/1939_en +0 -0
  147. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/20_en +0 -0
  148. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/211_en +0 -0
  149. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/212_en +0 -0
  150. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/213_en +0 -0
  151. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/216_en +0 -0
  152. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/220_en +0 -0
  153. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/221_en +0 -0
  154. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/222_en +0 -0
  155. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/223_en +0 -0
  156. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/224_en +0 -0
  157. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/225_en +0 -0
  158. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/226_en +0 -0
  159. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/227_en +0 -0
  160. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/228_en +0 -0
  161. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/229_en +0 -0
  162. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/230_en +0 -0
  163. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/231_en +0 -0
  164. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/232_en +0 -0
  165. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/233_en +0 -0
  166. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/234_en +0 -0
  167. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/235_en +0 -0
  168. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/236_en +0 -0
  169. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/237_en +0 -0
  170. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/238_en +0 -0
  171. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/239_en +0 -0
  172. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/240_en +0 -0
  173. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/241_en +0 -0
  174. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/242_en +0 -0
  175. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/243_en +0 -0
  176. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/244_en +0 -0
  177. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/245_en +0 -0
  178. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/248_en +0 -0
  179. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/249_en +0 -0
  180. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/250_en +0 -0
  181. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/251_en +0 -0
  182. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/252_en +0 -0
  183. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/253_en +0 -0
  184. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/254_en +0 -0
  185. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/255_en +0 -0
  186. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/256_en +0 -0
  187. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/257_en +0 -0
  188. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/258_en +0 -0
  189. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/260_en +0 -0
  190. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/261_en +0 -0
  191. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/263_en +0 -0
  192. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/265_en +0 -0
  193. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/267_en +0 -0
  194. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/268_en +0 -0
  195. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/27_en +0 -0
  196. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/297_en +0 -0
  197. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/298_en +0 -0
  198. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/299_en +0 -0
  199. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/30_en +0 -0
  200. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/31_en +0 -0
  201. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/32_en +0 -0
  202. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/33_en +0 -0
  203. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/350_en +0 -0
  204. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/351_en +0 -0
  205. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/352_en +0 -0
  206. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/353_en +0 -0
  207. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/354_en +0 -0
  208. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/355_en +0 -0
  209. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/356_en +0 -0
  210. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/357_en +0 -0
  211. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/358_en +0 -0
  212. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/359_en +0 -0
  213. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/36_en +0 -0
  214. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/370_en +0 -0
  215. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/372_en +0 -0
  216. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/373_en +0 -0
  217. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/374_en +0 -0
  218. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/375_be +0 -0
  219. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/375_en +0 -0
  220. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/375_ru +0 -0
  221. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/376_en +0 -0
  222. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/380_en +0 -0
  223. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/381_en +0 -0
  224. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/385_en +0 -0
  225. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/386_en +0 -0
  226. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/387_en +0 -0
  227. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/389_en +0 -0
  228. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/39_en +0 -0
  229. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/40_en +0 -0
  230. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/41_en +0 -0
  231. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/420_en +0 -0
  232. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/421_en +0 -0
  233. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/43_en +0 -0
  234. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/45_en +0 -0
  235. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/47_en +0 -0
  236. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/48_en +0 -0
  237. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/49_en +0 -0
  238. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/501_en +0 -0
  239. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/505_en +0 -0
  240. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/506_en +0 -0
  241. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/507_en +0 -0
  242. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/51_en +0 -0
  243. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/53_en +0 -0
  244. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/54_en +0 -0
  245. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/55_en +0 -0
  246. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/56_en +0 -0
  247. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/57_en +0 -0
  248. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/58_en +0 -0
  249. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/591_en +0 -0
  250. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/595_en +0 -0
  251. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/597_en +0 -0
  252. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/598_en +0 -0
  253. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/599_en +0 -0
  254. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/60_en +0 -0
  255. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/61_en +0 -0
  256. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/62_en +0 -0
  257. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/63_en +0 -0
  258. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/64_en +0 -0
  259. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/65_en +0 -0
  260. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/66_en +0 -0
  261. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/670_en +0 -0
  262. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/673_en +0 -0
  263. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/675_en +0 -0
  264. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/676_en +0 -0
  265. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/677_en +0 -0
  266. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/678_en +0 -0
  267. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/679_en +0 -0
  268. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/685_en +0 -0
  269. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/686_en +0 -0
  270. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/7_en +0 -0
  271. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/84_en +0 -0
  272. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/852_en +0 -0
  273. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/855_en +0 -0
  274. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/856_en +0 -0
  275. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/86_en +0 -0
  276. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/880_en +0 -0
  277. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/90_en +0 -0
  278. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/91_en +0 -0
  279. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/92_en +0 -0
  280. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/93_en +0 -0
  281. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/94_en +0 -0
  282. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/95_en +0 -0
  283. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/960_en +0 -0
  284. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/961_en +0 -0
  285. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/962_en +0 -0
  286. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/964_en +0 -0
  287. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/965_ar +0 -0
  288. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/965_en +0 -0
  289. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/966_en +0 -0
  290. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/967_en +0 -0
  291. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/968_en +0 -0
  292. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/970_en +0 -0
  293. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/971_en +0 -0
  294. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/972_en +0 -0
  295. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/973_en +0 -0
  296. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/974_en +0 -0
  297. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/975_en +0 -0
  298. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/977_en +0 -0
  299. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/98_en +0 -0
  300. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/992_en +0 -0
  301. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/993_en +0 -0
  302. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/994_en +0 -0
  303. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/995_en +0 -0
  304. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/996_en +0 -0
  305. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/998_en +0 -0
  306. data/data/libphonenumber/java/carrier/src/com/google/i18n/phonenumbers/carrier/data/config +0 -0
  307. data/data/libphonenumber/java/carrier/test/com/google/i18n/phonenumbers/PhoneNumberToCarrierMapperTest.java +121 -0
  308. data/data/libphonenumber/java/carrier/test/com/google/i18n/phonenumbers/carrier/testing_data/1650_en +0 -0
  309. data/data/libphonenumber/java/carrier/test/com/google/i18n/phonenumbers/carrier/testing_data/244_en +0 -0
  310. data/data/libphonenumber/java/carrier/test/com/google/i18n/phonenumbers/carrier/testing_data/44_en +0 -0
  311. data/data/libphonenumber/java/carrier/test/com/google/i18n/phonenumbers/carrier/testing_data/44_sv +0 -0
  312. data/data/libphonenumber/java/carrier/test/com/google/i18n/phonenumbers/carrier/testing_data/config +0 -0
  313. data/data/libphonenumber/java/demo/README +16 -0
  314. data/data/libphonenumber/java/demo/build.xml +59 -0
  315. data/data/libphonenumber/java/demo/pom.xml +107 -0
  316. data/data/libphonenumber/java/demo/src/com/google/phonenumbers/PhoneNumberParserServlet.java +298 -0
  317. data/data/libphonenumber/java/demo/war/WEB-INF/appengine-web.xml +11 -0
  318. data/data/libphonenumber/java/demo/war/WEB-INF/lib/commons-fileupload-1.2.1.jar +0 -0
  319. data/data/libphonenumber/java/demo/war/WEB-INF/lib/commons-io-1.4.jar +0 -0
  320. data/data/libphonenumber/java/demo/war/WEB-INF/logging.properties +13 -0
  321. data/data/libphonenumber/java/demo/war/WEB-INF/web.xml +18 -0
  322. data/data/libphonenumber/java/demo/war/favicon.ico +0 -0
  323. data/data/libphonenumber/java/demo/war/phonenumberparser.jsp +39 -0
  324. data/data/libphonenumber/java/demo/war/stylesheets/main.css +26 -0
  325. data/data/libphonenumber/java/geocoder/pom.xml +54 -0
  326. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/PhoneNumberToTimeZonesMapper.java +192 -0
  327. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/PhoneNumberOfflineGeocoder.java +228 -0
  328. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1201_en +0 -0
  329. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1202_en +0 -0
  330. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1203_en +0 -0
  331. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1204_en +0 -0
  332. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1205_en +0 -0
  333. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1206_en +0 -0
  334. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1207_en +0 -0
  335. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1208_en +0 -0
  336. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1209_en +0 -0
  337. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1210_en +0 -0
  338. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1212_en +0 -0
  339. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1213_en +0 -0
  340. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1214_en +0 -0
  341. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1215_en +0 -0
  342. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1216_en +0 -0
  343. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1217_en +0 -0
  344. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1218_en +0 -0
  345. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1219_en +0 -0
  346. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1224_en +0 -0
  347. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1225_en +0 -0
  348. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1226_en +0 -0
  349. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1228_en +0 -0
  350. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1229_en +0 -0
  351. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1231_en +0 -0
  352. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1234_en +0 -0
  353. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1236_en +0 -0
  354. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1239_en +0 -0
  355. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1240_en +0 -0
  356. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1242_en +0 -0
  357. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1248_en +0 -0
  358. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1250_en +0 -0
  359. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1251_en +0 -0
  360. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1252_en +0 -0
  361. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1253_en +0 -0
  362. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1254_en +0 -0
  363. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1256_en +0 -0
  364. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1260_en +0 -0
  365. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1262_en +0 -0
  366. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1267_en +0 -0
  367. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1269_en +0 -0
  368. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1270_en +0 -0
  369. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1272_en +0 -0
  370. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1276_en +0 -0
  371. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1281_en +0 -0
  372. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1289_en +0 -0
  373. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1301_en +0 -0
  374. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1302_en +0 -0
  375. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1303_en +0 -0
  376. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1304_en +0 -0
  377. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1305_en +0 -0
  378. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1306_en +0 -0
  379. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1307_en +0 -0
  380. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1308_en +0 -0
  381. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1309_en +0 -0
  382. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1310_en +0 -0
  383. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1312_en +0 -0
  384. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1313_en +0 -0
  385. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1314_en +0 -0
  386. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1315_en +0 -0
  387. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1316_en +0 -0
  388. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1317_en +0 -0
  389. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1318_en +0 -0
  390. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1319_en +0 -0
  391. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1320_en +0 -0
  392. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1321_en +0 -0
  393. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1323_en +0 -0
  394. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1325_en +0 -0
  395. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1330_en +0 -0
  396. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1331_en +0 -0
  397. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1334_en +0 -0
  398. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1336_en +0 -0
  399. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1337_en +0 -0
  400. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1339_en +0 -0
  401. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1345_en +0 -0
  402. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1346_en +0 -0
  403. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1347_en +0 -0
  404. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1351_en +0 -0
  405. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1352_en +0 -0
  406. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1360_en +0 -0
  407. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1361_en +0 -0
  408. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1364_en +0 -0
  409. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1365_en +0 -0
  410. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1385_en +0 -0
  411. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1386_en +0 -0
  412. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1401_en +0 -0
  413. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1402_en +0 -0
  414. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1403_en +0 -0
  415. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1404_en +0 -0
  416. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1405_en +0 -0
  417. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1406_en +0 -0
  418. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1407_en +0 -0
  419. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1408_en +0 -0
  420. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1409_en +0 -0
  421. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1410_en +0 -0
  422. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1412_en +0 -0
  423. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1413_en +0 -0
  424. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1414_en +0 -0
  425. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1415_en +0 -0
  426. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1416_en +0 -0
  427. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1417_en +0 -0
  428. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1418_en +0 -0
  429. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1419_en +0 -0
  430. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1423_en +0 -0
  431. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1424_en +0 -0
  432. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1425_en +0 -0
  433. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1430_en +0 -0
  434. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1431_en +0 -0
  435. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1432_en +0 -0
  436. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1434_en +0 -0
  437. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1435_en +0 -0
  438. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1437_en +0 -0
  439. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1438_en +0 -0
  440. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1440_en +0 -0
  441. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1441_en +0 -0
  442. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1443_en +0 -0
  443. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1450_en +0 -0
  444. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1469_en +0 -0
  445. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1478_en +0 -0
  446. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1479_en +0 -0
  447. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1480_en +0 -0
  448. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1484_en +0 -0
  449. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1501_en +0 -0
  450. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1502_en +0 -0
  451. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1503_en +0 -0
  452. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1504_en +0 -0
  453. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1505_en +0 -0
  454. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1506_en +0 -0
  455. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1507_en +0 -0
  456. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1508_en +0 -0
  457. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1509_en +0 -0
  458. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1510_en +0 -0
  459. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1512_en +0 -0
  460. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1513_en +0 -0
  461. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1514_en +0 -0
  462. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1515_en +0 -0
  463. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1516_en +0 -0
  464. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1517_en +0 -0
  465. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1518_en +0 -0
  466. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1519_en +0 -0
  467. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1520_en +0 -0
  468. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1530_en +0 -0
  469. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1540_en +0 -0
  470. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1541_en +0 -0
  471. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1551_en +0 -0
  472. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1559_en +0 -0
  473. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1561_en +0 -0
  474. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1562_en +0 -0
  475. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1563_en +0 -0
  476. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1567_en +0 -0
  477. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1570_en +0 -0
  478. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1571_en +0 -0
  479. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1573_en +0 -0
  480. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1574_en +0 -0
  481. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1575_en +0 -0
  482. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1580_en +0 -0
  483. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1585_en +0 -0
  484. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1586_en +0 -0
  485. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1587_en +0 -0
  486. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1601_en +0 -0
  487. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1602_en +0 -0
  488. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1603_en +0 -0
  489. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1604_en +0 -0
  490. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1605_en +0 -0
  491. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1606_en +0 -0
  492. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1607_en +0 -0
  493. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1608_en +0 -0
  494. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1609_en +0 -0
  495. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1610_en +0 -0
  496. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1612_en +0 -0
  497. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1613_en +0 -0
  498. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1614_en +0 -0
  499. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1615_en +0 -0
  500. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1616_en +0 -0
  501. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1617_en +0 -0
  502. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1618_en +0 -0
  503. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1619_en +0 -0
  504. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1620_en +0 -0
  505. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1623_en +0 -0
  506. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1626_en +0 -0
  507. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1630_en +0 -0
  508. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1631_en +0 -0
  509. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1636_en +0 -0
  510. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1639_en +0 -0
  511. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1641_en +0 -0
  512. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1646_en +0 -0
  513. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1647_en +0 -0
  514. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1649_en +0 -0
  515. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1650_en +0 -0
  516. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1651_en +0 -0
  517. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1657_en +0 -0
  518. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1660_en +0 -0
  519. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1661_en +0 -0
  520. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1662_en +0 -0
  521. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1667_en +0 -0
  522. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1669_en +0 -0
  523. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1671_en +0 -0
  524. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1678_en +0 -0
  525. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1682_en +0 -0
  526. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1701_en +0 -0
  527. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1702_en +0 -0
  528. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1703_en +0 -0
  529. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1704_en +0 -0
  530. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1705_en +0 -0
  531. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1706_en +0 -0
  532. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1707_en +0 -0
  533. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1708_en +0 -0
  534. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1709_en +0 -0
  535. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1712_en +0 -0
  536. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1713_en +0 -0
  537. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1714_en +0 -0
  538. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1715_en +0 -0
  539. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1716_en +0 -0
  540. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1717_en +0 -0
  541. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1718_en +0 -0
  542. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1719_en +0 -0
  543. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1720_en +0 -0
  544. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1724_en +0 -0
  545. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1725_en +0 -0
  546. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1726_en +0 -0
  547. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1727_en +0 -0
  548. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1730_en +0 -0
  549. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1731_en +0 -0
  550. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1732_en +0 -0
  551. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1734_en +0 -0
  552. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1737_en +0 -0
  553. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1740_en +0 -0
  554. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1754_en +0 -0
  555. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1757_en +0 -0
  556. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1760_en +0 -0
  557. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1763_en +0 -0
  558. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1765_en +0 -0
  559. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1769_en +0 -0
  560. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1770_en +0 -0
  561. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1772_en +0 -0
  562. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1773_en +0 -0
  563. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1774_en +0 -0
  564. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1775_en +0 -0
  565. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1778_en +0 -0
  566. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1779_en +0 -0
  567. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1780_en +0 -0
  568. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1781_en +0 -0
  569. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1782_en +0 -0
  570. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1785_en +0 -0
  571. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1786_en +0 -0
  572. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1801_en +0 -0
  573. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1802_en +0 -0
  574. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1803_en +0 -0
  575. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1804_en +0 -0
  576. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1805_en +0 -0
  577. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1806_en +0 -0
  578. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1807_en +0 -0
  579. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1808_en +0 -0
  580. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1809_en +0 -0
  581. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1810_en +0 -0
  582. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1812_en +0 -0
  583. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1813_en +0 -0
  584. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1814_en +0 -0
  585. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1815_en +0 -0
  586. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1816_en +0 -0
  587. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1817_en +0 -0
  588. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1818_en +0 -0
  589. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1819_en +0 -0
  590. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1828_en +0 -0
  591. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1830_en +0 -0
  592. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1831_en +0 -0
  593. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1832_en +0 -0
  594. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1838_en +0 -0
  595. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1843_en +0 -0
  596. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1845_en +0 -0
  597. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1847_en +0 -0
  598. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1848_en +0 -0
  599. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1850_en +0 -0
  600. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1851_en +0 -0
  601. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1856_en +0 -0
  602. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1857_en +0 -0
  603. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1858_en +0 -0
  604. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1859_en +0 -0
  605. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1860_en +0 -0
  606. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1862_en +0 -0
  607. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1863_en +0 -0
  608. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1864_en +0 -0
  609. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1865_en +0 -0
  610. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1867_en +0 -0
  611. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1870_en +0 -0
  612. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1872_en +0 -0
  613. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1873_en +0 -0
  614. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1876_en +0 -0
  615. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1878_en +0 -0
  616. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1888_en +0 -0
  617. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1901_en +0 -0
  618. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1902_en +0 -0
  619. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1903_en +0 -0
  620. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1904_en +0 -0
  621. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1905_en +0 -0
  622. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1906_en +0 -0
  623. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1907_en +0 -0
  624. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1908_en +0 -0
  625. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1909_en +0 -0
  626. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1910_en +0 -0
  627. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1912_en +0 -0
  628. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1913_en +0 -0
  629. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1914_en +0 -0
  630. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1915_en +0 -0
  631. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1916_en +0 -0
  632. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1917_en +0 -0
  633. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1918_en +0 -0
  634. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1919_en +0 -0
  635. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1920_en +0 -0
  636. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1925_en +0 -0
  637. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1928_en +0 -0
  638. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1929_en +0 -0
  639. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1930_en +0 -0
  640. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1931_en +0 -0
  641. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1936_en +0 -0
  642. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1937_en +0 -0
  643. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1938_en +0 -0
  644. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1940_en +0 -0
  645. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1941_en +0 -0
  646. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1947_en +0 -0
  647. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1949_en +0 -0
  648. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1951_en +0 -0
  649. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1952_en +0 -0
  650. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1954_en +0 -0
  651. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1956_en +0 -0
  652. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1959_en +0 -0
  653. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1970_en +0 -0
  654. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1971_en +0 -0
  655. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1972_en +0 -0
  656. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1973_en +0 -0
  657. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1978_en +0 -0
  658. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1979_en +0 -0
  659. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1980_en +0 -0
  660. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1984_en +0 -0
  661. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1985_en +0 -0
  662. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/1989_en +0 -0
  663. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/20_en +0 -0
  664. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/212_en +0 -0
  665. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/212_fr +0 -0
  666. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/213_en +0 -0
  667. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/216_en +0 -0
  668. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/220_en +0 -0
  669. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/221_en +0 -0
  670. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/222_en +0 -0
  671. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/222_fr +0 -0
  672. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/224_en +0 -0
  673. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/225_en +0 -0
  674. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/225_fr +0 -0
  675. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/226_en +0 -0
  676. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/228_en +0 -0
  677. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/228_es +0 -0
  678. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/228_fr +0 -0
  679. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/229_en +0 -0
  680. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/229_fr +0 -0
  681. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/230_en +0 -0
  682. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/230_es +0 -0
  683. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/230_fr +0 -0
  684. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/232_en +0 -0
  685. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/233_en +0 -0
  686. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/234_en +0 -0
  687. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/237_en +0 -0
  688. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/238_en +0 -0
  689. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/238_pt +0 -0
  690. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/239_en +0 -0
  691. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/239_pt +0 -0
  692. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/241_en +0 -0
  693. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/242_en +0 -0
  694. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/242_fr +0 -0
  695. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/243_en +0 -0
  696. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/243_fr +0 -0
  697. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/244_en +0 -0
  698. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/244_pt +0 -0
  699. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/245_en +0 -0
  700. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/245_pt +0 -0
  701. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/247_en +0 -0
  702. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/249_en +0 -0
  703. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/251_en +0 -0
  704. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/252_en +0 -0
  705. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/254_en +0 -0
  706. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/256_en +0 -0
  707. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/257_en +0 -0
  708. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/258_en +0 -0
  709. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/258_pt +0 -0
  710. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/260_en +0 -0
  711. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/261_en +0 -0
  712. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/263_en +0 -0
  713. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/264_en +0 -0
  714. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/266_en +0 -0
  715. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/267_en +0 -0
  716. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/268_en +0 -0
  717. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/269_en +0 -0
  718. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/269_fr +0 -0
  719. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/27_en +0 -0
  720. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/290_en +0 -0
  721. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/290_fr +0 -0
  722. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/299_en +0 -0
  723. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/30_el +0 -0
  724. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/30_en +0 -0
  725. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/31_en +0 -0
  726. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/31_nl +0 -0
  727. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/32_de +0 -0
  728. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/32_en +0 -0
  729. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/32_fr +0 -0
  730. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/32_nl +0 -0
  731. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/33_en +0 -0
  732. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/33_fr +0 -0
  733. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/34_en +0 -0
  734. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/34_es +0 -0
  735. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/351_en +0 -0
  736. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/351_pt +0 -0
  737. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/352_de +0 -0
  738. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/352_en +0 -0
  739. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/352_fr +0 -0
  740. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/353_en +0 -0
  741. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/354_en +0 -0
  742. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/355_en +0 -0
  743. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/358_en +0 -0
  744. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/358_fi +0 -0
  745. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/358_se +0 -0
  746. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/359_bg +0 -0
  747. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/359_en +0 -0
  748. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/36_en +0 -0
  749. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/36_hu +0 -0
  750. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/370_en +0 -0
  751. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/371_en +0 -0
  752. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/372_en +0 -0
  753. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/373_en +0 -0
  754. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/373_ro +0 -0
  755. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/373_ru +0 -0
  756. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/374_am +0 -0
  757. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/374_en +0 -0
  758. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/374_ru +0 -0
  759. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/375_be +0 -0
  760. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/375_en +0 -0
  761. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/375_ru +0 -0
  762. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/381_en +0 -0
  763. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/381_sr +0 -0
  764. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/389_en +0 -0
  765. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/39_en +0 -0
  766. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/39_it +0 -0
  767. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/40_en +0 -0
  768. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/40_ro +0 -0
  769. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/41_de +0 -0
  770. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/41_en +0 -0
  771. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/41_fr +0 -0
  772. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/41_it +0 -0
  773. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/420_en +0 -0
  774. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/421_en +0 -0
  775. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/43_de +0 -0
  776. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/43_en +0 -0
  777. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/44_en +0 -0
  778. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/46_en +0 -0
  779. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/46_sv +0 -0
  780. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/47_en +0 -0
  781. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/48_en +0 -0
  782. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/48_pl +0 -0
  783. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/49_de +0 -0
  784. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/49_en +0 -0
  785. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/51_en +0 -0
  786. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/53_en +0 -0
  787. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/54_en +0 -0
  788. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/54_es +0 -0
  789. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/55_en +0 -0
  790. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/55_pt +0 -0
  791. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/56_en +0 -0
  792. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/56_es +0 -0
  793. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/57_en +0 -0
  794. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/58_en +0 -0
  795. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/58_es +0 -0
  796. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/599_en +0 -0
  797. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/62_en +0 -0
  798. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/62_id +0 -0
  799. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/66_en +0 -0
  800. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/66_th +0 -0
  801. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/686_en +0 -0
  802. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/7_en +0 -0
  803. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/7_ru +0 -0
  804. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/81_en +0 -0
  805. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/81_ja +0 -0
  806. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/82_ar +0 -0
  807. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/82_cs +0 -0
  808. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/82_en +0 -0
  809. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/82_fr +0 -0
  810. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/82_ko +0 -0
  811. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/82_zh +0 -0
  812. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/82_zh_Hant +0 -0
  813. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/84_en +0 -0
  814. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/84_vi +0 -0
  815. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/86_en +0 -0
  816. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/86_zh +0 -0
  817. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/886_en +0 -0
  818. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/886_zh +0 -0
  819. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/886_zh_Hant +0 -0
  820. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/90_en +0 -0
  821. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/90_tr +0 -0
  822. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/91_en +0 -0
  823. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/94_en +0 -0
  824. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/962_en +0 -0
  825. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/966_ar +0 -0
  826. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/966_en +0 -0
  827. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/98_en +0 -0
  828. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/98_fa +0 -0
  829. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/geocoding/data/config +0 -0
  830. data/data/libphonenumber/java/geocoder/src/com/google/i18n/phonenumbers/timezones/data/map_data +0 -0
  831. data/data/libphonenumber/java/geocoder/test/com/google/i18n/phonenumbers/PhoneNumberToTimeZonesMapperTest.java +136 -0
  832. data/data/libphonenumber/java/geocoder/test/com/google/i18n/phonenumbers/geocoding/PhoneNumberOfflineGeocoderTest.java +163 -0
  833. data/data/libphonenumber/java/geocoder/test/com/google/i18n/phonenumbers/geocoding/testing_data/1201_de +0 -0
  834. data/data/libphonenumber/java/geocoder/test/com/google/i18n/phonenumbers/geocoding/testing_data/1201_en +0 -0
  835. data/data/libphonenumber/java/geocoder/test/com/google/i18n/phonenumbers/geocoding/testing_data/1212_en +0 -0
  836. data/data/libphonenumber/java/geocoder/test/com/google/i18n/phonenumbers/geocoding/testing_data/1617_en +0 -0
  837. data/data/libphonenumber/java/geocoder/test/com/google/i18n/phonenumbers/geocoding/testing_data/1650_de +0 -0
  838. data/data/libphonenumber/java/geocoder/test/com/google/i18n/phonenumbers/geocoding/testing_data/1650_en +0 -0
  839. data/data/libphonenumber/java/geocoder/test/com/google/i18n/phonenumbers/geocoding/testing_data/1989_en +0 -0
  840. data/data/libphonenumber/java/geocoder/test/com/google/i18n/phonenumbers/geocoding/testing_data/54_en +0 -0
  841. data/data/libphonenumber/java/geocoder/test/com/google/i18n/phonenumbers/geocoding/testing_data/82_en +0 -0
  842. data/data/libphonenumber/java/geocoder/test/com/google/i18n/phonenumbers/geocoding/testing_data/82_ko +0 -0
  843. data/data/libphonenumber/java/geocoder/test/com/google/i18n/phonenumbers/geocoding/testing_data/config +0 -0
  844. data/data/libphonenumber/java/geocoder/test/com/google/i18n/phonenumbers/timezones/testing_data/map_data +0 -0
  845. data/data/libphonenumber/java/internal/prefixmapper/pom.xml +36 -0
  846. data/data/libphonenumber/java/internal/prefixmapper/src/com/google/i18n/phonenumbers/prefixmapper/DefaultMapStorage.java +94 -0
  847. data/data/libphonenumber/java/internal/prefixmapper/src/com/google/i18n/phonenumbers/prefixmapper/FlyweightMapStorage.java +263 -0
  848. data/data/libphonenumber/java/internal/prefixmapper/src/com/google/i18n/phonenumbers/prefixmapper/MappingFileProvider.java +229 -0
  849. data/data/libphonenumber/java/internal/prefixmapper/src/com/google/i18n/phonenumbers/prefixmapper/PhonePrefixMap.java +216 -0
  850. data/data/libphonenumber/java/internal/prefixmapper/src/com/google/i18n/phonenumbers/prefixmapper/PhonePrefixMapStorageStrategy.java +108 -0
  851. data/data/libphonenumber/java/internal/prefixmapper/src/com/google/i18n/phonenumbers/prefixmapper/PrefixFileReader.java +143 -0
  852. data/data/libphonenumber/java/internal/prefixmapper/src/com/google/i18n/phonenumbers/prefixmapper/PrefixTimeZonesMap.java +126 -0
  853. data/data/libphonenumber/java/internal/prefixmapper/test/com/google/i18n/phonenumbers/prefixmapper/FlyweightMapStorageTest.java +107 -0
  854. data/data/libphonenumber/java/internal/prefixmapper/test/com/google/i18n/phonenumbers/prefixmapper/MappingFileProviderTest.java +93 -0
  855. data/data/libphonenumber/java/internal/prefixmapper/test/com/google/i18n/phonenumbers/prefixmapper/PhonePrefixMapTest.java +193 -0
  856. data/data/libphonenumber/java/internal/prefixmapper/test/com/google/i18n/phonenumbers/prefixmapper/PrefixFileReaderTest.java +75 -0
  857. data/data/libphonenumber/java/internal/prefixmapper/test/com/google/i18n/phonenumbers/prefixmapper/PrefixTimeZonesMapTest.java +176 -0
  858. data/data/libphonenumber/java/lib/junit-4.8.1.jar +0 -0
  859. data/data/libphonenumber/java/libphonenumber/pom.xml +33 -0
  860. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/AlternateFormatsCountryCodeSet.java +79 -0
  861. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/AsYouTypeFormatter.java +656 -0
  862. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/CountryCodeToRegionCodeMap.java +941 -0
  863. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/MetadataLoader.java +34 -0
  864. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/MetadataManager.java +138 -0
  865. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/NumberParseException.java +62 -0
  866. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberMatch.java +123 -0
  867. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberMatcher.java +725 -0
  868. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/PhoneNumberUtil.java +3232 -0
  869. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/Phonemetadata.java +1053 -0
  870. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/Phonenumber.java +285 -0
  871. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/RegexCache.java +78 -0
  872. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/ShortNumberInfo.java +587 -0
  873. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/ShortNumberUtil.java +80 -0
  874. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/ShortNumbersRegionCodeSet.java +268 -0
  875. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_255 +0 -0
  876. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_27 +0 -0
  877. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_30 +0 -0
  878. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_31 +0 -0
  879. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_34 +0 -0
  880. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_350 +0 -0
  881. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_351 +0 -0
  882. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_352 +0 -0
  883. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_358 +0 -0
  884. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_359 +0 -0
  885. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_36 +0 -0
  886. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_372 +0 -0
  887. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_373 +0 -0
  888. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_375 +0 -0
  889. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_380 +0 -0
  890. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_381 +0 -0
  891. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_385 +0 -0
  892. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_43 +0 -0
  893. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_44 +0 -0
  894. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_49 +0 -0
  895. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_505 +0 -0
  896. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_506 +0 -0
  897. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_54 +0 -0
  898. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_55 +0 -0
  899. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_58 +0 -0
  900. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_595 +0 -0
  901. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_61 +0 -0
  902. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_62 +0 -0
  903. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_63 +0 -0
  904. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_66 +0 -0
  905. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_675 +0 -0
  906. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_676 +0 -0
  907. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_679 +0 -0
  908. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_7 +0 -0
  909. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_81 +0 -0
  910. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_84 +0 -0
  911. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_855 +0 -0
  912. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_90 +0 -0
  913. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_91 +0 -0
  914. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_94 +0 -0
  915. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_95 +0 -0
  916. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_971 +0 -0
  917. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_972 +0 -0
  918. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberAlternateFormatsProto_995 +0 -0
  919. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_800 +0 -0
  920. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_808 +0 -0
  921. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_870 +0 -0
  922. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_878 +0 -0
  923. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_881 +0 -0
  924. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_882 +0 -0
  925. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_883 +0 -0
  926. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_888 +0 -0
  927. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_979 +0 -0
  928. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AC +0 -0
  929. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AD +0 -0
  930. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AE +0 -0
  931. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AF +0 -0
  932. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AG +0 -0
  933. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AI +0 -0
  934. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AL +0 -0
  935. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AM +0 -0
  936. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AO +0 -0
  937. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AR +0 -0
  938. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AS +0 -0
  939. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AT +0 -0
  940. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AU +0 -0
  941. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AW +0 -0
  942. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AX +0 -0
  943. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_AZ +0 -0
  944. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BA +0 -0
  945. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BB +0 -0
  946. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BD +0 -0
  947. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BE +0 -0
  948. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BF +0 -0
  949. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BG +0 -0
  950. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BH +0 -0
  951. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BI +0 -0
  952. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BJ +0 -0
  953. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BL +0 -0
  954. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BM +0 -0
  955. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BN +0 -0
  956. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BO +0 -0
  957. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BQ +0 -0
  958. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BR +0 -0
  959. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BS +0 -0
  960. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BT +0 -0
  961. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BW +0 -0
  962. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BY +0 -0
  963. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_BZ +0 -0
  964. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CA +0 -0
  965. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CC +0 -0
  966. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CD +0 -0
  967. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CF +0 -0
  968. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CG +0 -0
  969. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CH +0 -0
  970. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CI +0 -0
  971. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CK +0 -0
  972. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CL +0 -0
  973. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CM +0 -0
  974. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CN +0 -0
  975. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CO +0 -0
  976. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CR +0 -0
  977. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CU +0 -0
  978. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CV +0 -0
  979. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CW +0 -0
  980. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CX +0 -0
  981. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CY +0 -0
  982. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_CZ +0 -0
  983. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DE +0 -0
  984. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DJ +0 -0
  985. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DK +0 -0
  986. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DM +0 -0
  987. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DO +0 -0
  988. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_DZ +0 -0
  989. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_EC +0 -0
  990. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_EE +0 -0
  991. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_EG +0 -0
  992. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_EH +0 -0
  993. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ER +0 -0
  994. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ES +0 -0
  995. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ET +0 -0
  996. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FI +0 -0
  997. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FJ +0 -0
  998. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FK +0 -0
  999. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FM +0 -0
  1000. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FO +0 -0
  1001. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_FR +0 -0
  1002. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GA +0 -0
  1003. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GB +0 -0
  1004. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GD +0 -0
  1005. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GE +0 -0
  1006. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GF +0 -0
  1007. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GG +0 -0
  1008. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GH +0 -0
  1009. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GI +0 -0
  1010. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GL +0 -0
  1011. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GM +0 -0
  1012. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GN +0 -0
  1013. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GP +0 -0
  1014. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GQ +0 -0
  1015. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GR +0 -0
  1016. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GT +0 -0
  1017. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GU +0 -0
  1018. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GW +0 -0
  1019. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_GY +0 -0
  1020. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HK +0 -0
  1021. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HN +0 -0
  1022. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HR +0 -0
  1023. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HT +0 -0
  1024. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_HU +0 -0
  1025. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ID +0 -0
  1026. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IE +0 -0
  1027. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IL +0 -0
  1028. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IM +0 -0
  1029. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IN +0 -0
  1030. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IO +0 -0
  1031. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IQ +0 -0
  1032. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IR +0 -0
  1033. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IS +0 -0
  1034. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_IT +0 -0
  1035. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_JE +0 -0
  1036. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_JM +0 -0
  1037. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_JO +0 -0
  1038. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_JP +0 -0
  1039. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KE +0 -0
  1040. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KG +0 -0
  1041. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KH +0 -0
  1042. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KI +0 -0
  1043. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KM +0 -0
  1044. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KN +0 -0
  1045. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KP +0 -0
  1046. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KR +0 -0
  1047. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KW +0 -0
  1048. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KY +0 -0
  1049. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_KZ +0 -0
  1050. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LA +0 -0
  1051. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LB +0 -0
  1052. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LC +0 -0
  1053. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LI +0 -0
  1054. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LK +0 -0
  1055. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LR +0 -0
  1056. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LS +0 -0
  1057. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LT +0 -0
  1058. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LU +0 -0
  1059. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LV +0 -0
  1060. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_LY +0 -0
  1061. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MA +0 -0
  1062. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MC +0 -0
  1063. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MD +0 -0
  1064. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ME +0 -0
  1065. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MF +0 -0
  1066. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MG +0 -0
  1067. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MH +0 -0
  1068. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MK +0 -0
  1069. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ML +0 -0
  1070. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MM +0 -0
  1071. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MN +0 -0
  1072. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MO +0 -0
  1073. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MP +0 -0
  1074. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MQ +0 -0
  1075. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MR +0 -0
  1076. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MS +0 -0
  1077. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MT +0 -0
  1078. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MU +0 -0
  1079. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MV +0 -0
  1080. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MW +0 -0
  1081. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MX +0 -0
  1082. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MY +0 -0
  1083. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_MZ +0 -0
  1084. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NA +0 -0
  1085. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NC +0 -0
  1086. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NE +0 -0
  1087. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NF +0 -0
  1088. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NG +0 -0
  1089. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NI +0 -0
  1090. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NL +0 -0
  1091. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NO +0 -0
  1092. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NP +0 -0
  1093. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NR +0 -0
  1094. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NU +0 -0
  1095. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_NZ +0 -0
  1096. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_OM +0 -0
  1097. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PA +0 -0
  1098. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PE +0 -0
  1099. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PF +0 -0
  1100. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PG +0 -0
  1101. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PH +0 -0
  1102. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PK +0 -0
  1103. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PL +0 -0
  1104. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PM +0 -0
  1105. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PR +0 -0
  1106. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PS +0 -0
  1107. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PT +0 -0
  1108. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PW +0 -0
  1109. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_PY +0 -0
  1110. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_QA +0 -0
  1111. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RE +0 -0
  1112. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RO +0 -0
  1113. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RS +0 -0
  1114. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RU +0 -0
  1115. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_RW +0 -0
  1116. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SA +0 -0
  1117. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SB +0 -0
  1118. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SC +0 -0
  1119. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SD +0 -0
  1120. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SE +0 -0
  1121. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SG +0 -0
  1122. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SH +0 -0
  1123. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SI +0 -0
  1124. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SJ +0 -0
  1125. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SK +0 -0
  1126. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SL +0 -0
  1127. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SM +0 -0
  1128. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SN +0 -0
  1129. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SO +0 -0
  1130. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SR +0 -0
  1131. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SS +0 -0
  1132. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ST +0 -0
  1133. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SV +0 -0
  1134. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SX +0 -0
  1135. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SY +0 -0
  1136. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_SZ +0 -0
  1137. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TA +0 -0
  1138. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TC +0 -0
  1139. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TD +0 -0
  1140. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TG +0 -0
  1141. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TH +0 -0
  1142. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TJ +0 -0
  1143. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TK +0 -0
  1144. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TL +0 -0
  1145. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TM +0 -0
  1146. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TN +0 -0
  1147. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TO +0 -0
  1148. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TR +0 -0
  1149. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TT +0 -0
  1150. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TV +0 -0
  1151. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TW +0 -0
  1152. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_TZ +0 -0
  1153. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_UA +0 -0
  1154. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_UG +0 -0
  1155. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_US +0 -0
  1156. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_UY +0 -0
  1157. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_UZ +0 -0
  1158. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VA +0 -0
  1159. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VC +0 -0
  1160. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VE +0 -0
  1161. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VG +0 -0
  1162. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VI +0 -0
  1163. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VN +0 -0
  1164. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_VU +0 -0
  1165. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_WF +0 -0
  1166. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_WS +0 -0
  1167. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_YE +0 -0
  1168. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_YT +0 -0
  1169. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ZA +0 -0
  1170. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ZM +0 -0
  1171. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_ZW +0 -0
  1172. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_AC +0 -0
  1173. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_AD +0 -0
  1174. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_AE +0 -0
  1175. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_AF +0 -0
  1176. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_AG +0 -0
  1177. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_AI +0 -0
  1178. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_AL +0 -0
  1179. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_AM +0 -0
  1180. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_AO +0 -0
  1181. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_AR +0 -0
  1182. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_AS +0 -0
  1183. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_AT +0 -0
  1184. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_AU +0 -0
  1185. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_AW +0 -0
  1186. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_AX +0 -0
  1187. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_AZ +0 -0
  1188. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_BA +0 -0
  1189. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_BB +0 -0
  1190. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_BD +0 -0
  1191. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_BE +0 -0
  1192. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_BF +0 -0
  1193. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_BG +0 -0
  1194. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_BH +0 -0
  1195. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_BI +0 -0
  1196. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_BJ +0 -0
  1197. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_BL +0 -0
  1198. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_BM +0 -0
  1199. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_BN +0 -0
  1200. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_BO +0 -0
  1201. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_BQ +0 -0
  1202. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_BR +0 -0
  1203. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_BS +0 -0
  1204. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_BT +0 -0
  1205. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_BW +0 -0
  1206. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_BY +0 -0
  1207. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_BZ +0 -0
  1208. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_CA +0 -0
  1209. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_CC +0 -0
  1210. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_CD +0 -0
  1211. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_CH +0 -0
  1212. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_CI +0 -0
  1213. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_CK +0 -0
  1214. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_CL +0 -0
  1215. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_CM +0 -0
  1216. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_CN +0 -0
  1217. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_CO +0 -0
  1218. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_CR +0 -0
  1219. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_CU +0 -0
  1220. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_CV +0 -0
  1221. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_CW +0 -0
  1222. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_CX +0 -0
  1223. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_CY +0 -0
  1224. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_CZ +0 -0
  1225. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_DE +0 -0
  1226. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_DJ +0 -0
  1227. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_DK +0 -0
  1228. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_DM +0 -0
  1229. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_DO +0 -0
  1230. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_DZ +0 -0
  1231. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_EC +0 -0
  1232. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_EE +0 -0
  1233. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_EG +0 -0
  1234. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_EH +0 -0
  1235. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_ES +0 -0
  1236. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_ET +0 -0
  1237. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_FI +0 -0
  1238. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_FJ +0 -0
  1239. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_FK +0 -0
  1240. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_FM +0 -0
  1241. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_FO +0 -0
  1242. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_FR +0 -0
  1243. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GA +0 -0
  1244. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GB +0 -0
  1245. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GD +0 -0
  1246. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GE +0 -0
  1247. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GF +0 -0
  1248. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GG +0 -0
  1249. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GH +0 -0
  1250. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GI +0 -0
  1251. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GL +0 -0
  1252. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GM +0 -0
  1253. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GN +0 -0
  1254. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GP +0 -0
  1255. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GR +0 -0
  1256. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GT +0 -0
  1257. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GU +0 -0
  1258. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GW +0 -0
  1259. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_GY +0 -0
  1260. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_HK +0 -0
  1261. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_HN +0 -0
  1262. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_HR +0 -0
  1263. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_HT +0 -0
  1264. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_HU +0 -0
  1265. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_ID +0 -0
  1266. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_IE +0 -0
  1267. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_IL +0 -0
  1268. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_IM +0 -0
  1269. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_IN +0 -0
  1270. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_IQ +0 -0
  1271. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_IR +0 -0
  1272. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_IS +0 -0
  1273. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_IT +0 -0
  1274. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_JE +0 -0
  1275. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_JM +0 -0
  1276. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_JO +0 -0
  1277. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_JP +0 -0
  1278. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_KE +0 -0
  1279. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_KG +0 -0
  1280. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_KH +0 -0
  1281. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_KI +0 -0
  1282. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_KM +0 -0
  1283. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_KN +0 -0
  1284. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_KR +0 -0
  1285. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_KW +0 -0
  1286. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_KY +0 -0
  1287. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_KZ +0 -0
  1288. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_LA +0 -0
  1289. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_LB +0 -0
  1290. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_LC +0 -0
  1291. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_LI +0 -0
  1292. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_LK +0 -0
  1293. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_LR +0 -0
  1294. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_LS +0 -0
  1295. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_LT +0 -0
  1296. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_LU +0 -0
  1297. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_LV +0 -0
  1298. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_LY +0 -0
  1299. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MA +0 -0
  1300. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MC +0 -0
  1301. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MD +0 -0
  1302. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_ME +0 -0
  1303. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MF +0 -0
  1304. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MG +0 -0
  1305. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MH +0 -0
  1306. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MK +0 -0
  1307. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_ML +0 -0
  1308. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MM +0 -0
  1309. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MN +0 -0
  1310. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MO +0 -0
  1311. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MP +0 -0
  1312. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MQ +0 -0
  1313. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MR +0 -0
  1314. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MS +0 -0
  1315. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MT +0 -0
  1316. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MU +0 -0
  1317. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MV +0 -0
  1318. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MW +0 -0
  1319. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MX +0 -0
  1320. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MY +0 -0
  1321. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_MZ +0 -0
  1322. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_NA +0 -0
  1323. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_NC +0 -0
  1324. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_NF +0 -0
  1325. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_NG +0 -0
  1326. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_NI +0 -0
  1327. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_NL +0 -0
  1328. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_NO +0 -0
  1329. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_NP +0 -0
  1330. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_NR +0 -0
  1331. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_NU +0 -0
  1332. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_NZ +0 -0
  1333. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_OM +0 -0
  1334. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_PA +0 -0
  1335. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_PE +0 -0
  1336. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_PF +0 -0
  1337. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_PG +0 -0
  1338. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_PH +0 -0
  1339. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_PK +0 -0
  1340. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_PL +0 -0
  1341. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_PM +0 -0
  1342. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_PR +0 -0
  1343. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_PT +0 -0
  1344. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_PW +0 -0
  1345. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_PY +0 -0
  1346. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_QA +0 -0
  1347. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_RE +0 -0
  1348. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_RO +0 -0
  1349. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_RS +0 -0
  1350. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_RU +0 -0
  1351. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_RW +0 -0
  1352. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SA +0 -0
  1353. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SB +0 -0
  1354. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SC +0 -0
  1355. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SD +0 -0
  1356. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SE +0 -0
  1357. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SG +0 -0
  1358. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SH +0 -0
  1359. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SI +0 -0
  1360. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SJ +0 -0
  1361. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SK +0 -0
  1362. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SL +0 -0
  1363. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SM +0 -0
  1364. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SN +0 -0
  1365. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SR +0 -0
  1366. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_ST +0 -0
  1367. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SV +0 -0
  1368. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SX +0 -0
  1369. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SY +0 -0
  1370. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_SZ +0 -0
  1371. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_TC +0 -0
  1372. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_TD +0 -0
  1373. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_TG +0 -0
  1374. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_TH +0 -0
  1375. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_TJ +0 -0
  1376. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_TL +0 -0
  1377. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_TM +0 -0
  1378. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_TN +0 -0
  1379. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_TO +0 -0
  1380. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_TR +0 -0
  1381. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_TT +0 -0
  1382. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_TV +0 -0
  1383. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_TW +0 -0
  1384. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_TZ +0 -0
  1385. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_UA +0 -0
  1386. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_UG +0 -0
  1387. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_US +0 -0
  1388. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_UY +0 -0
  1389. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_UZ +0 -0
  1390. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_VA +0 -0
  1391. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_VC +0 -0
  1392. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_VE +0 -0
  1393. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_VG +0 -0
  1394. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_VI +0 -0
  1395. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_VN +0 -0
  1396. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_VU +0 -0
  1397. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_WF +0 -0
  1398. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_WS +0 -0
  1399. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_YE +0 -0
  1400. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_YT +0 -0
  1401. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_ZA +0 -0
  1402. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_ZM +0 -0
  1403. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/data/ShortNumberMetadataProto_ZW +0 -0
  1404. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/internal/MatcherApi.java +38 -0
  1405. data/data/libphonenumber/java/libphonenumber/src/com/google/i18n/phonenumbers/internal/RegexBasedMatcher.java +52 -0
  1406. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/AsYouTypeFormatterTest.java +1173 -0
  1407. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/CountryCodeToRegionCodeMapForTesting.java +142 -0
  1408. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/ExampleNumbersTest.java +256 -0
  1409. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/MetadataManagerTest.java +51 -0
  1410. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/PhoneNumberMatchTest.java +70 -0
  1411. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/PhoneNumberMatcherTest.java +1090 -0
  1412. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/PhoneNumberUtilTest.java +2570 -0
  1413. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/PhonenumberTest.java +112 -0
  1414. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/RegexCacheTest.java +55 -0
  1415. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/RegionCode.java +61 -0
  1416. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/ShortNumberInfoTest.java +344 -0
  1417. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/ShortNumberUtilTest.java +140 -0
  1418. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/TestMetadataTestCase.java +46 -0
  1419. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_800 +0 -0
  1420. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_979 +0 -0
  1421. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_AD +0 -0
  1422. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_AE +0 -0
  1423. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_AO +0 -0
  1424. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_AR +0 -0
  1425. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_AU +0 -0
  1426. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_BB +0 -0
  1427. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_BR +0 -0
  1428. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_BS +0 -0
  1429. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_BY +0 -0
  1430. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_CA +0 -0
  1431. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_CC +0 -0
  1432. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_CN +0 -0
  1433. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_CX +0 -0
  1434. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_DE +0 -0
  1435. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_FR +0 -0
  1436. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_GB +0 -0
  1437. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_GG +0 -0
  1438. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_HU +0 -0
  1439. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_IT +0 -0
  1440. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_JP +0 -0
  1441. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_KR +0 -0
  1442. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_MX +0 -0
  1443. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_NZ +0 -0
  1444. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_PL +0 -0
  1445. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_RE +0 -0
  1446. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_SG +0 -0
  1447. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_US +0 -0
  1448. data/data/libphonenumber/java/libphonenumber/test/com/google/i18n/phonenumbers/data/PhoneNumberMetadataProtoForTesting_YT +0 -0
  1449. data/data/libphonenumber/java/pom.xml +186 -0
  1450. data/data/libphonenumber/java/release_notes.txt +963 -0
  1451. data/data/libphonenumber/javadoc/allclasses-frame.html +49 -0
  1452. data/data/libphonenumber/javadoc/allclasses-noframe.html +49 -0
  1453. data/data/libphonenumber/javadoc/com/google/i18n/phonenumbers/AsYouTypeFormatter.html +302 -0
  1454. data/data/libphonenumber/javadoc/com/google/i18n/phonenumbers/NumberParseException.ErrorType.html +369 -0
  1455. data/data/libphonenumber/javadoc/com/google/i18n/phonenumbers/NumberParseException.html +311 -0
  1456. data/data/libphonenumber/javadoc/com/google/i18n/phonenumbers/PhoneNumberMatch.html +378 -0
  1457. data/data/libphonenumber/javadoc/com/google/i18n/phonenumbers/PhoneNumberUtil.Leniency.html +330 -0
  1458. data/data/libphonenumber/javadoc/com/google/i18n/phonenumbers/PhoneNumberUtil.MatchType.html +373 -0
  1459. data/data/libphonenumber/javadoc/com/google/i18n/phonenumbers/PhoneNumberUtil.PhoneNumberFormat.html +365 -0
  1460. data/data/libphonenumber/javadoc/com/google/i18n/phonenumbers/PhoneNumberUtil.PhoneNumberType.html +469 -0
  1461. data/data/libphonenumber/javadoc/com/google/i18n/phonenumbers/PhoneNumberUtil.ValidationResult.html +357 -0
  1462. data/data/libphonenumber/javadoc/com/google/i18n/phonenumbers/PhoneNumberUtil.html +1405 -0
  1463. data/data/libphonenumber/javadoc/com/google/i18n/phonenumbers/package-frame.html +68 -0
  1464. data/data/libphonenumber/javadoc/com/google/i18n/phonenumbers/package-summary.html +211 -0
  1465. data/data/libphonenumber/javadoc/com/google/i18n/phonenumbers/package-tree.html +161 -0
  1466. data/data/libphonenumber/javadoc/constant-values.html +142 -0
  1467. data/data/libphonenumber/javadoc/deprecated-list.html +142 -0
  1468. data/data/libphonenumber/javadoc/help-doc.html +209 -0
  1469. data/data/libphonenumber/javadoc/index-all.html +413 -0
  1470. data/data/libphonenumber/javadoc/index.html +36 -0
  1471. data/data/libphonenumber/javadoc/overview-tree.html +163 -0
  1472. data/data/libphonenumber/javadoc/package-list +1 -0
  1473. data/data/libphonenumber/javadoc/resources/inherit.gif +0 -0
  1474. data/data/libphonenumber/javadoc/serialized-form.html +184 -0
  1475. data/data/libphonenumber/javadoc/stylesheet.css +29 -0
  1476. data/data/libphonenumber/javascript/README +99 -0
  1477. data/data/libphonenumber/javascript/build.xml +137 -0
  1478. data/data/libphonenumber/javascript/i18n/phonenumbers/asyoutypeformatter.js +1108 -0
  1479. data/data/libphonenumber/javascript/i18n/phonenumbers/asyoutypeformatter_test.html +38 -0
  1480. data/data/libphonenumber/javascript/i18n/phonenumbers/asyoutypeformatter_test.js +1205 -0
  1481. data/data/libphonenumber/javascript/i18n/phonenumbers/demo-compiled.html +53 -0
  1482. data/data/libphonenumber/javascript/i18n/phonenumbers/demo-compiled.js +510 -0
  1483. data/data/libphonenumber/javascript/i18n/phonenumbers/demo.html +62 -0
  1484. data/data/libphonenumber/javascript/i18n/phonenumbers/demo.js +161 -0
  1485. data/data/libphonenumber/javascript/i18n/phonenumbers/metadata.js +5167 -0
  1486. data/data/libphonenumber/javascript/i18n/phonenumbers/metadatafortesting.js +616 -0
  1487. data/data/libphonenumber/javascript/i18n/phonenumbers/metadatalite.js +5167 -0
  1488. data/data/libphonenumber/javascript/i18n/phonenumbers/phonemetadata.pb.js +2283 -0
  1489. data/data/libphonenumber/javascript/i18n/phonenumbers/phonenumber.pb.js +520 -0
  1490. data/data/libphonenumber/javascript/i18n/phonenumbers/phonenumberutil.js +4194 -0
  1491. data/data/libphonenumber/javascript/i18n/phonenumbers/phonenumberutil_test.html +37 -0
  1492. data/data/libphonenumber/javascript/i18n/phonenumbers/phonenumberutil_test.js +3322 -0
  1493. data/data/libphonenumber/javascript/i18n/phonenumbers/regioncodefortesting.js +66 -0
  1494. data/data/libphonenumber/pom.xml +26 -0
  1495. data/data/libphonenumber/resources/PhoneNumberAlternateFormats.xml +1853 -0
  1496. data/data/{PhoneNumberMetaData.xml → libphonenumber/resources/PhoneNumberMetadata.xml} +0 -0
  1497. data/data/libphonenumber/resources/PhoneNumberMetadataForTesting.xml +938 -0
  1498. data/data/libphonenumber/resources/ShortNumberMetadata.xml +8725 -0
  1499. data/data/libphonenumber/resources/carrier/README +2 -0
  1500. data/data/libphonenumber/resources/carrier/ar/965.txt +17 -0
  1501. data/data/libphonenumber/resources/carrier/be/375.txt +28 -0
  1502. data/data/libphonenumber/resources/carrier/en/1.txt +459 -0
  1503. data/data/libphonenumber/resources/carrier/en/20.txt +17 -0
  1504. data/data/libphonenumber/resources/carrier/en/211.txt +18 -0
  1505. data/data/libphonenumber/resources/carrier/en/212.txt +107 -0
  1506. data/data/libphonenumber/resources/carrier/en/213.txt +20 -0
  1507. data/data/libphonenumber/resources/carrier/en/216.txt +26 -0
  1508. data/data/libphonenumber/resources/carrier/en/220.txt +19 -0
  1509. data/data/libphonenumber/resources/carrier/en/221.txt +23 -0
  1510. data/data/libphonenumber/resources/carrier/en/222.txt +19 -0
  1511. data/data/libphonenumber/resources/carrier/en/223.txt +15 -0
  1512. data/data/libphonenumber/resources/carrier/en/224.txt +21 -0
  1513. data/data/libphonenumber/resources/carrier/en/225.txt +52 -0
  1514. data/data/libphonenumber/resources/carrier/en/226.txt +36 -0
  1515. data/data/libphonenumber/resources/carrier/en/227.txt +24 -0
  1516. data/data/libphonenumber/resources/carrier/en/228.txt +16 -0
  1517. data/data/libphonenumber/resources/carrier/en/229.txt +26 -0
  1518. data/data/libphonenumber/resources/carrier/en/230.txt +61 -0
  1519. data/data/libphonenumber/resources/carrier/en/231.txt +19 -0
  1520. data/data/libphonenumber/resources/carrier/en/232.txt +21 -0
  1521. data/data/libphonenumber/resources/carrier/en/233.txt +23 -0
  1522. data/data/libphonenumber/resources/carrier/en/234.txt +245 -0
  1523. data/data/libphonenumber/resources/carrier/en/235.txt +15 -0
  1524. data/data/libphonenumber/resources/carrier/en/236.txt +18 -0
  1525. data/data/libphonenumber/resources/carrier/en/237.txt +27 -0
  1526. data/data/libphonenumber/resources/carrier/en/238.txt +20 -0
  1527. data/data/libphonenumber/resources/carrier/en/239.txt +16 -0
  1528. data/data/libphonenumber/resources/carrier/en/240.txt +17 -0
  1529. data/data/libphonenumber/resources/carrier/en/241.txt +35 -0
  1530. data/data/libphonenumber/resources/carrier/en/242.txt +16 -0
  1531. data/data/libphonenumber/resources/carrier/en/243.txt +23 -0
  1532. data/data/libphonenumber/resources/carrier/en/244.txt +19 -0
  1533. data/data/libphonenumber/resources/carrier/en/245.txt +16 -0
  1534. data/data/libphonenumber/resources/carrier/en/248.txt +16 -0
  1535. data/data/libphonenumber/resources/carrier/en/249.txt +19 -0
  1536. data/data/libphonenumber/resources/carrier/en/250.txt +15 -0
  1537. data/data/libphonenumber/resources/carrier/en/251.txt +15 -0
  1538. data/data/libphonenumber/resources/carrier/en/252.txt +22 -0
  1539. data/data/libphonenumber/resources/carrier/en/253.txt +17 -0
  1540. data/data/libphonenumber/resources/carrier/en/254.txt +44 -0
  1541. data/data/libphonenumber/resources/carrier/en/255.txt +21 -0
  1542. data/data/libphonenumber/resources/carrier/en/256.txt +26 -0
  1543. data/data/libphonenumber/resources/carrier/en/257.txt +25 -0
  1544. data/data/libphonenumber/resources/carrier/en/258.txt +18 -0
  1545. data/data/libphonenumber/resources/carrier/en/260.txt +17 -0
  1546. data/data/libphonenumber/resources/carrier/en/261.txt +18 -0
  1547. data/data/libphonenumber/resources/carrier/en/263.txt +17 -0
  1548. data/data/libphonenumber/resources/carrier/en/265.txt +16 -0
  1549. data/data/libphonenumber/resources/carrier/en/267.txt +54 -0
  1550. data/data/libphonenumber/resources/carrier/en/268.txt +15 -0
  1551. data/data/libphonenumber/resources/carrier/en/27.txt +70 -0
  1552. data/data/libphonenumber/resources/carrier/en/297.txt +29 -0
  1553. data/data/libphonenumber/resources/carrier/en/298.txt +18 -0
  1554. data/data/libphonenumber/resources/carrier/en/299.txt +17 -0
  1555. data/data/libphonenumber/resources/carrier/en/30.txt +20 -0
  1556. data/data/libphonenumber/resources/carrier/en/31.txt +65 -0
  1557. data/data/libphonenumber/resources/carrier/en/32.txt +18 -0
  1558. data/data/libphonenumber/resources/carrier/en/33.txt +72 -0
  1559. data/data/libphonenumber/resources/carrier/en/350.txt +19 -0
  1560. data/data/libphonenumber/resources/carrier/en/351.txt +26 -0
  1561. data/data/libphonenumber/resources/carrier/en/352.txt +23 -0
  1562. data/data/libphonenumber/resources/carrier/en/353.txt +20 -0
  1563. data/data/libphonenumber/resources/carrier/en/354.txt +44 -0
  1564. data/data/libphonenumber/resources/carrier/en/355.txt +18 -0
  1565. data/data/libphonenumber/resources/carrier/en/356.txt +27 -0
  1566. data/data/libphonenumber/resources/carrier/en/357.txt +19 -0
  1567. data/data/libphonenumber/resources/carrier/en/358.txt +44 -0
  1568. data/data/libphonenumber/resources/carrier/en/359.txt +18 -0
  1569. data/data/libphonenumber/resources/carrier/en/36.txt +17 -0
  1570. data/data/libphonenumber/resources/carrier/en/370.txt +50 -0
  1571. data/data/libphonenumber/resources/carrier/en/372.txt +30 -0
  1572. data/data/libphonenumber/resources/carrier/en/373.txt +44 -0
  1573. data/data/libphonenumber/resources/carrier/en/374.txt +29 -0
  1574. data/data/libphonenumber/resources/carrier/en/375.txt +28 -0
  1575. data/data/libphonenumber/resources/carrier/en/376.txt +15 -0
  1576. data/data/libphonenumber/resources/carrier/en/380.txt +15 -0
  1577. data/data/libphonenumber/resources/carrier/en/381.txt +23 -0
  1578. data/data/libphonenumber/resources/carrier/en/385.txt +19 -0
  1579. data/data/libphonenumber/resources/carrier/en/386.txt +23 -0
  1580. data/data/libphonenumber/resources/carrier/en/387.txt +20 -0
  1581. data/data/libphonenumber/resources/carrier/en/389.txt +23 -0
  1582. data/data/libphonenumber/resources/carrier/en/39.txt +23 -0
  1583. data/data/libphonenumber/resources/carrier/en/40.txt +20 -0
  1584. data/data/libphonenumber/resources/carrier/en/41.txt +18 -0
  1585. data/data/libphonenumber/resources/carrier/en/420.txt +32 -0
  1586. data/data/libphonenumber/resources/carrier/en/421.txt +28 -0
  1587. data/data/libphonenumber/resources/carrier/en/43.txt +26 -0
  1588. data/data/libphonenumber/resources/carrier/en/45.txt +364 -0
  1589. data/data/libphonenumber/resources/carrier/en/47.txt +239 -0
  1590. data/data/libphonenumber/resources/carrier/en/48.txt +118 -0
  1591. data/data/libphonenumber/resources/carrier/en/49.txt +44 -0
  1592. data/data/libphonenumber/resources/carrier/en/501.txt +16 -0
  1593. data/data/libphonenumber/resources/carrier/en/505.txt +101 -0
  1594. data/data/libphonenumber/resources/carrier/en/506.txt +49 -0
  1595. data/data/libphonenumber/resources/carrier/en/507.txt +84 -0
  1596. data/data/libphonenumber/resources/carrier/en/51.txt +584 -0
  1597. data/data/libphonenumber/resources/carrier/en/53.txt +15 -0
  1598. data/data/libphonenumber/resources/carrier/en/54.txt +98 -0
  1599. data/data/libphonenumber/resources/carrier/en/55.txt +9479 -0
  1600. data/data/libphonenumber/resources/carrier/en/56.txt +538 -0
  1601. data/data/libphonenumber/resources/carrier/en/57.txt +38 -0
  1602. data/data/libphonenumber/resources/carrier/en/58.txt +18 -0
  1603. data/data/libphonenumber/resources/carrier/en/591.txt +51 -0
  1604. data/data/libphonenumber/resources/carrier/en/595.txt +19 -0
  1605. data/data/libphonenumber/resources/carrier/en/597.txt +33 -0
  1606. data/data/libphonenumber/resources/carrier/en/598.txt +25 -0
  1607. data/data/libphonenumber/resources/carrier/en/599.txt +47 -0
  1608. data/data/libphonenumber/resources/carrier/en/60.txt +113 -0
  1609. data/data/libphonenumber/resources/carrier/en/61.txt +92 -0
  1610. data/data/libphonenumber/resources/carrier/en/62.txt +701 -0
  1611. data/data/libphonenumber/resources/carrier/en/63.txt +53 -0
  1612. data/data/libphonenumber/resources/carrier/en/64.txt +22 -0
  1613. data/data/libphonenumber/resources/carrier/en/65.txt +403 -0
  1614. data/data/libphonenumber/resources/carrier/en/66.txt +47 -0
  1615. data/data/libphonenumber/resources/carrier/en/670.txt +16 -0
  1616. data/data/libphonenumber/resources/carrier/en/673.txt +22 -0
  1617. data/data/libphonenumber/resources/carrier/en/675.txt +29 -0
  1618. data/data/libphonenumber/resources/carrier/en/676.txt +39 -0
  1619. data/data/libphonenumber/resources/carrier/en/677.txt +38 -0
  1620. data/data/libphonenumber/resources/carrier/en/678.txt +31 -0
  1621. data/data/libphonenumber/resources/carrier/en/679.txt +23 -0
  1622. data/data/libphonenumber/resources/carrier/en/685.txt +17 -0
  1623. data/data/libphonenumber/resources/carrier/en/686.txt +20 -0
  1624. data/data/libphonenumber/resources/carrier/en/7.txt +24 -0
  1625. data/data/libphonenumber/resources/carrier/en/84.txt +24 -0
  1626. data/data/libphonenumber/resources/carrier/en/852.txt +282 -0
  1627. data/data/libphonenumber/resources/carrier/en/855.txt +34 -0
  1628. data/data/libphonenumber/resources/carrier/en/856.txt +18 -0
  1629. data/data/libphonenumber/resources/carrier/en/86.txt +43 -0
  1630. data/data/libphonenumber/resources/carrier/en/880.txt +20 -0
  1631. data/data/libphonenumber/resources/carrier/en/90.txt +26 -0
  1632. data/data/libphonenumber/resources/carrier/en/91.txt +1647 -0
  1633. data/data/libphonenumber/resources/carrier/en/92.txt +49 -0
  1634. data/data/libphonenumber/resources/carrier/en/93.txt +27 -0
  1635. data/data/libphonenumber/resources/carrier/en/94.txt +19 -0
  1636. data/data/libphonenumber/resources/carrier/en/95.txt +16 -0
  1637. data/data/libphonenumber/resources/carrier/en/960.txt +16 -0
  1638. data/data/libphonenumber/resources/carrier/en/961.txt +25 -0
  1639. data/data/libphonenumber/resources/carrier/en/962.txt +18 -0
  1640. data/data/libphonenumber/resources/carrier/en/964.txt +19 -0
  1641. data/data/libphonenumber/resources/carrier/en/965.txt +17 -0
  1642. data/data/libphonenumber/resources/carrier/en/966.txt +27 -0
  1643. data/data/libphonenumber/resources/carrier/en/967.txt +21 -0
  1644. data/data/libphonenumber/resources/carrier/en/968.txt +18 -0
  1645. data/data/libphonenumber/resources/carrier/en/970.txt +16 -0
  1646. data/data/libphonenumber/resources/carrier/en/971.txt +18 -0
  1647. data/data/libphonenumber/resources/carrier/en/972.txt +32 -0
  1648. data/data/libphonenumber/resources/carrier/en/973.txt +30 -0
  1649. data/data/libphonenumber/resources/carrier/en/974.txt +18 -0
  1650. data/data/libphonenumber/resources/carrier/en/975.txt +15 -0
  1651. data/data/libphonenumber/resources/carrier/en/977.txt +25 -0
  1652. data/data/libphonenumber/resources/carrier/en/98.txt +29 -0
  1653. data/data/libphonenumber/resources/carrier/en/992.txt +23 -0
  1654. data/data/libphonenumber/resources/carrier/en/993.txt +17 -0
  1655. data/data/libphonenumber/resources/carrier/en/994.txt +20 -0
  1656. data/data/libphonenumber/resources/carrier/en/995.txt +34 -0
  1657. data/data/libphonenumber/resources/carrier/en/996.txt +22 -0
  1658. data/data/libphonenumber/resources/carrier/en/998.txt +33 -0
  1659. data/data/libphonenumber/resources/carrier/ru/375.txt +28 -0
  1660. data/data/libphonenumber/resources/geocoding/am/374.txt +177 -0
  1661. data/data/libphonenumber/resources/geocoding/ar/82.txt +34 -0
  1662. data/data/libphonenumber/resources/geocoding/ar/966.txt +27 -0
  1663. data/data/libphonenumber/resources/geocoding/be/375.txt +144 -0
  1664. data/data/libphonenumber/resources/geocoding/bg/359.txt +2105 -0
  1665. data/data/libphonenumber/resources/geocoding/cs/82.txt +35 -0
  1666. data/data/libphonenumber/resources/geocoding/de/32.txt +59 -0
  1667. data/data/libphonenumber/resources/geocoding/de/352.txt +229 -0
  1668. data/data/libphonenumber/resources/geocoding/de/41.txt +37 -0
  1669. data/data/libphonenumber/resources/geocoding/de/43.txt +1037 -0
  1670. data/data/libphonenumber/resources/geocoding/de/49.txt +5219 -0
  1671. data/data/libphonenumber/resources/geocoding/el/30.txt +259 -0
  1672. data/data/libphonenumber/resources/geocoding/en/1.txt +36228 -0
  1673. data/data/libphonenumber/resources/geocoding/en/20.txt +45 -0
  1674. data/data/libphonenumber/resources/geocoding/en/212.txt +85 -0
  1675. data/data/libphonenumber/resources/geocoding/en/213.txt +30 -0
  1676. data/data/libphonenumber/resources/geocoding/en/216.txt +26 -0
  1677. data/data/libphonenumber/resources/geocoding/en/220.txt +59 -0
  1678. data/data/libphonenumber/resources/geocoding/en/221.txt +19 -0
  1679. data/data/libphonenumber/resources/geocoding/en/222.txt +28 -0
  1680. data/data/libphonenumber/resources/geocoding/en/224.txt +38 -0
  1681. data/data/libphonenumber/resources/geocoding/en/225.txt +28 -0
  1682. data/data/libphonenumber/resources/geocoding/en/226.txt +50 -0
  1683. data/data/libphonenumber/resources/geocoding/en/228.txt +24 -0
  1684. data/data/libphonenumber/resources/geocoding/en/229.txt +52 -0
  1685. data/data/libphonenumber/resources/geocoding/en/230.txt +25 -0
  1686. data/data/libphonenumber/resources/geocoding/en/232.txt +20 -0
  1687. data/data/libphonenumber/resources/geocoding/en/233.txt +86 -0
  1688. data/data/libphonenumber/resources/geocoding/en/234.txt +79 -0
  1689. data/data/libphonenumber/resources/geocoding/en/237.txt +125 -0
  1690. data/data/libphonenumber/resources/geocoding/en/238.txt +54 -0
  1691. data/data/libphonenumber/resources/geocoding/en/239.txt +35 -0
  1692. data/data/libphonenumber/resources/geocoding/en/241.txt +48 -0
  1693. data/data/libphonenumber/resources/geocoding/en/242.txt +23 -0
  1694. data/data/libphonenumber/resources/geocoding/en/243.txt +22 -0
  1695. data/data/libphonenumber/resources/geocoding/en/244.txt +54 -0
  1696. data/data/libphonenumber/resources/geocoding/en/245.txt +36 -0
  1697. data/data/libphonenumber/resources/geocoding/en/247.txt +27 -0
  1698. data/data/libphonenumber/resources/geocoding/en/249.txt +28 -0
  1699. data/data/libphonenumber/resources/geocoding/en/251.txt +385 -0
  1700. data/data/libphonenumber/resources/geocoding/en/252.txt +21 -0
  1701. data/data/libphonenumber/resources/geocoding/en/254.txt +46 -0
  1702. data/data/libphonenumber/resources/geocoding/en/256.txt +30 -0
  1703. data/data/libphonenumber/resources/geocoding/en/257.txt +28 -0
  1704. data/data/libphonenumber/resources/geocoding/en/258.txt +27 -0
  1705. data/data/libphonenumber/resources/geocoding/en/260.txt +26 -0
  1706. data/data/libphonenumber/resources/geocoding/en/261.txt +40 -0
  1707. data/data/libphonenumber/resources/geocoding/en/263.txt +116 -0
  1708. data/data/libphonenumber/resources/geocoding/en/264.txt +1046 -0
  1709. data/data/libphonenumber/resources/geocoding/en/266.txt +18 -0
  1710. data/data/libphonenumber/resources/geocoding/en/267.txt +35 -0
  1711. data/data/libphonenumber/resources/geocoding/en/268.txt +54 -0
  1712. data/data/libphonenumber/resources/geocoding/en/269.txt +32 -0
  1713. data/data/libphonenumber/resources/geocoding/en/27.txt +57 -0
  1714. data/data/libphonenumber/resources/geocoding/en/290.txt +24 -0
  1715. data/data/libphonenumber/resources/geocoding/en/299.txt +43 -0
  1716. data/data/libphonenumber/resources/geocoding/en/30.txt +261 -0
  1717. data/data/libphonenumber/resources/geocoding/en/31.txt +137 -0
  1718. data/data/libphonenumber/resources/geocoding/en/32.txt +59 -0
  1719. data/data/libphonenumber/resources/geocoding/en/33.txt +5592 -0
  1720. data/data/libphonenumber/resources/geocoding/en/34.txt +123 -0
  1721. data/data/libphonenumber/resources/geocoding/en/351.txt +67 -0
  1722. data/data/libphonenumber/resources/geocoding/en/352.txt +228 -0
  1723. data/data/libphonenumber/resources/geocoding/en/353.txt +71 -0
  1724. data/data/libphonenumber/resources/geocoding/en/354.txt +23 -0
  1725. data/data/libphonenumber/resources/geocoding/en/355.txt +188 -0
  1726. data/data/libphonenumber/resources/geocoding/en/358.txt +38 -0
  1727. data/data/libphonenumber/resources/geocoding/en/359.txt +2102 -0
  1728. data/data/libphonenumber/resources/geocoding/en/36.txt +70 -0
  1729. data/data/libphonenumber/resources/geocoding/en/370.txt +64 -0
  1730. data/data/libphonenumber/resources/geocoding/en/371.txt +53 -0
  1731. data/data/libphonenumber/resources/geocoding/en/372.txt +35 -0
  1732. data/data/libphonenumber/resources/geocoding/en/373.txt +62 -0
  1733. data/data/libphonenumber/resources/geocoding/en/374.txt +184 -0
  1734. data/data/libphonenumber/resources/geocoding/en/375.txt +142 -0
  1735. data/data/libphonenumber/resources/geocoding/en/381.txt +50 -0
  1736. data/data/libphonenumber/resources/geocoding/en/389.txt +28 -0
  1737. data/data/libphonenumber/resources/geocoding/en/39.txt +137 -0
  1738. data/data/libphonenumber/resources/geocoding/en/40.txt +98 -0
  1739. data/data/libphonenumber/resources/geocoding/en/41.txt +37 -0
  1740. data/data/libphonenumber/resources/geocoding/en/420.txt +37 -0
  1741. data/data/libphonenumber/resources/geocoding/en/421.txt +42 -0
  1742. data/data/libphonenumber/resources/geocoding/en/43.txt +1036 -0
  1743. data/data/libphonenumber/resources/geocoding/en/44.txt +852 -0
  1744. data/data/libphonenumber/resources/geocoding/en/46.txt +265 -0
  1745. data/data/libphonenumber/resources/geocoding/en/47.txt +49 -0
  1746. data/data/libphonenumber/resources/geocoding/en/48.txt +65 -0
  1747. data/data/libphonenumber/resources/geocoding/en/49.txt +5218 -0
  1748. data/data/libphonenumber/resources/geocoding/en/51.txt +42 -0
  1749. data/data/libphonenumber/resources/geocoding/en/53.txt +33 -0
  1750. data/data/libphonenumber/resources/geocoding/en/54.txt +236 -0
  1751. data/data/libphonenumber/resources/geocoding/en/55.txt +84 -0
  1752. data/data/libphonenumber/resources/geocoding/en/56.txt +40 -0
  1753. data/data/libphonenumber/resources/geocoding/en/57.txt +186 -0
  1754. data/data/libphonenumber/resources/geocoding/en/58.txt +73 -0
  1755. data/data/libphonenumber/resources/geocoding/en/599.txt +22 -0
  1756. data/data/libphonenumber/resources/geocoding/en/62.txt +324 -0
  1757. data/data/libphonenumber/resources/geocoding/en/66.txt +40 -0
  1758. data/data/libphonenumber/resources/geocoding/en/686.txt +50 -0
  1759. data/data/libphonenumber/resources/geocoding/en/7.txt +355 -0
  1760. data/data/libphonenumber/resources/geocoding/en/81.txt +1547 -0
  1761. data/data/libphonenumber/resources/geocoding/en/82.txt +35 -0
  1762. data/data/libphonenumber/resources/geocoding/en/84.txt +80 -0
  1763. data/data/libphonenumber/resources/geocoding/en/86.txt +145812 -0
  1764. data/data/libphonenumber/resources/geocoding/en/886.txt +30 -0
  1765. data/data/libphonenumber/resources/geocoding/en/90.txt +182 -0
  1766. data/data/libphonenumber/resources/geocoding/en/91.txt +2669 -0
  1767. data/data/libphonenumber/resources/geocoding/en/94.txt +46 -0
  1768. data/data/libphonenumber/resources/geocoding/en/962.txt +32 -0
  1769. data/data/libphonenumber/resources/geocoding/en/966.txt +29 -0
  1770. data/data/libphonenumber/resources/geocoding/en/98.txt +53 -0
  1771. data/data/libphonenumber/resources/geocoding/es/228.txt +23 -0
  1772. data/data/libphonenumber/resources/geocoding/es/230.txt +23 -0
  1773. data/data/libphonenumber/resources/geocoding/es/34.txt +124 -0
  1774. data/data/libphonenumber/resources/geocoding/es/54.txt +238 -0
  1775. data/data/libphonenumber/resources/geocoding/es/56.txt +42 -0
  1776. data/data/libphonenumber/resources/geocoding/es/57.txt +186 -0
  1777. data/data/libphonenumber/resources/geocoding/es/58.txt +72 -0
  1778. data/data/libphonenumber/resources/geocoding/fa/98.txt +50 -0
  1779. data/data/libphonenumber/resources/geocoding/fi/358.txt +39 -0
  1780. data/data/libphonenumber/resources/geocoding/fr/212.txt +84 -0
  1781. data/data/libphonenumber/resources/geocoding/fr/222.txt +29 -0
  1782. data/data/libphonenumber/resources/geocoding/fr/225.txt +30 -0
  1783. data/data/libphonenumber/resources/geocoding/fr/228.txt +24 -0
  1784. data/data/libphonenumber/resources/geocoding/fr/229.txt +55 -0
  1785. data/data/libphonenumber/resources/geocoding/fr/230.txt +23 -0
  1786. data/data/libphonenumber/resources/geocoding/fr/242.txt +25 -0
  1787. data/data/libphonenumber/resources/geocoding/fr/243.txt +24 -0
  1788. data/data/libphonenumber/resources/geocoding/fr/269.txt +34 -0
  1789. data/data/libphonenumber/resources/geocoding/fr/290.txt +24 -0
  1790. data/data/libphonenumber/resources/geocoding/fr/32.txt +59 -0
  1791. data/data/libphonenumber/resources/geocoding/fr/33.txt +5593 -0
  1792. data/data/libphonenumber/resources/geocoding/fr/352.txt +231 -0
  1793. data/data/libphonenumber/resources/geocoding/fr/41.txt +37 -0
  1794. data/data/libphonenumber/resources/geocoding/fr/82.txt +33 -0
  1795. data/data/libphonenumber/resources/geocoding/hu/36.txt +71 -0
  1796. data/data/libphonenumber/resources/geocoding/id/62.txt +325 -0
  1797. data/data/libphonenumber/resources/geocoding/it/39.txt +248 -0
  1798. data/data/libphonenumber/resources/geocoding/it/41.txt +37 -0
  1799. data/data/libphonenumber/resources/geocoding/ja/81.txt +1546 -0
  1800. data/data/libphonenumber/resources/geocoding/ko/82.txt +35 -0
  1801. data/data/libphonenumber/resources/geocoding/nl/31.txt +145 -0
  1802. data/data/libphonenumber/resources/geocoding/nl/32.txt +59 -0
  1803. data/data/libphonenumber/resources/geocoding/pl/48.txt +66 -0
  1804. data/data/libphonenumber/resources/geocoding/pt/238.txt +58 -0
  1805. data/data/libphonenumber/resources/geocoding/pt/239.txt +37 -0
  1806. data/data/libphonenumber/resources/geocoding/pt/244.txt +59 -0
  1807. data/data/libphonenumber/resources/geocoding/pt/245.txt +37 -0
  1808. data/data/libphonenumber/resources/geocoding/pt/258.txt +29 -0
  1809. data/data/libphonenumber/resources/geocoding/pt/351.txt +69 -0
  1810. data/data/libphonenumber/resources/geocoding/pt/55.txt +86 -0
  1811. data/data/libphonenumber/resources/geocoding/ro/373.txt +61 -0
  1812. data/data/libphonenumber/resources/geocoding/ro/40.txt +99 -0
  1813. data/data/libphonenumber/resources/geocoding/ru/373.txt +61 -0
  1814. data/data/libphonenumber/resources/geocoding/ru/374.txt +177 -0
  1815. data/data/libphonenumber/resources/geocoding/ru/375.txt +143 -0
  1816. data/data/libphonenumber/resources/geocoding/ru/7.txt +108 -0
  1817. data/data/libphonenumber/resources/geocoding/se/358.txt +38 -0
  1818. data/data/libphonenumber/resources/geocoding/sr/381.txt +51 -0
  1819. data/data/libphonenumber/resources/geocoding/sv/46.txt +266 -0
  1820. data/data/libphonenumber/resources/geocoding/th/66.txt +39 -0
  1821. data/data/libphonenumber/resources/geocoding/tr/90.txt +182 -0
  1822. data/data/libphonenumber/resources/geocoding/vi/84.txt +80 -0
  1823. data/data/libphonenumber/resources/geocoding/zh/82.txt +35 -0
  1824. data/data/libphonenumber/resources/geocoding/zh/86.txt +145812 -0
  1825. data/data/libphonenumber/resources/geocoding/zh/886.txt +30 -0
  1826. data/data/libphonenumber/resources/geocoding/zh_Hant/82.txt +35 -0
  1827. data/data/libphonenumber/resources/geocoding/zh_Hant/886.txt +30 -0
  1828. data/data/libphonenumber/resources/phonemetadata.proto +282 -0
  1829. data/data/libphonenumber/resources/phonenumber.proto +123 -0
  1830. data/data/libphonenumber/resources/test/carrier/en/1.txt +16 -0
  1831. data/data/libphonenumber/resources/test/carrier/en/244.txt +16 -0
  1832. data/data/libphonenumber/resources/test/carrier/en/44.txt +17 -0
  1833. data/data/libphonenumber/resources/test/carrier/sv/44.txt +15 -0
  1834. data/data/libphonenumber/resources/test/geocoding/de/1.txt +16 -0
  1835. data/data/libphonenumber/resources/test/geocoding/en/1.txt +21 -0
  1836. data/data/libphonenumber/resources/test/geocoding/en/54.txt +15 -0
  1837. data/data/libphonenumber/resources/test/geocoding/en/82.txt +30 -0
  1838. data/data/libphonenumber/resources/test/geocoding/ko/82.txt +29 -0
  1839. data/data/libphonenumber/resources/test/timezones/map_data.txt +24 -0
  1840. data/data/libphonenumber/resources/timezones/map_data.txt +1996 -0
  1841. data/data/libphonenumber/tools/cpp/CMakeLists.txt +57 -0
  1842. data/data/libphonenumber/tools/cpp/gtest.cmake +47 -0
  1843. data/data/libphonenumber/tools/cpp/src/base/basictypes.h +312 -0
  1844. data/data/libphonenumber/tools/cpp/src/cpp-build/generate_geocoding_data.cc +654 -0
  1845. data/data/libphonenumber/tools/cpp/src/cpp-build/generate_geocoding_data.h +37 -0
  1846. data/data/libphonenumber/tools/cpp/src/cpp-build/generate_geocoding_data_main.cc +21 -0
  1847. data/data/libphonenumber/tools/cpp/test/cpp-build/generate_geocoding_data_test.cc +39 -0
  1848. data/data/libphonenumber/tools/cpp/test/cpp-build/run_tests.cc +21 -0
  1849. data/data/libphonenumber/tools/java/common/pom.xml +61 -0
  1850. data/data/libphonenumber/tools/java/common/src/com/google/i18n/phonenumbers/BuildMetadataFromXml.java +514 -0
  1851. data/data/libphonenumber/tools/java/common/src/com/google/i18n/phonenumbers/Command.java +51 -0
  1852. data/data/libphonenumber/tools/java/common/src/com/google/i18n/phonenumbers/CommandDispatcher.java +78 -0
  1853. data/data/libphonenumber/tools/java/common/src/com/google/i18n/phonenumbers/CopyrightNotice.java +66 -0
  1854. data/data/libphonenumber/tools/java/common/src/com/google/i18n/phonenumbers/FileUtils.java +52 -0
  1855. data/data/libphonenumber/tools/java/common/test/com/google/i18n/phonenumbers/BuildMetadataFromXmlTest.java +657 -0
  1856. data/data/libphonenumber/tools/java/cpp-build/pom.xml +149 -0
  1857. data/data/libphonenumber/tools/java/cpp-build/src/com/google/i18n/phonenumbers/BuildMetadataCppFromXml.java +219 -0
  1858. data/data/libphonenumber/tools/java/cpp-build/src/com/google/i18n/phonenumbers/CppMetadataGenerator.java +197 -0
  1859. data/data/libphonenumber/tools/java/cpp-build/src/com/google/i18n/phonenumbers/EntryPoint.java +33 -0
  1860. data/data/libphonenumber/tools/java/cpp-build/target/cpp-build-1.0-SNAPSHOT-jar-with-dependencies.jar +0 -0
  1861. data/data/libphonenumber/tools/java/cpp-build/test/com/google/i18n/phonenumbers/BuildMetadataCppFromXmlTest.java +185 -0
  1862. data/data/libphonenumber/tools/java/cpp-build/test/com/google/i18n/phonenumbers/CppMetadataGeneratorTest.java +122 -0
  1863. data/data/libphonenumber/tools/java/data/README +16 -0
  1864. data/data/libphonenumber/tools/java/data/pom.xml +111 -0
  1865. data/data/libphonenumber/tools/java/data/src/com/google/i18n/phonenumbers/CombineGeoData.java +287 -0
  1866. data/data/libphonenumber/tools/java/data/src/com/google/i18n/phonenumbers/CombineGeoDataServlet.java +46 -0
  1867. data/data/libphonenumber/tools/java/data/test/com/google/i18n/phonenumbers/CombineGeoDataTest.java +233 -0
  1868. data/data/libphonenumber/tools/java/data/webapp/WEB-INF/appengine-web.xml +8 -0
  1869. data/data/libphonenumber/tools/java/data/webapp/WEB-INF/logging.properties +13 -0
  1870. data/data/libphonenumber/tools/java/data/webapp/WEB-INF/web.xml +18 -0
  1871. data/data/libphonenumber/tools/java/data/webapp/index.html +22 -0
  1872. data/data/libphonenumber/tools/java/java-build/pom.xml +113 -0
  1873. data/data/libphonenumber/tools/java/java-build/src/com/google/i18n/phonenumbers/BuildMetadataJsonFromXml.java +389 -0
  1874. data/data/libphonenumber/tools/java/java-build/src/com/google/i18n/phonenumbers/BuildMetadataProtoFromXml.java +349 -0
  1875. data/data/libphonenumber/tools/java/java-build/src/com/google/i18n/phonenumbers/EntryPoint.java +39 -0
  1876. data/data/libphonenumber/tools/java/java-build/src/com/google/i18n/phonenumbers/JSArrayBuilder.java +142 -0
  1877. data/data/libphonenumber/tools/java/java-build/src/com/google/i18n/phonenumbers/buildtools/AbstractPhonePrefixDataIOHandler.java +62 -0
  1878. data/data/libphonenumber/tools/java/java-build/src/com/google/i18n/phonenumbers/buildtools/GeneratePhonePrefixData.java +483 -0
  1879. data/data/libphonenumber/tools/java/java-build/src/com/google/i18n/phonenumbers/buildtools/GeneratePhonePrefixDataEntryPoint.java +58 -0
  1880. data/data/libphonenumber/tools/java/java-build/src/com/google/i18n/phonenumbers/buildtools/GenerateTimeZonesMapData.java +143 -0
  1881. data/data/libphonenumber/tools/java/java-build/src/com/google/i18n/phonenumbers/buildtools/GenerateTimeZonesMapDataEntryPoint.java +60 -0
  1882. data/data/libphonenumber/tools/java/java-build/src/com/google/i18n/phonenumbers/buildtools/PhonePrefixDataIOHandler.java +59 -0
  1883. data/data/libphonenumber/tools/java/java-build/target/java-build-1.0-SNAPSHOT-jar-with-dependencies.jar +0 -0
  1884. data/data/libphonenumber/tools/java/java-build/test/com/google/i18n/phonenumbers/buildtools/GeneratePhonePrefixDataTest.java +291 -0
  1885. data/data/libphonenumber/tools/java/java-build/test/com/google/i18n/phonenumbers/buildtools/GenerateTimeZonesMapDataTest.java +136 -0
  1886. data/data/libphonenumber/tools/java/pom.xml +29 -0
  1887. data/data/libphonenumber/tools/script/continuous-integration.sh +96 -0
  1888. data/data/phone_data.dat +0 -0
  1889. data/lib/phonelib/core.rb +36 -1
  1890. data/lib/phonelib/data_importer.rb +268 -0
  1891. data/lib/phonelib/phone.rb +67 -0
  1892. data/lib/phonelib/version.rb +1 -1
  1893. data/lib/tasks/phonelib_tasks.rake +2 -70
  1894. metadata +1892 -7
@@ -0,0 +1,2570 @@
1
+ /*
2
+ * Copyright (C) 2009 The Libphonenumber Authors
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ package com.google.i18n.phonenumbers;
18
+
19
+ import com.google.i18n.phonenumbers.PhoneNumberUtil.PhoneNumberFormat;
20
+ import com.google.i18n.phonenumbers.Phonemetadata.NumberFormat;
21
+ import com.google.i18n.phonenumbers.Phonemetadata.PhoneMetadata;
22
+ import com.google.i18n.phonenumbers.Phonemetadata.PhoneNumberDesc;
23
+ import com.google.i18n.phonenumbers.Phonenumber.PhoneNumber;
24
+ import com.google.i18n.phonenumbers.Phonenumber.PhoneNumber.CountryCodeSource;
25
+
26
+ import java.util.ArrayList;
27
+ import java.util.List;
28
+ import java.util.Set;
29
+
30
+ /**
31
+ * Unit tests for PhoneNumberUtil.java
32
+ *
33
+ * Note that these tests use the test metadata, not the normal metadata file, so should not be used
34
+ * for regression test purposes - these tests are illustrative only and test functionality.
35
+ *
36
+ * @author Shaopeng Jia
37
+ */
38
+ public class PhoneNumberUtilTest extends TestMetadataTestCase {
39
+ // Set up some test numbers to re-use.
40
+ // TODO: Rewrite this as static functions that return new numbers each time to avoid
41
+ // any risk of accidental changes to mutable static state affecting many tests.
42
+ private static final PhoneNumber ALPHA_NUMERIC_NUMBER =
43
+ new PhoneNumber().setCountryCode(1).setNationalNumber(80074935247L);
44
+ private static final PhoneNumber AE_UAN =
45
+ new PhoneNumber().setCountryCode(971).setNationalNumber(600123456L);
46
+ private static final PhoneNumber AR_MOBILE =
47
+ new PhoneNumber().setCountryCode(54).setNationalNumber(91187654321L);
48
+ private static final PhoneNumber AR_NUMBER =
49
+ new PhoneNumber().setCountryCode(54).setNationalNumber(1187654321);
50
+ private static final PhoneNumber AU_NUMBER =
51
+ new PhoneNumber().setCountryCode(61).setNationalNumber(236618300L);
52
+ private static final PhoneNumber BS_MOBILE =
53
+ new PhoneNumber().setCountryCode(1).setNationalNumber(2423570000L);
54
+ private static final PhoneNumber BS_NUMBER =
55
+ new PhoneNumber().setCountryCode(1).setNationalNumber(2423651234L);
56
+ // Note that this is the same as the example number for DE in the metadata.
57
+ private static final PhoneNumber DE_NUMBER =
58
+ new PhoneNumber().setCountryCode(49).setNationalNumber(30123456L);
59
+ private static final PhoneNumber DE_SHORT_NUMBER =
60
+ new PhoneNumber().setCountryCode(49).setNationalNumber(1234L);
61
+ private static final PhoneNumber GB_MOBILE =
62
+ new PhoneNumber().setCountryCode(44).setNationalNumber(7912345678L);
63
+ private static final PhoneNumber GB_NUMBER =
64
+ new PhoneNumber().setCountryCode(44).setNationalNumber(2070313000L);
65
+ private static final PhoneNumber IT_MOBILE =
66
+ new PhoneNumber().setCountryCode(39).setNationalNumber(345678901L);
67
+ private static final PhoneNumber IT_NUMBER =
68
+ new PhoneNumber().setCountryCode(39).setNationalNumber(236618300L).
69
+ setItalianLeadingZero(true);
70
+ private static final PhoneNumber JP_STAR_NUMBER =
71
+ new PhoneNumber().setCountryCode(81).setNationalNumber(2345);
72
+ // Numbers to test the formatting rules from Mexico.
73
+ private static final PhoneNumber MX_MOBILE1 =
74
+ new PhoneNumber().setCountryCode(52).setNationalNumber(12345678900L);
75
+ private static final PhoneNumber MX_MOBILE2 =
76
+ new PhoneNumber().setCountryCode(52).setNationalNumber(15512345678L);
77
+ private static final PhoneNumber MX_NUMBER1 =
78
+ new PhoneNumber().setCountryCode(52).setNationalNumber(3312345678L);
79
+ private static final PhoneNumber MX_NUMBER2 =
80
+ new PhoneNumber().setCountryCode(52).setNationalNumber(8211234567L);
81
+ private static final PhoneNumber NZ_NUMBER =
82
+ new PhoneNumber().setCountryCode(64).setNationalNumber(33316005L);
83
+ private static final PhoneNumber SG_NUMBER =
84
+ new PhoneNumber().setCountryCode(65).setNationalNumber(65218000L);
85
+ // A too-long and hence invalid US number.
86
+ private static final PhoneNumber US_LONG_NUMBER =
87
+ new PhoneNumber().setCountryCode(1).setNationalNumber(65025300001L);
88
+ private static final PhoneNumber US_NUMBER =
89
+ new PhoneNumber().setCountryCode(1).setNationalNumber(6502530000L);
90
+ private static final PhoneNumber US_PREMIUM =
91
+ new PhoneNumber().setCountryCode(1).setNationalNumber(9002530000L);
92
+ // Too short, but still possible US numbers.
93
+ private static final PhoneNumber US_LOCAL_NUMBER =
94
+ new PhoneNumber().setCountryCode(1).setNationalNumber(2530000L);
95
+ private static final PhoneNumber US_SHORT_BY_ONE_NUMBER =
96
+ new PhoneNumber().setCountryCode(1).setNationalNumber(650253000L);
97
+ private static final PhoneNumber US_TOLLFREE =
98
+ new PhoneNumber().setCountryCode(1).setNationalNumber(8002530000L);
99
+ private static final PhoneNumber US_SPOOF =
100
+ new PhoneNumber().setCountryCode(1).setNationalNumber(0L);
101
+ private static final PhoneNumber US_SPOOF_WITH_RAW_INPUT =
102
+ new PhoneNumber().setCountryCode(1).setNationalNumber(0L)
103
+ .setRawInput("000-000-0000");
104
+ private static final PhoneNumber INTERNATIONAL_TOLL_FREE =
105
+ new PhoneNumber().setCountryCode(800).setNationalNumber(12345678L);
106
+ // We set this to be the same length as numbers for the other non-geographical country prefix that
107
+ // we have in our test metadata. However, this is not considered valid because they differ in
108
+ // their country calling code.
109
+ private static final PhoneNumber INTERNATIONAL_TOLL_FREE_TOO_LONG =
110
+ new PhoneNumber().setCountryCode(800).setNationalNumber(123456789L);
111
+ private static final PhoneNumber UNIVERSAL_PREMIUM_RATE =
112
+ new PhoneNumber().setCountryCode(979).setNationalNumber(123456789L);
113
+ private static final PhoneNumber UNKNOWN_COUNTRY_CODE_NO_RAW_INPUT =
114
+ new PhoneNumber().setCountryCode(2).setNationalNumber(12345L);
115
+
116
+ public void testGetSupportedRegions() {
117
+ assertTrue(phoneUtil.getSupportedRegions().size() > 0);
118
+ }
119
+
120
+ public void testGetSupportedGlobalNetworkCallingCodes() {
121
+ Set<Integer> globalNetworkCallingCodes =
122
+ phoneUtil.getSupportedGlobalNetworkCallingCodes();
123
+ assertTrue(globalNetworkCallingCodes.size() > 0);
124
+ for (int callingCode : globalNetworkCallingCodes) {
125
+ assertTrue(callingCode > 0);
126
+ assertEquals(RegionCode.UN001, phoneUtil.getRegionCodeForCountryCode(callingCode));
127
+ }
128
+ }
129
+
130
+ public void testGetInstanceLoadBadMetadata() {
131
+ assertNull(phoneUtil.getMetadataForRegion("No Such Region"));
132
+ assertNull(phoneUtil.getMetadataForNonGeographicalRegion(-1));
133
+ }
134
+
135
+ public void testMissingMetadataFileThrowsRuntimeException() {
136
+ // In normal usage we should never get a state where we are asking to load metadata that doesn't
137
+ // exist. However if the library is packaged incorrectly in the jar, this could happen and the
138
+ // best we can do is make sure the exception has the file name in it.
139
+ try {
140
+ phoneUtil.loadMetadataFromFile(
141
+ "no/such/file", "XX", -1, PhoneNumberUtil.DEFAULT_METADATA_LOADER);
142
+ fail("expected exception");
143
+ } catch (RuntimeException e) {
144
+ assertTrue("Unexpected error: " + e, e.toString().contains("no/such/file_XX"));
145
+ }
146
+ try {
147
+ phoneUtil.loadMetadataFromFile("no/such/file", PhoneNumberUtil.REGION_CODE_FOR_NON_GEO_ENTITY,
148
+ 123, PhoneNumberUtil.DEFAULT_METADATA_LOADER);
149
+ fail("expected exception");
150
+ } catch (RuntimeException e) {
151
+ assertTrue("Unexpected error: " + e, e.getMessage().contains("no/such/file_123"));
152
+ }
153
+ }
154
+
155
+ public void testGetInstanceLoadUSMetadata() {
156
+ PhoneMetadata metadata = phoneUtil.getMetadataForRegion(RegionCode.US);
157
+ assertEquals("US", metadata.getId());
158
+ assertEquals(1, metadata.getCountryCode());
159
+ assertEquals("011", metadata.getInternationalPrefix());
160
+ assertTrue(metadata.hasNationalPrefix());
161
+ assertEquals(2, metadata.numberFormatSize());
162
+ assertEquals("(\\d{3})(\\d{3})(\\d{4})",
163
+ metadata.getNumberFormat(1).getPattern());
164
+ assertEquals("$1 $2 $3", metadata.getNumberFormat(1).getFormat());
165
+ assertEquals("[13-689]\\d{9}|2[0-35-9]\\d{8}",
166
+ metadata.getGeneralDesc().getNationalNumberPattern());
167
+ assertEquals("\\d{7}(?:\\d{3})?", metadata.getGeneralDesc().getPossibleNumberPattern());
168
+ assertTrue(metadata.getGeneralDesc().exactlySameAs(metadata.getFixedLine()));
169
+ assertEquals("\\d{10}", metadata.getTollFree().getPossibleNumberPattern());
170
+ assertEquals("900\\d{7}", metadata.getPremiumRate().getNationalNumberPattern());
171
+ // No shared-cost data is available, so it should be initialised to "NA".
172
+ assertEquals("NA", metadata.getSharedCost().getNationalNumberPattern());
173
+ assertEquals("NA", metadata.getSharedCost().getPossibleNumberPattern());
174
+ }
175
+
176
+ public void testGetInstanceLoadDEMetadata() {
177
+ PhoneMetadata metadata = phoneUtil.getMetadataForRegion(RegionCode.DE);
178
+ assertEquals("DE", metadata.getId());
179
+ assertEquals(49, metadata.getCountryCode());
180
+ assertEquals("00", metadata.getInternationalPrefix());
181
+ assertEquals("0", metadata.getNationalPrefix());
182
+ assertEquals(6, metadata.numberFormatSize());
183
+ assertEquals(1, metadata.getNumberFormat(5).leadingDigitsPatternSize());
184
+ assertEquals("900", metadata.getNumberFormat(5).getLeadingDigitsPattern(0));
185
+ assertEquals("(\\d{3})(\\d{3,4})(\\d{4})",
186
+ metadata.getNumberFormat(5).getPattern());
187
+ assertEquals("$1 $2 $3", metadata.getNumberFormat(5).getFormat());
188
+ assertEquals("(?:[24-6]\\d{2}|3[03-9]\\d|[789](?:[1-9]\\d|0[2-9]))\\d{1,8}",
189
+ metadata.getFixedLine().getNationalNumberPattern());
190
+ assertEquals("\\d{2,14}", metadata.getFixedLine().getPossibleNumberPattern());
191
+ assertEquals("30123456", metadata.getFixedLine().getExampleNumber());
192
+ assertEquals("\\d{10}", metadata.getTollFree().getPossibleNumberPattern());
193
+ assertEquals("900([135]\\d{6}|9\\d{7})", metadata.getPremiumRate().getNationalNumberPattern());
194
+ }
195
+
196
+ public void testGetInstanceLoadARMetadata() {
197
+ PhoneMetadata metadata = phoneUtil.getMetadataForRegion(RegionCode.AR);
198
+ assertEquals("AR", metadata.getId());
199
+ assertEquals(54, metadata.getCountryCode());
200
+ assertEquals("00", metadata.getInternationalPrefix());
201
+ assertEquals("0", metadata.getNationalPrefix());
202
+ assertEquals("0(?:(11|343|3715)15)?", metadata.getNationalPrefixForParsing());
203
+ assertEquals("9$1", metadata.getNationalPrefixTransformRule());
204
+ assertEquals("$2 15 $3-$4", metadata.getNumberFormat(2).getFormat());
205
+ assertEquals("(9)(\\d{4})(\\d{2})(\\d{4})",
206
+ metadata.getNumberFormat(3).getPattern());
207
+ assertEquals("(9)(\\d{4})(\\d{2})(\\d{4})",
208
+ metadata.getIntlNumberFormat(3).getPattern());
209
+ assertEquals("$1 $2 $3 $4", metadata.getIntlNumberFormat(3).getFormat());
210
+ }
211
+
212
+ public void testGetInstanceLoadInternationalTollFreeMetadata() {
213
+ PhoneMetadata metadata = phoneUtil.getMetadataForNonGeographicalRegion(800);
214
+ assertEquals("001", metadata.getId());
215
+ assertEquals(800, metadata.getCountryCode());
216
+ assertEquals("$1 $2", metadata.getNumberFormat(0).getFormat());
217
+ assertEquals("(\\d{4})(\\d{4})", metadata.getNumberFormat(0).getPattern());
218
+ assertEquals("12345678", metadata.getGeneralDesc().getExampleNumber());
219
+ assertEquals("12345678", metadata.getTollFree().getExampleNumber());
220
+ }
221
+
222
+ public void testIsNumberGeographical() {
223
+ assertFalse(phoneUtil.isNumberGeographical(BS_MOBILE)); // Bahamas, mobile phone number.
224
+ assertTrue(phoneUtil.isNumberGeographical(AU_NUMBER)); // Australian fixed line number.
225
+ assertFalse(phoneUtil.isNumberGeographical(INTERNATIONAL_TOLL_FREE)); // International toll
226
+ // free number.
227
+ }
228
+
229
+ public void testIsLeadingZeroPossible() {
230
+ assertTrue(phoneUtil.isLeadingZeroPossible(39)); // Italy
231
+ assertFalse(phoneUtil.isLeadingZeroPossible(1)); // USA
232
+ assertTrue(phoneUtil.isLeadingZeroPossible(800)); // International toll free
233
+ assertFalse(phoneUtil.isLeadingZeroPossible(979)); // International premium-rate
234
+ assertFalse(phoneUtil.isLeadingZeroPossible(888)); // Not in metadata file, just default to
235
+ // false.
236
+ }
237
+
238
+ public void testGetLengthOfGeographicalAreaCode() {
239
+ // Google MTV, which has area code "650".
240
+ assertEquals(3, phoneUtil.getLengthOfGeographicalAreaCode(US_NUMBER));
241
+
242
+ // A North America toll-free number, which has no area code.
243
+ assertEquals(0, phoneUtil.getLengthOfGeographicalAreaCode(US_TOLLFREE));
244
+
245
+ // Google London, which has area code "20".
246
+ assertEquals(2, phoneUtil.getLengthOfGeographicalAreaCode(GB_NUMBER));
247
+
248
+ // A UK mobile phone, which has no area code.
249
+ assertEquals(0, phoneUtil.getLengthOfGeographicalAreaCode(GB_MOBILE));
250
+
251
+ // Google Buenos Aires, which has area code "11".
252
+ assertEquals(2, phoneUtil.getLengthOfGeographicalAreaCode(AR_NUMBER));
253
+
254
+ // Google Sydney, which has area code "2".
255
+ assertEquals(1, phoneUtil.getLengthOfGeographicalAreaCode(AU_NUMBER));
256
+
257
+ // Italian numbers - there is no national prefix, but it still has an area code.
258
+ assertEquals(2, phoneUtil.getLengthOfGeographicalAreaCode(IT_NUMBER));
259
+
260
+ // Google Singapore. Singapore has no area code and no national prefix.
261
+ assertEquals(0, phoneUtil.getLengthOfGeographicalAreaCode(SG_NUMBER));
262
+
263
+ // An invalid US number (1 digit shorter), which has no area code.
264
+ assertEquals(0, phoneUtil.getLengthOfGeographicalAreaCode(US_SHORT_BY_ONE_NUMBER));
265
+
266
+ // An international toll free number, which has no area code.
267
+ assertEquals(0, phoneUtil.getLengthOfGeographicalAreaCode(INTERNATIONAL_TOLL_FREE));
268
+ }
269
+
270
+ public void testGetLengthOfNationalDestinationCode() {
271
+ // Google MTV, which has national destination code (NDC) "650".
272
+ assertEquals(3, phoneUtil.getLengthOfNationalDestinationCode(US_NUMBER));
273
+
274
+ // A North America toll-free number, which has NDC "800".
275
+ assertEquals(3, phoneUtil.getLengthOfNationalDestinationCode(US_TOLLFREE));
276
+
277
+ // Google London, which has NDC "20".
278
+ assertEquals(2, phoneUtil.getLengthOfNationalDestinationCode(GB_NUMBER));
279
+
280
+ // A UK mobile phone, which has NDC "7912".
281
+ assertEquals(4, phoneUtil.getLengthOfNationalDestinationCode(GB_MOBILE));
282
+
283
+ // Google Buenos Aires, which has NDC "11".
284
+ assertEquals(2, phoneUtil.getLengthOfNationalDestinationCode(AR_NUMBER));
285
+
286
+ // An Argentinian mobile which has NDC "911".
287
+ assertEquals(3, phoneUtil.getLengthOfNationalDestinationCode(AR_MOBILE));
288
+
289
+ // Google Sydney, which has NDC "2".
290
+ assertEquals(1, phoneUtil.getLengthOfNationalDestinationCode(AU_NUMBER));
291
+
292
+ // Google Singapore, which has NDC "6521".
293
+ assertEquals(4, phoneUtil.getLengthOfNationalDestinationCode(SG_NUMBER));
294
+
295
+ // An invalid US number (1 digit shorter), which has no NDC.
296
+ assertEquals(0, phoneUtil.getLengthOfNationalDestinationCode(US_SHORT_BY_ONE_NUMBER));
297
+
298
+ // A number containing an invalid country calling code, which shouldn't have any NDC.
299
+ PhoneNumber number = new PhoneNumber().setCountryCode(123).setNationalNumber(6502530000L);
300
+ assertEquals(0, phoneUtil.getLengthOfNationalDestinationCode(number));
301
+
302
+ // An international toll free number, which has NDC "1234".
303
+ assertEquals(4, phoneUtil.getLengthOfNationalDestinationCode(INTERNATIONAL_TOLL_FREE));
304
+ }
305
+
306
+ public void testGetCountryMobileToken() {
307
+ assertEquals("1", PhoneNumberUtil.getCountryMobileToken(phoneUtil.getCountryCodeForRegion(
308
+ RegionCode.MX)));
309
+
310
+ // Country calling code for Sweden, which has no mobile token.
311
+ assertEquals("", PhoneNumberUtil.getCountryMobileToken(phoneUtil.getCountryCodeForRegion(
312
+ RegionCode.SE)));
313
+ }
314
+
315
+ public void testGetNationalSignificantNumber() {
316
+ assertEquals("6502530000", phoneUtil.getNationalSignificantNumber(US_NUMBER));
317
+
318
+ // An Italian mobile number.
319
+ assertEquals("345678901", phoneUtil.getNationalSignificantNumber(IT_MOBILE));
320
+
321
+ // An Italian fixed line number.
322
+ assertEquals("0236618300", phoneUtil.getNationalSignificantNumber(IT_NUMBER));
323
+
324
+ assertEquals("12345678", phoneUtil.getNationalSignificantNumber(INTERNATIONAL_TOLL_FREE));
325
+ }
326
+
327
+ public void testGetExampleNumber() {
328
+ assertEquals(DE_NUMBER, phoneUtil.getExampleNumber(RegionCode.DE));
329
+
330
+ assertEquals(DE_NUMBER,
331
+ phoneUtil.getExampleNumberForType(RegionCode.DE,
332
+ PhoneNumberUtil.PhoneNumberType.FIXED_LINE));
333
+ assertEquals(null,
334
+ phoneUtil.getExampleNumberForType(RegionCode.DE,
335
+ PhoneNumberUtil.PhoneNumberType.MOBILE));
336
+ // For the US, the example number is placed under general description, and hence should be used
337
+ // for both fixed line and mobile, so neither of these should return null.
338
+ assertNotNull(phoneUtil.getExampleNumberForType(RegionCode.US,
339
+ PhoneNumberUtil.PhoneNumberType.FIXED_LINE));
340
+ assertNotNull(phoneUtil.getExampleNumberForType(RegionCode.US,
341
+ PhoneNumberUtil.PhoneNumberType.MOBILE));
342
+ // CS is an invalid region, so we have no data for it.
343
+ assertNull(phoneUtil.getExampleNumberForType(RegionCode.CS,
344
+ PhoneNumberUtil.PhoneNumberType.MOBILE));
345
+ // RegionCode 001 is reserved for supporting non-geographical country calling code. We don't
346
+ // support getting an example number for it with this method.
347
+ assertEquals(null, phoneUtil.getExampleNumber(RegionCode.UN001));
348
+ }
349
+
350
+ public void testGetExampleNumberForNonGeoEntity() {
351
+ assertEquals(INTERNATIONAL_TOLL_FREE, phoneUtil.getExampleNumberForNonGeoEntity(800));
352
+ assertEquals(UNIVERSAL_PREMIUM_RATE, phoneUtil.getExampleNumberForNonGeoEntity(979));
353
+ }
354
+
355
+ public void testConvertAlphaCharactersInNumber() {
356
+ String input = "1800-ABC-DEF";
357
+ // Alpha chars are converted to digits; everything else is left untouched.
358
+ String expectedOutput = "1800-222-333";
359
+ assertEquals(expectedOutput, PhoneNumberUtil.convertAlphaCharactersInNumber(input));
360
+ }
361
+
362
+ public void testNormaliseRemovePunctuation() {
363
+ String inputNumber = "034-56&+#2\u00AD34";
364
+ String expectedOutput = "03456234";
365
+ assertEquals("Conversion did not correctly remove punctuation",
366
+ expectedOutput,
367
+ PhoneNumberUtil.normalize(inputNumber));
368
+ }
369
+
370
+ public void testNormaliseReplaceAlphaCharacters() {
371
+ String inputNumber = "034-I-am-HUNGRY";
372
+ String expectedOutput = "034426486479";
373
+ assertEquals("Conversion did not correctly replace alpha characters",
374
+ expectedOutput,
375
+ PhoneNumberUtil.normalize(inputNumber));
376
+ }
377
+
378
+ public void testNormaliseOtherDigits() {
379
+ String inputNumber = "\uFF125\u0665";
380
+ String expectedOutput = "255";
381
+ assertEquals("Conversion did not correctly replace non-latin digits",
382
+ expectedOutput,
383
+ PhoneNumberUtil.normalize(inputNumber));
384
+ // Eastern-Arabic digits.
385
+ inputNumber = "\u06F52\u06F0";
386
+ expectedOutput = "520";
387
+ assertEquals("Conversion did not correctly replace non-latin digits",
388
+ expectedOutput,
389
+ PhoneNumberUtil.normalize(inputNumber));
390
+ }
391
+
392
+ public void testNormaliseStripAlphaCharacters() {
393
+ String inputNumber = "034-56&+a#234";
394
+ String expectedOutput = "03456234";
395
+ assertEquals("Conversion did not correctly remove alpha character",
396
+ expectedOutput,
397
+ PhoneNumberUtil.normalizeDigitsOnly(inputNumber));
398
+ }
399
+
400
+ public void testNormaliseStripNonDiallableCharacters() {
401
+ String inputNumber = "03*4-56&+a#234";
402
+ String expectedOutput = "03*456+234";
403
+ assertEquals("Conversion did not correctly remove non-diallable characters",
404
+ expectedOutput,
405
+ PhoneNumberUtil.normalizeDiallableCharsOnly(inputNumber));
406
+ }
407
+
408
+ public void testFormatUSNumber() {
409
+ assertEquals("650 253 0000", phoneUtil.format(US_NUMBER, PhoneNumberFormat.NATIONAL));
410
+ assertEquals("+1 650 253 0000", phoneUtil.format(US_NUMBER, PhoneNumberFormat.INTERNATIONAL));
411
+
412
+ assertEquals("800 253 0000", phoneUtil.format(US_TOLLFREE, PhoneNumberFormat.NATIONAL));
413
+ assertEquals("+1 800 253 0000", phoneUtil.format(US_TOLLFREE, PhoneNumberFormat.INTERNATIONAL));
414
+
415
+ assertEquals("900 253 0000", phoneUtil.format(US_PREMIUM, PhoneNumberFormat.NATIONAL));
416
+ assertEquals("+1 900 253 0000", phoneUtil.format(US_PREMIUM, PhoneNumberFormat.INTERNATIONAL));
417
+ assertEquals("tel:+1-900-253-0000", phoneUtil.format(US_PREMIUM, PhoneNumberFormat.RFC3966));
418
+ // Numbers with all zeros in the national number part will be formatted by using the raw_input
419
+ // if that is available no matter which format is specified.
420
+ assertEquals("000-000-0000",
421
+ phoneUtil.format(US_SPOOF_WITH_RAW_INPUT, PhoneNumberFormat.NATIONAL));
422
+ assertEquals("0", phoneUtil.format(US_SPOOF, PhoneNumberFormat.NATIONAL));
423
+ }
424
+
425
+ public void testFormatBSNumber() {
426
+ assertEquals("242 365 1234", phoneUtil.format(BS_NUMBER, PhoneNumberFormat.NATIONAL));
427
+ assertEquals("+1 242 365 1234", phoneUtil.format(BS_NUMBER, PhoneNumberFormat.INTERNATIONAL));
428
+ }
429
+
430
+ public void testFormatGBNumber() {
431
+ assertEquals("(020) 7031 3000", phoneUtil.format(GB_NUMBER, PhoneNumberFormat.NATIONAL));
432
+ assertEquals("+44 20 7031 3000", phoneUtil.format(GB_NUMBER, PhoneNumberFormat.INTERNATIONAL));
433
+
434
+ assertEquals("(07912) 345 678", phoneUtil.format(GB_MOBILE, PhoneNumberFormat.NATIONAL));
435
+ assertEquals("+44 7912 345 678", phoneUtil.format(GB_MOBILE, PhoneNumberFormat.INTERNATIONAL));
436
+ }
437
+
438
+ public void testFormatDENumber() {
439
+ PhoneNumber deNumber = new PhoneNumber();
440
+ deNumber.setCountryCode(49).setNationalNumber(301234L);
441
+ assertEquals("030/1234", phoneUtil.format(deNumber, PhoneNumberFormat.NATIONAL));
442
+ assertEquals("+49 30/1234", phoneUtil.format(deNumber, PhoneNumberFormat.INTERNATIONAL));
443
+ assertEquals("tel:+49-30-1234", phoneUtil.format(deNumber, PhoneNumberFormat.RFC3966));
444
+
445
+ deNumber.clear();
446
+ deNumber.setCountryCode(49).setNationalNumber(291123L);
447
+ assertEquals("0291 123", phoneUtil.format(deNumber, PhoneNumberFormat.NATIONAL));
448
+ assertEquals("+49 291 123", phoneUtil.format(deNumber, PhoneNumberFormat.INTERNATIONAL));
449
+
450
+ deNumber.clear();
451
+ deNumber.setCountryCode(49).setNationalNumber(29112345678L);
452
+ assertEquals("0291 12345678", phoneUtil.format(deNumber, PhoneNumberFormat.NATIONAL));
453
+ assertEquals("+49 291 12345678", phoneUtil.format(deNumber, PhoneNumberFormat.INTERNATIONAL));
454
+
455
+ deNumber.clear();
456
+ deNumber.setCountryCode(49).setNationalNumber(912312345L);
457
+ assertEquals("09123 12345", phoneUtil.format(deNumber, PhoneNumberFormat.NATIONAL));
458
+ assertEquals("+49 9123 12345", phoneUtil.format(deNumber, PhoneNumberFormat.INTERNATIONAL));
459
+ deNumber.clear();
460
+ deNumber.setCountryCode(49).setNationalNumber(80212345L);
461
+ assertEquals("08021 2345", phoneUtil.format(deNumber, PhoneNumberFormat.NATIONAL));
462
+ assertEquals("+49 8021 2345", phoneUtil.format(deNumber, PhoneNumberFormat.INTERNATIONAL));
463
+ // Note this number is correctly formatted without national prefix. Most of the numbers that
464
+ // are treated as invalid numbers by the library are short numbers, and they are usually not
465
+ // dialed with national prefix.
466
+ assertEquals("1234", phoneUtil.format(DE_SHORT_NUMBER, PhoneNumberFormat.NATIONAL));
467
+ assertEquals("+49 1234", phoneUtil.format(DE_SHORT_NUMBER, PhoneNumberFormat.INTERNATIONAL));
468
+
469
+ deNumber.clear();
470
+ deNumber.setCountryCode(49).setNationalNumber(41341234);
471
+ assertEquals("04134 1234", phoneUtil.format(deNumber, PhoneNumberFormat.NATIONAL));
472
+ }
473
+
474
+ public void testFormatITNumber() {
475
+ assertEquals("02 3661 8300", phoneUtil.format(IT_NUMBER, PhoneNumberFormat.NATIONAL));
476
+ assertEquals("+39 02 3661 8300", phoneUtil.format(IT_NUMBER, PhoneNumberFormat.INTERNATIONAL));
477
+ assertEquals("+390236618300", phoneUtil.format(IT_NUMBER, PhoneNumberFormat.E164));
478
+
479
+ assertEquals("345 678 901", phoneUtil.format(IT_MOBILE, PhoneNumberFormat.NATIONAL));
480
+ assertEquals("+39 345 678 901", phoneUtil.format(IT_MOBILE, PhoneNumberFormat.INTERNATIONAL));
481
+ assertEquals("+39345678901", phoneUtil.format(IT_MOBILE, PhoneNumberFormat.E164));
482
+ }
483
+
484
+ public void testFormatAUNumber() {
485
+ assertEquals("02 3661 8300", phoneUtil.format(AU_NUMBER, PhoneNumberFormat.NATIONAL));
486
+ assertEquals("+61 2 3661 8300", phoneUtil.format(AU_NUMBER, PhoneNumberFormat.INTERNATIONAL));
487
+ assertEquals("+61236618300", phoneUtil.format(AU_NUMBER, PhoneNumberFormat.E164));
488
+
489
+ PhoneNumber auNumber = new PhoneNumber().setCountryCode(61).setNationalNumber(1800123456L);
490
+ assertEquals("1800 123 456", phoneUtil.format(auNumber, PhoneNumberFormat.NATIONAL));
491
+ assertEquals("+61 1800 123 456", phoneUtil.format(auNumber, PhoneNumberFormat.INTERNATIONAL));
492
+ assertEquals("+611800123456", phoneUtil.format(auNumber, PhoneNumberFormat.E164));
493
+ }
494
+
495
+ public void testFormatARNumber() {
496
+ assertEquals("011 8765-4321", phoneUtil.format(AR_NUMBER, PhoneNumberFormat.NATIONAL));
497
+ assertEquals("+54 11 8765-4321", phoneUtil.format(AR_NUMBER, PhoneNumberFormat.INTERNATIONAL));
498
+ assertEquals("+541187654321", phoneUtil.format(AR_NUMBER, PhoneNumberFormat.E164));
499
+
500
+ assertEquals("011 15 8765-4321", phoneUtil.format(AR_MOBILE, PhoneNumberFormat.NATIONAL));
501
+ assertEquals("+54 9 11 8765 4321", phoneUtil.format(AR_MOBILE,
502
+ PhoneNumberFormat.INTERNATIONAL));
503
+ assertEquals("+5491187654321", phoneUtil.format(AR_MOBILE, PhoneNumberFormat.E164));
504
+ }
505
+
506
+ public void testFormatMXNumber() {
507
+ assertEquals("045 234 567 8900", phoneUtil.format(MX_MOBILE1, PhoneNumberFormat.NATIONAL));
508
+ assertEquals("+52 1 234 567 8900", phoneUtil.format(
509
+ MX_MOBILE1, PhoneNumberFormat.INTERNATIONAL));
510
+ assertEquals("+5212345678900", phoneUtil.format(MX_MOBILE1, PhoneNumberFormat.E164));
511
+
512
+ assertEquals("045 55 1234 5678", phoneUtil.format(MX_MOBILE2, PhoneNumberFormat.NATIONAL));
513
+ assertEquals("+52 1 55 1234 5678", phoneUtil.format(
514
+ MX_MOBILE2, PhoneNumberFormat.INTERNATIONAL));
515
+ assertEquals("+5215512345678", phoneUtil.format(MX_MOBILE2, PhoneNumberFormat.E164));
516
+
517
+ assertEquals("01 33 1234 5678", phoneUtil.format(MX_NUMBER1, PhoneNumberFormat.NATIONAL));
518
+ assertEquals("+52 33 1234 5678", phoneUtil.format(MX_NUMBER1, PhoneNumberFormat.INTERNATIONAL));
519
+ assertEquals("+523312345678", phoneUtil.format(MX_NUMBER1, PhoneNumberFormat.E164));
520
+
521
+ assertEquals("01 821 123 4567", phoneUtil.format(MX_NUMBER2, PhoneNumberFormat.NATIONAL));
522
+ assertEquals("+52 821 123 4567", phoneUtil.format(MX_NUMBER2, PhoneNumberFormat.INTERNATIONAL));
523
+ assertEquals("+528211234567", phoneUtil.format(MX_NUMBER2, PhoneNumberFormat.E164));
524
+ }
525
+
526
+ public void testFormatOutOfCountryCallingNumber() {
527
+ assertEquals("00 1 900 253 0000",
528
+ phoneUtil.formatOutOfCountryCallingNumber(US_PREMIUM, RegionCode.DE));
529
+
530
+ assertEquals("1 650 253 0000",
531
+ phoneUtil.formatOutOfCountryCallingNumber(US_NUMBER, RegionCode.BS));
532
+
533
+ assertEquals("00 1 650 253 0000",
534
+ phoneUtil.formatOutOfCountryCallingNumber(US_NUMBER, RegionCode.PL));
535
+
536
+ assertEquals("011 44 7912 345 678",
537
+ phoneUtil.formatOutOfCountryCallingNumber(GB_MOBILE, RegionCode.US));
538
+
539
+ assertEquals("00 49 1234",
540
+ phoneUtil.formatOutOfCountryCallingNumber(DE_SHORT_NUMBER, RegionCode.GB));
541
+ // Note this number is correctly formatted without national prefix. Most of the numbers that
542
+ // are treated as invalid numbers by the library are short numbers, and they are usually not
543
+ // dialed with national prefix.
544
+ assertEquals("1234", phoneUtil.formatOutOfCountryCallingNumber(DE_SHORT_NUMBER, RegionCode.DE));
545
+
546
+ assertEquals("011 39 02 3661 8300",
547
+ phoneUtil.formatOutOfCountryCallingNumber(IT_NUMBER, RegionCode.US));
548
+ assertEquals("02 3661 8300",
549
+ phoneUtil.formatOutOfCountryCallingNumber(IT_NUMBER, RegionCode.IT));
550
+ assertEquals("+39 02 3661 8300",
551
+ phoneUtil.formatOutOfCountryCallingNumber(IT_NUMBER, RegionCode.SG));
552
+
553
+ assertEquals("6521 8000",
554
+ phoneUtil.formatOutOfCountryCallingNumber(SG_NUMBER, RegionCode.SG));
555
+
556
+ assertEquals("011 54 9 11 8765 4321",
557
+ phoneUtil.formatOutOfCountryCallingNumber(AR_MOBILE, RegionCode.US));
558
+ assertEquals("011 800 1234 5678",
559
+ phoneUtil.formatOutOfCountryCallingNumber(INTERNATIONAL_TOLL_FREE, RegionCode.US));
560
+
561
+ PhoneNumber arNumberWithExtn = new PhoneNumber().mergeFrom(AR_MOBILE).setExtension("1234");
562
+ assertEquals("011 54 9 11 8765 4321 ext. 1234",
563
+ phoneUtil.formatOutOfCountryCallingNumber(arNumberWithExtn, RegionCode.US));
564
+ assertEquals("0011 54 9 11 8765 4321 ext. 1234",
565
+ phoneUtil.formatOutOfCountryCallingNumber(arNumberWithExtn, RegionCode.AU));
566
+ assertEquals("011 15 8765-4321 ext. 1234",
567
+ phoneUtil.formatOutOfCountryCallingNumber(arNumberWithExtn, RegionCode.AR));
568
+ }
569
+
570
+ public void testFormatOutOfCountryWithInvalidRegion() {
571
+ // AQ/Antarctica isn't a valid region code for phone number formatting,
572
+ // so this falls back to intl formatting.
573
+ assertEquals("+1 650 253 0000",
574
+ phoneUtil.formatOutOfCountryCallingNumber(US_NUMBER, RegionCode.AQ));
575
+ // For region code 001, the out-of-country format always turns into the international format.
576
+ assertEquals("+1 650 253 0000",
577
+ phoneUtil.formatOutOfCountryCallingNumber(US_NUMBER, RegionCode.UN001));
578
+ }
579
+
580
+ public void testFormatOutOfCountryWithPreferredIntlPrefix() {
581
+ // This should use 0011, since that is the preferred international prefix (both 0011 and 0012
582
+ // are accepted as possible international prefixes in our test metadta.)
583
+ assertEquals("0011 39 02 3661 8300",
584
+ phoneUtil.formatOutOfCountryCallingNumber(IT_NUMBER, RegionCode.AU));
585
+ }
586
+
587
+ public void testFormatOutOfCountryKeepingAlphaChars() {
588
+ PhoneNumber alphaNumericNumber = new PhoneNumber();
589
+ alphaNumericNumber.setCountryCode(1).setNationalNumber(8007493524L)
590
+ .setRawInput("1800 six-flag");
591
+ assertEquals("0011 1 800 SIX-FLAG",
592
+ phoneUtil.formatOutOfCountryKeepingAlphaChars(alphaNumericNumber, RegionCode.AU));
593
+
594
+ alphaNumericNumber.setRawInput("1-800-SIX-flag");
595
+ assertEquals("0011 1 800-SIX-FLAG",
596
+ phoneUtil.formatOutOfCountryKeepingAlphaChars(alphaNumericNumber, RegionCode.AU));
597
+
598
+ alphaNumericNumber.setRawInput("Call us from UK: 00 1 800 SIX-flag");
599
+ assertEquals("0011 1 800 SIX-FLAG",
600
+ phoneUtil.formatOutOfCountryKeepingAlphaChars(alphaNumericNumber, RegionCode.AU));
601
+
602
+ alphaNumericNumber.setRawInput("800 SIX-flag");
603
+ assertEquals("0011 1 800 SIX-FLAG",
604
+ phoneUtil.formatOutOfCountryKeepingAlphaChars(alphaNumericNumber, RegionCode.AU));
605
+
606
+ // Formatting from within the NANPA region.
607
+ assertEquals("1 800 SIX-FLAG",
608
+ phoneUtil.formatOutOfCountryKeepingAlphaChars(alphaNumericNumber, RegionCode.US));
609
+
610
+ assertEquals("1 800 SIX-FLAG",
611
+ phoneUtil.formatOutOfCountryKeepingAlphaChars(alphaNumericNumber, RegionCode.BS));
612
+
613
+ // Testing that if the raw input doesn't exist, it is formatted using
614
+ // formatOutOfCountryCallingNumber.
615
+ alphaNumericNumber.clearRawInput();
616
+ assertEquals("00 1 800 749 3524",
617
+ phoneUtil.formatOutOfCountryKeepingAlphaChars(alphaNumericNumber, RegionCode.DE));
618
+
619
+ // Testing AU alpha number formatted from Australia.
620
+ alphaNumericNumber.setCountryCode(61).setNationalNumber(827493524L)
621
+ .setRawInput("+61 82749-FLAG");
622
+ // This number should have the national prefix fixed.
623
+ assertEquals("082749-FLAG",
624
+ phoneUtil.formatOutOfCountryKeepingAlphaChars(alphaNumericNumber, RegionCode.AU));
625
+
626
+ alphaNumericNumber.setRawInput("082749-FLAG");
627
+ assertEquals("082749-FLAG",
628
+ phoneUtil.formatOutOfCountryKeepingAlphaChars(alphaNumericNumber, RegionCode.AU));
629
+
630
+ alphaNumericNumber.setNationalNumber(18007493524L).setRawInput("1-800-SIX-flag");
631
+ // This number should not have the national prefix prefixed, in accordance with the override for
632
+ // this specific formatting rule.
633
+ assertEquals("1-800-SIX-FLAG",
634
+ phoneUtil.formatOutOfCountryKeepingAlphaChars(alphaNumericNumber, RegionCode.AU));
635
+
636
+ // The metadata should not be permanently changed, since we copied it before modifying patterns.
637
+ // Here we check this.
638
+ alphaNumericNumber.setNationalNumber(1800749352L);
639
+ assertEquals("1800 749 352",
640
+ phoneUtil.formatOutOfCountryCallingNumber(alphaNumericNumber, RegionCode.AU));
641
+
642
+ // Testing a region with multiple international prefixes.
643
+ assertEquals("+61 1-800-SIX-FLAG",
644
+ phoneUtil.formatOutOfCountryKeepingAlphaChars(alphaNumericNumber, RegionCode.SG));
645
+ // Testing the case of calling from a non-supported region.
646
+ assertEquals("+61 1-800-SIX-FLAG",
647
+ phoneUtil.formatOutOfCountryKeepingAlphaChars(alphaNumericNumber, RegionCode.AQ));
648
+
649
+ // Testing the case with an invalid country calling code.
650
+ alphaNumericNumber.setCountryCode(0).setNationalNumber(18007493524L)
651
+ .setRawInput("1-800-SIX-flag");
652
+ // Uses the raw input only.
653
+ assertEquals("1-800-SIX-flag",
654
+ phoneUtil.formatOutOfCountryKeepingAlphaChars(alphaNumericNumber, RegionCode.DE));
655
+
656
+ // Testing the case of an invalid alpha number.
657
+ alphaNumericNumber.setCountryCode(1).setNationalNumber(80749L).setRawInput("180-SIX");
658
+ // No country-code stripping can be done.
659
+ assertEquals("00 1 180-SIX",
660
+ phoneUtil.formatOutOfCountryKeepingAlphaChars(alphaNumericNumber, RegionCode.DE));
661
+
662
+ // Testing the case of calling from a non-supported region.
663
+ alphaNumericNumber.setCountryCode(1).setNationalNumber(80749L).setRawInput("180-SIX");
664
+ // No country-code stripping can be done since the number is invalid.
665
+ assertEquals("+1 180-SIX",
666
+ phoneUtil.formatOutOfCountryKeepingAlphaChars(alphaNumericNumber, RegionCode.AQ));
667
+ }
668
+
669
+ public void testFormatWithCarrierCode() {
670
+ // We only support this for AR in our test metadata, and only for mobile numbers starting with
671
+ // certain values.
672
+ PhoneNumber arMobile = new PhoneNumber().setCountryCode(54).setNationalNumber(92234654321L);
673
+ assertEquals("02234 65-4321", phoneUtil.format(arMobile, PhoneNumberFormat.NATIONAL));
674
+ // Here we force 14 as the carrier code.
675
+ assertEquals("02234 14 65-4321",
676
+ phoneUtil.formatNationalNumberWithCarrierCode(arMobile, "14"));
677
+ // Here we force the number to be shown with no carrier code.
678
+ assertEquals("02234 65-4321",
679
+ phoneUtil.formatNationalNumberWithCarrierCode(arMobile, ""));
680
+ // Here the international rule is used, so no carrier code should be present.
681
+ assertEquals("+5492234654321", phoneUtil.format(arMobile, PhoneNumberFormat.E164));
682
+ // We don't support this for the US so there should be no change.
683
+ assertEquals("650 253 0000", phoneUtil.formatNationalNumberWithCarrierCode(US_NUMBER, "15"));
684
+
685
+ // Invalid country code should just get the NSN.
686
+ assertEquals("12345",
687
+ phoneUtil.formatNationalNumberWithCarrierCode(UNKNOWN_COUNTRY_CODE_NO_RAW_INPUT, "89"));
688
+ }
689
+
690
+ public void testFormatWithPreferredCarrierCode() {
691
+ // We only support this for AR in our test metadata.
692
+ PhoneNumber arNumber = new PhoneNumber();
693
+ arNumber.setCountryCode(54).setNationalNumber(91234125678L);
694
+ // Test formatting with no preferred carrier code stored in the number itself.
695
+ assertEquals("01234 15 12-5678",
696
+ phoneUtil.formatNationalNumberWithPreferredCarrierCode(arNumber, "15"));
697
+ assertEquals("01234 12-5678",
698
+ phoneUtil.formatNationalNumberWithPreferredCarrierCode(arNumber, ""));
699
+ // Test formatting with preferred carrier code present.
700
+ arNumber.setPreferredDomesticCarrierCode("19");
701
+ assertEquals("01234 12-5678", phoneUtil.format(arNumber, PhoneNumberFormat.NATIONAL));
702
+ assertEquals("01234 19 12-5678",
703
+ phoneUtil.formatNationalNumberWithPreferredCarrierCode(arNumber, "15"));
704
+ assertEquals("01234 19 12-5678",
705
+ phoneUtil.formatNationalNumberWithPreferredCarrierCode(arNumber, ""));
706
+ // When the preferred_domestic_carrier_code is present (even when it contains an empty string),
707
+ // use it instead of the default carrier code passed in.
708
+ arNumber.setPreferredDomesticCarrierCode("");
709
+ assertEquals("01234 12-5678",
710
+ phoneUtil.formatNationalNumberWithPreferredCarrierCode(arNumber, "15"));
711
+ // We don't support this for the US so there should be no change.
712
+ PhoneNumber usNumber = new PhoneNumber();
713
+ usNumber.setCountryCode(1).setNationalNumber(4241231234L).setPreferredDomesticCarrierCode("99");
714
+ assertEquals("424 123 1234", phoneUtil.format(usNumber, PhoneNumberFormat.NATIONAL));
715
+ assertEquals("424 123 1234",
716
+ phoneUtil.formatNationalNumberWithPreferredCarrierCode(usNumber, "15"));
717
+ }
718
+
719
+ public void testFormatNumberForMobileDialing() {
720
+ // Numbers are normally dialed in national format in-country, and international format from
721
+ // outside the country.
722
+ assertEquals("030123456",
723
+ phoneUtil.formatNumberForMobileDialing(DE_NUMBER, RegionCode.DE, false));
724
+ assertEquals("+4930123456",
725
+ phoneUtil.formatNumberForMobileDialing(DE_NUMBER, RegionCode.CH, false));
726
+ PhoneNumber deNumberWithExtn = new PhoneNumber().mergeFrom(DE_NUMBER).setExtension("1234");
727
+ assertEquals("030123456",
728
+ phoneUtil.formatNumberForMobileDialing(deNumberWithExtn, RegionCode.DE, false));
729
+ assertEquals("+4930123456",
730
+ phoneUtil.formatNumberForMobileDialing(deNumberWithExtn, RegionCode.CH, false));
731
+
732
+ // US toll free numbers are marked as noInternationalDialling in the test metadata for testing
733
+ // purposes. For such numbers, we expect nothing to be returned when the region code is not the
734
+ // same one.
735
+ assertEquals("800 253 0000",
736
+ phoneUtil.formatNumberForMobileDialing(US_TOLLFREE, RegionCode.US,
737
+ true /* keep formatting */));
738
+ assertEquals("", phoneUtil.formatNumberForMobileDialing(US_TOLLFREE, RegionCode.CN, true));
739
+ assertEquals("+1 650 253 0000",
740
+ phoneUtil.formatNumberForMobileDialing(US_NUMBER, RegionCode.US, true));
741
+ PhoneNumber usNumberWithExtn = new PhoneNumber().mergeFrom(US_NUMBER).setExtension("1234");
742
+ assertEquals("+1 650 253 0000",
743
+ phoneUtil.formatNumberForMobileDialing(usNumberWithExtn, RegionCode.US, true));
744
+
745
+ assertEquals("8002530000",
746
+ phoneUtil.formatNumberForMobileDialing(US_TOLLFREE, RegionCode.US,
747
+ false /* remove formatting */));
748
+ assertEquals("", phoneUtil.formatNumberForMobileDialing(US_TOLLFREE, RegionCode.CN, false));
749
+ assertEquals("+16502530000",
750
+ phoneUtil.formatNumberForMobileDialing(US_NUMBER, RegionCode.US, false));
751
+ assertEquals("+16502530000",
752
+ phoneUtil.formatNumberForMobileDialing(usNumberWithExtn, RegionCode.US, false));
753
+
754
+ // An invalid US number, which is one digit too long.
755
+ assertEquals("+165025300001",
756
+ phoneUtil.formatNumberForMobileDialing(US_LONG_NUMBER, RegionCode.US, false));
757
+ assertEquals("+1 65025300001",
758
+ phoneUtil.formatNumberForMobileDialing(US_LONG_NUMBER, RegionCode.US, true));
759
+
760
+ // Star numbers. In real life they appear in Israel, but we have them in JP in our test
761
+ // metadata.
762
+ assertEquals("*2345",
763
+ phoneUtil.formatNumberForMobileDialing(JP_STAR_NUMBER, RegionCode.JP, false));
764
+ assertEquals("*2345",
765
+ phoneUtil.formatNumberForMobileDialing(JP_STAR_NUMBER, RegionCode.JP, true));
766
+
767
+ assertEquals("+80012345678",
768
+ phoneUtil.formatNumberForMobileDialing(INTERNATIONAL_TOLL_FREE, RegionCode.JP, false));
769
+ assertEquals("+800 1234 5678",
770
+ phoneUtil.formatNumberForMobileDialing(INTERNATIONAL_TOLL_FREE, RegionCode.JP, true));
771
+
772
+ // UAE numbers beginning with 600 (classified as UAN) need to be dialled without +971 locally.
773
+ assertEquals("+971600123456",
774
+ phoneUtil.formatNumberForMobileDialing(AE_UAN, RegionCode.JP, false));
775
+ assertEquals("600123456",
776
+ phoneUtil.formatNumberForMobileDialing(AE_UAN, RegionCode.AE, false));
777
+
778
+ assertEquals("+523312345678",
779
+ phoneUtil.formatNumberForMobileDialing(MX_NUMBER1, RegionCode.MX, false));
780
+ assertEquals("+523312345678",
781
+ phoneUtil.formatNumberForMobileDialing(MX_NUMBER1, RegionCode.US, false));
782
+
783
+ // Non-geographical numbers should always be dialed in international format.
784
+ assertEquals("+80012345678",
785
+ phoneUtil.formatNumberForMobileDialing(INTERNATIONAL_TOLL_FREE, RegionCode.US, false));
786
+ assertEquals("+80012345678",
787
+ phoneUtil.formatNumberForMobileDialing(INTERNATIONAL_TOLL_FREE, RegionCode.UN001, false));
788
+
789
+ // Test that a short number is formatted correctly for mobile dialing within the region,
790
+ // and is not diallable from outside the region.
791
+ PhoneNumber deShortNumber = new PhoneNumber().setCountryCode(49).setNationalNumber(123L);
792
+ assertEquals("123", phoneUtil.formatNumberForMobileDialing(deShortNumber, RegionCode.DE,
793
+ false));
794
+ assertEquals("", phoneUtil.formatNumberForMobileDialing(deShortNumber, RegionCode.IT, false));
795
+
796
+ // Test the special logic for Hungary, where the national prefix must be added before dialing
797
+ // from a mobile phone for regular length numbers, but not for short numbers.
798
+ PhoneNumber huRegularNumber = new PhoneNumber().setCountryCode(36)
799
+ .setNationalNumber(301234567L);
800
+ assertEquals("06301234567", phoneUtil.formatNumberForMobileDialing(huRegularNumber,
801
+ RegionCode.HU, false));
802
+ assertEquals("+36301234567", phoneUtil.formatNumberForMobileDialing(huRegularNumber,
803
+ RegionCode.JP, false));
804
+ PhoneNumber huShortNumber = new PhoneNumber().setCountryCode(36).setNationalNumber(104L);
805
+ assertEquals("104", phoneUtil.formatNumberForMobileDialing(huShortNumber, RegionCode.HU,
806
+ false));
807
+ assertEquals("", phoneUtil.formatNumberForMobileDialing(huShortNumber, RegionCode.JP, false));
808
+
809
+ // Test the special logic for NANPA countries, for which regular length phone numbers are always
810
+ // output in international format, but short numbers are in national format.
811
+ assertEquals("+16502530000", phoneUtil.formatNumberForMobileDialing(US_NUMBER,
812
+ RegionCode.US, false));
813
+ assertEquals("+16502530000", phoneUtil.formatNumberForMobileDialing(US_NUMBER,
814
+ RegionCode.CA, false));
815
+ assertEquals("+16502530000", phoneUtil.formatNumberForMobileDialing(US_NUMBER,
816
+ RegionCode.BR, false));
817
+ PhoneNumber usShortNumber = new PhoneNumber().setCountryCode(1).setNationalNumber(911L);
818
+ assertEquals("911", phoneUtil.formatNumberForMobileDialing(usShortNumber, RegionCode.US,
819
+ false));
820
+ assertEquals("", phoneUtil.formatNumberForMobileDialing(usShortNumber, RegionCode.CA, false));
821
+ assertEquals("", phoneUtil.formatNumberForMobileDialing(usShortNumber, RegionCode.BR, false));
822
+
823
+ // Test that the Australian emergency number 000 is formatted correctly.
824
+ PhoneNumber auNumber = new PhoneNumber().setCountryCode(61).setNationalNumber(0L)
825
+ .setItalianLeadingZero(true).setNumberOfLeadingZeros(2);
826
+ assertEquals("000", phoneUtil.formatNumberForMobileDialing(auNumber, RegionCode.AU, false));
827
+ assertEquals("", phoneUtil.formatNumberForMobileDialing(auNumber, RegionCode.NZ, false));
828
+ }
829
+
830
+ public void testFormatByPattern() {
831
+ NumberFormat newNumFormat = new NumberFormat();
832
+ newNumFormat.setPattern("(\\d{3})(\\d{3})(\\d{4})");
833
+ newNumFormat.setFormat("($1) $2-$3");
834
+ List<NumberFormat> newNumberFormats = new ArrayList<NumberFormat>();
835
+ newNumberFormats.add(newNumFormat);
836
+
837
+ assertEquals("(650) 253-0000", phoneUtil.formatByPattern(US_NUMBER, PhoneNumberFormat.NATIONAL,
838
+ newNumberFormats));
839
+ assertEquals("+1 (650) 253-0000", phoneUtil.formatByPattern(US_NUMBER,
840
+ PhoneNumberFormat.INTERNATIONAL,
841
+ newNumberFormats));
842
+ assertEquals("tel:+1-650-253-0000", phoneUtil.formatByPattern(US_NUMBER,
843
+ PhoneNumberFormat.RFC3966,
844
+ newNumberFormats));
845
+
846
+ // $NP is set to '1' for the US. Here we check that for other NANPA countries the US rules are
847
+ // followed.
848
+ newNumFormat.setNationalPrefixFormattingRule("$NP ($FG)");
849
+ newNumFormat.setFormat("$1 $2-$3");
850
+ assertEquals("1 (242) 365-1234",
851
+ phoneUtil.formatByPattern(BS_NUMBER, PhoneNumberFormat.NATIONAL,
852
+ newNumberFormats));
853
+ assertEquals("+1 242 365-1234",
854
+ phoneUtil.formatByPattern(BS_NUMBER, PhoneNumberFormat.INTERNATIONAL,
855
+ newNumberFormats));
856
+
857
+ newNumFormat.setPattern("(\\d{2})(\\d{5})(\\d{3})");
858
+ newNumFormat.setFormat("$1-$2 $3");
859
+ newNumberFormats.set(0, newNumFormat);
860
+
861
+ assertEquals("02-36618 300",
862
+ phoneUtil.formatByPattern(IT_NUMBER, PhoneNumberFormat.NATIONAL,
863
+ newNumberFormats));
864
+ assertEquals("+39 02-36618 300",
865
+ phoneUtil.formatByPattern(IT_NUMBER, PhoneNumberFormat.INTERNATIONAL,
866
+ newNumberFormats));
867
+
868
+ newNumFormat.setNationalPrefixFormattingRule("$NP$FG");
869
+ newNumFormat.setPattern("(\\d{2})(\\d{4})(\\d{4})");
870
+ newNumFormat.setFormat("$1 $2 $3");
871
+ newNumberFormats.set(0, newNumFormat);
872
+ assertEquals("020 7031 3000",
873
+ phoneUtil.formatByPattern(GB_NUMBER, PhoneNumberFormat.NATIONAL,
874
+ newNumberFormats));
875
+
876
+ newNumFormat.setNationalPrefixFormattingRule("($NP$FG)");
877
+ assertEquals("(020) 7031 3000",
878
+ phoneUtil.formatByPattern(GB_NUMBER, PhoneNumberFormat.NATIONAL,
879
+ newNumberFormats));
880
+
881
+ newNumFormat.setNationalPrefixFormattingRule("");
882
+ assertEquals("20 7031 3000",
883
+ phoneUtil.formatByPattern(GB_NUMBER, PhoneNumberFormat.NATIONAL,
884
+ newNumberFormats));
885
+
886
+ assertEquals("+44 20 7031 3000",
887
+ phoneUtil.formatByPattern(GB_NUMBER, PhoneNumberFormat.INTERNATIONAL,
888
+ newNumberFormats));
889
+ }
890
+
891
+ public void testFormatE164Number() {
892
+ assertEquals("+16502530000", phoneUtil.format(US_NUMBER, PhoneNumberFormat.E164));
893
+ assertEquals("+4930123456", phoneUtil.format(DE_NUMBER, PhoneNumberFormat.E164));
894
+ assertEquals("+80012345678", phoneUtil.format(INTERNATIONAL_TOLL_FREE, PhoneNumberFormat.E164));
895
+ }
896
+
897
+ public void testFormatNumberWithExtension() {
898
+ PhoneNumber nzNumber = new PhoneNumber().mergeFrom(NZ_NUMBER).setExtension("1234");
899
+ // Uses default extension prefix:
900
+ assertEquals("03-331 6005 ext. 1234", phoneUtil.format(nzNumber, PhoneNumberFormat.NATIONAL));
901
+ // Uses RFC 3966 syntax.
902
+ assertEquals("tel:+64-3-331-6005;ext=1234",
903
+ phoneUtil.format(nzNumber, PhoneNumberFormat.RFC3966));
904
+ // Extension prefix overridden in the territory information for the US:
905
+ PhoneNumber usNumberWithExtension = new PhoneNumber().mergeFrom(US_NUMBER).setExtension("4567");
906
+ assertEquals("650 253 0000 extn. 4567", phoneUtil.format(usNumberWithExtension,
907
+ PhoneNumberFormat.NATIONAL));
908
+ }
909
+
910
+ public void testFormatInOriginalFormat() throws Exception {
911
+ PhoneNumber number1 = phoneUtil.parseAndKeepRawInput("+442087654321", RegionCode.GB);
912
+ assertEquals("+44 20 8765 4321", phoneUtil.formatInOriginalFormat(number1, RegionCode.GB));
913
+
914
+ PhoneNumber number2 = phoneUtil.parseAndKeepRawInput("02087654321", RegionCode.GB);
915
+ assertEquals("(020) 8765 4321", phoneUtil.formatInOriginalFormat(number2, RegionCode.GB));
916
+
917
+ PhoneNumber number3 = phoneUtil.parseAndKeepRawInput("011442087654321", RegionCode.US);
918
+ assertEquals("011 44 20 8765 4321", phoneUtil.formatInOriginalFormat(number3, RegionCode.US));
919
+
920
+ PhoneNumber number4 = phoneUtil.parseAndKeepRawInput("442087654321", RegionCode.GB);
921
+ assertEquals("44 20 8765 4321", phoneUtil.formatInOriginalFormat(number4, RegionCode.GB));
922
+
923
+ PhoneNumber number5 = phoneUtil.parse("+442087654321", RegionCode.GB);
924
+ assertEquals("(020) 8765 4321", phoneUtil.formatInOriginalFormat(number5, RegionCode.GB));
925
+
926
+ // Invalid numbers that we have a formatting pattern for should be formatted properly. Note area
927
+ // codes starting with 7 are intentionally excluded in the test metadata for testing purposes.
928
+ PhoneNumber number6 = phoneUtil.parseAndKeepRawInput("7345678901", RegionCode.US);
929
+ assertEquals("734 567 8901", phoneUtil.formatInOriginalFormat(number6, RegionCode.US));
930
+
931
+ // US is not a leading zero country, and the presence of the leading zero leads us to format the
932
+ // number using raw_input.
933
+ PhoneNumber number7 = phoneUtil.parseAndKeepRawInput("0734567 8901", RegionCode.US);
934
+ assertEquals("0734567 8901", phoneUtil.formatInOriginalFormat(number7, RegionCode.US));
935
+
936
+ // This number is valid, but we don't have a formatting pattern for it. Fall back to the raw
937
+ // input.
938
+ PhoneNumber number8 = phoneUtil.parseAndKeepRawInput("02-4567-8900", RegionCode.KR);
939
+ assertEquals("02-4567-8900", phoneUtil.formatInOriginalFormat(number8, RegionCode.KR));
940
+
941
+ PhoneNumber number9 = phoneUtil.parseAndKeepRawInput("01180012345678", RegionCode.US);
942
+ assertEquals("011 800 1234 5678", phoneUtil.formatInOriginalFormat(number9, RegionCode.US));
943
+
944
+ PhoneNumber number10 = phoneUtil.parseAndKeepRawInput("+80012345678", RegionCode.KR);
945
+ assertEquals("+800 1234 5678", phoneUtil.formatInOriginalFormat(number10, RegionCode.KR));
946
+
947
+ // US local numbers are formatted correctly, as we have formatting patterns for them.
948
+ PhoneNumber localNumberUS = phoneUtil.parseAndKeepRawInput("2530000", RegionCode.US);
949
+ assertEquals("253 0000", phoneUtil.formatInOriginalFormat(localNumberUS, RegionCode.US));
950
+
951
+ PhoneNumber numberWithNationalPrefixUS =
952
+ phoneUtil.parseAndKeepRawInput("18003456789", RegionCode.US);
953
+ assertEquals("1 800 345 6789",
954
+ phoneUtil.formatInOriginalFormat(numberWithNationalPrefixUS, RegionCode.US));
955
+
956
+ PhoneNumber numberWithoutNationalPrefixGB =
957
+ phoneUtil.parseAndKeepRawInput("2087654321", RegionCode.GB);
958
+ assertEquals("20 8765 4321",
959
+ phoneUtil.formatInOriginalFormat(numberWithoutNationalPrefixGB, RegionCode.GB));
960
+ // Make sure no metadata is modified as a result of the previous function call.
961
+ assertEquals("(020) 8765 4321", phoneUtil.formatInOriginalFormat(number5, RegionCode.GB));
962
+
963
+ PhoneNumber numberWithNationalPrefixMX =
964
+ phoneUtil.parseAndKeepRawInput("013312345678", RegionCode.MX);
965
+ assertEquals("01 33 1234 5678",
966
+ phoneUtil.formatInOriginalFormat(numberWithNationalPrefixMX, RegionCode.MX));
967
+
968
+ PhoneNumber numberWithoutNationalPrefixMX =
969
+ phoneUtil.parseAndKeepRawInput("3312345678", RegionCode.MX);
970
+ assertEquals("33 1234 5678",
971
+ phoneUtil.formatInOriginalFormat(numberWithoutNationalPrefixMX, RegionCode.MX));
972
+
973
+ PhoneNumber italianFixedLineNumber =
974
+ phoneUtil.parseAndKeepRawInput("0212345678", RegionCode.IT);
975
+ assertEquals("02 1234 5678",
976
+ phoneUtil.formatInOriginalFormat(italianFixedLineNumber, RegionCode.IT));
977
+
978
+ PhoneNumber numberWithNationalPrefixJP =
979
+ phoneUtil.parseAndKeepRawInput("00777012", RegionCode.JP);
980
+ assertEquals("0077-7012",
981
+ phoneUtil.formatInOriginalFormat(numberWithNationalPrefixJP, RegionCode.JP));
982
+
983
+ PhoneNumber numberWithoutNationalPrefixJP =
984
+ phoneUtil.parseAndKeepRawInput("0777012", RegionCode.JP);
985
+ assertEquals("0777012",
986
+ phoneUtil.formatInOriginalFormat(numberWithoutNationalPrefixJP, RegionCode.JP));
987
+
988
+ PhoneNumber numberWithCarrierCodeBR =
989
+ phoneUtil.parseAndKeepRawInput("012 3121286979", RegionCode.BR);
990
+ assertEquals("012 3121286979",
991
+ phoneUtil.formatInOriginalFormat(numberWithCarrierCodeBR, RegionCode.BR));
992
+
993
+ // The default national prefix used in this case is 045. When a number with national prefix 044
994
+ // is entered, we return the raw input as we don't want to change the number entered.
995
+ PhoneNumber numberWithNationalPrefixMX1 =
996
+ phoneUtil.parseAndKeepRawInput("044(33)1234-5678", RegionCode.MX);
997
+ assertEquals("044(33)1234-5678",
998
+ phoneUtil.formatInOriginalFormat(numberWithNationalPrefixMX1, RegionCode.MX));
999
+
1000
+ PhoneNumber numberWithNationalPrefixMX2 =
1001
+ phoneUtil.parseAndKeepRawInput("045(33)1234-5678", RegionCode.MX);
1002
+ assertEquals("045 33 1234 5678",
1003
+ phoneUtil.formatInOriginalFormat(numberWithNationalPrefixMX2, RegionCode.MX));
1004
+
1005
+ // The default international prefix used in this case is 0011. When a number with international
1006
+ // prefix 0012 is entered, we return the raw input as we don't want to change the number
1007
+ // entered.
1008
+ PhoneNumber outOfCountryNumberFromAU1 =
1009
+ phoneUtil.parseAndKeepRawInput("0012 16502530000", RegionCode.AU);
1010
+ assertEquals("0012 16502530000",
1011
+ phoneUtil.formatInOriginalFormat(outOfCountryNumberFromAU1, RegionCode.AU));
1012
+
1013
+ PhoneNumber outOfCountryNumberFromAU2 =
1014
+ phoneUtil.parseAndKeepRawInput("0011 16502530000", RegionCode.AU);
1015
+ assertEquals("0011 1 650 253 0000",
1016
+ phoneUtil.formatInOriginalFormat(outOfCountryNumberFromAU2, RegionCode.AU));
1017
+
1018
+ // Test the star sign is not removed from or added to the original input by this method.
1019
+ PhoneNumber starNumber = phoneUtil.parseAndKeepRawInput("*1234", RegionCode.JP);
1020
+ assertEquals("*1234", phoneUtil.formatInOriginalFormat(starNumber, RegionCode.JP));
1021
+ PhoneNumber numberWithoutStar = phoneUtil.parseAndKeepRawInput("1234", RegionCode.JP);
1022
+ assertEquals("1234", phoneUtil.formatInOriginalFormat(numberWithoutStar, RegionCode.JP));
1023
+
1024
+ // Test an invalid national number without raw input is just formatted as the national number.
1025
+ assertEquals("650253000",
1026
+ phoneUtil.formatInOriginalFormat(US_SHORT_BY_ONE_NUMBER, RegionCode.US));
1027
+ }
1028
+
1029
+ public void testIsPremiumRate() {
1030
+ assertEquals(PhoneNumberUtil.PhoneNumberType.PREMIUM_RATE, phoneUtil.getNumberType(US_PREMIUM));
1031
+
1032
+ PhoneNumber premiumRateNumber = new PhoneNumber();
1033
+ premiumRateNumber.setCountryCode(39).setNationalNumber(892123L);
1034
+ assertEquals(PhoneNumberUtil.PhoneNumberType.PREMIUM_RATE,
1035
+ phoneUtil.getNumberType(premiumRateNumber));
1036
+
1037
+ premiumRateNumber.clear();
1038
+ premiumRateNumber.setCountryCode(44).setNationalNumber(9187654321L);
1039
+ assertEquals(PhoneNumberUtil.PhoneNumberType.PREMIUM_RATE,
1040
+ phoneUtil.getNumberType(premiumRateNumber));
1041
+
1042
+ premiumRateNumber.clear();
1043
+ premiumRateNumber.setCountryCode(49).setNationalNumber(9001654321L);
1044
+ assertEquals(PhoneNumberUtil.PhoneNumberType.PREMIUM_RATE,
1045
+ phoneUtil.getNumberType(premiumRateNumber));
1046
+
1047
+ premiumRateNumber.clear();
1048
+ premiumRateNumber.setCountryCode(49).setNationalNumber(90091234567L);
1049
+ assertEquals(PhoneNumberUtil.PhoneNumberType.PREMIUM_RATE,
1050
+ phoneUtil.getNumberType(premiumRateNumber));
1051
+
1052
+ assertEquals(PhoneNumberUtil.PhoneNumberType.PREMIUM_RATE,
1053
+ phoneUtil.getNumberType(UNIVERSAL_PREMIUM_RATE));
1054
+ }
1055
+
1056
+ public void testIsTollFree() {
1057
+ PhoneNumber tollFreeNumber = new PhoneNumber();
1058
+
1059
+ tollFreeNumber.setCountryCode(1).setNationalNumber(8881234567L);
1060
+ assertEquals(PhoneNumberUtil.PhoneNumberType.TOLL_FREE,
1061
+ phoneUtil.getNumberType(tollFreeNumber));
1062
+
1063
+ tollFreeNumber.clear();
1064
+ tollFreeNumber.setCountryCode(39).setNationalNumber(803123L);
1065
+ assertEquals(PhoneNumberUtil.PhoneNumberType.TOLL_FREE,
1066
+ phoneUtil.getNumberType(tollFreeNumber));
1067
+
1068
+ tollFreeNumber.clear();
1069
+ tollFreeNumber.setCountryCode(44).setNationalNumber(8012345678L);
1070
+ assertEquals(PhoneNumberUtil.PhoneNumberType.TOLL_FREE,
1071
+ phoneUtil.getNumberType(tollFreeNumber));
1072
+
1073
+ tollFreeNumber.clear();
1074
+ tollFreeNumber.setCountryCode(49).setNationalNumber(8001234567L);
1075
+ assertEquals(PhoneNumberUtil.PhoneNumberType.TOLL_FREE,
1076
+ phoneUtil.getNumberType(tollFreeNumber));
1077
+
1078
+ assertEquals(PhoneNumberUtil.PhoneNumberType.TOLL_FREE,
1079
+ phoneUtil.getNumberType(INTERNATIONAL_TOLL_FREE));
1080
+ }
1081
+
1082
+ public void testIsMobile() {
1083
+ assertEquals(PhoneNumberUtil.PhoneNumberType.MOBILE, phoneUtil.getNumberType(BS_MOBILE));
1084
+ assertEquals(PhoneNumberUtil.PhoneNumberType.MOBILE, phoneUtil.getNumberType(GB_MOBILE));
1085
+ assertEquals(PhoneNumberUtil.PhoneNumberType.MOBILE, phoneUtil.getNumberType(IT_MOBILE));
1086
+ assertEquals(PhoneNumberUtil.PhoneNumberType.MOBILE, phoneUtil.getNumberType(AR_MOBILE));
1087
+
1088
+ PhoneNumber mobileNumber = new PhoneNumber();
1089
+ mobileNumber.setCountryCode(49).setNationalNumber(15123456789L);
1090
+ assertEquals(PhoneNumberUtil.PhoneNumberType.MOBILE, phoneUtil.getNumberType(mobileNumber));
1091
+ }
1092
+
1093
+ public void testIsFixedLine() {
1094
+ assertEquals(PhoneNumberUtil.PhoneNumberType.FIXED_LINE, phoneUtil.getNumberType(BS_NUMBER));
1095
+ assertEquals(PhoneNumberUtil.PhoneNumberType.FIXED_LINE, phoneUtil.getNumberType(IT_NUMBER));
1096
+ assertEquals(PhoneNumberUtil.PhoneNumberType.FIXED_LINE, phoneUtil.getNumberType(GB_NUMBER));
1097
+ assertEquals(PhoneNumberUtil.PhoneNumberType.FIXED_LINE, phoneUtil.getNumberType(DE_NUMBER));
1098
+ }
1099
+
1100
+ public void testIsFixedLineAndMobile() {
1101
+ assertEquals(PhoneNumberUtil.PhoneNumberType.FIXED_LINE_OR_MOBILE,
1102
+ phoneUtil.getNumberType(US_NUMBER));
1103
+
1104
+ PhoneNumber fixedLineAndMobileNumber = new PhoneNumber().
1105
+ setCountryCode(54).setNationalNumber(1987654321L);
1106
+ assertEquals(PhoneNumberUtil.PhoneNumberType.FIXED_LINE_OR_MOBILE,
1107
+ phoneUtil.getNumberType(fixedLineAndMobileNumber));
1108
+ }
1109
+
1110
+ public void testIsSharedCost() {
1111
+ PhoneNumber gbNumber = new PhoneNumber();
1112
+ gbNumber.setCountryCode(44).setNationalNumber(8431231234L);
1113
+ assertEquals(PhoneNumberUtil.PhoneNumberType.SHARED_COST, phoneUtil.getNumberType(gbNumber));
1114
+ }
1115
+
1116
+ public void testIsVoip() {
1117
+ PhoneNumber gbNumber = new PhoneNumber();
1118
+ gbNumber.setCountryCode(44).setNationalNumber(5631231234L);
1119
+ assertEquals(PhoneNumberUtil.PhoneNumberType.VOIP, phoneUtil.getNumberType(gbNumber));
1120
+ }
1121
+
1122
+ public void testIsPersonalNumber() {
1123
+ PhoneNumber gbNumber = new PhoneNumber();
1124
+ gbNumber.setCountryCode(44).setNationalNumber(7031231234L);
1125
+ assertEquals(PhoneNumberUtil.PhoneNumberType.PERSONAL_NUMBER,
1126
+ phoneUtil.getNumberType(gbNumber));
1127
+ }
1128
+
1129
+ public void testIsUnknown() {
1130
+ // Invalid numbers should be of type UNKNOWN.
1131
+ assertEquals(PhoneNumberUtil.PhoneNumberType.UNKNOWN, phoneUtil.getNumberType(US_LOCAL_NUMBER));
1132
+ }
1133
+
1134
+ public void testIsValidNumber() {
1135
+ assertTrue(phoneUtil.isValidNumber(US_NUMBER));
1136
+ assertTrue(phoneUtil.isValidNumber(IT_NUMBER));
1137
+ assertTrue(phoneUtil.isValidNumber(GB_MOBILE));
1138
+ assertTrue(phoneUtil.isValidNumber(INTERNATIONAL_TOLL_FREE));
1139
+ assertTrue(phoneUtil.isValidNumber(UNIVERSAL_PREMIUM_RATE));
1140
+
1141
+ PhoneNumber nzNumber = new PhoneNumber().setCountryCode(64).setNationalNumber(21387835L);
1142
+ assertTrue(phoneUtil.isValidNumber(nzNumber));
1143
+ }
1144
+
1145
+ public void testIsValidForRegion() {
1146
+ // This number is valid for the Bahamas, but is not a valid US number.
1147
+ assertTrue(phoneUtil.isValidNumber(BS_NUMBER));
1148
+ assertTrue(phoneUtil.isValidNumberForRegion(BS_NUMBER, RegionCode.BS));
1149
+ assertFalse(phoneUtil.isValidNumberForRegion(BS_NUMBER, RegionCode.US));
1150
+ PhoneNumber bsInvalidNumber =
1151
+ new PhoneNumber().setCountryCode(1).setNationalNumber(2421232345L);
1152
+ // This number is no longer valid.
1153
+ assertFalse(phoneUtil.isValidNumber(bsInvalidNumber));
1154
+
1155
+ // La Mayotte and Reunion use 'leadingDigits' to differentiate them.
1156
+ PhoneNumber reNumber = new PhoneNumber();
1157
+ reNumber.setCountryCode(262).setNationalNumber(262123456L);
1158
+ assertTrue(phoneUtil.isValidNumber(reNumber));
1159
+ assertTrue(phoneUtil.isValidNumberForRegion(reNumber, RegionCode.RE));
1160
+ assertFalse(phoneUtil.isValidNumberForRegion(reNumber, RegionCode.YT));
1161
+ // Now change the number to be a number for La Mayotte.
1162
+ reNumber.setNationalNumber(269601234L);
1163
+ assertTrue(phoneUtil.isValidNumberForRegion(reNumber, RegionCode.YT));
1164
+ assertFalse(phoneUtil.isValidNumberForRegion(reNumber, RegionCode.RE));
1165
+ // This number is no longer valid for La Reunion.
1166
+ reNumber.setNationalNumber(269123456L);
1167
+ assertFalse(phoneUtil.isValidNumberForRegion(reNumber, RegionCode.YT));
1168
+ assertFalse(phoneUtil.isValidNumberForRegion(reNumber, RegionCode.RE));
1169
+ assertFalse(phoneUtil.isValidNumber(reNumber));
1170
+ // However, it should be recognised as from La Mayotte, since it is valid for this region.
1171
+ assertEquals(RegionCode.YT, phoneUtil.getRegionCodeForNumber(reNumber));
1172
+ // This number is valid in both places.
1173
+ reNumber.setNationalNumber(800123456L);
1174
+ assertTrue(phoneUtil.isValidNumberForRegion(reNumber, RegionCode.YT));
1175
+ assertTrue(phoneUtil.isValidNumberForRegion(reNumber, RegionCode.RE));
1176
+ assertTrue(phoneUtil.isValidNumberForRegion(INTERNATIONAL_TOLL_FREE, RegionCode.UN001));
1177
+ assertFalse(phoneUtil.isValidNumberForRegion(INTERNATIONAL_TOLL_FREE, RegionCode.US));
1178
+ assertFalse(phoneUtil.isValidNumberForRegion(INTERNATIONAL_TOLL_FREE, RegionCode.ZZ));
1179
+
1180
+ PhoneNumber invalidNumber = new PhoneNumber();
1181
+ // Invalid country calling codes.
1182
+ invalidNumber.setCountryCode(3923).setNationalNumber(2366L);
1183
+ assertFalse(phoneUtil.isValidNumberForRegion(invalidNumber, RegionCode.ZZ));
1184
+ assertFalse(phoneUtil.isValidNumberForRegion(invalidNumber, RegionCode.UN001));
1185
+ invalidNumber.setCountryCode(0);
1186
+ assertFalse(phoneUtil.isValidNumberForRegion(invalidNumber, RegionCode.UN001));
1187
+ assertFalse(phoneUtil.isValidNumberForRegion(invalidNumber, RegionCode.ZZ));
1188
+ }
1189
+
1190
+ public void testIsNotValidNumber() {
1191
+ assertFalse(phoneUtil.isValidNumber(US_LOCAL_NUMBER));
1192
+
1193
+ PhoneNumber invalidNumber = new PhoneNumber();
1194
+ invalidNumber.setCountryCode(39).setNationalNumber(23661830000L).setItalianLeadingZero(true);
1195
+ assertFalse(phoneUtil.isValidNumber(invalidNumber));
1196
+
1197
+ invalidNumber.clear();
1198
+ invalidNumber.setCountryCode(44).setNationalNumber(791234567L);
1199
+ assertFalse(phoneUtil.isValidNumber(invalidNumber));
1200
+
1201
+ invalidNumber.clear();
1202
+ invalidNumber.setCountryCode(49).setNationalNumber(1234L);
1203
+ assertFalse(phoneUtil.isValidNumber(invalidNumber));
1204
+
1205
+ invalidNumber.clear();
1206
+ invalidNumber.setCountryCode(64).setNationalNumber(3316005L);
1207
+ assertFalse(phoneUtil.isValidNumber(invalidNumber));
1208
+
1209
+ invalidNumber.clear();
1210
+ // Invalid country calling codes.
1211
+ invalidNumber.setCountryCode(3923).setNationalNumber(2366L);
1212
+ assertFalse(phoneUtil.isValidNumber(invalidNumber));
1213
+ invalidNumber.setCountryCode(0);
1214
+ assertFalse(phoneUtil.isValidNumber(invalidNumber));
1215
+
1216
+ assertFalse(phoneUtil.isValidNumber(INTERNATIONAL_TOLL_FREE_TOO_LONG));
1217
+ }
1218
+
1219
+ public void testGetRegionCodeForCountryCode() {
1220
+ assertEquals(RegionCode.US, phoneUtil.getRegionCodeForCountryCode(1));
1221
+ assertEquals(RegionCode.GB, phoneUtil.getRegionCodeForCountryCode(44));
1222
+ assertEquals(RegionCode.DE, phoneUtil.getRegionCodeForCountryCode(49));
1223
+ assertEquals(RegionCode.UN001, phoneUtil.getRegionCodeForCountryCode(800));
1224
+ assertEquals(RegionCode.UN001, phoneUtil.getRegionCodeForCountryCode(979));
1225
+ }
1226
+
1227
+ public void testGetRegionCodeForNumber() {
1228
+ assertEquals(RegionCode.BS, phoneUtil.getRegionCodeForNumber(BS_NUMBER));
1229
+ assertEquals(RegionCode.US, phoneUtil.getRegionCodeForNumber(US_NUMBER));
1230
+ assertEquals(RegionCode.GB, phoneUtil.getRegionCodeForNumber(GB_MOBILE));
1231
+ assertEquals(RegionCode.UN001, phoneUtil.getRegionCodeForNumber(INTERNATIONAL_TOLL_FREE));
1232
+ assertEquals(RegionCode.UN001, phoneUtil.getRegionCodeForNumber(UNIVERSAL_PREMIUM_RATE));
1233
+ }
1234
+
1235
+ public void testGetRegionCodesForCountryCode() {
1236
+ List<String> regionCodesForNANPA = phoneUtil.getRegionCodesForCountryCode(1);
1237
+ assertTrue(regionCodesForNANPA.contains(RegionCode.US));
1238
+ assertTrue(regionCodesForNANPA.contains(RegionCode.BS));
1239
+ assertTrue(phoneUtil.getRegionCodesForCountryCode(44).contains(RegionCode.GB));
1240
+ assertTrue(phoneUtil.getRegionCodesForCountryCode(49).contains(RegionCode.DE));
1241
+ assertTrue(phoneUtil.getRegionCodesForCountryCode(800).contains(RegionCode.UN001));
1242
+ // Test with invalid country calling code.
1243
+ assertTrue(phoneUtil.getRegionCodesForCountryCode(-1).isEmpty());
1244
+ }
1245
+
1246
+ public void testGetCountryCodeForRegion() {
1247
+ assertEquals(1, phoneUtil.getCountryCodeForRegion(RegionCode.US));
1248
+ assertEquals(64, phoneUtil.getCountryCodeForRegion(RegionCode.NZ));
1249
+ assertEquals(0, phoneUtil.getCountryCodeForRegion(null));
1250
+ assertEquals(0, phoneUtil.getCountryCodeForRegion(RegionCode.ZZ));
1251
+ assertEquals(0, phoneUtil.getCountryCodeForRegion(RegionCode.UN001));
1252
+ // CS is already deprecated so the library doesn't support it.
1253
+ assertEquals(0, phoneUtil.getCountryCodeForRegion(RegionCode.CS));
1254
+ }
1255
+
1256
+ public void testGetNationalDiallingPrefixForRegion() {
1257
+ assertEquals("1", phoneUtil.getNddPrefixForRegion(RegionCode.US, false));
1258
+ // Test non-main country to see it gets the national dialling prefix for the main country with
1259
+ // that country calling code.
1260
+ assertEquals("1", phoneUtil.getNddPrefixForRegion(RegionCode.BS, false));
1261
+ assertEquals("0", phoneUtil.getNddPrefixForRegion(RegionCode.NZ, false));
1262
+ // Test case with non digit in the national prefix.
1263
+ assertEquals("0~0", phoneUtil.getNddPrefixForRegion(RegionCode.AO, false));
1264
+ assertEquals("00", phoneUtil.getNddPrefixForRegion(RegionCode.AO, true));
1265
+ // Test cases with invalid regions.
1266
+ assertEquals(null, phoneUtil.getNddPrefixForRegion(null, false));
1267
+ assertEquals(null, phoneUtil.getNddPrefixForRegion(RegionCode.ZZ, false));
1268
+ assertEquals(null, phoneUtil.getNddPrefixForRegion(RegionCode.UN001, false));
1269
+ // CS is already deprecated so the library doesn't support it.
1270
+ assertEquals(null, phoneUtil.getNddPrefixForRegion(RegionCode.CS, false));
1271
+ }
1272
+
1273
+ public void testIsNANPACountry() {
1274
+ assertTrue(phoneUtil.isNANPACountry(RegionCode.US));
1275
+ assertTrue(phoneUtil.isNANPACountry(RegionCode.BS));
1276
+ assertFalse(phoneUtil.isNANPACountry(RegionCode.DE));
1277
+ assertFalse(phoneUtil.isNANPACountry(RegionCode.ZZ));
1278
+ assertFalse(phoneUtil.isNANPACountry(RegionCode.UN001));
1279
+ assertFalse(phoneUtil.isNANPACountry(null));
1280
+ }
1281
+
1282
+ public void testIsPossibleNumber() {
1283
+ assertTrue(phoneUtil.isPossibleNumber(US_NUMBER));
1284
+ assertTrue(phoneUtil.isPossibleNumber(US_LOCAL_NUMBER));
1285
+ assertTrue(phoneUtil.isPossibleNumber(GB_NUMBER));
1286
+ assertTrue(phoneUtil.isPossibleNumber(INTERNATIONAL_TOLL_FREE));
1287
+
1288
+ assertTrue(phoneUtil.isPossibleNumber("+1 650 253 0000", RegionCode.US));
1289
+ assertTrue(phoneUtil.isPossibleNumber("+1 650 GOO OGLE", RegionCode.US));
1290
+ assertTrue(phoneUtil.isPossibleNumber("(650) 253-0000", RegionCode.US));
1291
+ assertTrue(phoneUtil.isPossibleNumber("253-0000", RegionCode.US));
1292
+ assertTrue(phoneUtil.isPossibleNumber("+1 650 253 0000", RegionCode.GB));
1293
+ assertTrue(phoneUtil.isPossibleNumber("+44 20 7031 3000", RegionCode.GB));
1294
+ assertTrue(phoneUtil.isPossibleNumber("(020) 7031 3000", RegionCode.GB));
1295
+ assertTrue(phoneUtil.isPossibleNumber("7031 3000", RegionCode.GB));
1296
+ assertTrue(phoneUtil.isPossibleNumber("3331 6005", RegionCode.NZ));
1297
+ assertTrue(phoneUtil.isPossibleNumber("+800 1234 5678", RegionCode.UN001));
1298
+ }
1299
+
1300
+ public void testIsPossibleNumberWithReason() {
1301
+ // National numbers for country calling code +1 that are within 7 to 10 digits are possible.
1302
+ assertEquals(PhoneNumberUtil.ValidationResult.IS_POSSIBLE,
1303
+ phoneUtil.isPossibleNumberWithReason(US_NUMBER));
1304
+
1305
+ assertEquals(PhoneNumberUtil.ValidationResult.IS_POSSIBLE,
1306
+ phoneUtil.isPossibleNumberWithReason(US_LOCAL_NUMBER));
1307
+
1308
+ assertEquals(PhoneNumberUtil.ValidationResult.TOO_LONG,
1309
+ phoneUtil.isPossibleNumberWithReason(US_LONG_NUMBER));
1310
+
1311
+ PhoneNumber number = new PhoneNumber();
1312
+ number.setCountryCode(0).setNationalNumber(2530000L);
1313
+ assertEquals(PhoneNumberUtil.ValidationResult.INVALID_COUNTRY_CODE,
1314
+ phoneUtil.isPossibleNumberWithReason(number));
1315
+
1316
+ number.clear();
1317
+ number.setCountryCode(1).setNationalNumber(253000L);
1318
+ assertEquals(PhoneNumberUtil.ValidationResult.TOO_SHORT,
1319
+ phoneUtil.isPossibleNumberWithReason(number));
1320
+
1321
+ number.clear();
1322
+ number.setCountryCode(65).setNationalNumber(1234567890L);
1323
+ assertEquals(PhoneNumberUtil.ValidationResult.IS_POSSIBLE,
1324
+ phoneUtil.isPossibleNumberWithReason(number));
1325
+
1326
+ assertEquals(PhoneNumberUtil.ValidationResult.TOO_LONG,
1327
+ phoneUtil.isPossibleNumberWithReason(INTERNATIONAL_TOLL_FREE_TOO_LONG));
1328
+ }
1329
+
1330
+ public void testIsNotPossibleNumber() {
1331
+ assertFalse(phoneUtil.isPossibleNumber(US_LONG_NUMBER));
1332
+ assertFalse(phoneUtil.isPossibleNumber(INTERNATIONAL_TOLL_FREE_TOO_LONG));
1333
+
1334
+ PhoneNumber number = new PhoneNumber();
1335
+ number.setCountryCode(1).setNationalNumber(253000L);
1336
+ assertFalse(phoneUtil.isPossibleNumber(number));
1337
+
1338
+ number.clear();
1339
+ number.setCountryCode(44).setNationalNumber(300L);
1340
+ assertFalse(phoneUtil.isPossibleNumber(number));
1341
+ assertFalse(phoneUtil.isPossibleNumber("+1 650 253 00000", RegionCode.US));
1342
+ assertFalse(phoneUtil.isPossibleNumber("(650) 253-00000", RegionCode.US));
1343
+ assertFalse(phoneUtil.isPossibleNumber("I want a Pizza", RegionCode.US));
1344
+ assertFalse(phoneUtil.isPossibleNumber("253-000", RegionCode.US));
1345
+ assertFalse(phoneUtil.isPossibleNumber("1 3000", RegionCode.GB));
1346
+ assertFalse(phoneUtil.isPossibleNumber("+44 300", RegionCode.GB));
1347
+ assertFalse(phoneUtil.isPossibleNumber("+800 1234 5678 9", RegionCode.UN001));
1348
+ }
1349
+
1350
+ public void testTruncateTooLongNumber() {
1351
+ // GB number 080 1234 5678, but entered with 4 extra digits at the end.
1352
+ PhoneNumber tooLongNumber = new PhoneNumber();
1353
+ tooLongNumber.setCountryCode(44).setNationalNumber(80123456780123L);
1354
+ PhoneNumber validNumber = new PhoneNumber();
1355
+ validNumber.setCountryCode(44).setNationalNumber(8012345678L);
1356
+ assertTrue(phoneUtil.truncateTooLongNumber(tooLongNumber));
1357
+ assertEquals(validNumber, tooLongNumber);
1358
+
1359
+ // IT number 022 3456 7890, but entered with 3 extra digits at the end.
1360
+ tooLongNumber.clear();
1361
+ tooLongNumber.setCountryCode(39).setNationalNumber(2234567890123L).setItalianLeadingZero(true);
1362
+ validNumber.clear();
1363
+ validNumber.setCountryCode(39).setNationalNumber(2234567890L).setItalianLeadingZero(true);
1364
+ assertTrue(phoneUtil.truncateTooLongNumber(tooLongNumber));
1365
+ assertEquals(validNumber, tooLongNumber);
1366
+
1367
+ // US number 650-253-0000, but entered with one additional digit at the end.
1368
+ tooLongNumber.clear();
1369
+ tooLongNumber.mergeFrom(US_LONG_NUMBER);
1370
+ assertTrue(phoneUtil.truncateTooLongNumber(tooLongNumber));
1371
+ assertEquals(US_NUMBER, tooLongNumber);
1372
+
1373
+ tooLongNumber.clear();
1374
+ tooLongNumber.mergeFrom(INTERNATIONAL_TOLL_FREE_TOO_LONG);
1375
+ assertTrue(phoneUtil.truncateTooLongNumber(tooLongNumber));
1376
+ assertEquals(INTERNATIONAL_TOLL_FREE, tooLongNumber);
1377
+
1378
+ // Tests what happens when a valid number is passed in.
1379
+ PhoneNumber validNumberCopy = new PhoneNumber().mergeFrom(validNumber);
1380
+ assertTrue(phoneUtil.truncateTooLongNumber(validNumber));
1381
+ // Tests the number is not modified.
1382
+ assertEquals(validNumberCopy, validNumber);
1383
+
1384
+ // Tests what happens when a number with invalid prefix is passed in.
1385
+ PhoneNumber numberWithInvalidPrefix = new PhoneNumber();
1386
+ // The test metadata says US numbers cannot have prefix 240.
1387
+ numberWithInvalidPrefix.setCountryCode(1).setNationalNumber(2401234567L);
1388
+ PhoneNumber invalidNumberCopy = new PhoneNumber().mergeFrom(numberWithInvalidPrefix);
1389
+ assertFalse(phoneUtil.truncateTooLongNumber(numberWithInvalidPrefix));
1390
+ // Tests the number is not modified.
1391
+ assertEquals(invalidNumberCopy, numberWithInvalidPrefix);
1392
+
1393
+ // Tests what happens when a too short number is passed in.
1394
+ PhoneNumber tooShortNumber = new PhoneNumber().setCountryCode(1).setNationalNumber(1234L);
1395
+ PhoneNumber tooShortNumberCopy = new PhoneNumber().mergeFrom(tooShortNumber);
1396
+ assertFalse(phoneUtil.truncateTooLongNumber(tooShortNumber));
1397
+ // Tests the number is not modified.
1398
+ assertEquals(tooShortNumberCopy, tooShortNumber);
1399
+ }
1400
+
1401
+ public void testIsViablePhoneNumber() {
1402
+ assertFalse(PhoneNumberUtil.isViablePhoneNumber("1"));
1403
+ // Only one or two digits before strange non-possible punctuation.
1404
+ assertFalse(PhoneNumberUtil.isViablePhoneNumber("1+1+1"));
1405
+ assertFalse(PhoneNumberUtil.isViablePhoneNumber("80+0"));
1406
+ // Two digits is viable.
1407
+ assertTrue(PhoneNumberUtil.isViablePhoneNumber("00"));
1408
+ assertTrue(PhoneNumberUtil.isViablePhoneNumber("111"));
1409
+ // Alpha numbers.
1410
+ assertTrue(PhoneNumberUtil.isViablePhoneNumber("0800-4-pizza"));
1411
+ assertTrue(PhoneNumberUtil.isViablePhoneNumber("0800-4-PIZZA"));
1412
+ // We need at least three digits before any alpha characters.
1413
+ assertFalse(PhoneNumberUtil.isViablePhoneNumber("08-PIZZA"));
1414
+ assertFalse(PhoneNumberUtil.isViablePhoneNumber("8-PIZZA"));
1415
+ assertFalse(PhoneNumberUtil.isViablePhoneNumber("12. March"));
1416
+ }
1417
+
1418
+ public void testIsViablePhoneNumberNonAscii() {
1419
+ // Only one or two digits before possible punctuation followed by more digits.
1420
+ assertTrue(PhoneNumberUtil.isViablePhoneNumber("1\u300034"));
1421
+ assertFalse(PhoneNumberUtil.isViablePhoneNumber("1\u30003+4"));
1422
+ // Unicode variants of possible starting character and other allowed punctuation/digits.
1423
+ assertTrue(PhoneNumberUtil.isViablePhoneNumber("\uFF081\uFF09\u30003456789"));
1424
+ // Testing a leading + is okay.
1425
+ assertTrue(PhoneNumberUtil.isViablePhoneNumber("+1\uFF09\u30003456789"));
1426
+ }
1427
+
1428
+ public void testExtractPossibleNumber() {
1429
+ // Removes preceding funky punctuation and letters but leaves the rest untouched.
1430
+ assertEquals("0800-345-600", PhoneNumberUtil.extractPossibleNumber("Tel:0800-345-600"));
1431
+ assertEquals("0800 FOR PIZZA", PhoneNumberUtil.extractPossibleNumber("Tel:0800 FOR PIZZA"));
1432
+ // Should not remove plus sign
1433
+ assertEquals("+800-345-600", PhoneNumberUtil.extractPossibleNumber("Tel:+800-345-600"));
1434
+ // Should recognise wide digits as possible start values.
1435
+ assertEquals("\uFF10\uFF12\uFF13",
1436
+ PhoneNumberUtil.extractPossibleNumber("\uFF10\uFF12\uFF13"));
1437
+ // Dashes are not possible start values and should be removed.
1438
+ assertEquals("\uFF11\uFF12\uFF13",
1439
+ PhoneNumberUtil.extractPossibleNumber("Num-\uFF11\uFF12\uFF13"));
1440
+ // If not possible number present, return empty string.
1441
+ assertEquals("", PhoneNumberUtil.extractPossibleNumber("Num-...."));
1442
+ // Leading brackets are stripped - these are not used when parsing.
1443
+ assertEquals("650) 253-0000", PhoneNumberUtil.extractPossibleNumber("(650) 253-0000"));
1444
+
1445
+ // Trailing non-alpha-numeric characters should be removed.
1446
+ assertEquals("650) 253-0000", PhoneNumberUtil.extractPossibleNumber("(650) 253-0000..- .."));
1447
+ assertEquals("650) 253-0000", PhoneNumberUtil.extractPossibleNumber("(650) 253-0000."));
1448
+ // This case has a trailing RTL char.
1449
+ assertEquals("650) 253-0000", PhoneNumberUtil.extractPossibleNumber("(650) 253-0000\u200F"));
1450
+ }
1451
+
1452
+ public void testMaybeStripNationalPrefix() {
1453
+ PhoneMetadata metadata = new PhoneMetadata();
1454
+ metadata.setNationalPrefixForParsing("34");
1455
+ metadata.setGeneralDesc(new PhoneNumberDesc().setNationalNumberPattern("\\d{4,8}"));
1456
+ StringBuilder numberToStrip = new StringBuilder("34356778");
1457
+ String strippedNumber = "356778";
1458
+ assertTrue(phoneUtil.maybeStripNationalPrefixAndCarrierCode(numberToStrip, metadata, null));
1459
+ assertEquals("Should have had national prefix stripped.",
1460
+ strippedNumber, numberToStrip.toString());
1461
+ // Retry stripping - now the number should not start with the national prefix, so no more
1462
+ // stripping should occur.
1463
+ assertFalse(phoneUtil.maybeStripNationalPrefixAndCarrierCode(numberToStrip, metadata, null));
1464
+ assertEquals("Should have had no change - no national prefix present.",
1465
+ strippedNumber, numberToStrip.toString());
1466
+ // Some countries have no national prefix. Repeat test with none specified.
1467
+ metadata.setNationalPrefixForParsing("");
1468
+ assertFalse(phoneUtil.maybeStripNationalPrefixAndCarrierCode(numberToStrip, metadata, null));
1469
+ assertEquals("Should not strip anything with empty national prefix.",
1470
+ strippedNumber, numberToStrip.toString());
1471
+ // If the resultant number doesn't match the national rule, it shouldn't be stripped.
1472
+ metadata.setNationalPrefixForParsing("3");
1473
+ numberToStrip = new StringBuilder("3123");
1474
+ strippedNumber = "3123";
1475
+ assertFalse(phoneUtil.maybeStripNationalPrefixAndCarrierCode(numberToStrip, metadata, null));
1476
+ assertEquals("Should have had no change - after stripping, it wouldn't have matched " +
1477
+ "the national rule.",
1478
+ strippedNumber, numberToStrip.toString());
1479
+ // Test extracting carrier selection code.
1480
+ metadata.setNationalPrefixForParsing("0(81)?");
1481
+ numberToStrip = new StringBuilder("08122123456");
1482
+ strippedNumber = "22123456";
1483
+ StringBuilder carrierCode = new StringBuilder();
1484
+ assertTrue(phoneUtil.maybeStripNationalPrefixAndCarrierCode(
1485
+ numberToStrip, metadata, carrierCode));
1486
+ assertEquals("81", carrierCode.toString());
1487
+ assertEquals("Should have had national prefix and carrier code stripped.",
1488
+ strippedNumber, numberToStrip.toString());
1489
+ // If there was a transform rule, check it was applied.
1490
+ metadata.setNationalPrefixTransformRule("5$15");
1491
+ // Note that a capturing group is present here.
1492
+ metadata.setNationalPrefixForParsing("0(\\d{2})");
1493
+ numberToStrip = new StringBuilder("031123");
1494
+ String transformedNumber = "5315123";
1495
+ assertTrue(phoneUtil.maybeStripNationalPrefixAndCarrierCode(numberToStrip, metadata, null));
1496
+ assertEquals("Should transform the 031 to a 5315.",
1497
+ transformedNumber, numberToStrip.toString());
1498
+ }
1499
+
1500
+ public void testMaybeStripInternationalPrefix() {
1501
+ String internationalPrefix = "00[39]";
1502
+ StringBuilder numberToStrip = new StringBuilder("0034567700-3898003");
1503
+ // Note the dash is removed as part of the normalization.
1504
+ StringBuilder strippedNumber = new StringBuilder("45677003898003");
1505
+ assertEquals(CountryCodeSource.FROM_NUMBER_WITH_IDD,
1506
+ phoneUtil.maybeStripInternationalPrefixAndNormalize(numberToStrip,
1507
+ internationalPrefix));
1508
+ assertEquals("The number supplied was not stripped of its international prefix.",
1509
+ strippedNumber.toString(), numberToStrip.toString());
1510
+ // Now the number no longer starts with an IDD prefix, so it should now report
1511
+ // FROM_DEFAULT_COUNTRY.
1512
+ assertEquals(CountryCodeSource.FROM_DEFAULT_COUNTRY,
1513
+ phoneUtil.maybeStripInternationalPrefixAndNormalize(numberToStrip,
1514
+ internationalPrefix));
1515
+
1516
+ numberToStrip = new StringBuilder("00945677003898003");
1517
+ assertEquals(CountryCodeSource.FROM_NUMBER_WITH_IDD,
1518
+ phoneUtil.maybeStripInternationalPrefixAndNormalize(numberToStrip,
1519
+ internationalPrefix));
1520
+ assertEquals("The number supplied was not stripped of its international prefix.",
1521
+ strippedNumber.toString(), numberToStrip.toString());
1522
+ // Test it works when the international prefix is broken up by spaces.
1523
+ numberToStrip = new StringBuilder("00 9 45677003898003");
1524
+ assertEquals(CountryCodeSource.FROM_NUMBER_WITH_IDD,
1525
+ phoneUtil.maybeStripInternationalPrefixAndNormalize(numberToStrip,
1526
+ internationalPrefix));
1527
+ assertEquals("The number supplied was not stripped of its international prefix.",
1528
+ strippedNumber.toString(), numberToStrip.toString());
1529
+ // Now the number no longer starts with an IDD prefix, so it should now report
1530
+ // FROM_DEFAULT_COUNTRY.
1531
+ assertEquals(CountryCodeSource.FROM_DEFAULT_COUNTRY,
1532
+ phoneUtil.maybeStripInternationalPrefixAndNormalize(numberToStrip,
1533
+ internationalPrefix));
1534
+
1535
+ // Test the + symbol is also recognised and stripped.
1536
+ numberToStrip = new StringBuilder("+45677003898003");
1537
+ strippedNumber = new StringBuilder("45677003898003");
1538
+ assertEquals(CountryCodeSource.FROM_NUMBER_WITH_PLUS_SIGN,
1539
+ phoneUtil.maybeStripInternationalPrefixAndNormalize(numberToStrip,
1540
+ internationalPrefix));
1541
+ assertEquals("The number supplied was not stripped of the plus symbol.",
1542
+ strippedNumber.toString(), numberToStrip.toString());
1543
+
1544
+ // If the number afterwards is a zero, we should not strip this - no country calling code begins
1545
+ // with 0.
1546
+ numberToStrip = new StringBuilder("0090112-3123");
1547
+ strippedNumber = new StringBuilder("00901123123");
1548
+ assertEquals(CountryCodeSource.FROM_DEFAULT_COUNTRY,
1549
+ phoneUtil.maybeStripInternationalPrefixAndNormalize(numberToStrip,
1550
+ internationalPrefix));
1551
+ assertEquals("The number supplied had a 0 after the match so shouldn't be stripped.",
1552
+ strippedNumber.toString(), numberToStrip.toString());
1553
+ // Here the 0 is separated by a space from the IDD.
1554
+ numberToStrip = new StringBuilder("009 0-112-3123");
1555
+ assertEquals(CountryCodeSource.FROM_DEFAULT_COUNTRY,
1556
+ phoneUtil.maybeStripInternationalPrefixAndNormalize(numberToStrip,
1557
+ internationalPrefix));
1558
+ }
1559
+
1560
+ public void testMaybeExtractCountryCode() {
1561
+ PhoneNumber number = new PhoneNumber();
1562
+ PhoneMetadata metadata = phoneUtil.getMetadataForRegion(RegionCode.US);
1563
+ // Note that for the US, the IDD is 011.
1564
+ try {
1565
+ String phoneNumber = "011112-3456789";
1566
+ String strippedNumber = "123456789";
1567
+ int countryCallingCode = 1;
1568
+ StringBuilder numberToFill = new StringBuilder();
1569
+ assertEquals("Did not extract country calling code " + countryCallingCode + " correctly.",
1570
+ countryCallingCode,
1571
+ phoneUtil.maybeExtractCountryCode(phoneNumber, metadata, numberToFill, true,
1572
+ number));
1573
+ assertEquals("Did not figure out CountryCodeSource correctly",
1574
+ CountryCodeSource.FROM_NUMBER_WITH_IDD, number.getCountryCodeSource());
1575
+ // Should strip and normalize national significant number.
1576
+ assertEquals("Did not strip off the country calling code correctly.",
1577
+ strippedNumber,
1578
+ numberToFill.toString());
1579
+ } catch (NumberParseException e) {
1580
+ fail("Should not have thrown an exception: " + e.toString());
1581
+ }
1582
+ number.clear();
1583
+ try {
1584
+ String phoneNumber = "+6423456789";
1585
+ int countryCallingCode = 64;
1586
+ StringBuilder numberToFill = new StringBuilder();
1587
+ assertEquals("Did not extract country calling code " + countryCallingCode + " correctly.",
1588
+ countryCallingCode,
1589
+ phoneUtil.maybeExtractCountryCode(phoneNumber, metadata, numberToFill, true,
1590
+ number));
1591
+ assertEquals("Did not figure out CountryCodeSource correctly",
1592
+ CountryCodeSource.FROM_NUMBER_WITH_PLUS_SIGN, number.getCountryCodeSource());
1593
+ } catch (NumberParseException e) {
1594
+ fail("Should not have thrown an exception: " + e.toString());
1595
+ }
1596
+ number.clear();
1597
+ try {
1598
+ String phoneNumber = "+80012345678";
1599
+ int countryCallingCode = 800;
1600
+ StringBuilder numberToFill = new StringBuilder();
1601
+ assertEquals("Did not extract country calling code " + countryCallingCode + " correctly.",
1602
+ countryCallingCode,
1603
+ phoneUtil.maybeExtractCountryCode(phoneNumber, metadata, numberToFill, true,
1604
+ number));
1605
+ assertEquals("Did not figure out CountryCodeSource correctly",
1606
+ CountryCodeSource.FROM_NUMBER_WITH_PLUS_SIGN, number.getCountryCodeSource());
1607
+ } catch (NumberParseException e) {
1608
+ fail("Should not have thrown an exception: " + e.toString());
1609
+ }
1610
+ number.clear();
1611
+ try {
1612
+ String phoneNumber = "2345-6789";
1613
+ StringBuilder numberToFill = new StringBuilder();
1614
+ assertEquals(
1615
+ "Should not have extracted a country calling code - no international prefix present.",
1616
+ 0,
1617
+ phoneUtil.maybeExtractCountryCode(phoneNumber, metadata, numberToFill, true, number));
1618
+ assertEquals("Did not figure out CountryCodeSource correctly",
1619
+ CountryCodeSource.FROM_DEFAULT_COUNTRY, number.getCountryCodeSource());
1620
+ } catch (NumberParseException e) {
1621
+ fail("Should not have thrown an exception: " + e.toString());
1622
+ }
1623
+ number.clear();
1624
+ try {
1625
+ String phoneNumber = "0119991123456789";
1626
+ StringBuilder numberToFill = new StringBuilder();
1627
+ phoneUtil.maybeExtractCountryCode(phoneNumber, metadata, numberToFill, true, number);
1628
+ fail("Should have thrown an exception, no valid country calling code present.");
1629
+ } catch (NumberParseException e) {
1630
+ // Expected.
1631
+ assertEquals("Wrong error type stored in exception.",
1632
+ NumberParseException.ErrorType.INVALID_COUNTRY_CODE,
1633
+ e.getErrorType());
1634
+ }
1635
+ number.clear();
1636
+ try {
1637
+ String phoneNumber = "(1 610) 619 4466";
1638
+ int countryCallingCode = 1;
1639
+ StringBuilder numberToFill = new StringBuilder();
1640
+ assertEquals("Should have extracted the country calling code of the region passed in",
1641
+ countryCallingCode,
1642
+ phoneUtil.maybeExtractCountryCode(phoneNumber, metadata, numberToFill, true,
1643
+ number));
1644
+ assertEquals("Did not figure out CountryCodeSource correctly",
1645
+ CountryCodeSource.FROM_NUMBER_WITHOUT_PLUS_SIGN,
1646
+ number.getCountryCodeSource());
1647
+ } catch (NumberParseException e) {
1648
+ fail("Should not have thrown an exception: " + e.toString());
1649
+ }
1650
+ number.clear();
1651
+ try {
1652
+ String phoneNumber = "(1 610) 619 4466";
1653
+ int countryCallingCode = 1;
1654
+ StringBuilder numberToFill = new StringBuilder();
1655
+ assertEquals("Should have extracted the country calling code of the region passed in",
1656
+ countryCallingCode,
1657
+ phoneUtil.maybeExtractCountryCode(phoneNumber, metadata, numberToFill, false,
1658
+ number));
1659
+ assertFalse("Should not contain CountryCodeSource.", number.hasCountryCodeSource());
1660
+ } catch (NumberParseException e) {
1661
+ fail("Should not have thrown an exception: " + e.toString());
1662
+ }
1663
+ number.clear();
1664
+ try {
1665
+ String phoneNumber = "(1 610) 619 446";
1666
+ StringBuilder numberToFill = new StringBuilder();
1667
+ assertEquals("Should not have extracted a country calling code - invalid number after " +
1668
+ "extraction of uncertain country calling code.",
1669
+ 0,
1670
+ phoneUtil.maybeExtractCountryCode(phoneNumber, metadata, numberToFill, false,
1671
+ number));
1672
+ assertFalse("Should not contain CountryCodeSource.", number.hasCountryCodeSource());
1673
+ } catch (NumberParseException e) {
1674
+ fail("Should not have thrown an exception: " + e.toString());
1675
+ }
1676
+ number.clear();
1677
+ try {
1678
+ String phoneNumber = "(1 610) 619";
1679
+ StringBuilder numberToFill = new StringBuilder();
1680
+ assertEquals("Should not have extracted a country calling code - too short number both " +
1681
+ "before and after extraction of uncertain country calling code.",
1682
+ 0,
1683
+ phoneUtil.maybeExtractCountryCode(phoneNumber, metadata, numberToFill, true,
1684
+ number));
1685
+ assertEquals("Did not figure out CountryCodeSource correctly",
1686
+ CountryCodeSource.FROM_DEFAULT_COUNTRY, number.getCountryCodeSource());
1687
+ } catch (NumberParseException e) {
1688
+ fail("Should not have thrown an exception: " + e.toString());
1689
+ }
1690
+ }
1691
+
1692
+ public void testParseNationalNumber() throws Exception {
1693
+ // National prefix attached.
1694
+ assertEquals(NZ_NUMBER, phoneUtil.parse("033316005", RegionCode.NZ));
1695
+ assertEquals(NZ_NUMBER, phoneUtil.parse("33316005", RegionCode.NZ));
1696
+ // National prefix attached and some formatting present.
1697
+ assertEquals(NZ_NUMBER, phoneUtil.parse("03-331 6005", RegionCode.NZ));
1698
+ assertEquals(NZ_NUMBER, phoneUtil.parse("03 331 6005", RegionCode.NZ));
1699
+ // Test parsing RFC3966 format with a phone context.
1700
+ assertEquals(NZ_NUMBER, phoneUtil.parse("tel:03-331-6005;phone-context=+64", RegionCode.NZ));
1701
+ assertEquals(NZ_NUMBER, phoneUtil.parse("tel:331-6005;phone-context=+64-3", RegionCode.NZ));
1702
+ assertEquals(NZ_NUMBER, phoneUtil.parse("tel:331-6005;phone-context=+64-3", RegionCode.US));
1703
+ assertEquals(NZ_NUMBER, phoneUtil.parse(
1704
+ "My number is tel:03-331-6005;phone-context=+64", RegionCode.NZ));
1705
+ // Test parsing RFC3966 format with optional user-defined parameters. The parameters will appear
1706
+ // after the context if present.
1707
+ assertEquals(NZ_NUMBER, phoneUtil.parse("tel:03-331-6005;phone-context=+64;a=%A1",
1708
+ RegionCode.NZ));
1709
+ // Test parsing RFC3966 with an ISDN subaddress.
1710
+ assertEquals(NZ_NUMBER, phoneUtil.parse("tel:03-331-6005;isub=12345;phone-context=+64",
1711
+ RegionCode.NZ));
1712
+ assertEquals(NZ_NUMBER, phoneUtil.parse("tel:+64-3-331-6005;isub=12345", RegionCode.NZ));
1713
+ // Test parsing RFC3966 with "tel:" missing.
1714
+ assertEquals(NZ_NUMBER, phoneUtil.parse("03-331-6005;phone-context=+64", RegionCode.NZ));
1715
+ // Testing international prefixes.
1716
+ // Should strip country calling code.
1717
+ assertEquals(NZ_NUMBER, phoneUtil.parse("0064 3 331 6005", RegionCode.NZ));
1718
+ // Try again, but this time we have an international number with Region Code US. It should
1719
+ // recognise the country calling code and parse accordingly.
1720
+ assertEquals(NZ_NUMBER, phoneUtil.parse("01164 3 331 6005", RegionCode.US));
1721
+ assertEquals(NZ_NUMBER, phoneUtil.parse("+64 3 331 6005", RegionCode.US));
1722
+ // We should ignore the leading plus here, since it is not followed by a valid country code but
1723
+ // instead is followed by the IDD for the US.
1724
+ assertEquals(NZ_NUMBER, phoneUtil.parse("+01164 3 331 6005", RegionCode.US));
1725
+ assertEquals(NZ_NUMBER, phoneUtil.parse("+0064 3 331 6005", RegionCode.NZ));
1726
+ assertEquals(NZ_NUMBER, phoneUtil.parse("+ 00 64 3 331 6005", RegionCode.NZ));
1727
+
1728
+ assertEquals(US_LOCAL_NUMBER,
1729
+ phoneUtil.parse("tel:253-0000;phone-context=www.google.com", RegionCode.US));
1730
+ assertEquals(US_LOCAL_NUMBER,
1731
+ phoneUtil.parse("tel:253-0000;isub=12345;phone-context=www.google.com", RegionCode.US));
1732
+ // This is invalid because no "+" sign is present as part of phone-context. The phone context
1733
+ // is simply ignored in this case just as if it contains a domain.
1734
+ assertEquals(US_LOCAL_NUMBER,
1735
+ phoneUtil.parse("tel:2530000;isub=12345;phone-context=1-650", RegionCode.US));
1736
+ assertEquals(US_LOCAL_NUMBER,
1737
+ phoneUtil.parse("tel:2530000;isub=12345;phone-context=1234.com", RegionCode.US));
1738
+
1739
+ PhoneNumber nzNumber = new PhoneNumber();
1740
+ nzNumber.setCountryCode(64).setNationalNumber(64123456L);
1741
+ assertEquals(nzNumber, phoneUtil.parse("64(0)64123456", RegionCode.NZ));
1742
+ // Check that using a "/" is fine in a phone number.
1743
+ assertEquals(DE_NUMBER, phoneUtil.parse("301/23456", RegionCode.DE));
1744
+
1745
+ PhoneNumber usNumber = new PhoneNumber();
1746
+ // Check it doesn't use the '1' as a country calling code when parsing if the phone number was
1747
+ // already possible.
1748
+ usNumber.setCountryCode(1).setNationalNumber(1234567890L);
1749
+ assertEquals(usNumber, phoneUtil.parse("123-456-7890", RegionCode.US));
1750
+
1751
+ // Test star numbers. Although this is not strictly valid, we would like to make sure we can
1752
+ // parse the output we produce when formatting the number.
1753
+ assertEquals(JP_STAR_NUMBER, phoneUtil.parse("+81 *2345", RegionCode.JP));
1754
+
1755
+ PhoneNumber shortNumber = new PhoneNumber();
1756
+ shortNumber.setCountryCode(64).setNationalNumber(12L);
1757
+ assertEquals(shortNumber, phoneUtil.parse("12", RegionCode.NZ));
1758
+ }
1759
+
1760
+ public void testParseNumberWithAlphaCharacters() throws Exception {
1761
+ // Test case with alpha characters.
1762
+ PhoneNumber tollfreeNumber = new PhoneNumber();
1763
+ tollfreeNumber.setCountryCode(64).setNationalNumber(800332005L);
1764
+ assertEquals(tollfreeNumber, phoneUtil.parse("0800 DDA 005", RegionCode.NZ));
1765
+ PhoneNumber premiumNumber = new PhoneNumber();
1766
+ premiumNumber.setCountryCode(64).setNationalNumber(9003326005L);
1767
+ assertEquals(premiumNumber, phoneUtil.parse("0900 DDA 6005", RegionCode.NZ));
1768
+ // Not enough alpha characters for them to be considered intentional, so they are stripped.
1769
+ assertEquals(premiumNumber, phoneUtil.parse("0900 332 6005a", RegionCode.NZ));
1770
+ assertEquals(premiumNumber, phoneUtil.parse("0900 332 600a5", RegionCode.NZ));
1771
+ assertEquals(premiumNumber, phoneUtil.parse("0900 332 600A5", RegionCode.NZ));
1772
+ assertEquals(premiumNumber, phoneUtil.parse("0900 a332 600A5", RegionCode.NZ));
1773
+ }
1774
+
1775
+ public void testParseMaliciousInput() throws Exception {
1776
+ // Lots of leading + signs before the possible number.
1777
+ StringBuilder maliciousNumber = new StringBuilder(6000);
1778
+ for (int i = 0; i < 6000; i++) {
1779
+ maliciousNumber.append('+');
1780
+ }
1781
+ maliciousNumber.append("12222-33-244 extensioB 343+");
1782
+ try {
1783
+ phoneUtil.parse(maliciousNumber.toString(), RegionCode.US);
1784
+ fail("This should not parse without throwing an exception " + maliciousNumber);
1785
+ } catch (NumberParseException e) {
1786
+ // Expected this exception.
1787
+ assertEquals("Wrong error type stored in exception.",
1788
+ NumberParseException.ErrorType.TOO_LONG,
1789
+ e.getErrorType());
1790
+ }
1791
+ StringBuilder maliciousNumberWithAlmostExt = new StringBuilder(6000);
1792
+ for (int i = 0; i < 350; i++) {
1793
+ maliciousNumberWithAlmostExt.append("200");
1794
+ }
1795
+ maliciousNumberWithAlmostExt.append(" extensiOB 345");
1796
+ try {
1797
+ phoneUtil.parse(maliciousNumberWithAlmostExt.toString(), RegionCode.US);
1798
+ fail("This should not parse without throwing an exception " + maliciousNumberWithAlmostExt);
1799
+ } catch (NumberParseException e) {
1800
+ // Expected this exception.
1801
+ assertEquals("Wrong error type stored in exception.",
1802
+ NumberParseException.ErrorType.TOO_LONG,
1803
+ e.getErrorType());
1804
+ }
1805
+ }
1806
+
1807
+ public void testParseWithInternationalPrefixes() throws Exception {
1808
+ assertEquals(US_NUMBER, phoneUtil.parse("+1 (650) 253-0000", RegionCode.NZ));
1809
+ assertEquals(INTERNATIONAL_TOLL_FREE, phoneUtil.parse("011 800 1234 5678", RegionCode.US));
1810
+ assertEquals(US_NUMBER, phoneUtil.parse("1-650-253-0000", RegionCode.US));
1811
+ // Calling the US number from Singapore by using different service providers
1812
+ // 1st test: calling using SingTel IDD service (IDD is 001)
1813
+ assertEquals(US_NUMBER, phoneUtil.parse("0011-650-253-0000", RegionCode.SG));
1814
+ // 2nd test: calling using StarHub IDD service (IDD is 008)
1815
+ assertEquals(US_NUMBER, phoneUtil.parse("0081-650-253-0000", RegionCode.SG));
1816
+ // 3rd test: calling using SingTel V019 service (IDD is 019)
1817
+ assertEquals(US_NUMBER, phoneUtil.parse("0191-650-253-0000", RegionCode.SG));
1818
+ // Calling the US number from Poland
1819
+ assertEquals(US_NUMBER, phoneUtil.parse("0~01-650-253-0000", RegionCode.PL));
1820
+ // Using "++" at the start.
1821
+ assertEquals(US_NUMBER, phoneUtil.parse("++1 (650) 253-0000", RegionCode.PL));
1822
+ }
1823
+
1824
+ public void testParseNonAscii() throws Exception {
1825
+ // Using a full-width plus sign.
1826
+ assertEquals(US_NUMBER, phoneUtil.parse("\uFF0B1 (650) 253-0000", RegionCode.SG));
1827
+ // Using a soft hyphen U+00AD.
1828
+ assertEquals(US_NUMBER, phoneUtil.parse("1 (650) 253\u00AD-0000", RegionCode.US));
1829
+ // The whole number, including punctuation, is here represented in full-width form.
1830
+ assertEquals(US_NUMBER, phoneUtil.parse("\uFF0B\uFF11\u3000\uFF08\uFF16\uFF15\uFF10\uFF09" +
1831
+ "\u3000\uFF12\uFF15\uFF13\uFF0D\uFF10\uFF10\uFF10" +
1832
+ "\uFF10",
1833
+ RegionCode.SG));
1834
+ // Using U+30FC dash instead.
1835
+ assertEquals(US_NUMBER, phoneUtil.parse("\uFF0B\uFF11\u3000\uFF08\uFF16\uFF15\uFF10\uFF09" +
1836
+ "\u3000\uFF12\uFF15\uFF13\u30FC\uFF10\uFF10\uFF10" +
1837
+ "\uFF10",
1838
+ RegionCode.SG));
1839
+
1840
+ // Using a very strange decimal digit range (Mongolian digits).
1841
+ assertEquals(US_NUMBER, phoneUtil.parse("\u1811 \u1816\u1815\u1810 " +
1842
+ "\u1812\u1815\u1813 \u1810\u1810\u1810\u1810",
1843
+ RegionCode.US));
1844
+ }
1845
+
1846
+ public void testParseWithLeadingZero() throws Exception {
1847
+ assertEquals(IT_NUMBER, phoneUtil.parse("+39 02-36618 300", RegionCode.NZ));
1848
+ assertEquals(IT_NUMBER, phoneUtil.parse("02-36618 300", RegionCode.IT));
1849
+
1850
+ assertEquals(IT_MOBILE, phoneUtil.parse("345 678 901", RegionCode.IT));
1851
+ }
1852
+
1853
+ public void testParseNationalNumberArgentina() throws Exception {
1854
+ // Test parsing mobile numbers of Argentina.
1855
+ PhoneNumber arNumber = new PhoneNumber();
1856
+ arNumber.setCountryCode(54).setNationalNumber(93435551212L);
1857
+ assertEquals(arNumber, phoneUtil.parse("+54 9 343 555 1212", RegionCode.AR));
1858
+ assertEquals(arNumber, phoneUtil.parse("0343 15 555 1212", RegionCode.AR));
1859
+
1860
+ arNumber.clear();
1861
+ arNumber.setCountryCode(54).setNationalNumber(93715654320L);
1862
+ assertEquals(arNumber, phoneUtil.parse("+54 9 3715 65 4320", RegionCode.AR));
1863
+ assertEquals(arNumber, phoneUtil.parse("03715 15 65 4320", RegionCode.AR));
1864
+ assertEquals(AR_MOBILE, phoneUtil.parse("911 876 54321", RegionCode.AR));
1865
+
1866
+ // Test parsing fixed-line numbers of Argentina.
1867
+ assertEquals(AR_NUMBER, phoneUtil.parse("+54 11 8765 4321", RegionCode.AR));
1868
+ assertEquals(AR_NUMBER, phoneUtil.parse("011 8765 4321", RegionCode.AR));
1869
+
1870
+ arNumber.clear();
1871
+ arNumber.setCountryCode(54).setNationalNumber(3715654321L);
1872
+ assertEquals(arNumber, phoneUtil.parse("+54 3715 65 4321", RegionCode.AR));
1873
+ assertEquals(arNumber, phoneUtil.parse("03715 65 4321", RegionCode.AR));
1874
+
1875
+ arNumber.clear();
1876
+ arNumber.setCountryCode(54).setNationalNumber(2312340000L);
1877
+ assertEquals(arNumber, phoneUtil.parse("+54 23 1234 0000", RegionCode.AR));
1878
+ assertEquals(arNumber, phoneUtil.parse("023 1234 0000", RegionCode.AR));
1879
+ }
1880
+
1881
+ public void testParseWithXInNumber() throws Exception {
1882
+ // Test that having an 'x' in the phone number at the start is ok and that it just gets removed.
1883
+ assertEquals(AR_NUMBER, phoneUtil.parse("01187654321", RegionCode.AR));
1884
+ assertEquals(AR_NUMBER, phoneUtil.parse("(0) 1187654321", RegionCode.AR));
1885
+ assertEquals(AR_NUMBER, phoneUtil.parse("0 1187654321", RegionCode.AR));
1886
+ assertEquals(AR_NUMBER, phoneUtil.parse("(0xx) 1187654321", RegionCode.AR));
1887
+ PhoneNumber arFromUs = new PhoneNumber();
1888
+ arFromUs.setCountryCode(54).setNationalNumber(81429712L);
1889
+ // This test is intentionally constructed such that the number of digit after xx is larger than
1890
+ // 7, so that the number won't be mistakenly treated as an extension, as we allow extensions up
1891
+ // to 7 digits. This assumption is okay for now as all the countries where a carrier selection
1892
+ // code is written in the form of xx have a national significant number of length larger than 7.
1893
+ assertEquals(arFromUs, phoneUtil.parse("011xx5481429712", RegionCode.US));
1894
+ }
1895
+
1896
+ public void testParseNumbersMexico() throws Exception {
1897
+ // Test parsing fixed-line numbers of Mexico.
1898
+ PhoneNumber mxNumber = new PhoneNumber();
1899
+ mxNumber.setCountryCode(52).setNationalNumber(4499780001L);
1900
+ assertEquals(mxNumber, phoneUtil.parse("+52 (449)978-0001", RegionCode.MX));
1901
+ assertEquals(mxNumber, phoneUtil.parse("01 (449)978-0001", RegionCode.MX));
1902
+ assertEquals(mxNumber, phoneUtil.parse("(449)978-0001", RegionCode.MX));
1903
+
1904
+ // Test parsing mobile numbers of Mexico.
1905
+ mxNumber.clear();
1906
+ mxNumber.setCountryCode(52).setNationalNumber(13312345678L);
1907
+ assertEquals(mxNumber, phoneUtil.parse("+52 1 33 1234-5678", RegionCode.MX));
1908
+ assertEquals(mxNumber, phoneUtil.parse("044 (33) 1234-5678", RegionCode.MX));
1909
+ assertEquals(mxNumber, phoneUtil.parse("045 33 1234-5678", RegionCode.MX));
1910
+ }
1911
+
1912
+ public void testFailedParseOnInvalidNumbers() {
1913
+ try {
1914
+ String sentencePhoneNumber = "This is not a phone number";
1915
+ phoneUtil.parse(sentencePhoneNumber, RegionCode.NZ);
1916
+ fail("This should not parse without throwing an exception " + sentencePhoneNumber);
1917
+ } catch (NumberParseException e) {
1918
+ // Expected this exception.
1919
+ assertEquals("Wrong error type stored in exception.",
1920
+ NumberParseException.ErrorType.NOT_A_NUMBER,
1921
+ e.getErrorType());
1922
+ }
1923
+ try {
1924
+ String sentencePhoneNumber = "1 Still not a number";
1925
+ phoneUtil.parse(sentencePhoneNumber, RegionCode.NZ);
1926
+ fail("This should not parse without throwing an exception " + sentencePhoneNumber);
1927
+ } catch (NumberParseException e) {
1928
+ // Expected this exception.
1929
+ assertEquals("Wrong error type stored in exception.",
1930
+ NumberParseException.ErrorType.NOT_A_NUMBER,
1931
+ e.getErrorType());
1932
+ }
1933
+ try {
1934
+ String sentencePhoneNumber = "1 MICROSOFT";
1935
+ phoneUtil.parse(sentencePhoneNumber, RegionCode.NZ);
1936
+ fail("This should not parse without throwing an exception " + sentencePhoneNumber);
1937
+ } catch (NumberParseException e) {
1938
+ // Expected this exception.
1939
+ assertEquals("Wrong error type stored in exception.",
1940
+ NumberParseException.ErrorType.NOT_A_NUMBER,
1941
+ e.getErrorType());
1942
+ }
1943
+ try {
1944
+ String sentencePhoneNumber = "12 MICROSOFT";
1945
+ phoneUtil.parse(sentencePhoneNumber, RegionCode.NZ);
1946
+ fail("This should not parse without throwing an exception " + sentencePhoneNumber);
1947
+ } catch (NumberParseException e) {
1948
+ // Expected this exception.
1949
+ assertEquals("Wrong error type stored in exception.",
1950
+ NumberParseException.ErrorType.NOT_A_NUMBER,
1951
+ e.getErrorType());
1952
+ }
1953
+ try {
1954
+ String tooLongPhoneNumber = "01495 72553301873 810104";
1955
+ phoneUtil.parse(tooLongPhoneNumber, RegionCode.GB);
1956
+ fail("This should not parse without throwing an exception " + tooLongPhoneNumber);
1957
+ } catch (NumberParseException e) {
1958
+ // Expected this exception.
1959
+ assertEquals("Wrong error type stored in exception.",
1960
+ NumberParseException.ErrorType.TOO_LONG,
1961
+ e.getErrorType());
1962
+ }
1963
+ try {
1964
+ String plusMinusPhoneNumber = "+---";
1965
+ phoneUtil.parse(plusMinusPhoneNumber, RegionCode.DE);
1966
+ fail("This should not parse without throwing an exception " + plusMinusPhoneNumber);
1967
+ } catch (NumberParseException e) {
1968
+ // Expected this exception.
1969
+ assertEquals("Wrong error type stored in exception.",
1970
+ NumberParseException.ErrorType.NOT_A_NUMBER,
1971
+ e.getErrorType());
1972
+ }
1973
+ try {
1974
+ String plusStar = "+***";
1975
+ phoneUtil.parse(plusStar, RegionCode.DE);
1976
+ fail("This should not parse without throwing an exception " + plusStar);
1977
+ } catch (NumberParseException e) {
1978
+ // Expected this exception.
1979
+ assertEquals("Wrong error type stored in exception.",
1980
+ NumberParseException.ErrorType.NOT_A_NUMBER,
1981
+ e.getErrorType());
1982
+ }
1983
+ try {
1984
+ String plusStarPhoneNumber = "+*******91";
1985
+ phoneUtil.parse(plusStarPhoneNumber, RegionCode.DE);
1986
+ fail("This should not parse without throwing an exception " + plusStarPhoneNumber);
1987
+ } catch (NumberParseException e) {
1988
+ // Expected this exception.
1989
+ assertEquals("Wrong error type stored in exception.",
1990
+ NumberParseException.ErrorType.NOT_A_NUMBER,
1991
+ e.getErrorType());
1992
+ }
1993
+ try {
1994
+ String tooShortPhoneNumber = "+49 0";
1995
+ phoneUtil.parse(tooShortPhoneNumber, RegionCode.DE);
1996
+ fail("This should not parse without throwing an exception " + tooShortPhoneNumber);
1997
+ } catch (NumberParseException e) {
1998
+ // Expected this exception.
1999
+ assertEquals("Wrong error type stored in exception.",
2000
+ NumberParseException.ErrorType.TOO_SHORT_NSN,
2001
+ e.getErrorType());
2002
+ }
2003
+ try {
2004
+ String invalidCountryCode = "+210 3456 56789";
2005
+ phoneUtil.parse(invalidCountryCode, RegionCode.NZ);
2006
+ fail("This is not a recognised region code: should fail: " + invalidCountryCode);
2007
+ } catch (NumberParseException e) {
2008
+ // Expected this exception.
2009
+ assertEquals("Wrong error type stored in exception.",
2010
+ NumberParseException.ErrorType.INVALID_COUNTRY_CODE,
2011
+ e.getErrorType());
2012
+ }
2013
+ try {
2014
+ String plusAndIddAndInvalidCountryCode = "+ 00 210 3 331 6005";
2015
+ phoneUtil.parse(plusAndIddAndInvalidCountryCode, RegionCode.NZ);
2016
+ fail("This should not parse without throwing an exception.");
2017
+ } catch (NumberParseException e) {
2018
+ // Expected this exception. 00 is a correct IDD, but 210 is not a valid country code.
2019
+ assertEquals("Wrong error type stored in exception.",
2020
+ NumberParseException.ErrorType.INVALID_COUNTRY_CODE,
2021
+ e.getErrorType());
2022
+ }
2023
+ try {
2024
+ String someNumber = "123 456 7890";
2025
+ phoneUtil.parse(someNumber, RegionCode.ZZ);
2026
+ fail("'Unknown' region code not allowed: should fail.");
2027
+ } catch (NumberParseException e) {
2028
+ // Expected this exception.
2029
+ assertEquals("Wrong error type stored in exception.",
2030
+ NumberParseException.ErrorType.INVALID_COUNTRY_CODE,
2031
+ e.getErrorType());
2032
+ }
2033
+ try {
2034
+ String someNumber = "123 456 7890";
2035
+ phoneUtil.parse(someNumber, RegionCode.CS);
2036
+ fail("Deprecated region code not allowed: should fail.");
2037
+ } catch (NumberParseException e) {
2038
+ // Expected this exception.
2039
+ assertEquals("Wrong error type stored in exception.",
2040
+ NumberParseException.ErrorType.INVALID_COUNTRY_CODE,
2041
+ e.getErrorType());
2042
+ }
2043
+ try {
2044
+ String someNumber = "123 456 7890";
2045
+ phoneUtil.parse(someNumber, null);
2046
+ fail("Null region code not allowed: should fail.");
2047
+ } catch (NumberParseException e) {
2048
+ // Expected this exception.
2049
+ assertEquals("Wrong error type stored in exception.",
2050
+ NumberParseException.ErrorType.INVALID_COUNTRY_CODE,
2051
+ e.getErrorType());
2052
+ }
2053
+ try {
2054
+ String someNumber = "0044------";
2055
+ phoneUtil.parse(someNumber, RegionCode.GB);
2056
+ fail("No number provided, only region code: should fail");
2057
+ } catch (NumberParseException e) {
2058
+ // Expected this exception.
2059
+ assertEquals("Wrong error type stored in exception.",
2060
+ NumberParseException.ErrorType.TOO_SHORT_AFTER_IDD,
2061
+ e.getErrorType());
2062
+ }
2063
+ try {
2064
+ String someNumber = "0044";
2065
+ phoneUtil.parse(someNumber, RegionCode.GB);
2066
+ fail("No number provided, only region code: should fail");
2067
+ } catch (NumberParseException e) {
2068
+ // Expected this exception.
2069
+ assertEquals("Wrong error type stored in exception.",
2070
+ NumberParseException.ErrorType.TOO_SHORT_AFTER_IDD,
2071
+ e.getErrorType());
2072
+ }
2073
+ try {
2074
+ String someNumber = "011";
2075
+ phoneUtil.parse(someNumber, RegionCode.US);
2076
+ fail("Only IDD provided - should fail.");
2077
+ } catch (NumberParseException e) {
2078
+ // Expected this exception.
2079
+ assertEquals("Wrong error type stored in exception.",
2080
+ NumberParseException.ErrorType.TOO_SHORT_AFTER_IDD,
2081
+ e.getErrorType());
2082
+ }
2083
+ try {
2084
+ String someNumber = "0119";
2085
+ phoneUtil.parse(someNumber, RegionCode.US);
2086
+ fail("Only IDD provided and then 9 - should fail.");
2087
+ } catch (NumberParseException e) {
2088
+ // Expected this exception.
2089
+ assertEquals("Wrong error type stored in exception.",
2090
+ NumberParseException.ErrorType.TOO_SHORT_AFTER_IDD,
2091
+ e.getErrorType());
2092
+ }
2093
+ try {
2094
+ String emptyNumber = "";
2095
+ // Invalid region.
2096
+ phoneUtil.parse(emptyNumber, RegionCode.ZZ);
2097
+ fail("Empty string - should fail.");
2098
+ } catch (NumberParseException e) {
2099
+ // Expected this exception.
2100
+ assertEquals("Wrong error type stored in exception.",
2101
+ NumberParseException.ErrorType.NOT_A_NUMBER,
2102
+ e.getErrorType());
2103
+ }
2104
+ try {
2105
+ String nullNumber = null;
2106
+ // Invalid region.
2107
+ phoneUtil.parse(nullNumber, RegionCode.ZZ);
2108
+ fail("Null string - should fail.");
2109
+ } catch (NumberParseException e) {
2110
+ // Expected this exception.
2111
+ assertEquals("Wrong error type stored in exception.",
2112
+ NumberParseException.ErrorType.NOT_A_NUMBER,
2113
+ e.getErrorType());
2114
+ } catch (NullPointerException e) {
2115
+ fail("Null string - but should not throw a null pointer exception.");
2116
+ }
2117
+ try {
2118
+ String nullNumber = null;
2119
+ phoneUtil.parse(nullNumber, RegionCode.US);
2120
+ fail("Null string - should fail.");
2121
+ } catch (NumberParseException e) {
2122
+ // Expected this exception.
2123
+ assertEquals("Wrong error type stored in exception.",
2124
+ NumberParseException.ErrorType.NOT_A_NUMBER,
2125
+ e.getErrorType());
2126
+ } catch (NullPointerException e) {
2127
+ fail("Null string - but should not throw a null pointer exception.");
2128
+ }
2129
+ try {
2130
+ String domainRfcPhoneContext = "tel:555-1234;phone-context=www.google.com";
2131
+ phoneUtil.parse(domainRfcPhoneContext, RegionCode.ZZ);
2132
+ fail("'Unknown' region code not allowed: should fail.");
2133
+ } catch (NumberParseException e) {
2134
+ // Expected this exception.
2135
+ assertEquals("Wrong error type stored in exception.",
2136
+ NumberParseException.ErrorType.INVALID_COUNTRY_CODE,
2137
+ e.getErrorType());
2138
+ }
2139
+ try {
2140
+ // This is invalid because no "+" sign is present as part of phone-context. This should not
2141
+ // succeed in being parsed.
2142
+ String invalidRfcPhoneContext = "tel:555-1234;phone-context=1-331";
2143
+ phoneUtil.parse(invalidRfcPhoneContext, RegionCode.ZZ);
2144
+ fail("'Unknown' region code not allowed: should fail.");
2145
+ } catch (NumberParseException e) {
2146
+ // Expected this exception.
2147
+ assertEquals("Wrong error type stored in exception.",
2148
+ NumberParseException.ErrorType.INVALID_COUNTRY_CODE,
2149
+ e.getErrorType());
2150
+ }
2151
+ }
2152
+
2153
+ public void testParseNumbersWithPlusWithNoRegion() throws Exception {
2154
+ // RegionCode.ZZ is allowed only if the number starts with a '+' - then the country calling code
2155
+ // can be calculated.
2156
+ assertEquals(NZ_NUMBER, phoneUtil.parse("+64 3 331 6005", RegionCode.ZZ));
2157
+ // Test with full-width plus.
2158
+ assertEquals(NZ_NUMBER, phoneUtil.parse("\uFF0B64 3 331 6005", RegionCode.ZZ));
2159
+ // Test with normal plus but leading characters that need to be stripped.
2160
+ assertEquals(NZ_NUMBER, phoneUtil.parse("Tel: +64 3 331 6005", RegionCode.ZZ));
2161
+ assertEquals(NZ_NUMBER, phoneUtil.parse("+64 3 331 6005", null));
2162
+ assertEquals(INTERNATIONAL_TOLL_FREE, phoneUtil.parse("+800 1234 5678", null));
2163
+ assertEquals(UNIVERSAL_PREMIUM_RATE, phoneUtil.parse("+979 123 456 789", null));
2164
+
2165
+ // Test parsing RFC3966 format with a phone context.
2166
+ assertEquals(NZ_NUMBER, phoneUtil.parse("tel:03-331-6005;phone-context=+64", RegionCode.ZZ));
2167
+ assertEquals(NZ_NUMBER, phoneUtil.parse(" tel:03-331-6005;phone-context=+64", RegionCode.ZZ));
2168
+ assertEquals(NZ_NUMBER, phoneUtil.parse("tel:03-331-6005;isub=12345;phone-context=+64",
2169
+ RegionCode.ZZ));
2170
+
2171
+ // It is important that we set the carrier code to an empty string, since we used
2172
+ // ParseAndKeepRawInput and no carrier code was found.
2173
+ PhoneNumber nzNumberWithRawInput = new PhoneNumber().mergeFrom(NZ_NUMBER).
2174
+ setRawInput("+64 3 331 6005").
2175
+ setCountryCodeSource(CountryCodeSource.FROM_NUMBER_WITH_PLUS_SIGN).
2176
+ setPreferredDomesticCarrierCode("");
2177
+ assertEquals(nzNumberWithRawInput, phoneUtil.parseAndKeepRawInput("+64 3 331 6005",
2178
+ RegionCode.ZZ));
2179
+ // Null is also allowed for the region code in these cases.
2180
+ assertEquals(nzNumberWithRawInput, phoneUtil.parseAndKeepRawInput("+64 3 331 6005", null));
2181
+ }
2182
+
2183
+ public void testParseNumberTooShortIfNationalPrefixStripped() throws Exception {
2184
+ // Test that a number whose first digits happen to coincide with the national prefix does not
2185
+ // get them stripped if doing so would result in a number too short to be a possible (regular
2186
+ // length) phone number for that region.
2187
+ PhoneNumber byNumber = new PhoneNumber().setCountryCode(375).setNationalNumber(8123L);
2188
+ assertEquals(byNumber, phoneUtil.parse("8123", RegionCode.BY));
2189
+ byNumber.setNationalNumber(81234L);
2190
+ assertEquals(byNumber, phoneUtil.parse("81234", RegionCode.BY));
2191
+
2192
+ // The prefix doesn't get stripped, since the input is a viable 6-digit number, whereas the
2193
+ // result of stripping is only 5 digits.
2194
+ byNumber.setNationalNumber(812345L);
2195
+ assertEquals(byNumber, phoneUtil.parse("812345", RegionCode.BY));
2196
+
2197
+ // The prefix gets stripped, since only 6-digit numbers are possible.
2198
+ byNumber.setNationalNumber(123456L);
2199
+ assertEquals(byNumber, phoneUtil.parse("8123456", RegionCode.BY));
2200
+ }
2201
+
2202
+ public void testParseExtensions() throws Exception {
2203
+ PhoneNumber nzNumber = new PhoneNumber();
2204
+ nzNumber.setCountryCode(64).setNationalNumber(33316005L).setExtension("3456");
2205
+ assertEquals(nzNumber, phoneUtil.parse("03 331 6005 ext 3456", RegionCode.NZ));
2206
+ assertEquals(nzNumber, phoneUtil.parse("03-3316005x3456", RegionCode.NZ));
2207
+ assertEquals(nzNumber, phoneUtil.parse("03-3316005 int.3456", RegionCode.NZ));
2208
+ assertEquals(nzNumber, phoneUtil.parse("03 3316005 #3456", RegionCode.NZ));
2209
+ // Test the following do not extract extensions:
2210
+ assertEquals(ALPHA_NUMERIC_NUMBER, phoneUtil.parse("1800 six-flags", RegionCode.US));
2211
+ assertEquals(ALPHA_NUMERIC_NUMBER, phoneUtil.parse("1800 SIX FLAGS", RegionCode.US));
2212
+ assertEquals(ALPHA_NUMERIC_NUMBER, phoneUtil.parse("0~0 1800 7493 5247", RegionCode.PL));
2213
+ assertEquals(ALPHA_NUMERIC_NUMBER, phoneUtil.parse("(1800) 7493.5247", RegionCode.US));
2214
+ // Check that the last instance of an extension token is matched.
2215
+ PhoneNumber extnNumber = new PhoneNumber().mergeFrom(ALPHA_NUMERIC_NUMBER).setExtension("1234");
2216
+ assertEquals(extnNumber, phoneUtil.parse("0~0 1800 7493 5247 ~1234", RegionCode.PL));
2217
+ // Verifying bug-fix where the last digit of a number was previously omitted if it was a 0 when
2218
+ // extracting the extension. Also verifying a few different cases of extensions.
2219
+ PhoneNumber ukNumber = new PhoneNumber();
2220
+ ukNumber.setCountryCode(44).setNationalNumber(2034567890L).setExtension("456");
2221
+ assertEquals(ukNumber, phoneUtil.parse("+44 2034567890x456", RegionCode.NZ));
2222
+ assertEquals(ukNumber, phoneUtil.parse("+44 2034567890x456", RegionCode.GB));
2223
+ assertEquals(ukNumber, phoneUtil.parse("+44 2034567890 x456", RegionCode.GB));
2224
+ assertEquals(ukNumber, phoneUtil.parse("+44 2034567890 X456", RegionCode.GB));
2225
+ assertEquals(ukNumber, phoneUtil.parse("+44 2034567890 X 456", RegionCode.GB));
2226
+ assertEquals(ukNumber, phoneUtil.parse("+44 2034567890 X 456", RegionCode.GB));
2227
+ assertEquals(ukNumber, phoneUtil.parse("+44 2034567890 x 456 ", RegionCode.GB));
2228
+ assertEquals(ukNumber, phoneUtil.parse("+44 2034567890 X 456", RegionCode.GB));
2229
+ assertEquals(ukNumber, phoneUtil.parse("+44-2034567890;ext=456", RegionCode.GB));
2230
+ assertEquals(ukNumber, phoneUtil.parse("tel:2034567890;ext=456;phone-context=+44",
2231
+ RegionCode.ZZ));
2232
+ // Full-width extension, "extn" only.
2233
+ assertEquals(ukNumber, phoneUtil.parse("+442034567890\uFF45\uFF58\uFF54\uFF4E456",
2234
+ RegionCode.GB));
2235
+ // "xtn" only.
2236
+ assertEquals(ukNumber, phoneUtil.parse("+442034567890\uFF58\uFF54\uFF4E456",
2237
+ RegionCode.GB));
2238
+ // "xt" only.
2239
+ assertEquals(ukNumber, phoneUtil.parse("+442034567890\uFF58\uFF54456",
2240
+ RegionCode.GB));
2241
+
2242
+ PhoneNumber usWithExtension = new PhoneNumber();
2243
+ usWithExtension.setCountryCode(1).setNationalNumber(8009013355L).setExtension("7246433");
2244
+ assertEquals(usWithExtension, phoneUtil.parse("(800) 901-3355 x 7246433", RegionCode.US));
2245
+ assertEquals(usWithExtension, phoneUtil.parse("(800) 901-3355 , ext 7246433", RegionCode.US));
2246
+ assertEquals(usWithExtension,
2247
+ phoneUtil.parse("(800) 901-3355 ,extension 7246433", RegionCode.US));
2248
+ assertEquals(usWithExtension,
2249
+ phoneUtil.parse("(800) 901-3355 ,extensi\u00F3n 7246433", RegionCode.US));
2250
+ // Repeat with the small letter o with acute accent created by combining characters.
2251
+ assertEquals(usWithExtension,
2252
+ phoneUtil.parse("(800) 901-3355 ,extensio\u0301n 7246433", RegionCode.US));
2253
+ assertEquals(usWithExtension, phoneUtil.parse("(800) 901-3355 , 7246433", RegionCode.US));
2254
+ assertEquals(usWithExtension, phoneUtil.parse("(800) 901-3355 ext: 7246433", RegionCode.US));
2255
+
2256
+ // Test that if a number has two extensions specified, we ignore the second.
2257
+ PhoneNumber usWithTwoExtensionsNumber = new PhoneNumber();
2258
+ usWithTwoExtensionsNumber.setCountryCode(1).setNationalNumber(2121231234L).setExtension("508");
2259
+ assertEquals(usWithTwoExtensionsNumber, phoneUtil.parse("(212)123-1234 x508/x1234",
2260
+ RegionCode.US));
2261
+ assertEquals(usWithTwoExtensionsNumber, phoneUtil.parse("(212)123-1234 x508/ x1234",
2262
+ RegionCode.US));
2263
+ assertEquals(usWithTwoExtensionsNumber, phoneUtil.parse("(212)123-1234 x508\\x1234",
2264
+ RegionCode.US));
2265
+
2266
+ // Test parsing numbers in the form (645) 123-1234-910# works, where the last 3 digits before
2267
+ // the # are an extension.
2268
+ usWithExtension.clear();
2269
+ usWithExtension.setCountryCode(1).setNationalNumber(6451231234L).setExtension("910");
2270
+ assertEquals(usWithExtension, phoneUtil.parse("+1 (645) 123 1234-910#", RegionCode.US));
2271
+ // Retry with the same number in a slightly different format.
2272
+ assertEquals(usWithExtension, phoneUtil.parse("+1 (645) 123 1234 ext. 910#", RegionCode.US));
2273
+ }
2274
+
2275
+ public void testParseAndKeepRaw() throws Exception {
2276
+ PhoneNumber alphaNumericNumber = new PhoneNumber().mergeFrom(ALPHA_NUMERIC_NUMBER).
2277
+ setRawInput("800 six-flags").
2278
+ setCountryCodeSource(CountryCodeSource.FROM_DEFAULT_COUNTRY).
2279
+ setPreferredDomesticCarrierCode("");
2280
+ assertEquals(alphaNumericNumber,
2281
+ phoneUtil.parseAndKeepRawInput("800 six-flags", RegionCode.US));
2282
+
2283
+ PhoneNumber shorterAlphaNumber = new PhoneNumber().
2284
+ setCountryCode(1).setNationalNumber(8007493524L).
2285
+ setRawInput("1800 six-flag").
2286
+ setCountryCodeSource(CountryCodeSource.FROM_NUMBER_WITHOUT_PLUS_SIGN).
2287
+ setPreferredDomesticCarrierCode("");
2288
+ assertEquals(shorterAlphaNumber,
2289
+ phoneUtil.parseAndKeepRawInput("1800 six-flag", RegionCode.US));
2290
+
2291
+ shorterAlphaNumber.setRawInput("+1800 six-flag").
2292
+ setCountryCodeSource(CountryCodeSource.FROM_NUMBER_WITH_PLUS_SIGN);
2293
+ assertEquals(shorterAlphaNumber,
2294
+ phoneUtil.parseAndKeepRawInput("+1800 six-flag", RegionCode.NZ));
2295
+
2296
+ shorterAlphaNumber.setRawInput("001800 six-flag").
2297
+ setCountryCodeSource(CountryCodeSource.FROM_NUMBER_WITH_IDD);
2298
+ assertEquals(shorterAlphaNumber,
2299
+ phoneUtil.parseAndKeepRawInput("001800 six-flag", RegionCode.NZ));
2300
+
2301
+ // Invalid region code supplied.
2302
+ try {
2303
+ phoneUtil.parseAndKeepRawInput("123 456 7890", RegionCode.CS);
2304
+ fail("Deprecated region code not allowed: should fail.");
2305
+ } catch (NumberParseException e) {
2306
+ // Expected this exception.
2307
+ assertEquals("Wrong error type stored in exception.",
2308
+ NumberParseException.ErrorType.INVALID_COUNTRY_CODE,
2309
+ e.getErrorType());
2310
+ }
2311
+
2312
+ PhoneNumber koreanNumber = new PhoneNumber();
2313
+ koreanNumber.setCountryCode(82).setNationalNumber(22123456).setRawInput("08122123456").
2314
+ setCountryCodeSource(CountryCodeSource.FROM_DEFAULT_COUNTRY).
2315
+ setPreferredDomesticCarrierCode("81");
2316
+ assertEquals(koreanNumber, phoneUtil.parseAndKeepRawInput("08122123456", RegionCode.KR));
2317
+ }
2318
+
2319
+ public void testParseItalianLeadingZeros() throws Exception {
2320
+ // Test the number "011".
2321
+ PhoneNumber oneZero = new PhoneNumber();
2322
+ oneZero.setCountryCode(61).setNationalNumber(11L).setItalianLeadingZero(true);
2323
+ assertEquals(oneZero, phoneUtil.parse("011", RegionCode.AU));
2324
+
2325
+ // Test the number "001".
2326
+ PhoneNumber twoZeros = new PhoneNumber();
2327
+ twoZeros.setCountryCode(61).setNationalNumber(1).setItalianLeadingZero(true)
2328
+ .setNumberOfLeadingZeros(2);
2329
+ assertEquals(twoZeros, phoneUtil.parse("001", RegionCode.AU));
2330
+
2331
+ // Test the number "000". This number has 2 leading zeros.
2332
+ PhoneNumber stillTwoZeros = new PhoneNumber();
2333
+ stillTwoZeros.setCountryCode(61).setNationalNumber(0L).setItalianLeadingZero(true)
2334
+ .setNumberOfLeadingZeros(2);
2335
+ assertEquals(stillTwoZeros, phoneUtil.parse("000", RegionCode.AU));
2336
+
2337
+ // Test the number "0000". This number has 3 leading zeros.
2338
+ PhoneNumber threeZeros = new PhoneNumber();
2339
+ threeZeros.setCountryCode(61).setNationalNumber(0L).setItalianLeadingZero(true)
2340
+ .setNumberOfLeadingZeros(3);
2341
+ assertEquals(threeZeros, phoneUtil.parse("0000", RegionCode.AU));
2342
+ }
2343
+
2344
+ public void testCountryWithNoNumberDesc() {
2345
+ // Andorra is a country where we don't have PhoneNumberDesc info in the metadata.
2346
+ PhoneNumber adNumber = new PhoneNumber();
2347
+ adNumber.setCountryCode(376).setNationalNumber(12345L);
2348
+ assertEquals("+376 12345", phoneUtil.format(adNumber, PhoneNumberFormat.INTERNATIONAL));
2349
+ assertEquals("+37612345", phoneUtil.format(adNumber, PhoneNumberFormat.E164));
2350
+ assertEquals("12345", phoneUtil.format(adNumber, PhoneNumberFormat.NATIONAL));
2351
+ assertEquals(PhoneNumberUtil.PhoneNumberType.UNKNOWN, phoneUtil.getNumberType(adNumber));
2352
+ assertFalse(phoneUtil.isValidNumber(adNumber));
2353
+
2354
+ // Test dialing a US number from within Andorra.
2355
+ assertEquals("00 1 650 253 0000",
2356
+ phoneUtil.formatOutOfCountryCallingNumber(US_NUMBER, RegionCode.AD));
2357
+ }
2358
+
2359
+ public void testUnknownCountryCallingCode() {
2360
+ assertFalse(phoneUtil.isValidNumber(UNKNOWN_COUNTRY_CODE_NO_RAW_INPUT));
2361
+ // It's not very well defined as to what the E164 representation for a number with an invalid
2362
+ // country calling code is, but just prefixing the country code and national number is about
2363
+ // the best we can do.
2364
+ assertEquals("+212345",
2365
+ phoneUtil.format(UNKNOWN_COUNTRY_CODE_NO_RAW_INPUT, PhoneNumberFormat.E164));
2366
+ }
2367
+
2368
+ public void testIsNumberMatchMatches() throws Exception {
2369
+ // Test simple matches where formatting is different, or leading zeros, or country calling code
2370
+ // has been specified.
2371
+ assertEquals(PhoneNumberUtil.MatchType.EXACT_MATCH,
2372
+ phoneUtil.isNumberMatch("+64 3 331 6005", "+64 03 331 6005"));
2373
+ assertEquals(PhoneNumberUtil.MatchType.EXACT_MATCH,
2374
+ phoneUtil.isNumberMatch("+800 1234 5678", "+80012345678"));
2375
+ assertEquals(PhoneNumberUtil.MatchType.EXACT_MATCH,
2376
+ phoneUtil.isNumberMatch("+64 03 331-6005", "+64 03331 6005"));
2377
+ assertEquals(PhoneNumberUtil.MatchType.EXACT_MATCH,
2378
+ phoneUtil.isNumberMatch("+643 331-6005", "+64033316005"));
2379
+ assertEquals(PhoneNumberUtil.MatchType.EXACT_MATCH,
2380
+ phoneUtil.isNumberMatch("+643 331-6005", "+6433316005"));
2381
+ assertEquals(PhoneNumberUtil.MatchType.EXACT_MATCH,
2382
+ phoneUtil.isNumberMatch("+64 3 331-6005", "+6433316005"));
2383
+ assertEquals(PhoneNumberUtil.MatchType.EXACT_MATCH,
2384
+ phoneUtil.isNumberMatch("+64 3 331-6005", "tel:+64-3-331-6005;isub=123"));
2385
+ // Test alpha numbers.
2386
+ assertEquals(PhoneNumberUtil.MatchType.EXACT_MATCH,
2387
+ phoneUtil.isNumberMatch("+1800 siX-Flags", "+1 800 7493 5247"));
2388
+ // Test numbers with extensions.
2389
+ assertEquals(PhoneNumberUtil.MatchType.EXACT_MATCH,
2390
+ phoneUtil.isNumberMatch("+64 3 331-6005 extn 1234", "+6433316005#1234"));
2391
+ // Test proto buffers.
2392
+ assertEquals(PhoneNumberUtil.MatchType.EXACT_MATCH,
2393
+ phoneUtil.isNumberMatch(NZ_NUMBER, "+6403 331 6005"));
2394
+
2395
+ PhoneNumber nzNumber = new PhoneNumber().mergeFrom(NZ_NUMBER).setExtension("3456");
2396
+ assertEquals(PhoneNumberUtil.MatchType.EXACT_MATCH,
2397
+ phoneUtil.isNumberMatch(nzNumber, "+643 331 6005 ext 3456"));
2398
+ // Check empty extensions are ignored.
2399
+ nzNumber.setExtension("");
2400
+ assertEquals(PhoneNumberUtil.MatchType.EXACT_MATCH,
2401
+ phoneUtil.isNumberMatch(nzNumber, "+6403 331 6005"));
2402
+ // Check variant with two proto buffers.
2403
+ assertEquals("Number " + nzNumber.toString() + " did not match " + NZ_NUMBER.toString(),
2404
+ PhoneNumberUtil.MatchType.EXACT_MATCH,
2405
+ phoneUtil.isNumberMatch(nzNumber, NZ_NUMBER));
2406
+
2407
+ // Check raw_input, country_code_source and preferred_domestic_carrier_code are ignored.
2408
+ PhoneNumber brNumberOne = new PhoneNumber();
2409
+ PhoneNumber brNumberTwo = new PhoneNumber();
2410
+ brNumberOne.setCountryCode(55).setNationalNumber(3121286979L)
2411
+ .setCountryCodeSource(PhoneNumber.CountryCodeSource.FROM_NUMBER_WITH_PLUS_SIGN)
2412
+ .setPreferredDomesticCarrierCode("12").setRawInput("012 3121286979");
2413
+ brNumberTwo.setCountryCode(55).setNationalNumber(3121286979L)
2414
+ .setCountryCodeSource(PhoneNumber.CountryCodeSource.FROM_DEFAULT_COUNTRY)
2415
+ .setPreferredDomesticCarrierCode("14").setRawInput("143121286979");
2416
+ assertEquals(PhoneNumberUtil.MatchType.EXACT_MATCH,
2417
+ phoneUtil.isNumberMatch(brNumberOne, brNumberTwo));
2418
+ }
2419
+
2420
+ public void testIsNumberMatchNonMatches() throws Exception {
2421
+ // Non-matches.
2422
+ assertEquals(PhoneNumberUtil.MatchType.NO_MATCH,
2423
+ phoneUtil.isNumberMatch("03 331 6005", "03 331 6006"));
2424
+ assertEquals(PhoneNumberUtil.MatchType.NO_MATCH,
2425
+ phoneUtil.isNumberMatch("+800 1234 5678", "+1 800 1234 5678"));
2426
+ // Different country calling code, partial number match.
2427
+ assertEquals(PhoneNumberUtil.MatchType.NO_MATCH,
2428
+ phoneUtil.isNumberMatch("+64 3 331-6005", "+16433316005"));
2429
+ // Different country calling code, same number.
2430
+ assertEquals(PhoneNumberUtil.MatchType.NO_MATCH,
2431
+ phoneUtil.isNumberMatch("+64 3 331-6005", "+6133316005"));
2432
+ // Extension different, all else the same.
2433
+ assertEquals(PhoneNumberUtil.MatchType.NO_MATCH,
2434
+ phoneUtil.isNumberMatch("+64 3 331-6005 extn 1234", "0116433316005#1235"));
2435
+ assertEquals(PhoneNumberUtil.MatchType.NO_MATCH,
2436
+ phoneUtil.isNumberMatch(
2437
+ "+64 3 331-6005 extn 1234", "tel:+64-3-331-6005;ext=1235"));
2438
+ // NSN matches, but extension is different - not the same number.
2439
+ assertEquals(PhoneNumberUtil.MatchType.NO_MATCH,
2440
+ phoneUtil.isNumberMatch("+64 3 331-6005 ext.1235", "3 331 6005#1234"));
2441
+
2442
+ // Invalid numbers that can't be parsed.
2443
+ assertEquals(PhoneNumberUtil.MatchType.NOT_A_NUMBER,
2444
+ phoneUtil.isNumberMatch("4", "3 331 6043"));
2445
+ assertEquals(PhoneNumberUtil.MatchType.NOT_A_NUMBER,
2446
+ phoneUtil.isNumberMatch("+43", "+64 3 331 6005"));
2447
+ assertEquals(PhoneNumberUtil.MatchType.NOT_A_NUMBER,
2448
+ phoneUtil.isNumberMatch("+43", "64 3 331 6005"));
2449
+ assertEquals(PhoneNumberUtil.MatchType.NOT_A_NUMBER,
2450
+ phoneUtil.isNumberMatch("Dog", "64 3 331 6005"));
2451
+ }
2452
+
2453
+ public void testIsNumberMatchNsnMatches() throws Exception {
2454
+ // NSN matches.
2455
+ assertEquals(PhoneNumberUtil.MatchType.NSN_MATCH,
2456
+ phoneUtil.isNumberMatch("+64 3 331-6005", "03 331 6005"));
2457
+ assertEquals(PhoneNumberUtil.MatchType.NSN_MATCH,
2458
+ phoneUtil.isNumberMatch(
2459
+ "+64 3 331-6005", "tel:03-331-6005;isub=1234;phone-context=abc.nz"));
2460
+ assertEquals(PhoneNumberUtil.MatchType.NSN_MATCH,
2461
+ phoneUtil.isNumberMatch(NZ_NUMBER, "03 331 6005"));
2462
+ // Here the second number possibly starts with the country calling code for New Zealand,
2463
+ // although we are unsure.
2464
+ PhoneNumber unchangedNzNumber = new PhoneNumber().mergeFrom(NZ_NUMBER);
2465
+ assertEquals(PhoneNumberUtil.MatchType.NSN_MATCH,
2466
+ phoneUtil.isNumberMatch(unchangedNzNumber, "(64-3) 331 6005"));
2467
+ // Check the phone number proto was not edited during the method call.
2468
+ assertEquals(NZ_NUMBER, unchangedNzNumber);
2469
+
2470
+ // Here, the 1 might be a national prefix, if we compare it to the US number, so the resultant
2471
+ // match is an NSN match.
2472
+ assertEquals(PhoneNumberUtil.MatchType.NSN_MATCH,
2473
+ phoneUtil.isNumberMatch(US_NUMBER, "1-650-253-0000"));
2474
+ assertEquals(PhoneNumberUtil.MatchType.NSN_MATCH,
2475
+ phoneUtil.isNumberMatch(US_NUMBER, "6502530000"));
2476
+ assertEquals(PhoneNumberUtil.MatchType.NSN_MATCH,
2477
+ phoneUtil.isNumberMatch("+1 650-253 0000", "1 650 253 0000"));
2478
+ assertEquals(PhoneNumberUtil.MatchType.NSN_MATCH,
2479
+ phoneUtil.isNumberMatch("1 650-253 0000", "1 650 253 0000"));
2480
+ assertEquals(PhoneNumberUtil.MatchType.NSN_MATCH,
2481
+ phoneUtil.isNumberMatch("1 650-253 0000", "+1 650 253 0000"));
2482
+ // For this case, the match will be a short NSN match, because we cannot assume that the 1 might
2483
+ // be a national prefix, so don't remove it when parsing.
2484
+ PhoneNumber randomNumber = new PhoneNumber();
2485
+ randomNumber.setCountryCode(41).setNationalNumber(6502530000L);
2486
+ assertEquals(PhoneNumberUtil.MatchType.SHORT_NSN_MATCH,
2487
+ phoneUtil.isNumberMatch(randomNumber, "1-650-253-0000"));
2488
+ }
2489
+
2490
+ public void testIsNumberMatchShortNsnMatches() throws Exception {
2491
+ // Short NSN matches with the country not specified for either one or both numbers.
2492
+ assertEquals(PhoneNumberUtil.MatchType.SHORT_NSN_MATCH,
2493
+ phoneUtil.isNumberMatch("+64 3 331-6005", "331 6005"));
2494
+ assertEquals(PhoneNumberUtil.MatchType.SHORT_NSN_MATCH,
2495
+ phoneUtil.isNumberMatch("+64 3 331-6005", "tel:331-6005;phone-context=abc.nz"));
2496
+ assertEquals(PhoneNumberUtil.MatchType.SHORT_NSN_MATCH,
2497
+ phoneUtil.isNumberMatch("+64 3 331-6005",
2498
+ "tel:331-6005;isub=1234;phone-context=abc.nz"));
2499
+ assertEquals(PhoneNumberUtil.MatchType.SHORT_NSN_MATCH,
2500
+ phoneUtil.isNumberMatch("+64 3 331-6005",
2501
+ "tel:331-6005;isub=1234;phone-context=abc.nz;a=%A1"));
2502
+ // We did not know that the "0" was a national prefix since neither number has a country code,
2503
+ // so this is considered a SHORT_NSN_MATCH.
2504
+ assertEquals(PhoneNumberUtil.MatchType.SHORT_NSN_MATCH,
2505
+ phoneUtil.isNumberMatch("3 331-6005", "03 331 6005"));
2506
+ assertEquals(PhoneNumberUtil.MatchType.SHORT_NSN_MATCH,
2507
+ phoneUtil.isNumberMatch("3 331-6005", "331 6005"));
2508
+ assertEquals(PhoneNumberUtil.MatchType.SHORT_NSN_MATCH,
2509
+ phoneUtil.isNumberMatch("3 331-6005", "tel:331-6005;phone-context=abc.nz"));
2510
+ assertEquals(PhoneNumberUtil.MatchType.SHORT_NSN_MATCH,
2511
+ phoneUtil.isNumberMatch("3 331-6005", "+64 331 6005"));
2512
+ // Short NSN match with the country specified.
2513
+ assertEquals(PhoneNumberUtil.MatchType.SHORT_NSN_MATCH,
2514
+ phoneUtil.isNumberMatch("03 331-6005", "331 6005"));
2515
+ assertEquals(PhoneNumberUtil.MatchType.SHORT_NSN_MATCH,
2516
+ phoneUtil.isNumberMatch("1 234 345 6789", "345 6789"));
2517
+ assertEquals(PhoneNumberUtil.MatchType.SHORT_NSN_MATCH,
2518
+ phoneUtil.isNumberMatch("+1 (234) 345 6789", "345 6789"));
2519
+ // NSN matches, country calling code omitted for one number, extension missing for one.
2520
+ assertEquals(PhoneNumberUtil.MatchType.SHORT_NSN_MATCH,
2521
+ phoneUtil.isNumberMatch("+64 3 331-6005", "3 331 6005#1234"));
2522
+ // One has Italian leading zero, one does not.
2523
+ PhoneNumber italianNumberOne = new PhoneNumber();
2524
+ italianNumberOne.setCountryCode(39).setNationalNumber(1234L).setItalianLeadingZero(true);
2525
+ PhoneNumber italianNumberTwo = new PhoneNumber();
2526
+ italianNumberTwo.setCountryCode(39).setNationalNumber(1234L);
2527
+ assertEquals(PhoneNumberUtil.MatchType.SHORT_NSN_MATCH,
2528
+ phoneUtil.isNumberMatch(italianNumberOne, italianNumberTwo));
2529
+ // One has an extension, the other has an extension of "".
2530
+ italianNumberOne.setExtension("1234").clearItalianLeadingZero();
2531
+ italianNumberTwo.setExtension("");
2532
+ assertEquals(PhoneNumberUtil.MatchType.SHORT_NSN_MATCH,
2533
+ phoneUtil.isNumberMatch(italianNumberOne, italianNumberTwo));
2534
+ }
2535
+
2536
+ public void testCanBeInternationallyDialled() throws Exception {
2537
+ // We have no-international-dialling rules for the US in our test metadata that say that
2538
+ // toll-free numbers cannot be dialled internationally.
2539
+ assertFalse(phoneUtil.canBeInternationallyDialled(US_TOLLFREE));
2540
+
2541
+ // Normal US numbers can be internationally dialled.
2542
+ assertTrue(phoneUtil.canBeInternationallyDialled(US_NUMBER));
2543
+
2544
+ // Invalid number.
2545
+ assertTrue(phoneUtil.canBeInternationallyDialled(US_LOCAL_NUMBER));
2546
+
2547
+ // We have no data for NZ - should return true.
2548
+ assertTrue(phoneUtil.canBeInternationallyDialled(NZ_NUMBER));
2549
+ assertTrue(phoneUtil.canBeInternationallyDialled(INTERNATIONAL_TOLL_FREE));
2550
+ }
2551
+
2552
+ public void testIsAlphaNumber() throws Exception {
2553
+ assertTrue(phoneUtil.isAlphaNumber("1800 six-flags"));
2554
+ assertTrue(phoneUtil.isAlphaNumber("1800 six-flags ext. 1234"));
2555
+ assertTrue(phoneUtil.isAlphaNumber("+800 six-flags"));
2556
+ assertTrue(phoneUtil.isAlphaNumber("180 six-flags"));
2557
+ assertFalse(phoneUtil.isAlphaNumber("1800 123-1234"));
2558
+ assertFalse(phoneUtil.isAlphaNumber("1 six-flags"));
2559
+ assertFalse(phoneUtil.isAlphaNumber("18 six-flags"));
2560
+ assertFalse(phoneUtil.isAlphaNumber("1800 123-1234 extension: 1234"));
2561
+ assertFalse(phoneUtil.isAlphaNumber("+800 1234-1234"));
2562
+ }
2563
+
2564
+ public void testIsMobileNumberPortableRegion() {
2565
+ assertTrue(phoneUtil.isMobileNumberPortableRegion(RegionCode.US));
2566
+ assertTrue(phoneUtil.isMobileNumberPortableRegion(RegionCode.GB));
2567
+ assertFalse(phoneUtil.isMobileNumberPortableRegion(RegionCode.AE));
2568
+ assertFalse(phoneUtil.isMobileNumberPortableRegion(RegionCode.BS));
2569
+ }
2570
+ }