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,37 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <!--
4
+ @license
5
+ Copyright (C) 2010 The Libphonenumber Authors
6
+
7
+ Licensed under the Apache License, Version 2.0 (the "License");
8
+ you may not use this file except in compliance with the License.
9
+ You may obtain a copy of the License at
10
+
11
+ http://www.apache.org/licenses/LICENSE-2.0
12
+
13
+ Unless required by applicable law or agreed to in writing, software
14
+ distributed under the License is distributed on an "AS-IS" BASIS,
15
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ See the License for the specific language governing permissions and
17
+ limitations under the License.
18
+ -->
19
+ <!--
20
+ Author: Nikolaos Trogkanis
21
+ -->
22
+ <head>
23
+ <title>libphonenumber Unit Tests - i18n.phonenumbers - phonenumberutil.js</title>
24
+ <script src="../../../../closure-library/closure/goog/base.js"></script>
25
+ <script>
26
+ goog.require('goog.proto2.Message');
27
+ </script>
28
+ <script src="phonemetadata.pb.js"></script>
29
+ <script src="phonenumber.pb.js"></script>
30
+ <script src="metadatafortesting.js"></script>
31
+ <script src="regioncodefortesting.js"></script>
32
+ <script src="phonenumberutil.js"></script>
33
+ <script src="phonenumberutil_test.js"></script>
34
+ </head>
35
+ <body>
36
+ </body>
37
+ </html>
@@ -0,0 +1,3322 @@
1
+ /**
2
+ * @license
3
+ * Copyright (C) 2010 The Libphonenumber Authors.
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+
18
+ /**
19
+ * @fileoverview Unit tests for the PhoneNumberUtil.
20
+ *
21
+ * Note that these tests use the metadata contained in metadatafortesting.js,
22
+ * not the normal metadata files, so should not be used for regression test
23
+ * purposes - these tests are illustrative only and test functionality.
24
+ *
25
+ * @author Nikolaos Trogkanis
26
+ */
27
+
28
+ goog.require('goog.array');
29
+ goog.require('goog.testing.jsunit');
30
+ goog.require('i18n.phonenumbers.PhoneNumberUtil');
31
+ goog.require('i18n.phonenumbers.RegionCode');
32
+
33
+
34
+ /** @type {i18n.phonenumbers.PhoneNumberUtil} */
35
+ var phoneUtil = i18n.phonenumbers.PhoneNumberUtil.getInstance();
36
+
37
+
38
+ // Set up some test numbers to re-use.
39
+ // TODO: Rewrite this as static functions that return new numbers each time to
40
+ // avoid any risk of accidental changes to mutable static state affecting many
41
+ // tests.
42
+ /** @type {i18n.phonenumbers.PhoneNumber} */
43
+ var ALPHA_NUMERIC_NUMBER = new i18n.phonenumbers.PhoneNumber();
44
+ ALPHA_NUMERIC_NUMBER.setCountryCode(1);
45
+ ALPHA_NUMERIC_NUMBER.setNationalNumber(80074935247);
46
+
47
+
48
+ /** @type {i18n.phonenumbers.PhoneNumber} */
49
+ var AE_UAN = new i18n.phonenumbers.PhoneNumber();
50
+ AE_UAN.setCountryCode(971);
51
+ AE_UAN.setNationalNumber(600123456);
52
+
53
+
54
+ /** @type {i18n.phonenumbers.PhoneNumber} */
55
+ var AR_MOBILE = new i18n.phonenumbers.PhoneNumber();
56
+ AR_MOBILE.setCountryCode(54);
57
+ AR_MOBILE.setNationalNumber(91187654321);
58
+
59
+
60
+ /** @type {i18n.phonenumbers.PhoneNumber} */
61
+ var AR_NUMBER = new i18n.phonenumbers.PhoneNumber();
62
+ AR_NUMBER.setCountryCode(54);
63
+ AR_NUMBER.setNationalNumber(1187654321);
64
+
65
+
66
+ /** @type {i18n.phonenumbers.PhoneNumber} */
67
+ var AU_NUMBER = new i18n.phonenumbers.PhoneNumber();
68
+ AU_NUMBER.setCountryCode(61);
69
+ AU_NUMBER.setNationalNumber(236618300);
70
+
71
+
72
+ /** @type {i18n.phonenumbers.PhoneNumber} */
73
+ var BS_MOBILE = new i18n.phonenumbers.PhoneNumber();
74
+ BS_MOBILE.setCountryCode(1);
75
+ BS_MOBILE.setNationalNumber(2423570000);
76
+
77
+
78
+ /** @type {i18n.phonenumbers.PhoneNumber} */
79
+ var BS_NUMBER = new i18n.phonenumbers.PhoneNumber();
80
+ BS_NUMBER.setCountryCode(1);
81
+ BS_NUMBER.setNationalNumber(2423651234);
82
+
83
+
84
+ // Note that this is the same as the example number for DE in the metadata.
85
+ /** @type {i18n.phonenumbers.PhoneNumber} */
86
+ var DE_NUMBER = new i18n.phonenumbers.PhoneNumber();
87
+ DE_NUMBER.setCountryCode(49);
88
+ DE_NUMBER.setNationalNumber(30123456);
89
+
90
+
91
+ /** @type {i18n.phonenumbers.PhoneNumber} */
92
+ var DE_SHORT_NUMBER = new i18n.phonenumbers.PhoneNumber();
93
+ DE_SHORT_NUMBER.setCountryCode(49);
94
+ DE_SHORT_NUMBER.setNationalNumber(1234);
95
+
96
+
97
+ /** @type {i18n.phonenumbers.PhoneNumber} */
98
+ var GB_MOBILE = new i18n.phonenumbers.PhoneNumber();
99
+ GB_MOBILE.setCountryCode(44);
100
+ GB_MOBILE.setNationalNumber(7912345678);
101
+
102
+
103
+ /** @type {i18n.phonenumbers.PhoneNumber} */
104
+ var GB_NUMBER = new i18n.phonenumbers.PhoneNumber();
105
+ GB_NUMBER.setCountryCode(44);
106
+ GB_NUMBER.setNationalNumber(2070313000);
107
+
108
+
109
+ /** @type {i18n.phonenumbers.PhoneNumber} */
110
+ var IT_MOBILE = new i18n.phonenumbers.PhoneNumber();
111
+ IT_MOBILE.setCountryCode(39);
112
+ IT_MOBILE.setNationalNumber(345678901);
113
+
114
+
115
+ /** @type {i18n.phonenumbers.PhoneNumber} */
116
+ var IT_NUMBER = new i18n.phonenumbers.PhoneNumber();
117
+ IT_NUMBER.setCountryCode(39);
118
+ IT_NUMBER.setNationalNumber(236618300);
119
+ IT_NUMBER.setItalianLeadingZero(true);
120
+
121
+
122
+ /** @type {i18n.phonenumbers.PhoneNumber} */
123
+ var JP_STAR_NUMBER = new i18n.phonenumbers.PhoneNumber();
124
+ JP_STAR_NUMBER.setCountryCode(81);
125
+ JP_STAR_NUMBER.setNationalNumber(2345);
126
+
127
+
128
+ // Numbers to test the formatting rules from Mexico.
129
+ /** @type {i18n.phonenumbers.PhoneNumber} */
130
+ var MX_MOBILE1 = new i18n.phonenumbers.PhoneNumber();
131
+ MX_MOBILE1.setCountryCode(52);
132
+ MX_MOBILE1.setNationalNumber(12345678900);
133
+
134
+
135
+ /** @type {i18n.phonenumbers.PhoneNumber} */
136
+ var MX_MOBILE2 = new i18n.phonenumbers.PhoneNumber();
137
+ MX_MOBILE2.setCountryCode(52);
138
+ MX_MOBILE2.setNationalNumber(15512345678);
139
+
140
+
141
+ /** @type {i18n.phonenumbers.PhoneNumber} */
142
+ var MX_NUMBER1 = new i18n.phonenumbers.PhoneNumber();
143
+ MX_NUMBER1.setCountryCode(52);
144
+ MX_NUMBER1.setNationalNumber(3312345678);
145
+
146
+
147
+ /** @type {i18n.phonenumbers.PhoneNumber} */
148
+ var MX_NUMBER2 = new i18n.phonenumbers.PhoneNumber();
149
+ MX_NUMBER2.setCountryCode(52);
150
+ MX_NUMBER2.setNationalNumber(8211234567);
151
+
152
+
153
+ /** @type {i18n.phonenumbers.PhoneNumber} */
154
+ var NZ_NUMBER = new i18n.phonenumbers.PhoneNumber();
155
+ NZ_NUMBER.setCountryCode(64);
156
+ NZ_NUMBER.setNationalNumber(33316005);
157
+
158
+
159
+ /** @type {i18n.phonenumbers.PhoneNumber} */
160
+ var SG_NUMBER = new i18n.phonenumbers.PhoneNumber();
161
+ SG_NUMBER.setCountryCode(65);
162
+ SG_NUMBER.setNationalNumber(65218000);
163
+
164
+
165
+ // A too-long and hence invalid US number.
166
+ /** @type {i18n.phonenumbers.PhoneNumber} */
167
+ var US_LONG_NUMBER = new i18n.phonenumbers.PhoneNumber();
168
+ US_LONG_NUMBER.setCountryCode(1);
169
+ US_LONG_NUMBER.setNationalNumber(65025300001);
170
+
171
+
172
+ /** @type {i18n.phonenumbers.PhoneNumber} */
173
+ var US_NUMBER = new i18n.phonenumbers.PhoneNumber();
174
+ US_NUMBER.setCountryCode(1);
175
+ US_NUMBER.setNationalNumber(6502530000);
176
+
177
+
178
+ /** @type {i18n.phonenumbers.PhoneNumber} */
179
+ var US_PREMIUM = new i18n.phonenumbers.PhoneNumber();
180
+ US_PREMIUM.setCountryCode(1);
181
+ US_PREMIUM.setNationalNumber(9002530000);
182
+
183
+
184
+ // Too short, but still possible US numbers.
185
+ /** @type {i18n.phonenumbers.PhoneNumber} */
186
+ var US_LOCAL_NUMBER = new i18n.phonenumbers.PhoneNumber();
187
+ US_LOCAL_NUMBER.setCountryCode(1);
188
+ US_LOCAL_NUMBER.setNationalNumber(2530000);
189
+
190
+
191
+ /** @type {i18n.phonenumbers.PhoneNumber} */
192
+ var US_SHORT_BY_ONE_NUMBER = new i18n.phonenumbers.PhoneNumber();
193
+ US_SHORT_BY_ONE_NUMBER.setCountryCode(1);
194
+ US_SHORT_BY_ONE_NUMBER.setNationalNumber(650253000);
195
+
196
+
197
+ /** @type {i18n.phonenumbers.PhoneNumber} */
198
+ var US_TOLLFREE = new i18n.phonenumbers.PhoneNumber();
199
+ US_TOLLFREE.setCountryCode(1);
200
+ US_TOLLFREE.setNationalNumber(8002530000);
201
+
202
+
203
+ /** @type {i18n.phonenumbers.PhoneNumber} */
204
+ var US_SPOOF = new i18n.phonenumbers.PhoneNumber();
205
+ US_SPOOF.setCountryCode(1);
206
+ US_SPOOF.setNationalNumber(0);
207
+
208
+
209
+ /** @type {i18n.phonenumbers.PhoneNumber} */
210
+ var US_SPOOF_WITH_RAW_INPUT = new i18n.phonenumbers.PhoneNumber();
211
+ US_SPOOF_WITH_RAW_INPUT.setCountryCode(1);
212
+ US_SPOOF_WITH_RAW_INPUT.setNationalNumber(0);
213
+ US_SPOOF_WITH_RAW_INPUT.setRawInput('000-000-0000');
214
+
215
+
216
+ /** @type {i18n.phonenumbers.PhoneNumber} */
217
+ var INTERNATIONAL_TOLL_FREE = new i18n.phonenumbers.PhoneNumber();
218
+ INTERNATIONAL_TOLL_FREE.setCountryCode(800);
219
+ INTERNATIONAL_TOLL_FREE.setNationalNumber(12345678);
220
+
221
+
222
+ // We set this to be the same length as numbers for the other non-geographical
223
+ // country prefix that we have in our test metadata. However, this is not
224
+ // considered valid because they differ in their country calling code.
225
+ /** @type {i18n.phonenumbers.PhoneNumber} */
226
+ var INTERNATIONAL_TOLL_FREE_TOO_LONG = new i18n.phonenumbers.PhoneNumber();
227
+ INTERNATIONAL_TOLL_FREE_TOO_LONG.setCountryCode(800);
228
+ INTERNATIONAL_TOLL_FREE_TOO_LONG.setNationalNumber(123456789);
229
+
230
+
231
+ /** @type {i18n.phonenumbers.PhoneNumber} */
232
+ var UNIVERSAL_PREMIUM_RATE = new i18n.phonenumbers.PhoneNumber();
233
+ UNIVERSAL_PREMIUM_RATE.setCountryCode(979);
234
+ UNIVERSAL_PREMIUM_RATE.setNationalNumber(123456789);
235
+
236
+
237
+ /** @type {i18n.phonenumbers.PhoneNumber} */
238
+ var UNKNOWN_COUNTRY_CODE_NO_RAW_INPUT = new i18n.phonenumbers.PhoneNumber();
239
+ UNKNOWN_COUNTRY_CODE_NO_RAW_INPUT.setCountryCode(2);
240
+ UNKNOWN_COUNTRY_CODE_NO_RAW_INPUT.setNationalNumber(12345);
241
+
242
+ var RegionCode = i18n.phonenumbers.RegionCode;
243
+
244
+ function testGetInstanceLoadUSMetadata() {
245
+ /** @type {i18n.phonenumbers.PhoneMetadata} */
246
+ var metadata = phoneUtil.getMetadataForRegion(RegionCode.US);
247
+ assertEquals(RegionCode.US, metadata.getId());
248
+ assertEquals(1, metadata.getCountryCode());
249
+ assertEquals('011', metadata.getInternationalPrefix());
250
+ assertTrue(metadata.hasNationalPrefix());
251
+ assertEquals(2, metadata.numberFormatCount());
252
+ assertEquals('(\\d{3})(\\d{3})(\\d{4})',
253
+ metadata.getNumberFormat(1).getPattern());
254
+ assertEquals('$1 $2 $3', metadata.getNumberFormat(1).getFormat());
255
+ assertEquals('[13-689]\\d{9}|2[0-35-9]\\d{8}',
256
+ metadata.getGeneralDesc().getNationalNumberPattern());
257
+ assertEquals('\\d{7}(?:\\d{3})?',
258
+ metadata.getGeneralDesc().getPossibleNumberPattern());
259
+ assertTrue(metadata.getGeneralDesc().equals(metadata.getFixedLine()));
260
+ assertEquals('\\d{10}',
261
+ metadata.getTollFree().getPossibleNumberPattern());
262
+ assertEquals('900\\d{7}',
263
+ metadata.getPremiumRate().getNationalNumberPattern());
264
+ // No shared-cost data is available, so it should be initialised to 'NA'.
265
+ assertEquals('NA', metadata.getSharedCost().getNationalNumberPattern());
266
+ assertEquals('NA', metadata.getSharedCost().getPossibleNumberPattern());
267
+ }
268
+
269
+ function testGetInstanceLoadDEMetadata() {
270
+ /** @type {i18n.phonenumbers.PhoneMetadata} */
271
+ var metadata = phoneUtil.getMetadataForRegion(RegionCode.DE);
272
+ assertEquals(RegionCode.DE, metadata.getId());
273
+ assertEquals(49, metadata.getCountryCode());
274
+ assertEquals('00', metadata.getInternationalPrefix());
275
+ assertEquals('0', metadata.getNationalPrefix());
276
+ assertEquals(6, metadata.numberFormatCount());
277
+ assertEquals(1, metadata.getNumberFormat(5).leadingDigitsPatternCount());
278
+ assertEquals('900', metadata.getNumberFormat(5).getLeadingDigitsPattern(0));
279
+ assertEquals('(\\d{3})(\\d{3,4})(\\d{4})',
280
+ metadata.getNumberFormat(5).getPattern());
281
+ assertEquals('$1 $2 $3', metadata.getNumberFormat(5).getFormat());
282
+ assertEquals('(?:[24-6]\\d{2}|3[03-9]\\d|[789](?:[1-9]\\d|0[2-9]))\\d{1,8}',
283
+ metadata.getFixedLine().getNationalNumberPattern());
284
+ assertEquals('\\d{2,14}', metadata.getFixedLine().getPossibleNumberPattern());
285
+ assertEquals('30123456', metadata.getFixedLine().getExampleNumber());
286
+ assertEquals('\\d{10}', metadata.getTollFree().getPossibleNumberPattern());
287
+ assertEquals('900([135]\\d{6}|9\\d{7})',
288
+ metadata.getPremiumRate().getNationalNumberPattern());
289
+ }
290
+
291
+ function testGetInstanceLoadARMetadata() {
292
+ /** @type {i18n.phonenumbers.PhoneMetadata} */
293
+ var metadata = phoneUtil.getMetadataForRegion(RegionCode.AR);
294
+ assertEquals(RegionCode.AR, metadata.getId());
295
+ assertEquals(54, metadata.getCountryCode());
296
+ assertEquals('00', metadata.getInternationalPrefix());
297
+ assertEquals('0', metadata.getNationalPrefix());
298
+ assertEquals('0(?:(11|343|3715)15)?', metadata.getNationalPrefixForParsing());
299
+ assertEquals('9$1', metadata.getNationalPrefixTransformRule());
300
+ assertEquals('$2 15 $3-$4', metadata.getNumberFormat(2).getFormat());
301
+ assertEquals('(9)(\\d{4})(\\d{2})(\\d{4})',
302
+ metadata.getNumberFormat(3).getPattern());
303
+ assertEquals('(9)(\\d{4})(\\d{2})(\\d{4})',
304
+ metadata.getIntlNumberFormat(3).getPattern());
305
+ assertEquals('$1 $2 $3 $4', metadata.getIntlNumberFormat(3).getFormat());
306
+ }
307
+
308
+ function testGetInstanceLoadInternationalTollFreeMetadata() {
309
+ /** @type {i18n.phonenumbers.PhoneMetadata} */
310
+ var metadata = phoneUtil.getMetadataForNonGeographicalRegion(800);
311
+ assertEquals('001', metadata.getId());
312
+ assertEquals(800, metadata.getCountryCode());
313
+ assertEquals('$1 $2', metadata.getNumberFormat(0).getFormat());
314
+ assertEquals('(\\d{4})(\\d{4})', metadata.getNumberFormat(0).getPattern());
315
+ assertEquals('12345678', metadata.getGeneralDesc().getExampleNumber());
316
+ assertEquals('12345678', metadata.getTollFree().getExampleNumber());
317
+ }
318
+
319
+ function testIsNumberGeographical() {
320
+ // Bahamas, mobile phone number.
321
+ assertFalse(phoneUtil.isNumberGeographical(BS_MOBILE));
322
+ // Australian fixed line number.
323
+ assertTrue(phoneUtil.isNumberGeographical(AU_NUMBER));
324
+ // International toll free number.
325
+ assertFalse(phoneUtil.isNumberGeographical(INTERNATIONAL_TOLL_FREE));
326
+ }
327
+
328
+ function testIsLeadingZeroPossible() {
329
+ // Italy
330
+ assertTrue(phoneUtil.isLeadingZeroPossible(39));
331
+ // USA
332
+ assertFalse(phoneUtil.isLeadingZeroPossible(1));
333
+ // International toll free
334
+ assertTrue(phoneUtil.isLeadingZeroPossible(800));
335
+ // International premium-rate
336
+ assertFalse(phoneUtil.isLeadingZeroPossible(979));
337
+ // Not in metadata file, just default to false.
338
+ assertFalse(phoneUtil.isLeadingZeroPossible(888));
339
+ }
340
+
341
+ function testGetLengthOfGeographicalAreaCode() {
342
+ // Google MTV, which has area code '650'.
343
+ assertEquals(3, phoneUtil.getLengthOfGeographicalAreaCode(US_NUMBER));
344
+
345
+ // A North America toll-free number, which has no area code.
346
+ assertEquals(0, phoneUtil.getLengthOfGeographicalAreaCode(US_TOLLFREE));
347
+
348
+ // Google London, which has area code '20'.
349
+ assertEquals(2, phoneUtil.getLengthOfGeographicalAreaCode(GB_NUMBER));
350
+
351
+ // A UK mobile phone, which has no area code.
352
+ assertEquals(0, phoneUtil.getLengthOfGeographicalAreaCode(GB_MOBILE));
353
+
354
+ // Google Buenos Aires, which has area code '11'.
355
+ assertEquals(2, phoneUtil.getLengthOfGeographicalAreaCode(AR_NUMBER));
356
+
357
+ // Google Sydney, which has area code '2'.
358
+ assertEquals(1, phoneUtil.getLengthOfGeographicalAreaCode(AU_NUMBER));
359
+
360
+ // Italian numbers - there is no national prefix, but it still has an area
361
+ // code.
362
+ assertEquals(2, phoneUtil.getLengthOfGeographicalAreaCode(IT_NUMBER));
363
+
364
+ // Google Singapore. Singapore has no area code and no national prefix.
365
+ assertEquals(0, phoneUtil.getLengthOfGeographicalAreaCode(SG_NUMBER));
366
+
367
+ // An invalid US number (1 digit shorter), which has no area code.
368
+ assertEquals(0,
369
+ phoneUtil.getLengthOfGeographicalAreaCode(US_SHORT_BY_ONE_NUMBER));
370
+
371
+ // An international toll free number, which has no area code.
372
+ assertEquals(0,
373
+ phoneUtil.getLengthOfGeographicalAreaCode(INTERNATIONAL_TOLL_FREE));
374
+ }
375
+
376
+ function testGetLengthOfNationalDestinationCode() {
377
+ // Google MTV, which has national destination code (NDC) '650'.
378
+ assertEquals(3, phoneUtil.getLengthOfNationalDestinationCode(US_NUMBER));
379
+
380
+ // A North America toll-free number, which has NDC '800'.
381
+ assertEquals(3, phoneUtil.getLengthOfNationalDestinationCode(US_TOLLFREE));
382
+
383
+ // Google London, which has NDC '20'.
384
+ assertEquals(2, phoneUtil.getLengthOfNationalDestinationCode(GB_NUMBER));
385
+
386
+ // A UK mobile phone, which has NDC '7912'.
387
+ assertEquals(4, phoneUtil.getLengthOfNationalDestinationCode(GB_MOBILE));
388
+
389
+ // Google Buenos Aires, which has NDC '11'.
390
+ assertEquals(2, phoneUtil.getLengthOfNationalDestinationCode(AR_NUMBER));
391
+
392
+ // An Argentinian mobile which has NDC '911'.
393
+ assertEquals(3, phoneUtil.getLengthOfNationalDestinationCode(AR_MOBILE));
394
+
395
+ // Google Sydney, which has NDC '2'.
396
+ assertEquals(1, phoneUtil.getLengthOfNationalDestinationCode(AU_NUMBER));
397
+
398
+ // Google Singapore, which has NDC '6521'.
399
+ assertEquals(4, phoneUtil.getLengthOfNationalDestinationCode(SG_NUMBER));
400
+
401
+ // An invalid US number (1 digit shorter), which has no NDC.
402
+ assertEquals(0,
403
+ phoneUtil.getLengthOfNationalDestinationCode(US_SHORT_BY_ONE_NUMBER));
404
+
405
+ // A number containing an invalid country calling code, which shouldn't have
406
+ // any NDC.
407
+ /** @type {i18n.phonenumbers.PhoneNumber} */
408
+ var number = new i18n.phonenumbers.PhoneNumber();
409
+ number.setCountryCode(123);
410
+ number.setNationalNumber(6502530000);
411
+ assertEquals(0, phoneUtil.getLengthOfNationalDestinationCode(number));
412
+
413
+ // An international toll free number, which has NDC '1234'.
414
+ assertEquals(4,
415
+ phoneUtil.getLengthOfNationalDestinationCode(INTERNATIONAL_TOLL_FREE));
416
+ }
417
+
418
+ function testGetCountryMobileToken() {
419
+ assertEquals('1', i18n.phonenumbers.PhoneNumberUtil.getCountryMobileToken(
420
+ phoneUtil.getCountryCodeForRegion(RegionCode.MX)));
421
+
422
+ // Country calling code for Sweden, which has no mobile token.
423
+ assertEquals('', i18n.phonenumbers.PhoneNumberUtil.getCountryMobileToken(
424
+ phoneUtil.getCountryCodeForRegion(RegionCode.SE)));
425
+ }
426
+
427
+ function testGetSupportedRegions() {
428
+ assertTrue(phoneUtil.getSupportedRegions().length > 0);
429
+ assertTrue(goog.array.contains(
430
+ phoneUtil.getSupportedRegions(), RegionCode.US));
431
+ assertFalse(goog.array.contains(
432
+ phoneUtil.getSupportedRegions(), RegionCode.UN001));
433
+ assertFalse(goog.array.contains(phoneUtil.getSupportedRegions(), '800'));
434
+ }
435
+
436
+ function testGetSupportedGlobalNetworkCallingCodes() {
437
+ assertTrue(phoneUtil.getSupportedGlobalNetworkCallingCodes().length > 0);
438
+ assertFalse(goog.array.contains(
439
+ phoneUtil.getSupportedGlobalNetworkCallingCodes(), RegionCode.US));
440
+ assertTrue(goog.array.contains(
441
+ phoneUtil.getSupportedGlobalNetworkCallingCodes(), 800));
442
+ goog.array.forEach(
443
+ phoneUtil.getSupportedGlobalNetworkCallingCodes(),
444
+ function(countryCallingCode) {
445
+ assertEquals(RegionCode.UN001,
446
+ phoneUtil.getRegionCodeForCountryCode(countryCallingCode));
447
+ });
448
+ }
449
+
450
+ function testGetNationalSignificantNumber() {
451
+ assertEquals('6502530000',
452
+ phoneUtil.getNationalSignificantNumber(US_NUMBER));
453
+
454
+ // An Italian mobile number.
455
+ assertEquals('345678901',
456
+ phoneUtil.getNationalSignificantNumber(IT_MOBILE));
457
+
458
+ // An Italian fixed line number.
459
+ assertEquals('0236618300',
460
+ phoneUtil.getNationalSignificantNumber(IT_NUMBER));
461
+
462
+ assertEquals('12345678',
463
+ phoneUtil.getNationalSignificantNumber(INTERNATIONAL_TOLL_FREE));
464
+ }
465
+
466
+ function testGetExampleNumber() {
467
+ var PNT = i18n.phonenumbers.PhoneNumberType;
468
+ assertTrue(DE_NUMBER.equals(phoneUtil.getExampleNumber(RegionCode.DE)));
469
+
470
+ assertTrue(DE_NUMBER.equals(
471
+ phoneUtil.getExampleNumberForType(RegionCode.DE, PNT.FIXED_LINE)));
472
+ assertNull(phoneUtil.getExampleNumberForType(RegionCode.DE, PNT.MOBILE));
473
+ // For the US, the example number is placed under general description, and
474
+ // hence should be used for both fixed line and mobile, so neither of these
475
+ // should return null.
476
+ assertNotNull(
477
+ phoneUtil.getExampleNumberForType(RegionCode.US, PNT.FIXED_LINE));
478
+ assertNotNull(phoneUtil.getExampleNumberForType(RegionCode.US, PNT.MOBILE));
479
+ // CS is an invalid region, so we have no data for it.
480
+ assertNull(phoneUtil.getExampleNumberForType(RegionCode.CS, PNT.MOBILE));
481
+ // RegionCode 001 is reserved for supporting non-geographical country calling
482
+ // code. We don't support getting an example number for it with this method.
483
+ assertNull(phoneUtil.getExampleNumber(RegionCode.UN001));
484
+ }
485
+
486
+ function testGetExampleNumberForNonGeoEntity() {
487
+ assertTrue(INTERNATIONAL_TOLL_FREE.equals(
488
+ phoneUtil.getExampleNumberForNonGeoEntity(800)));
489
+ assertTrue(UNIVERSAL_PREMIUM_RATE.equals(
490
+ phoneUtil.getExampleNumberForNonGeoEntity(979)));
491
+ }
492
+
493
+ function testConvertAlphaCharactersInNumber() {
494
+ /** @type {string} */
495
+ var input = '1800-ABC-DEF';
496
+ // Alpha chars are converted to digits; everything else is left untouched.
497
+ /** @type {string} */
498
+ var expectedOutput = '1800-222-333';
499
+ assertEquals(expectedOutput,
500
+ i18n.phonenumbers.PhoneNumberUtil.convertAlphaCharactersInNumber(input));
501
+ }
502
+
503
+ function testNormaliseRemovePunctuation() {
504
+ /** @type {string} */
505
+ var inputNumber = '034-56&+#2\u00AD34';
506
+ /** @type {string} */
507
+ var expectedOutput = '03456234';
508
+ assertEquals('Conversion did not correctly remove punctuation',
509
+ expectedOutput,
510
+ i18n.phonenumbers.PhoneNumberUtil.normalize(inputNumber));
511
+ }
512
+
513
+ function testNormaliseReplaceAlphaCharacters() {
514
+ /** @type {string} */
515
+ var inputNumber = '034-I-am-HUNGRY';
516
+ /** @type {string} */
517
+ var expectedOutput = '034426486479';
518
+ assertEquals('Conversion did not correctly replace alpha characters',
519
+ expectedOutput,
520
+ i18n.phonenumbers.PhoneNumberUtil.normalize(inputNumber));
521
+ }
522
+
523
+ function testNormaliseOtherDigits() {
524
+ /** @type {string} */
525
+ var inputNumber = '\uFF125\u0665';
526
+ /** @type {string} */
527
+ var expectedOutput = '255';
528
+ assertEquals('Conversion did not correctly replace non-latin digits',
529
+ expectedOutput,
530
+ i18n.phonenumbers.PhoneNumberUtil.normalize(inputNumber));
531
+ // Eastern-Arabic digits.
532
+ inputNumber = '\u06F52\u06F0';
533
+ expectedOutput = '520';
534
+ assertEquals('Conversion did not correctly replace non-latin digits',
535
+ expectedOutput,
536
+ i18n.phonenumbers.PhoneNumberUtil.normalize(inputNumber));
537
+ }
538
+
539
+ function testNormaliseStripAlphaCharacters() {
540
+ /** @type {string} */
541
+ var inputNumber = '034-56&+a#234';
542
+ /** @type {string} */
543
+ var expectedOutput = '03456234';
544
+ assertEquals('Conversion did not correctly remove alpha character',
545
+ expectedOutput,
546
+ i18n.phonenumbers.PhoneNumberUtil.normalizeDigitsOnly(inputNumber));
547
+ }
548
+
549
+ function testFormatUSNumber() {
550
+ var PNF = i18n.phonenumbers.PhoneNumberFormat;
551
+ assertEquals('650 253 0000',
552
+ phoneUtil.format(US_NUMBER, PNF.NATIONAL));
553
+ assertEquals('+1 650 253 0000',
554
+ phoneUtil.format(US_NUMBER, PNF.INTERNATIONAL));
555
+
556
+ assertEquals('800 253 0000',
557
+ phoneUtil.format(US_TOLLFREE, PNF.NATIONAL));
558
+ assertEquals('+1 800 253 0000',
559
+ phoneUtil.format(US_TOLLFREE, PNF.INTERNATIONAL));
560
+
561
+ assertEquals('900 253 0000',
562
+ phoneUtil.format(US_PREMIUM, PNF.NATIONAL));
563
+ assertEquals('+1 900 253 0000',
564
+ phoneUtil.format(US_PREMIUM, PNF.INTERNATIONAL));
565
+ assertEquals('tel:+1-900-253-0000',
566
+ phoneUtil.format(US_PREMIUM, PNF.RFC3966));
567
+ // Numbers with all zeros in the national number part will be formatted by
568
+ // using the raw_input if that is available no matter which format is
569
+ // specified.
570
+ assertEquals('000-000-0000',
571
+ phoneUtil.format(US_SPOOF_WITH_RAW_INPUT, PNF.NATIONAL));
572
+ assertEquals('0', phoneUtil.format(US_SPOOF, PNF.NATIONAL));
573
+ }
574
+
575
+ function testFormatBSNumber() {
576
+ var PNF = i18n.phonenumbers.PhoneNumberFormat;
577
+ assertEquals('242 365 1234',
578
+ phoneUtil.format(BS_NUMBER, PNF.NATIONAL));
579
+ assertEquals('+1 242 365 1234',
580
+ phoneUtil.format(BS_NUMBER, PNF.INTERNATIONAL));
581
+ }
582
+
583
+ function testFormatGBNumber() {
584
+ var PNF = i18n.phonenumbers.PhoneNumberFormat;
585
+ assertEquals('(020) 7031 3000',
586
+ phoneUtil.format(GB_NUMBER, PNF.NATIONAL));
587
+ assertEquals('+44 20 7031 3000',
588
+ phoneUtil.format(GB_NUMBER, PNF.INTERNATIONAL));
589
+
590
+ assertEquals('(07912) 345 678',
591
+ phoneUtil.format(GB_MOBILE, PNF.NATIONAL));
592
+ assertEquals('+44 7912 345 678',
593
+ phoneUtil.format(GB_MOBILE, PNF.INTERNATIONAL));
594
+ }
595
+
596
+ function testFormatDENumber() {
597
+ var PNF = i18n.phonenumbers.PhoneNumberFormat;
598
+ /** @type {i18n.phonenumbers.PhoneNumber} */
599
+ var deNumber = new i18n.phonenumbers.PhoneNumber();
600
+ deNumber.setCountryCode(49);
601
+ deNumber.setNationalNumber(301234);
602
+ assertEquals('030/1234',
603
+ phoneUtil.format(deNumber, PNF.NATIONAL));
604
+ assertEquals('+49 30/1234',
605
+ phoneUtil.format(deNumber, PNF.INTERNATIONAL));
606
+ assertEquals('tel:+49-30-1234',
607
+ phoneUtil.format(deNumber, PNF.RFC3966));
608
+
609
+ deNumber = new i18n.phonenumbers.PhoneNumber();
610
+ deNumber.setCountryCode(49);
611
+ deNumber.setNationalNumber(291123);
612
+ assertEquals('0291 123',
613
+ phoneUtil.format(deNumber, PNF.NATIONAL));
614
+ assertEquals('+49 291 123',
615
+ phoneUtil.format(deNumber, PNF.INTERNATIONAL));
616
+
617
+ deNumber = new i18n.phonenumbers.PhoneNumber();
618
+ deNumber.setCountryCode(49);
619
+ deNumber.setNationalNumber(29112345678);
620
+ assertEquals('0291 12345678',
621
+ phoneUtil.format(deNumber, PNF.NATIONAL));
622
+ assertEquals('+49 291 12345678',
623
+ phoneUtil.format(deNumber, PNF.INTERNATIONAL));
624
+
625
+ deNumber = new i18n.phonenumbers.PhoneNumber();
626
+ deNumber.setCountryCode(49);
627
+ deNumber.setNationalNumber(912312345);
628
+ assertEquals('09123 12345',
629
+ phoneUtil.format(deNumber, PNF.NATIONAL));
630
+ assertEquals('+49 9123 12345',
631
+ phoneUtil.format(deNumber, PNF.INTERNATIONAL));
632
+
633
+ deNumber = new i18n.phonenumbers.PhoneNumber();
634
+ deNumber.setCountryCode(49);
635
+ deNumber.setNationalNumber(80212345);
636
+ assertEquals('08021 2345',
637
+ phoneUtil.format(deNumber, PNF.NATIONAL));
638
+ assertEquals('+49 8021 2345',
639
+ phoneUtil.format(deNumber, PNF.INTERNATIONAL));
640
+
641
+ // Note this number is correctly formatted without national prefix. Most of
642
+ // the numbers that are treated as invalid numbers by the library are short
643
+ // numbers, and they are usually not dialed with national prefix.
644
+ assertEquals('1234',
645
+ phoneUtil.format(DE_SHORT_NUMBER, PNF.NATIONAL));
646
+ assertEquals('+49 1234',
647
+ phoneUtil.format(DE_SHORT_NUMBER, PNF.INTERNATIONAL));
648
+
649
+ deNumber = new i18n.phonenumbers.PhoneNumber();
650
+ deNumber.setCountryCode(49);
651
+ deNumber.setNationalNumber(41341234);
652
+ assertEquals('04134 1234',
653
+ phoneUtil.format(deNumber, PNF.NATIONAL));
654
+ }
655
+
656
+ function testFormatITNumber() {
657
+ var PNF = i18n.phonenumbers.PhoneNumberFormat;
658
+ assertEquals('02 3661 8300',
659
+ phoneUtil.format(IT_NUMBER, PNF.NATIONAL));
660
+ assertEquals('+39 02 3661 8300',
661
+ phoneUtil.format(IT_NUMBER, PNF.INTERNATIONAL));
662
+ assertEquals('+390236618300',
663
+ phoneUtil.format(IT_NUMBER, PNF.E164));
664
+
665
+ assertEquals('345 678 901',
666
+ phoneUtil.format(IT_MOBILE, PNF.NATIONAL));
667
+ assertEquals('+39 345 678 901',
668
+ phoneUtil.format(IT_MOBILE, PNF.INTERNATIONAL));
669
+ assertEquals('+39345678901',
670
+ phoneUtil.format(IT_MOBILE, PNF.E164));
671
+ }
672
+
673
+ function testFormatAUNumber() {
674
+ var PNF = i18n.phonenumbers.PhoneNumberFormat;
675
+ assertEquals('02 3661 8300',
676
+ phoneUtil.format(AU_NUMBER, PNF.NATIONAL));
677
+ assertEquals('+61 2 3661 8300',
678
+ phoneUtil.format(AU_NUMBER, PNF.INTERNATIONAL));
679
+ assertEquals('+61236618300',
680
+ phoneUtil.format(AU_NUMBER, PNF.E164));
681
+
682
+ /** @type {i18n.phonenumbers.PhoneNumber} */
683
+ var auNumber = new i18n.phonenumbers.PhoneNumber();
684
+ auNumber.setCountryCode(61);
685
+ auNumber.setNationalNumber(1800123456);
686
+ assertEquals('1800 123 456',
687
+ phoneUtil.format(auNumber, PNF.NATIONAL));
688
+ assertEquals('+61 1800 123 456',
689
+ phoneUtil.format(auNumber, PNF.INTERNATIONAL));
690
+ assertEquals('+611800123456',
691
+ phoneUtil.format(auNumber, PNF.E164));
692
+ }
693
+
694
+ function testFormatARNumber() {
695
+ var PNF = i18n.phonenumbers.PhoneNumberFormat;
696
+ assertEquals('011 8765-4321',
697
+ phoneUtil.format(AR_NUMBER, PNF.NATIONAL));
698
+ assertEquals('+54 11 8765-4321',
699
+ phoneUtil.format(AR_NUMBER, PNF.INTERNATIONAL));
700
+ assertEquals('+541187654321',
701
+ phoneUtil.format(AR_NUMBER, PNF.E164));
702
+
703
+ assertEquals('011 15 8765-4321',
704
+ phoneUtil.format(AR_MOBILE, PNF.NATIONAL));
705
+ assertEquals('+54 9 11 8765 4321',
706
+ phoneUtil.format(AR_MOBILE, PNF.INTERNATIONAL));
707
+ assertEquals('+5491187654321',
708
+ phoneUtil.format(AR_MOBILE, PNF.E164));
709
+ }
710
+
711
+ function testFormatMXNumber() {
712
+ var PNF = i18n.phonenumbers.PhoneNumberFormat;
713
+ assertEquals('045 234 567 8900',
714
+ phoneUtil.format(MX_MOBILE1, PNF.NATIONAL));
715
+ assertEquals('+52 1 234 567 8900',
716
+ phoneUtil.format(MX_MOBILE1, PNF.INTERNATIONAL));
717
+ assertEquals('+5212345678900',
718
+ phoneUtil.format(MX_MOBILE1, PNF.E164));
719
+
720
+ assertEquals('045 55 1234 5678',
721
+ phoneUtil.format(MX_MOBILE2, PNF.NATIONAL));
722
+ assertEquals('+52 1 55 1234 5678',
723
+ phoneUtil.format(MX_MOBILE2, PNF.INTERNATIONAL));
724
+ assertEquals('+5215512345678',
725
+ phoneUtil.format(MX_MOBILE2, PNF.E164));
726
+
727
+ assertEquals('01 33 1234 5678',
728
+ phoneUtil.format(MX_NUMBER1, PNF.NATIONAL));
729
+ assertEquals('+52 33 1234 5678',
730
+ phoneUtil.format(MX_NUMBER1, PNF.INTERNATIONAL));
731
+ assertEquals('+523312345678',
732
+ phoneUtil.format(MX_NUMBER1, PNF.E164));
733
+
734
+ assertEquals('01 821 123 4567',
735
+ phoneUtil.format(MX_NUMBER2, PNF.NATIONAL));
736
+ assertEquals('+52 821 123 4567',
737
+ phoneUtil.format(MX_NUMBER2, PNF.INTERNATIONAL));
738
+ assertEquals('+528211234567',
739
+ phoneUtil.format(MX_NUMBER2, PNF.E164));
740
+ }
741
+
742
+ function testFormatOutOfCountryCallingNumber() {
743
+ assertEquals('00 1 900 253 0000',
744
+ phoneUtil.formatOutOfCountryCallingNumber(US_PREMIUM, RegionCode.DE));
745
+
746
+ assertEquals('1 650 253 0000',
747
+ phoneUtil.formatOutOfCountryCallingNumber(US_NUMBER, RegionCode.BS));
748
+
749
+ assertEquals('00 1 650 253 0000',
750
+ phoneUtil.formatOutOfCountryCallingNumber(US_NUMBER, RegionCode.PL));
751
+
752
+ assertEquals('011 44 7912 345 678',
753
+ phoneUtil.formatOutOfCountryCallingNumber(GB_MOBILE, RegionCode.US));
754
+
755
+ assertEquals('00 49 1234',
756
+ phoneUtil.formatOutOfCountryCallingNumber(DE_SHORT_NUMBER,
757
+ RegionCode.GB));
758
+ // Note this number is correctly formatted without national prefix. Most of
759
+ // the numbers that are treated as invalid numbers by the library are short
760
+ // numbers, and they are usually not dialed with national prefix.
761
+ assertEquals('1234',
762
+ phoneUtil.formatOutOfCountryCallingNumber(DE_SHORT_NUMBER,
763
+ RegionCode.DE));
764
+
765
+ assertEquals('011 39 02 3661 8300',
766
+ phoneUtil.formatOutOfCountryCallingNumber(IT_NUMBER, RegionCode.US));
767
+ assertEquals('02 3661 8300',
768
+ phoneUtil.formatOutOfCountryCallingNumber(IT_NUMBER, RegionCode.IT));
769
+ assertEquals('+39 02 3661 8300',
770
+ phoneUtil.formatOutOfCountryCallingNumber(IT_NUMBER, RegionCode.SG));
771
+
772
+ assertEquals('6521 8000',
773
+ phoneUtil.formatOutOfCountryCallingNumber(SG_NUMBER, RegionCode.SG));
774
+
775
+ assertEquals('011 54 9 11 8765 4321',
776
+ phoneUtil.formatOutOfCountryCallingNumber(AR_MOBILE, RegionCode.US));
777
+ assertEquals('011 800 1234 5678',
778
+ phoneUtil.formatOutOfCountryCallingNumber(INTERNATIONAL_TOLL_FREE,
779
+ RegionCode.US));
780
+
781
+ /** @type {i18n.phonenumbers.PhoneNumber} */
782
+ var arNumberWithExtn = AR_MOBILE.clone();
783
+ arNumberWithExtn.setExtension('1234');
784
+ assertEquals('011 54 9 11 8765 4321 ext. 1234',
785
+ phoneUtil.formatOutOfCountryCallingNumber(arNumberWithExtn,
786
+ RegionCode.US));
787
+ assertEquals('0011 54 9 11 8765 4321 ext. 1234',
788
+ phoneUtil.formatOutOfCountryCallingNumber(arNumberWithExtn,
789
+ RegionCode.AU));
790
+ assertEquals('011 15 8765-4321 ext. 1234',
791
+ phoneUtil.formatOutOfCountryCallingNumber(arNumberWithExtn,
792
+ RegionCode.AR));
793
+ }
794
+
795
+ function testFormatOutOfCountryWithInvalidRegion() {
796
+ // AQ/Antarctica isn't a valid region code for phone number formatting,
797
+ // so this falls back to intl formatting.
798
+ assertEquals('+1 650 253 0000',
799
+ phoneUtil.formatOutOfCountryCallingNumber(US_NUMBER, RegionCode.AQ));
800
+ // For region code 001, the out-of-country format always turns into the
801
+ // international format.
802
+ assertEquals('+1 650 253 0000',
803
+ phoneUtil.formatOutOfCountryCallingNumber(US_NUMBER, RegionCode.UN001));
804
+ }
805
+
806
+ function testFormatOutOfCountryWithPreferredIntlPrefix() {
807
+ // This should use 0011, since that is the preferred international prefix
808
+ // (both 0011 and 0012 are accepted as possible international prefixes in our
809
+ // test metadta.)
810
+ assertEquals('0011 39 02 3661 8300',
811
+ phoneUtil.formatOutOfCountryCallingNumber(IT_NUMBER,
812
+ RegionCode.AU));
813
+ }
814
+
815
+ function testFormatOutOfCountryKeepingAlphaChars() {
816
+ /** @type {i18n.phonenumbers.PhoneNumber} */
817
+ var alphaNumericNumber = new i18n.phonenumbers.PhoneNumber();
818
+ alphaNumericNumber.setCountryCode(1);
819
+ alphaNumericNumber.setNationalNumber(8007493524);
820
+ alphaNumericNumber.setRawInput('1800 six-flag');
821
+ assertEquals('0011 1 800 SIX-FLAG',
822
+ phoneUtil.formatOutOfCountryKeepingAlphaChars(alphaNumericNumber,
823
+ RegionCode.AU));
824
+
825
+ alphaNumericNumber.setRawInput('1-800-SIX-flag');
826
+ assertEquals('0011 1 800-SIX-FLAG',
827
+ phoneUtil.formatOutOfCountryKeepingAlphaChars(alphaNumericNumber,
828
+ RegionCode.AU));
829
+
830
+ alphaNumericNumber.setRawInput('Call us from UK: 00 1 800 SIX-flag');
831
+ assertEquals('0011 1 800 SIX-FLAG',
832
+ phoneUtil.formatOutOfCountryKeepingAlphaChars(alphaNumericNumber,
833
+ RegionCode.AU));
834
+
835
+ alphaNumericNumber.setRawInput('800 SIX-flag');
836
+ assertEquals('0011 1 800 SIX-FLAG',
837
+ phoneUtil.formatOutOfCountryKeepingAlphaChars(alphaNumericNumber,
838
+ RegionCode.AU));
839
+
840
+ // Formatting from within the NANPA region.
841
+ assertEquals('1 800 SIX-FLAG',
842
+ phoneUtil.formatOutOfCountryKeepingAlphaChars(alphaNumericNumber,
843
+ RegionCode.US));
844
+
845
+ assertEquals('1 800 SIX-FLAG',
846
+ phoneUtil.formatOutOfCountryKeepingAlphaChars(alphaNumericNumber,
847
+ RegionCode.BS));
848
+
849
+ // Testing that if the raw input doesn't exist, it is formatted using
850
+ // formatOutOfCountryCallingNumber.
851
+ alphaNumericNumber.clearRawInput();
852
+ assertEquals('00 1 800 749 3524',
853
+ phoneUtil.formatOutOfCountryKeepingAlphaChars(alphaNumericNumber,
854
+ RegionCode.DE));
855
+
856
+ // Testing AU alpha number formatted from Australia.
857
+ alphaNumericNumber.setCountryCode(61);
858
+ alphaNumericNumber.setNationalNumber(827493524);
859
+ alphaNumericNumber.setRawInput('+61 82749-FLAG');
860
+ // This number should have the national prefix fixed.
861
+ assertEquals('082749-FLAG',
862
+ phoneUtil.formatOutOfCountryKeepingAlphaChars(alphaNumericNumber,
863
+ RegionCode.AU));
864
+
865
+ alphaNumericNumber.setRawInput('082749-FLAG');
866
+ assertEquals('082749-FLAG',
867
+ phoneUtil.formatOutOfCountryKeepingAlphaChars(alphaNumericNumber,
868
+ RegionCode.AU));
869
+
870
+ alphaNumericNumber.setNationalNumber(18007493524);
871
+ alphaNumericNumber.setRawInput('1-800-SIX-flag');
872
+ // This number should not have the national prefix prefixed, in accordance
873
+ // with the override for this specific formatting rule.
874
+ assertEquals('1-800-SIX-FLAG',
875
+ phoneUtil.formatOutOfCountryKeepingAlphaChars(alphaNumericNumber,
876
+ RegionCode.AU));
877
+
878
+ // The metadata should not be permanently changed, since we copied it before
879
+ // modifying patterns. Here we check this.
880
+ alphaNumericNumber.setNationalNumber(1800749352);
881
+ assertEquals('1800 749 352',
882
+ phoneUtil.formatOutOfCountryCallingNumber(alphaNumericNumber,
883
+ RegionCode.AU));
884
+
885
+ // Testing a region with multiple international prefixes.
886
+ assertEquals('+61 1-800-SIX-FLAG',
887
+ phoneUtil.formatOutOfCountryKeepingAlphaChars(alphaNumericNumber,
888
+ RegionCode.SG));
889
+ // Testing the case of calling from a non-supported region.
890
+ assertEquals('+61 1-800-SIX-FLAG',
891
+ phoneUtil.formatOutOfCountryKeepingAlphaChars(alphaNumericNumber,
892
+ RegionCode.AQ));
893
+
894
+ // Testing the case with an invalid country calling code.
895
+ alphaNumericNumber.setCountryCode(0);
896
+ alphaNumericNumber.setNationalNumber(18007493524);
897
+ alphaNumericNumber.setRawInput('1-800-SIX-flag');
898
+ // Uses the raw input only.
899
+ assertEquals('1-800-SIX-flag',
900
+ phoneUtil.formatOutOfCountryKeepingAlphaChars(alphaNumericNumber,
901
+ RegionCode.DE));
902
+
903
+ // Testing the case of an invalid alpha number.
904
+ alphaNumericNumber.setCountryCode(1);
905
+ alphaNumericNumber.setNationalNumber(80749);
906
+ alphaNumericNumber.setRawInput('180-SIX');
907
+ // No country-code stripping can be done.
908
+ assertEquals('00 1 180-SIX',
909
+ phoneUtil.formatOutOfCountryKeepingAlphaChars(alphaNumericNumber,
910
+ RegionCode.DE));
911
+
912
+ // Testing the case of calling from a non-supported region.
913
+ alphaNumericNumber.setCountryCode(1);
914
+ alphaNumericNumber.setNationalNumber(80749);
915
+ alphaNumericNumber.setRawInput('180-SIX');
916
+ // No country-code stripping can be done since the number is invalid.
917
+ assertEquals('+1 180-SIX',
918
+ phoneUtil.formatOutOfCountryKeepingAlphaChars(alphaNumericNumber,
919
+ RegionCode.AQ));
920
+ }
921
+
922
+ function testFormatWithCarrierCode() {
923
+ var PNF = i18n.phonenumbers.PhoneNumberFormat;
924
+ // We only support this for AR in our test metadata, and only for mobile
925
+ // numbers starting with certain values.
926
+ /** @type {i18n.phonenumbers.PhoneNumber} */
927
+ var arMobile = new i18n.phonenumbers.PhoneNumber();
928
+ arMobile.setCountryCode(54);
929
+ arMobile.setNationalNumber(92234654321);
930
+ assertEquals('02234 65-4321', phoneUtil.format(arMobile, PNF.NATIONAL));
931
+ // Here we force 14 as the carrier code.
932
+ assertEquals('02234 14 65-4321',
933
+ phoneUtil.formatNationalNumberWithCarrierCode(arMobile, '14'));
934
+ // Here we force the number to be shown with no carrier code.
935
+ assertEquals('02234 65-4321',
936
+ phoneUtil.formatNationalNumberWithCarrierCode(arMobile, ''));
937
+ // Here the international rule is used, so no carrier code should be present.
938
+ assertEquals('+5492234654321', phoneUtil.format(arMobile, PNF.E164));
939
+ // We don't support this for the US so there should be no change.
940
+ assertEquals('650 253 0000',
941
+ phoneUtil.formatNationalNumberWithCarrierCode(US_NUMBER, '15'));
942
+ // Invalid country code should just get the NSN.
943
+ assertEquals('12345', phoneUtil.formatNationalNumberWithCarrierCode(
944
+ UNKNOWN_COUNTRY_CODE_NO_RAW_INPUT, '89'));
945
+ }
946
+
947
+ function testFormatWithPreferredCarrierCode() {
948
+ var PNF = i18n.phonenumbers.PhoneNumberFormat;
949
+ // We only support this for AR in our test metadata.
950
+ /** @type {i18n.phonenumbers.PhoneNumber} */
951
+ var arNumber = new i18n.phonenumbers.PhoneNumber();
952
+ arNumber.setCountryCode(54);
953
+ arNumber.setNationalNumber(91234125678);
954
+ // Test formatting with no preferred carrier code stored in the number itself.
955
+ assertEquals('01234 15 12-5678',
956
+ phoneUtil.formatNationalNumberWithPreferredCarrierCode(arNumber, '15'));
957
+ assertEquals('01234 12-5678',
958
+ phoneUtil.formatNationalNumberWithPreferredCarrierCode(arNumber, ''));
959
+ // Test formatting with preferred carrier code present.
960
+ arNumber.setPreferredDomesticCarrierCode('19');
961
+ assertEquals('01234 12-5678', phoneUtil.format(arNumber, PNF.NATIONAL));
962
+ assertEquals('01234 19 12-5678',
963
+ phoneUtil.formatNationalNumberWithPreferredCarrierCode(arNumber, '15'));
964
+ assertEquals('01234 19 12-5678',
965
+ phoneUtil.formatNationalNumberWithPreferredCarrierCode(arNumber, ''));
966
+ // When the preferred_domestic_carrier_code is present (even when it contains
967
+ // an empty string), use it instead of the default carrier code passed in.
968
+ arNumber.setPreferredDomesticCarrierCode('');
969
+ assertEquals('01234 12-5678',
970
+ phoneUtil.formatNationalNumberWithPreferredCarrierCode(arNumber, '15'));
971
+ // We don't support this for the US so there should be no change.
972
+ /** @type {i18n.phonenumbers.PhoneNumber} */
973
+ var usNumber = new i18n.phonenumbers.PhoneNumber();
974
+ usNumber.setCountryCode(1);
975
+ usNumber.setNationalNumber(4241231234);
976
+ usNumber.setPreferredDomesticCarrierCode('99');
977
+ assertEquals('424 123 1234', phoneUtil.format(usNumber, PNF.NATIONAL));
978
+ assertEquals('424 123 1234',
979
+ phoneUtil.formatNationalNumberWithPreferredCarrierCode(usNumber, '15'));
980
+ }
981
+
982
+ function testFormatNumberForMobileDialing() {
983
+ // Numbers are normally dialed in national format in-country, and
984
+ // international format from outside the country.
985
+ assertEquals('030123456',
986
+ phoneUtil.formatNumberForMobileDialing(DE_NUMBER, RegionCode.DE, false));
987
+ assertEquals('+4930123456',
988
+ phoneUtil.formatNumberForMobileDialing(DE_NUMBER, RegionCode.CH, false));
989
+ var deNumberWithExtn = DE_NUMBER.clone();
990
+ deNumberWithExtn.setExtension('1234');
991
+ assertEquals('030123456',
992
+ phoneUtil.formatNumberForMobileDialing(deNumberWithExtn, RegionCode.DE,
993
+ false));
994
+ assertEquals('+4930123456',
995
+ phoneUtil.formatNumberForMobileDialing(deNumberWithExtn, RegionCode.CH,
996
+ false));
997
+
998
+ // US toll free numbers are marked as noInternationalDialling in the test
999
+ // metadata for testing purposes. For such numbers, we expect nothing to be
1000
+ // returned when the region code is not the same one.
1001
+ assertEquals('800 253 0000',
1002
+ phoneUtil.formatNumberForMobileDialing(US_TOLLFREE, RegionCode.US, true));
1003
+ assertEquals('',
1004
+ phoneUtil.formatNumberForMobileDialing(US_TOLLFREE, RegionCode.CN, true));
1005
+ assertEquals('+1 650 253 0000',
1006
+ phoneUtil.formatNumberForMobileDialing(US_NUMBER, RegionCode.US, true));
1007
+ /** @type {i18n.phonenumbers.PhoneNumber} */
1008
+ var usNumberWithExtn = US_NUMBER.clone();
1009
+ usNumberWithExtn.setExtension('1234');
1010
+ assertEquals('+1 650 253 0000',
1011
+ phoneUtil.formatNumberForMobileDialing(usNumberWithExtn,
1012
+ RegionCode.US, true));
1013
+
1014
+ assertEquals('8002530000',
1015
+ phoneUtil.formatNumberForMobileDialing(US_TOLLFREE,
1016
+ RegionCode.US, false));
1017
+ assertEquals('',
1018
+ phoneUtil.formatNumberForMobileDialing(US_TOLLFREE,
1019
+ RegionCode.CN, false));
1020
+ assertEquals('+16502530000',
1021
+ phoneUtil.formatNumberForMobileDialing(US_NUMBER, RegionCode.US, false));
1022
+ assertEquals('+16502530000',
1023
+ phoneUtil.formatNumberForMobileDialing(usNumberWithExtn,
1024
+ RegionCode.US, false));
1025
+
1026
+ // An invalid US number, which is one digit too long.
1027
+ assertEquals('+165025300001',
1028
+ phoneUtil.formatNumberForMobileDialing(US_LONG_NUMBER,
1029
+ RegionCode.US, false));
1030
+ assertEquals('+1 65025300001',
1031
+ phoneUtil.formatNumberForMobileDialing(US_LONG_NUMBER,
1032
+ RegionCode.US, true));
1033
+
1034
+ // Star numbers. In real life they appear in Israel, but we have them in JP
1035
+ // in our test metadata.
1036
+ assertEquals('*2345',
1037
+ phoneUtil.formatNumberForMobileDialing(JP_STAR_NUMBER,
1038
+ RegionCode.JP, false));
1039
+ assertEquals('*2345',
1040
+ phoneUtil.formatNumberForMobileDialing(JP_STAR_NUMBER,
1041
+ RegionCode.JP, true));
1042
+
1043
+ assertEquals('+80012345678',
1044
+ phoneUtil.formatNumberForMobileDialing(INTERNATIONAL_TOLL_FREE,
1045
+ RegionCode.JP, false));
1046
+ assertEquals('+800 1234 5678',
1047
+ phoneUtil.formatNumberForMobileDialing(INTERNATIONAL_TOLL_FREE,
1048
+ RegionCode.JP, true));
1049
+
1050
+ // UAE numbers beginning with 600 (classified as UAN) need to be dialled
1051
+ // without +971 locally.
1052
+ assertEquals('+971600123456',
1053
+ phoneUtil.formatNumberForMobileDialing(AE_UAN, RegionCode.JP, false));
1054
+ assertEquals('600123456',
1055
+ phoneUtil.formatNumberForMobileDialing(AE_UAN, RegionCode.AE, false));
1056
+
1057
+ assertEquals('+523312345678',
1058
+ phoneUtil.formatNumberForMobileDialing(MX_NUMBER1, RegionCode.MX,
1059
+ false));
1060
+ assertEquals('+523312345678',
1061
+ phoneUtil.formatNumberForMobileDialing(MX_NUMBER1, RegionCode.US,
1062
+ false));
1063
+
1064
+ // Non-geographical numbers should always be dialed in international format.
1065
+ assertEquals('+80012345678',
1066
+ phoneUtil.formatNumberForMobileDialing(INTERNATIONAL_TOLL_FREE,
1067
+ RegionCode.US, false));
1068
+ assertEquals('+80012345678',
1069
+ phoneUtil.formatNumberForMobileDialing(INTERNATIONAL_TOLL_FREE,
1070
+ RegionCode.UN001, false));
1071
+
1072
+ // Test that a short number is formatted correctly for mobile dialing within
1073
+ // the region, and is not diallable from outside the region.
1074
+ var deShortNumber = new i18n.phonenumbers.PhoneNumber();
1075
+ deShortNumber.setCountryCode(49);
1076
+ deShortNumber.setNationalNumber(123);
1077
+ assertEquals('123',
1078
+ phoneUtil.formatNumberForMobileDialing(deShortNumber,
1079
+ RegionCode.DE, false));
1080
+ assertEquals('',
1081
+ phoneUtil.formatNumberForMobileDialing(deShortNumber,
1082
+ RegionCode.IT, false));
1083
+
1084
+ // Test the special logic for Hungary, where the national prefix must be added
1085
+ // before dialing from a mobile phone for regular length numbers, but not for
1086
+ // short numbers.
1087
+ var huRegularNumber = new i18n.phonenumbers.PhoneNumber();
1088
+ huRegularNumber.setCountryCode(36);
1089
+ huRegularNumber.setNationalNumber(301234567);
1090
+ assertEquals('06301234567',
1091
+ phoneUtil.formatNumberForMobileDialing(huRegularNumber,
1092
+ RegionCode.HU, false));
1093
+ assertEquals('+36301234567',
1094
+ phoneUtil.formatNumberForMobileDialing(huRegularNumber,
1095
+ RegionCode.JP, false));
1096
+ var huShortNumber = new i18n.phonenumbers.PhoneNumber();
1097
+ huShortNumber.setCountryCode(36);
1098
+ huShortNumber.setNationalNumber(104);
1099
+ assertEquals('104',
1100
+ phoneUtil.formatNumberForMobileDialing(huShortNumber,
1101
+ RegionCode.HU, false));
1102
+ assertEquals('',
1103
+ phoneUtil.formatNumberForMobileDialing(huShortNumber,
1104
+ RegionCode.JP, false));
1105
+
1106
+ // Test the special logic for NANPA countries, for which regular length phone
1107
+ // numbers are always output in international format, but short numbers are in
1108
+ // national format.
1109
+ assertEquals('+16502530000',
1110
+ phoneUtil.formatNumberForMobileDialing(US_NUMBER,
1111
+ RegionCode.US, false));
1112
+ assertEquals('+16502530000',
1113
+ phoneUtil.formatNumberForMobileDialing(US_NUMBER,
1114
+ RegionCode.CA, false));
1115
+ assertEquals('+16502530000',
1116
+ phoneUtil.formatNumberForMobileDialing(US_NUMBER,
1117
+ RegionCode.BR, false));
1118
+ var usShortNumber = new i18n.phonenumbers.PhoneNumber();
1119
+ usShortNumber.setCountryCode(1);
1120
+ usShortNumber.setNationalNumber(911);
1121
+ assertEquals('911',
1122
+ phoneUtil.formatNumberForMobileDialing(usShortNumber,
1123
+ RegionCode.US, false));
1124
+ assertEquals('',
1125
+ phoneUtil.formatNumberForMobileDialing(usShortNumber,
1126
+ RegionCode.CA, false));
1127
+ assertEquals('',
1128
+ phoneUtil.formatNumberForMobileDialing(usShortNumber,
1129
+ RegionCode.BR, false));
1130
+
1131
+ // Test that the Australian emergency number 000 is formatted correctly.
1132
+ var auShortNumber = new i18n.phonenumbers.PhoneNumber();
1133
+ auShortNumber.setCountryCode(61);
1134
+ auShortNumber.setNationalNumber(0);
1135
+ auShortNumber.setItalianLeadingZero(true);
1136
+ auShortNumber.setNumberOfLeadingZeros(2);
1137
+ assertEquals('000',
1138
+ phoneUtil.formatNumberForMobileDialing(auShortNumber,
1139
+ RegionCode.AU, false));
1140
+ assertEquals('',
1141
+ phoneUtil.formatNumberForMobileDialing(auShortNumber,
1142
+ RegionCode.NZ, false));
1143
+ }
1144
+
1145
+ function testFormatByPattern() {
1146
+ var PNF = i18n.phonenumbers.PhoneNumberFormat;
1147
+ /** @type {i18n.phonenumbers.NumberFormat} */
1148
+ var newNumFormat = new i18n.phonenumbers.NumberFormat();
1149
+ newNumFormat.setPattern('(\\d{3})(\\d{3})(\\d{4})');
1150
+ newNumFormat.setFormat('($1) $2-$3');
1151
+
1152
+ assertEquals('(650) 253-0000',
1153
+ phoneUtil.formatByPattern(US_NUMBER,
1154
+ PNF.NATIONAL,
1155
+ [newNumFormat]));
1156
+ assertEquals('+1 (650) 253-0000',
1157
+ phoneUtil.formatByPattern(US_NUMBER,
1158
+ PNF.INTERNATIONAL,
1159
+ [newNumFormat]));
1160
+ assertEquals('tel:+1-650-253-0000',
1161
+ phoneUtil.formatByPattern(US_NUMBER,
1162
+ PNF.RFC3966,
1163
+ [newNumFormat]));
1164
+
1165
+ // $NP is set to '1' for the US. Here we check that for other NANPA countries
1166
+ // the US rules are followed.
1167
+ newNumFormat.setNationalPrefixFormattingRule('$NP ($FG)');
1168
+ newNumFormat.setFormat('$1 $2-$3');
1169
+ assertEquals('1 (242) 365-1234',
1170
+ phoneUtil.formatByPattern(BS_NUMBER,
1171
+ PNF.NATIONAL,
1172
+ [newNumFormat]));
1173
+ assertEquals('+1 242 365-1234',
1174
+ phoneUtil.formatByPattern(BS_NUMBER,
1175
+ PNF.INTERNATIONAL,
1176
+ [newNumFormat]));
1177
+
1178
+ newNumFormat.setPattern('(\\d{2})(\\d{5})(\\d{3})');
1179
+ newNumFormat.setFormat('$1-$2 $3');
1180
+
1181
+ assertEquals('02-36618 300',
1182
+ phoneUtil.formatByPattern(IT_NUMBER,
1183
+ PNF.NATIONAL,
1184
+ [newNumFormat]));
1185
+ assertEquals('+39 02-36618 300',
1186
+ phoneUtil.formatByPattern(IT_NUMBER,
1187
+ PNF.INTERNATIONAL,
1188
+ [newNumFormat]));
1189
+
1190
+ newNumFormat.setNationalPrefixFormattingRule('$NP$FG');
1191
+ newNumFormat.setPattern('(\\d{2})(\\d{4})(\\d{4})');
1192
+ newNumFormat.setFormat('$1 $2 $3');
1193
+ assertEquals('020 7031 3000',
1194
+ phoneUtil.formatByPattern(GB_NUMBER,
1195
+ PNF.NATIONAL,
1196
+ [newNumFormat]));
1197
+
1198
+ newNumFormat.setNationalPrefixFormattingRule('($NP$FG)');
1199
+ assertEquals('(020) 7031 3000',
1200
+ phoneUtil.formatByPattern(GB_NUMBER,
1201
+ PNF.NATIONAL,
1202
+ [newNumFormat]));
1203
+
1204
+ newNumFormat.setNationalPrefixFormattingRule('');
1205
+ assertEquals('20 7031 3000',
1206
+ phoneUtil.formatByPattern(GB_NUMBER,
1207
+ PNF.NATIONAL,
1208
+ [newNumFormat]));
1209
+
1210
+ assertEquals('+44 20 7031 3000',
1211
+ phoneUtil.formatByPattern(GB_NUMBER,
1212
+ PNF.INTERNATIONAL,
1213
+ [newNumFormat]));
1214
+ }
1215
+
1216
+ function testFormatE164Number() {
1217
+ var PNF = i18n.phonenumbers.PhoneNumberFormat;
1218
+ assertEquals('+16502530000', phoneUtil.format(US_NUMBER, PNF.E164));
1219
+ assertEquals('+4930123456', phoneUtil.format(DE_NUMBER, PNF.E164));
1220
+ assertEquals('+80012345678',
1221
+ phoneUtil.format(INTERNATIONAL_TOLL_FREE, PNF.E164));
1222
+ }
1223
+
1224
+ function testFormatNumberWithExtension() {
1225
+ var PNF = i18n.phonenumbers.PhoneNumberFormat;
1226
+ /** @type {i18n.phonenumbers.PhoneNumber} */
1227
+ var nzNumber = NZ_NUMBER.clone();
1228
+ nzNumber.setExtension('1234');
1229
+ // Uses default extension prefix:
1230
+ assertEquals('03-331 6005 ext. 1234',
1231
+ phoneUtil.format(nzNumber, PNF.NATIONAL));
1232
+ // Uses RFC 3966 syntax.
1233
+ assertEquals('tel:+64-3-331-6005;ext=1234',
1234
+ phoneUtil.format(nzNumber, PNF.RFC3966));
1235
+ // Extension prefix overridden in the territory information for the US:
1236
+ /** @type {i18n.phonenumbers.PhoneNumber} */
1237
+ var usNumberWithExtension = US_NUMBER.clone();
1238
+ usNumberWithExtension.setExtension('4567');
1239
+ assertEquals('650 253 0000 extn. 4567',
1240
+ phoneUtil.format(usNumberWithExtension, PNF.NATIONAL));
1241
+ }
1242
+
1243
+ function testFormatInOriginalFormat() {
1244
+ /** @type {i18n.phonenumbers.PhoneNumber} */
1245
+ var number1 = phoneUtil.parseAndKeepRawInput('+442087654321', RegionCode.GB);
1246
+ assertEquals('+44 20 8765 4321',
1247
+ phoneUtil.formatInOriginalFormat(number1, RegionCode.GB));
1248
+
1249
+ /** @type {i18n.phonenumbers.PhoneNumber} */
1250
+ var number2 = phoneUtil.parseAndKeepRawInput('02087654321', RegionCode.GB);
1251
+ assertEquals('(020) 8765 4321',
1252
+ phoneUtil.formatInOriginalFormat(number2, RegionCode.GB));
1253
+
1254
+ /** @type {i18n.phonenumbers.PhoneNumber} */
1255
+ var number3 = phoneUtil.parseAndKeepRawInput('011442087654321',
1256
+ RegionCode.US);
1257
+ assertEquals('011 44 20 8765 4321',
1258
+ phoneUtil.formatInOriginalFormat(number3, RegionCode.US));
1259
+
1260
+ /** @type {i18n.phonenumbers.PhoneNumber} */
1261
+ var number4 = phoneUtil.parseAndKeepRawInput('442087654321', RegionCode.GB);
1262
+ assertEquals('44 20 8765 4321',
1263
+ phoneUtil.formatInOriginalFormat(number4, RegionCode.GB));
1264
+
1265
+ /** @type {i18n.phonenumbers.PhoneNumber} */
1266
+ var number5 = phoneUtil.parse('+442087654321', RegionCode.GB);
1267
+ assertEquals('(020) 8765 4321',
1268
+ phoneUtil.formatInOriginalFormat(number5, RegionCode.GB));
1269
+
1270
+ // Invalid numbers that we have a formatting pattern for should be formatted
1271
+ // properly. Note area codes starting with 7 are intentionally excluded in
1272
+ // the test metadata for testing purposes.
1273
+ /** @type {i18n.phonenumbers.PhoneNumber} */
1274
+ var number6 = phoneUtil.parseAndKeepRawInput('7345678901', RegionCode.US);
1275
+ assertEquals('734 567 8901',
1276
+ phoneUtil.formatInOriginalFormat(number6, RegionCode.US));
1277
+
1278
+ // US is not a leading zero country, and the presence of the leading zero
1279
+ // leads us to format the number using raw_input.
1280
+ /** @type {i18n.phonenumbers.PhoneNumber} */
1281
+ var number7 = phoneUtil.parseAndKeepRawInput('0734567 8901', RegionCode.US);
1282
+ assertEquals('0734567 8901',
1283
+ phoneUtil.formatInOriginalFormat(number7, RegionCode.US));
1284
+
1285
+ // This number is valid, but we don't have a formatting pattern for it.
1286
+ // Fall back to the raw input.
1287
+ /** @type {i18n.phonenumbers.PhoneNumber} */
1288
+ var number8 = phoneUtil.parseAndKeepRawInput('02-4567-8900', RegionCode.KR);
1289
+ assertEquals('02-4567-8900',
1290
+ phoneUtil.formatInOriginalFormat(number8, RegionCode.KR));
1291
+
1292
+ /** @type {i18n.phonenumbers.PhoneNumber} */
1293
+ var number9 = phoneUtil.parseAndKeepRawInput('01180012345678', RegionCode.US);
1294
+ assertEquals('011 800 1234 5678',
1295
+ phoneUtil.formatInOriginalFormat(number9, RegionCode.US));
1296
+
1297
+ /** @type {i18n.phonenumbers.PhoneNumber} */
1298
+ var number10 = phoneUtil.parseAndKeepRawInput('+80012345678', RegionCode.KR);
1299
+ assertEquals('+800 1234 5678',
1300
+ phoneUtil.formatInOriginalFormat(number10, RegionCode.KR));
1301
+
1302
+ // US local numbers are formatted correctly, as we have formatting patterns
1303
+ // for them.
1304
+ /** @type {i18n.phonenumbers.PhoneNumber} */
1305
+ var localNumberUS = phoneUtil.parseAndKeepRawInput('2530000', RegionCode.US);
1306
+ assertEquals('253 0000',
1307
+ phoneUtil.formatInOriginalFormat(localNumberUS, RegionCode.US));
1308
+
1309
+ /** @type {i18n.phonenumbers.PhoneNumber} */
1310
+ var numberWithNationalPrefixUS =
1311
+ phoneUtil.parseAndKeepRawInput('18003456789', RegionCode.US);
1312
+ assertEquals('1 800 345 6789',
1313
+ phoneUtil.formatInOriginalFormat(numberWithNationalPrefixUS,
1314
+ RegionCode.US));
1315
+
1316
+ /** @type {i18n.phonenumbers.PhoneNumber} */
1317
+ var numberWithoutNationalPrefixGB =
1318
+ phoneUtil.parseAndKeepRawInput('2087654321', RegionCode.GB);
1319
+ assertEquals('20 8765 4321',
1320
+ phoneUtil.formatInOriginalFormat(numberWithoutNationalPrefixGB,
1321
+ RegionCode.GB));
1322
+ // Make sure no metadata is modified as a result of the previous function
1323
+ // call.
1324
+ assertEquals('(020) 8765 4321',
1325
+ phoneUtil.formatInOriginalFormat(number5, RegionCode.GB));
1326
+
1327
+ /** @type {i18n.phonenumbers.PhoneNumber} */
1328
+ var numberWithNationalPrefixMX =
1329
+ phoneUtil.parseAndKeepRawInput('013312345678', RegionCode.MX);
1330
+ assertEquals('01 33 1234 5678',
1331
+ phoneUtil.formatInOriginalFormat(numberWithNationalPrefixMX,
1332
+ RegionCode.MX));
1333
+
1334
+ /** @type {i18n.phonenumbers.PhoneNumber} */
1335
+ var numberWithoutNationalPrefixMX =
1336
+ phoneUtil.parseAndKeepRawInput('3312345678', RegionCode.MX);
1337
+ assertEquals('33 1234 5678',
1338
+ phoneUtil.formatInOriginalFormat(numberWithoutNationalPrefixMX,
1339
+ RegionCode.MX));
1340
+
1341
+ /** @type {i18n.phonenumbers.PhoneNumber} */
1342
+ var italianFixedLineNumber =
1343
+ phoneUtil.parseAndKeepRawInput('0212345678', RegionCode.IT);
1344
+ assertEquals('02 1234 5678',
1345
+ phoneUtil.formatInOriginalFormat(italianFixedLineNumber, RegionCode.IT));
1346
+
1347
+ /** @type {i18n.phonenumbers.PhoneNumber} */
1348
+ var numberWithNationalPrefixJP =
1349
+ phoneUtil.parseAndKeepRawInput('00777012', RegionCode.JP);
1350
+ assertEquals('0077-7012',
1351
+ phoneUtil.formatInOriginalFormat(numberWithNationalPrefixJP,
1352
+ RegionCode.JP));
1353
+
1354
+ /** @type {i18n.phonenumbers.PhoneNumber} */
1355
+ var numberWithoutNationalPrefixJP =
1356
+ phoneUtil.parseAndKeepRawInput('0777012', RegionCode.JP);
1357
+ assertEquals('0777012',
1358
+ phoneUtil.formatInOriginalFormat(numberWithoutNationalPrefixJP,
1359
+ RegionCode.JP));
1360
+
1361
+ /** @type {i18n.phonenumbers.PhoneNumber} */
1362
+ var numberWithCarrierCodeBR =
1363
+ phoneUtil.parseAndKeepRawInput('012 3121286979', RegionCode.BR);
1364
+ assertEquals('012 3121286979',
1365
+ phoneUtil.formatInOriginalFormat(numberWithCarrierCodeBR, RegionCode.BR));
1366
+
1367
+ // The default national prefix used in this case is 045. When a number with
1368
+ // national prefix 044 is entered, we return the raw input as we don't want to
1369
+ // change the number entered.
1370
+ /** @type {i18n.phonenumbers.PhoneNumber} */
1371
+ var numberWithNationalPrefixMX1 =
1372
+ phoneUtil.parseAndKeepRawInput('044(33)1234-5678', RegionCode.MX);
1373
+ assertEquals('044(33)1234-5678',
1374
+ phoneUtil.formatInOriginalFormat(numberWithNationalPrefixMX1,
1375
+ RegionCode.MX));
1376
+
1377
+ /** @type {i18n.phonenumbers.PhoneNumber} */
1378
+ var numberWithNationalPrefixMX2 =
1379
+ phoneUtil.parseAndKeepRawInput('045(33)1234-5678', RegionCode.MX);
1380
+ assertEquals('045 33 1234 5678',
1381
+ phoneUtil.formatInOriginalFormat(numberWithNationalPrefixMX2,
1382
+ RegionCode.MX));
1383
+
1384
+ // The default international prefix used in this case is 0011. When a number
1385
+ // with international prefix 0012 is entered, we return the raw input as we
1386
+ // don't want to change the number entered.
1387
+ /** @type {i18n.phonenumbers.PhoneNumber} */
1388
+ var outOfCountryNumberFromAU1 =
1389
+ phoneUtil.parseAndKeepRawInput('0012 16502530000', RegionCode.AU);
1390
+ assertEquals('0012 16502530000',
1391
+ phoneUtil.formatInOriginalFormat(outOfCountryNumberFromAU1,
1392
+ RegionCode.AU));
1393
+
1394
+ /** @type {i18n.phonenumbers.PhoneNumber} */
1395
+ var outOfCountryNumberFromAU2 =
1396
+ phoneUtil.parseAndKeepRawInput('0011 16502530000', RegionCode.AU);
1397
+ assertEquals('0011 1 650 253 0000',
1398
+ phoneUtil.formatInOriginalFormat(outOfCountryNumberFromAU2,
1399
+ RegionCode.AU));
1400
+
1401
+ // Test the star sign is not removed from or added to the original input by
1402
+ // this method.
1403
+ /** @type {i18n.phonenumbers.PhoneNumber} */
1404
+ var starNumber =
1405
+ phoneUtil.parseAndKeepRawInput('*1234', RegionCode.JP);
1406
+ assertEquals('*1234', phoneUtil.formatInOriginalFormat(starNumber,
1407
+ RegionCode.JP));
1408
+ /** @type {i18n.phonenumbers.PhoneNumber} */
1409
+ var numberWithoutStar = phoneUtil.parseAndKeepRawInput('1234', RegionCode.JP);
1410
+ assertEquals('1234', phoneUtil.formatInOriginalFormat(numberWithoutStar,
1411
+ RegionCode.JP));
1412
+
1413
+ // Test an invalid national number without raw input is just formatted as the
1414
+ // national number.
1415
+ assertEquals('650253000',
1416
+ phoneUtil.formatInOriginalFormat(US_SHORT_BY_ONE_NUMBER, RegionCode.US));
1417
+ }
1418
+
1419
+ function testIsPremiumRate() {
1420
+ var PNT = i18n.phonenumbers.PhoneNumberType;
1421
+ assertEquals(PNT.PREMIUM_RATE, phoneUtil.getNumberType(US_PREMIUM));
1422
+
1423
+ /** @type {i18n.phonenumbers.PhoneNumber} */
1424
+ var premiumRateNumber = new i18n.phonenumbers.PhoneNumber();
1425
+ premiumRateNumber = new i18n.phonenumbers.PhoneNumber();
1426
+ premiumRateNumber.setCountryCode(39);
1427
+ premiumRateNumber.setNationalNumber(892123);
1428
+ assertEquals(PNT.PREMIUM_RATE, phoneUtil.getNumberType(premiumRateNumber));
1429
+
1430
+ premiumRateNumber = new i18n.phonenumbers.PhoneNumber();
1431
+ premiumRateNumber.setCountryCode(44);
1432
+ premiumRateNumber.setNationalNumber(9187654321);
1433
+ assertEquals(PNT.PREMIUM_RATE, phoneUtil.getNumberType(premiumRateNumber));
1434
+
1435
+ premiumRateNumber = new i18n.phonenumbers.PhoneNumber();
1436
+ premiumRateNumber.setCountryCode(49);
1437
+ premiumRateNumber.setNationalNumber(9001654321);
1438
+ assertEquals(PNT.PREMIUM_RATE, phoneUtil.getNumberType(premiumRateNumber));
1439
+
1440
+ premiumRateNumber = new i18n.phonenumbers.PhoneNumber();
1441
+ premiumRateNumber.setCountryCode(49);
1442
+ premiumRateNumber.setNationalNumber(90091234567);
1443
+ assertEquals(PNT.PREMIUM_RATE, phoneUtil.getNumberType(premiumRateNumber));
1444
+ assertEquals(PNT.PREMIUM_RATE, phoneUtil.getNumberType(
1445
+ UNIVERSAL_PREMIUM_RATE));
1446
+ }
1447
+
1448
+ function testIsTollFree() {
1449
+ var PNT = i18n.phonenumbers.PhoneNumberType;
1450
+ /** @type {i18n.phonenumbers.PhoneNumber} */
1451
+ var tollFreeNumber = new i18n.phonenumbers.PhoneNumber();
1452
+
1453
+ tollFreeNumber.setCountryCode(1);
1454
+ tollFreeNumber.setNationalNumber(8881234567);
1455
+ assertEquals(PNT.TOLL_FREE, phoneUtil.getNumberType(tollFreeNumber));
1456
+
1457
+ tollFreeNumber = new i18n.phonenumbers.PhoneNumber();
1458
+ tollFreeNumber.setCountryCode(39);
1459
+ tollFreeNumber.setNationalNumber(803123);
1460
+ assertEquals(PNT.TOLL_FREE, phoneUtil.getNumberType(tollFreeNumber));
1461
+
1462
+ tollFreeNumber = new i18n.phonenumbers.PhoneNumber();
1463
+ tollFreeNumber.setCountryCode(44);
1464
+ tollFreeNumber.setNationalNumber(8012345678);
1465
+ assertEquals(PNT.TOLL_FREE, phoneUtil.getNumberType(tollFreeNumber));
1466
+
1467
+ tollFreeNumber = new i18n.phonenumbers.PhoneNumber();
1468
+ tollFreeNumber.setCountryCode(49);
1469
+ tollFreeNumber.setNationalNumber(8001234567);
1470
+ assertEquals(PNT.TOLL_FREE, phoneUtil.getNumberType(tollFreeNumber));
1471
+
1472
+ assertEquals(PNT.TOLL_FREE, phoneUtil.getNumberType(INTERNATIONAL_TOLL_FREE));
1473
+ }
1474
+
1475
+ function testIsMobile() {
1476
+ var PNT = i18n.phonenumbers.PhoneNumberType;
1477
+ assertEquals(PNT.MOBILE, phoneUtil.getNumberType(BS_MOBILE));
1478
+ assertEquals(PNT.MOBILE, phoneUtil.getNumberType(GB_MOBILE));
1479
+ assertEquals(PNT.MOBILE, phoneUtil.getNumberType(IT_MOBILE));
1480
+ assertEquals(PNT.MOBILE, phoneUtil.getNumberType(AR_MOBILE));
1481
+
1482
+ /** @type {i18n.phonenumbers.PhoneNumber} */
1483
+ var mobileNumber = new i18n.phonenumbers.PhoneNumber();
1484
+ mobileNumber.setCountryCode(49);
1485
+ mobileNumber.setNationalNumber(15123456789);
1486
+ assertEquals(PNT.MOBILE, phoneUtil.getNumberType(mobileNumber));
1487
+ }
1488
+
1489
+ function testIsFixedLine() {
1490
+ var PNT = i18n.phonenumbers.PhoneNumberType;
1491
+ assertEquals(PNT.FIXED_LINE, phoneUtil.getNumberType(BS_NUMBER));
1492
+ assertEquals(PNT.FIXED_LINE, phoneUtil.getNumberType(IT_NUMBER));
1493
+ assertEquals(PNT.FIXED_LINE, phoneUtil.getNumberType(GB_NUMBER));
1494
+ assertEquals(PNT.FIXED_LINE, phoneUtil.getNumberType(DE_NUMBER));
1495
+ }
1496
+
1497
+ function testIsFixedLineAndMobile() {
1498
+ var PNT = i18n.phonenumbers.PhoneNumberType;
1499
+ assertEquals(PNT.FIXED_LINE_OR_MOBILE,
1500
+ phoneUtil.getNumberType(US_NUMBER));
1501
+
1502
+ /** @type {i18n.phonenumbers.PhoneNumber} */
1503
+ var fixedLineAndMobileNumber = new i18n.phonenumbers.PhoneNumber();
1504
+ fixedLineAndMobileNumber.setCountryCode(54);
1505
+ fixedLineAndMobileNumber.setNationalNumber(1987654321);
1506
+ assertEquals(PNT.FIXED_LINE_OR_MOBILE,
1507
+ phoneUtil.getNumberType(fixedLineAndMobileNumber));
1508
+ }
1509
+
1510
+ function testIsSharedCost() {
1511
+ var PNT = i18n.phonenumbers.PhoneNumberType;
1512
+ /** @type {i18n.phonenumbers.PhoneNumber} */
1513
+ var gbNumber = new i18n.phonenumbers.PhoneNumber();
1514
+ gbNumber.setCountryCode(44);
1515
+ gbNumber.setNationalNumber(8431231234);
1516
+ assertEquals(PNT.SHARED_COST, phoneUtil.getNumberType(gbNumber));
1517
+ }
1518
+
1519
+ function testIsVoip() {
1520
+ var PNT = i18n.phonenumbers.PhoneNumberType;
1521
+ /** @type {i18n.phonenumbers.PhoneNumber} */
1522
+ var gbNumber = new i18n.phonenumbers.PhoneNumber();
1523
+ gbNumber.setCountryCode(44);
1524
+ gbNumber.setNationalNumber(5631231234);
1525
+ assertEquals(PNT.VOIP, phoneUtil.getNumberType(gbNumber));
1526
+ }
1527
+
1528
+ function testIsPersonalNumber() {
1529
+ var PNT = i18n.phonenumbers.PhoneNumberType;
1530
+ /** @type {i18n.phonenumbers.PhoneNumber} */
1531
+ var gbNumber = new i18n.phonenumbers.PhoneNumber();
1532
+ gbNumber.setCountryCode(44);
1533
+ gbNumber.setNationalNumber(7031231234);
1534
+ assertEquals(PNT.PERSONAL_NUMBER, phoneUtil.getNumberType(gbNumber));
1535
+ }
1536
+
1537
+ function testIsUnknown() {
1538
+ var PNT = i18n.phonenumbers.PhoneNumberType;
1539
+ // Invalid numbers should be of type UNKNOWN.
1540
+ assertEquals(PNT.UNKNOWN, phoneUtil.getNumberType(US_LOCAL_NUMBER));
1541
+ }
1542
+
1543
+ function testIsValidNumber() {
1544
+ assertTrue(phoneUtil.isValidNumber(US_NUMBER));
1545
+ assertTrue(phoneUtil.isValidNumber(IT_NUMBER));
1546
+ assertTrue(phoneUtil.isValidNumber(GB_MOBILE));
1547
+ assertTrue(phoneUtil.isValidNumber(INTERNATIONAL_TOLL_FREE));
1548
+ assertTrue(phoneUtil.isValidNumber(UNIVERSAL_PREMIUM_RATE));
1549
+
1550
+ /** @type {i18n.phonenumbers.PhoneNumber} */
1551
+ var nzNumber = new i18n.phonenumbers.PhoneNumber();
1552
+ nzNumber.setCountryCode(64);
1553
+ nzNumber.setNationalNumber(21387835);
1554
+ assertTrue(phoneUtil.isValidNumber(nzNumber));
1555
+ }
1556
+
1557
+ function testIsValidForRegion() {
1558
+ // This number is valid for the Bahamas, but is not a valid US number.
1559
+ assertTrue(phoneUtil.isValidNumber(BS_NUMBER));
1560
+ assertTrue(phoneUtil.isValidNumberForRegion(BS_NUMBER, RegionCode.BS));
1561
+ assertFalse(phoneUtil.isValidNumberForRegion(BS_NUMBER, RegionCode.US));
1562
+ /** @type {i18n.phonenumbers.PhoneNumber} */
1563
+ var bsInvalidNumber = new i18n.phonenumbers.PhoneNumber();
1564
+ bsInvalidNumber.setCountryCode(1);
1565
+ bsInvalidNumber.setNationalNumber(2421232345);
1566
+ // This number is no longer valid.
1567
+ assertFalse(phoneUtil.isValidNumber(bsInvalidNumber));
1568
+
1569
+ // La Mayotte and Reunion use 'leadingDigits' to differentiate them.
1570
+ /** @type {i18n.phonenumbers.PhoneNumber} */
1571
+ var reNumber = new i18n.phonenumbers.PhoneNumber();
1572
+ reNumber.setCountryCode(262);
1573
+ reNumber.setNationalNumber(262123456);
1574
+ assertTrue(phoneUtil.isValidNumber(reNumber));
1575
+ assertTrue(phoneUtil.isValidNumberForRegion(reNumber, RegionCode.RE));
1576
+ assertFalse(phoneUtil.isValidNumberForRegion(reNumber, RegionCode.YT));
1577
+ // Now change the number to be a number for La Mayotte.
1578
+ reNumber.setNationalNumber(269601234);
1579
+ assertTrue(phoneUtil.isValidNumberForRegion(reNumber, RegionCode.YT));
1580
+ assertFalse(phoneUtil.isValidNumberForRegion(reNumber, RegionCode.RE));
1581
+ // This number is no longer valid for La Reunion.
1582
+ reNumber.setNationalNumber(269123456);
1583
+ assertFalse(phoneUtil.isValidNumberForRegion(reNumber, RegionCode.YT));
1584
+ assertFalse(phoneUtil.isValidNumberForRegion(reNumber, RegionCode.RE));
1585
+ assertFalse(phoneUtil.isValidNumber(reNumber));
1586
+ // However, it should be recognised as from La Mayotte, since it is valid for
1587
+ // this region.
1588
+ assertEquals(RegionCode.YT, phoneUtil.getRegionCodeForNumber(reNumber));
1589
+ // This number is valid in both places.
1590
+ reNumber.setNationalNumber(800123456);
1591
+ assertTrue(phoneUtil.isValidNumberForRegion(reNumber, RegionCode.YT));
1592
+ assertTrue(phoneUtil.isValidNumberForRegion(reNumber, RegionCode.RE));
1593
+ assertTrue(phoneUtil.isValidNumberForRegion(INTERNATIONAL_TOLL_FREE,
1594
+ RegionCode.UN001));
1595
+ assertFalse(phoneUtil.isValidNumberForRegion(INTERNATIONAL_TOLL_FREE,
1596
+ RegionCode.US));
1597
+ assertFalse(phoneUtil.isValidNumberForRegion(INTERNATIONAL_TOLL_FREE,
1598
+ RegionCode.ZZ));
1599
+
1600
+ /** @type {i18n.phonenumbers.PhoneNumber} */
1601
+ var invalidNumber = new i18n.phonenumbers.PhoneNumber();
1602
+ // Invalid country calling codes.
1603
+ invalidNumber.setCountryCode(3923);
1604
+ invalidNumber.setNationalNumber(2366);
1605
+ assertFalse(phoneUtil.isValidNumberForRegion(invalidNumber, RegionCode.ZZ));
1606
+ assertFalse(phoneUtil.isValidNumberForRegion(invalidNumber,
1607
+ RegionCode.UN001));
1608
+ invalidNumber.setCountryCode(0);
1609
+ assertFalse(phoneUtil.isValidNumberForRegion(invalidNumber,
1610
+ RegionCode.UN001));
1611
+ assertFalse(phoneUtil.isValidNumberForRegion(invalidNumber, RegionCode.ZZ));
1612
+ }
1613
+
1614
+ function testIsNotValidNumber() {
1615
+ assertFalse(phoneUtil.isValidNumber(US_LOCAL_NUMBER));
1616
+
1617
+ /** @type {i18n.phonenumbers.PhoneNumber} */
1618
+ var invalidNumber = new i18n.phonenumbers.PhoneNumber();
1619
+ invalidNumber.setCountryCode(39);
1620
+ invalidNumber.setNationalNumber(23661830000);
1621
+ invalidNumber.setItalianLeadingZero(true);
1622
+ assertFalse(phoneUtil.isValidNumber(invalidNumber));
1623
+
1624
+ invalidNumber = new i18n.phonenumbers.PhoneNumber();
1625
+ invalidNumber.setCountryCode(44);
1626
+ invalidNumber.setNationalNumber(791234567);
1627
+ assertFalse(phoneUtil.isValidNumber(invalidNumber));
1628
+
1629
+ invalidNumber = new i18n.phonenumbers.PhoneNumber();
1630
+ invalidNumber.setCountryCode(49);
1631
+ invalidNumber.setNationalNumber(1234);
1632
+ assertFalse(phoneUtil.isValidNumber(invalidNumber));
1633
+
1634
+ invalidNumber = new i18n.phonenumbers.PhoneNumber();
1635
+ invalidNumber.setCountryCode(64);
1636
+ invalidNumber.setNationalNumber(3316005);
1637
+ assertFalse(phoneUtil.isValidNumber(invalidNumber));
1638
+
1639
+ invalidNumber = new i18n.phonenumbers.PhoneNumber();
1640
+ // Invalid country calling codes.
1641
+ invalidNumber.setCountryCode(3923);
1642
+ invalidNumber.setNationalNumber(2366);
1643
+ assertFalse(phoneUtil.isValidNumber(invalidNumber));
1644
+ invalidNumber.setCountryCode(0);
1645
+ assertFalse(phoneUtil.isValidNumber(invalidNumber));
1646
+
1647
+ assertFalse(phoneUtil.isValidNumber(INTERNATIONAL_TOLL_FREE_TOO_LONG));
1648
+ }
1649
+
1650
+ function testGetRegionCodeForCountryCode() {
1651
+ assertEquals(RegionCode.US, phoneUtil.getRegionCodeForCountryCode(1));
1652
+ assertEquals(RegionCode.GB, phoneUtil.getRegionCodeForCountryCode(44));
1653
+ assertEquals(RegionCode.DE, phoneUtil.getRegionCodeForCountryCode(49));
1654
+ assertEquals(RegionCode.UN001, phoneUtil.getRegionCodeForCountryCode(800));
1655
+ assertEquals(RegionCode.UN001, phoneUtil.getRegionCodeForCountryCode(979));
1656
+ }
1657
+
1658
+ function testGetRegionCodeForNumber() {
1659
+ assertEquals(RegionCode.BS, phoneUtil.getRegionCodeForNumber(BS_NUMBER));
1660
+ assertEquals(RegionCode.US, phoneUtil.getRegionCodeForNumber(US_NUMBER));
1661
+ assertEquals(RegionCode.GB, phoneUtil.getRegionCodeForNumber(GB_MOBILE));
1662
+ assertEquals(RegionCode.UN001,
1663
+ phoneUtil.getRegionCodeForNumber(INTERNATIONAL_TOLL_FREE));
1664
+ assertEquals(RegionCode.UN001,
1665
+ phoneUtil.getRegionCodeForNumber(UNIVERSAL_PREMIUM_RATE));
1666
+ }
1667
+
1668
+ function testGetRegionCodesForCountryCode() {
1669
+ /** @type {Array.<string>} */
1670
+ var regionCodesForNANPA = phoneUtil.getRegionCodesForCountryCode(1);
1671
+ assertTrue(goog.array.contains(regionCodesForNANPA, RegionCode.US));
1672
+ assertTrue(goog.array.contains(regionCodesForNANPA, RegionCode.BS));
1673
+ assertTrue(goog.array.contains(
1674
+ phoneUtil.getRegionCodesForCountryCode(44), RegionCode.GB));
1675
+ assertTrue(goog.array.contains(
1676
+ phoneUtil.getRegionCodesForCountryCode(49), RegionCode.DE));
1677
+ assertTrue(goog.array.contains(
1678
+ phoneUtil.getRegionCodesForCountryCode(800), RegionCode.UN001));
1679
+ // Test with invalid country calling code.
1680
+ assertTrue(goog.array.isEmpty(phoneUtil.getRegionCodesForCountryCode(-1)));
1681
+ }
1682
+
1683
+ function testGetCountryCodeForRegion() {
1684
+ assertEquals(1, phoneUtil.getCountryCodeForRegion(RegionCode.US));
1685
+ assertEquals(64, phoneUtil.getCountryCodeForRegion(RegionCode.NZ));
1686
+ assertEquals(0, phoneUtil.getCountryCodeForRegion(null));
1687
+ assertEquals(0, phoneUtil.getCountryCodeForRegion(RegionCode.ZZ));
1688
+ assertEquals(0, phoneUtil.getCountryCodeForRegion(RegionCode.UN001));
1689
+ // CS is already deprecated so the library doesn't support it.
1690
+ assertEquals(0, phoneUtil.getCountryCodeForRegion(RegionCode.CS));
1691
+ }
1692
+
1693
+ function testGetNationalDiallingPrefixForRegion() {
1694
+ assertEquals('1', phoneUtil.getNddPrefixForRegion(RegionCode.US, false));
1695
+ // Test non-main country to see it gets the national dialling prefix for the
1696
+ // main country with that country calling code.
1697
+ assertEquals('1', phoneUtil.getNddPrefixForRegion(RegionCode.BS, false));
1698
+ assertEquals('0', phoneUtil.getNddPrefixForRegion(RegionCode.NZ, false));
1699
+ // Test case with non digit in the national prefix.
1700
+ assertEquals('0~0', phoneUtil.getNddPrefixForRegion(RegionCode.AO, false));
1701
+ assertEquals('00', phoneUtil.getNddPrefixForRegion(RegionCode.AO, true));
1702
+ // Test cases with invalid regions.
1703
+ assertNull(phoneUtil.getNddPrefixForRegion(null, false));
1704
+ assertNull(phoneUtil.getNddPrefixForRegion(RegionCode.ZZ, false));
1705
+ assertNull(phoneUtil.getNddPrefixForRegion(RegionCode.UN001, false));
1706
+ // CS is already deprecated so the library doesn't support it.
1707
+ assertNull(phoneUtil.getNddPrefixForRegion(RegionCode.CS, false));
1708
+ }
1709
+
1710
+ function testIsNANPACountry() {
1711
+ assertTrue(phoneUtil.isNANPACountry(RegionCode.US));
1712
+ assertTrue(phoneUtil.isNANPACountry(RegionCode.BS));
1713
+ assertFalse(phoneUtil.isNANPACountry(RegionCode.DE));
1714
+ assertFalse(phoneUtil.isNANPACountry(RegionCode.ZZ));
1715
+ assertFalse(phoneUtil.isNANPACountry(RegionCode.UN001));
1716
+ assertFalse(phoneUtil.isNANPACountry(null));
1717
+ }
1718
+
1719
+ function testIsPossibleNumber() {
1720
+ assertTrue(phoneUtil.isPossibleNumber(US_NUMBER));
1721
+ assertTrue(phoneUtil.isPossibleNumber(US_LOCAL_NUMBER));
1722
+ assertTrue(phoneUtil.isPossibleNumber(GB_NUMBER));
1723
+ assertTrue(phoneUtil.isPossibleNumber(INTERNATIONAL_TOLL_FREE));
1724
+
1725
+ assertTrue(
1726
+ phoneUtil.isPossibleNumberString('+1 650 253 0000', RegionCode.US));
1727
+ assertTrue(
1728
+ phoneUtil.isPossibleNumberString('+1 650 GOO OGLE', RegionCode.US));
1729
+ assertTrue(
1730
+ phoneUtil.isPossibleNumberString('(650) 253-0000', RegionCode.US));
1731
+ assertTrue(
1732
+ phoneUtil.isPossibleNumberString('253-0000', RegionCode.US));
1733
+ assertTrue(
1734
+ phoneUtil.isPossibleNumberString('+1 650 253 0000', RegionCode.GB));
1735
+ assertTrue(
1736
+ phoneUtil.isPossibleNumberString('+44 20 7031 3000', RegionCode.GB));
1737
+ assertTrue(
1738
+ phoneUtil.isPossibleNumberString('(020) 7031 3000', RegionCode.GB));
1739
+ assertTrue(
1740
+ phoneUtil.isPossibleNumberString('7031 3000', RegionCode.GB));
1741
+ assertTrue(
1742
+ phoneUtil.isPossibleNumberString('3331 6005', RegionCode.NZ));
1743
+ assertTrue(
1744
+ phoneUtil.isPossibleNumberString('+800 1234 5678', RegionCode.UN001));
1745
+ }
1746
+
1747
+ function testIsPossibleNumberWithReason() {
1748
+ var VR = i18n.phonenumbers.PhoneNumberUtil.ValidationResult;
1749
+ // National numbers for country calling code +1 that are within 7 to 10 digits
1750
+ // are possible.
1751
+ assertEquals(VR.IS_POSSIBLE,
1752
+ phoneUtil.isPossibleNumberWithReason(US_NUMBER));
1753
+
1754
+ assertEquals(VR.IS_POSSIBLE,
1755
+ phoneUtil.isPossibleNumberWithReason(US_LOCAL_NUMBER));
1756
+
1757
+ assertEquals(VR.TOO_LONG,
1758
+ phoneUtil.isPossibleNumberWithReason(US_LONG_NUMBER));
1759
+
1760
+ /** @type {i18n.phonenumbers.PhoneNumber} */
1761
+ var number = new i18n.phonenumbers.PhoneNumber();
1762
+ number.setCountryCode(0);
1763
+ number.setNationalNumber(2530000);
1764
+ assertEquals(VR.INVALID_COUNTRY_CODE,
1765
+ phoneUtil.isPossibleNumberWithReason(number));
1766
+
1767
+ number = new i18n.phonenumbers.PhoneNumber();
1768
+ number.setCountryCode(1);
1769
+ number.setNationalNumber(253000);
1770
+ assertEquals(VR.TOO_SHORT,
1771
+ phoneUtil.isPossibleNumberWithReason(number));
1772
+
1773
+ number = new i18n.phonenumbers.PhoneNumber();
1774
+ number.setCountryCode(65);
1775
+ number.setNationalNumber(1234567890);
1776
+ assertEquals(VR.IS_POSSIBLE,
1777
+ phoneUtil.isPossibleNumberWithReason(number));
1778
+
1779
+ assertEquals(VR.TOO_LONG,
1780
+ phoneUtil.isPossibleNumberWithReason(INTERNATIONAL_TOLL_FREE_TOO_LONG));
1781
+ }
1782
+
1783
+ function testIsNotPossibleNumber() {
1784
+ assertFalse(phoneUtil.isPossibleNumber(US_LONG_NUMBER));
1785
+ assertFalse(phoneUtil.isPossibleNumber(INTERNATIONAL_TOLL_FREE_TOO_LONG));
1786
+
1787
+ /** @type {i18n.phonenumbers.PhoneNumber} */
1788
+ var number = new i18n.phonenumbers.PhoneNumber();
1789
+ number.setCountryCode(1);
1790
+ number.setNationalNumber(253000);
1791
+ assertFalse(phoneUtil.isPossibleNumber(number));
1792
+
1793
+ number = new i18n.phonenumbers.PhoneNumber();
1794
+ number.setCountryCode(44);
1795
+ number.setNationalNumber(300);
1796
+ assertFalse(phoneUtil.isPossibleNumber(number));
1797
+ assertFalse(
1798
+ phoneUtil.isPossibleNumberString('+1 650 253 00000', RegionCode.US));
1799
+ assertFalse(
1800
+ phoneUtil.isPossibleNumberString('(650) 253-00000', RegionCode.US));
1801
+ assertFalse(
1802
+ phoneUtil.isPossibleNumberString('I want a Pizza', RegionCode.US));
1803
+ assertFalse(phoneUtil.isPossibleNumberString('253-000', RegionCode.US));
1804
+ assertFalse(phoneUtil.isPossibleNumberString('1 3000', RegionCode.GB));
1805
+ assertFalse(phoneUtil.isPossibleNumberString('+44 300', RegionCode.GB));
1806
+ assertFalse(
1807
+ phoneUtil.isPossibleNumberString('+800 1234 5678 9', RegionCode.UN001));
1808
+ }
1809
+
1810
+ function testTruncateTooLongNumber() {
1811
+ // GB number 080 1234 5678, but entered with 4 extra digits at the end.
1812
+ /** @type {i18n.phonenumbers.PhoneNumber} */
1813
+ var tooLongNumber = new i18n.phonenumbers.PhoneNumber();
1814
+ tooLongNumber.setCountryCode(44);
1815
+ tooLongNumber.setNationalNumber(80123456780123);
1816
+ /** @type {i18n.phonenumbers.PhoneNumber} */
1817
+ var validNumber = new i18n.phonenumbers.PhoneNumber();
1818
+ validNumber.setCountryCode(44);
1819
+ validNumber.setNationalNumber(8012345678);
1820
+ assertTrue(phoneUtil.truncateTooLongNumber(tooLongNumber));
1821
+ assertTrue(validNumber.equals(tooLongNumber));
1822
+
1823
+ // IT number 022 3456 7890, but entered with 3 extra digits at the end.
1824
+ tooLongNumber = new i18n.phonenumbers.PhoneNumber();
1825
+ tooLongNumber.setCountryCode(39);
1826
+ tooLongNumber.setNationalNumber(2234567890123);
1827
+ tooLongNumber.setItalianLeadingZero(true);
1828
+ validNumber = new i18n.phonenumbers.PhoneNumber();
1829
+ validNumber.setCountryCode(39);
1830
+ validNumber.setNationalNumber(2234567890);
1831
+ validNumber.setItalianLeadingZero(true);
1832
+ assertTrue(phoneUtil.truncateTooLongNumber(tooLongNumber));
1833
+ assertTrue(validNumber.equals(tooLongNumber));
1834
+
1835
+ // US number 650-253-0000, but entered with one additional digit at the end.
1836
+ tooLongNumber = US_LONG_NUMBER.clone();
1837
+ assertTrue(phoneUtil.truncateTooLongNumber(tooLongNumber));
1838
+ assertTrue(US_NUMBER.equals(tooLongNumber));
1839
+
1840
+ tooLongNumber = INTERNATIONAL_TOLL_FREE_TOO_LONG.clone();
1841
+ assertTrue(phoneUtil.truncateTooLongNumber(tooLongNumber));
1842
+ assertTrue(INTERNATIONAL_TOLL_FREE.equals(tooLongNumber));
1843
+
1844
+ // Tests what happens when a valid number is passed in.
1845
+ /** @type {i18n.phonenumbers.PhoneNumber} */
1846
+ var validNumberCopy = validNumber.clone();
1847
+ assertTrue(phoneUtil.truncateTooLongNumber(validNumber));
1848
+ // Tests the number is not modified.
1849
+ assertTrue(validNumber.equals(validNumberCopy));
1850
+
1851
+ // Tests what happens when a number with invalid prefix is passed in.
1852
+ /** @type {i18n.phonenumbers.PhoneNumber} */
1853
+ var numberWithInvalidPrefix = new i18n.phonenumbers.PhoneNumber();
1854
+ // The test metadata says US numbers cannot have prefix 240.
1855
+ numberWithInvalidPrefix.setCountryCode(1);
1856
+ numberWithInvalidPrefix.setNationalNumber(2401234567);
1857
+ /** @type {i18n.phonenumbers.PhoneNumber} */
1858
+ var invalidNumberCopy = numberWithInvalidPrefix.clone();
1859
+ assertFalse(phoneUtil.truncateTooLongNumber(numberWithInvalidPrefix));
1860
+ // Tests the number is not modified.
1861
+ assertTrue(numberWithInvalidPrefix.equals(invalidNumberCopy));
1862
+
1863
+ // Tests what happens when a too short number is passed in.
1864
+ /** @type {i18n.phonenumbers.PhoneNumber} */
1865
+ var tooShortNumber = new i18n.phonenumbers.PhoneNumber();
1866
+ tooShortNumber.setCountryCode(1);
1867
+ tooShortNumber.setNationalNumber(1234);
1868
+ /** @type {i18n.phonenumbers.PhoneNumber} */
1869
+ var tooShortNumberCopy = tooShortNumber.clone();
1870
+ assertFalse(phoneUtil.truncateTooLongNumber(tooShortNumber));
1871
+ // Tests the number is not modified.
1872
+ assertTrue(tooShortNumber.equals(tooShortNumberCopy));
1873
+ }
1874
+
1875
+ function testIsViablePhoneNumber() {
1876
+ var isViable = i18n.phonenumbers.PhoneNumberUtil.isViablePhoneNumber;
1877
+ assertFalse(isViable('1'));
1878
+ // Only one or two digits before strange non-possible punctuation.
1879
+ assertFalse(isViable('1+1+1'));
1880
+ assertFalse(isViable('80+0'));
1881
+ // Two digits is viable.
1882
+ assertTrue(isViable('00'));
1883
+ assertTrue(isViable('111'));
1884
+ // Alpha numbers.
1885
+ assertTrue(isViable('0800-4-pizza'));
1886
+ assertTrue(isViable('0800-4-PIZZA'));
1887
+ // We need at least three digits before any alpha characters.
1888
+ assertFalse(isViable('08-PIZZA'));
1889
+ assertFalse(isViable('8-PIZZA'));
1890
+ assertFalse(isViable('12. March'));
1891
+ }
1892
+
1893
+ function testIsViablePhoneNumberNonAscii() {
1894
+ var isViable = i18n.phonenumbers.PhoneNumberUtil.isViablePhoneNumber;
1895
+ // Only one or two digits before possible punctuation followed by more digits.
1896
+ assertTrue(isViable('1\u300034'));
1897
+ assertFalse(isViable('1\u30003+4'));
1898
+ // Unicode variants of possible starting character and other allowed
1899
+ // punctuation/digits.
1900
+ assertTrue(isViable('\uFF081\uFF09\u30003456789'));
1901
+ // Testing a leading + is okay.
1902
+ assertTrue(isViable('+1\uFF09\u30003456789'));
1903
+ }
1904
+
1905
+ function testExtractPossibleNumber() {
1906
+ var extract = i18n.phonenumbers.PhoneNumberUtil.extractPossibleNumber;
1907
+ // Removes preceding funky punctuation and letters but leaves the rest
1908
+ // untouched.
1909
+ assertEquals('0800-345-600', extract('Tel:0800-345-600'));
1910
+ assertEquals('0800 FOR PIZZA', extract('Tel:0800 FOR PIZZA'));
1911
+ // Should not remove plus sign
1912
+ assertEquals('+800-345-600', extract('Tel:+800-345-600'));
1913
+ // Should recognise wide digits as possible start values.
1914
+ assertEquals('\uFF10\uFF12\uFF13', extract('\uFF10\uFF12\uFF13'));
1915
+ // Dashes are not possible start values and should be removed.
1916
+ assertEquals('\uFF11\uFF12\uFF13', extract('Num-\uFF11\uFF12\uFF13'));
1917
+ // If not possible number present, return empty string.
1918
+ assertEquals('', extract('Num-....'));
1919
+ // Leading brackets are stripped - these are not used when parsing.
1920
+ assertEquals('650) 253-0000', extract('(650) 253-0000'));
1921
+
1922
+ // Trailing non-alpha-numeric characters should be removed.
1923
+ assertEquals('650) 253-0000', extract('(650) 253-0000..- ..'));
1924
+ assertEquals('650) 253-0000', extract('(650) 253-0000.'));
1925
+ // This case has a trailing RTL char.
1926
+ assertEquals('650) 253-0000', extract('(650) 253-0000\u200F'));
1927
+ }
1928
+
1929
+ function testMaybeStripNationalPrefix() {
1930
+ /** @type {i18n.phonenumbers.PhoneMetadata} */
1931
+ var metadata = new i18n.phonenumbers.PhoneMetadata();
1932
+ metadata.setNationalPrefixForParsing('34');
1933
+ /** @type {i18n.phonenumbers.PhoneNumberDesc} */
1934
+ var generalDesc = new i18n.phonenumbers.PhoneNumberDesc();
1935
+ generalDesc.setNationalNumberPattern('\\d{4,8}');
1936
+ metadata.setGeneralDesc(generalDesc);
1937
+ /** @type {!goog.string.StringBuffer} */
1938
+ var numberToStrip = new goog.string.StringBuffer('34356778');
1939
+ /** @type {string} */
1940
+ var strippedNumber = '356778';
1941
+ assertTrue(phoneUtil.maybeStripNationalPrefixAndCarrierCode(
1942
+ numberToStrip, metadata, null));
1943
+ assertEquals('Should have had national prefix stripped.',
1944
+ strippedNumber, numberToStrip.toString());
1945
+ // Retry stripping - now the number should not start with the national prefix,
1946
+ // so no more stripping should occur.
1947
+ assertFalse(phoneUtil.maybeStripNationalPrefixAndCarrierCode(
1948
+ numberToStrip, metadata, null));
1949
+ assertEquals('Should have had no change - no national prefix present.',
1950
+ strippedNumber, numberToStrip.toString());
1951
+ // Some countries have no national prefix. Repeat test with none specified.
1952
+ metadata.setNationalPrefixForParsing('');
1953
+ assertFalse(phoneUtil.maybeStripNationalPrefixAndCarrierCode(
1954
+ numberToStrip, metadata, null));
1955
+ assertEquals('Should not strip anything with empty national prefix.',
1956
+ strippedNumber, numberToStrip.toString());
1957
+ // If the resultant number doesn't match the national rule, it shouldn't be
1958
+ // stripped.
1959
+ metadata.setNationalPrefixForParsing('3');
1960
+ numberToStrip = new goog.string.StringBuffer('3123');
1961
+ strippedNumber = '3123';
1962
+ assertFalse(phoneUtil.maybeStripNationalPrefixAndCarrierCode(
1963
+ numberToStrip, metadata, null));
1964
+ assertEquals('Should have had no change - after stripping, it would not ' +
1965
+ 'have matched the national rule.',
1966
+ strippedNumber, numberToStrip.toString());
1967
+ // Test extracting carrier selection code.
1968
+ metadata.setNationalPrefixForParsing('0(81)?');
1969
+ numberToStrip = new goog.string.StringBuffer('08122123456');
1970
+ strippedNumber = '22123456';
1971
+ /** @type {!goog.string.StringBuffer} */
1972
+ var carrierCode = new goog.string.StringBuffer();
1973
+ assertTrue(phoneUtil.maybeStripNationalPrefixAndCarrierCode(
1974
+ numberToStrip, metadata, carrierCode));
1975
+ assertEquals('81', carrierCode.toString());
1976
+ assertEquals('Should have had national prefix and carrier code stripped.',
1977
+ strippedNumber, numberToStrip.toString());
1978
+ // If there was a transform rule, check it was applied.
1979
+ metadata.setNationalPrefixTransformRule('5$15');
1980
+ // Note that a capturing group is present here.
1981
+ metadata.setNationalPrefixForParsing('0(\\d{2})');
1982
+ numberToStrip = new goog.string.StringBuffer('031123');
1983
+ /** @type {string} */
1984
+ var transformedNumber = '5315123';
1985
+ assertTrue(phoneUtil.maybeStripNationalPrefixAndCarrierCode(
1986
+ numberToStrip, metadata, null));
1987
+ assertEquals('Should transform the 031 to a 5315.',
1988
+ transformedNumber, numberToStrip.toString());
1989
+ }
1990
+
1991
+ function testMaybeStripInternationalPrefix() {
1992
+ var CCS = i18n.phonenumbers.PhoneNumber.CountryCodeSource;
1993
+ /** @type {string} */
1994
+ var internationalPrefix = '00[39]';
1995
+ /** @type {!goog.string.StringBuffer} */
1996
+ var numberToStrip = new goog.string.StringBuffer('0034567700-3898003');
1997
+ // Note the dash is removed as part of the normalization.
1998
+ /** @type {!goog.string.StringBuffer} */
1999
+ var strippedNumber = new goog.string.StringBuffer('45677003898003');
2000
+ assertEquals(CCS.FROM_NUMBER_WITH_IDD,
2001
+ phoneUtil.maybeStripInternationalPrefixAndNormalize(numberToStrip,
2002
+ internationalPrefix));
2003
+ assertEquals('The number supplied was not stripped of its international ' +
2004
+ 'prefix.',
2005
+ strippedNumber.toString(), numberToStrip.toString());
2006
+ // Now the number no longer starts with an IDD prefix, so it should now report
2007
+ // FROM_DEFAULT_COUNTRY.
2008
+ assertEquals(CCS.FROM_DEFAULT_COUNTRY,
2009
+ phoneUtil.maybeStripInternationalPrefixAndNormalize(numberToStrip,
2010
+ internationalPrefix));
2011
+
2012
+ numberToStrip = new goog.string.StringBuffer('00945677003898003');
2013
+ assertEquals(CCS.FROM_NUMBER_WITH_IDD,
2014
+ phoneUtil.maybeStripInternationalPrefixAndNormalize(numberToStrip,
2015
+ internationalPrefix));
2016
+ assertEquals('The number supplied was not stripped of its international ' +
2017
+ 'prefix.',
2018
+ strippedNumber.toString(), numberToStrip.toString());
2019
+ // Test it works when the international prefix is broken up by spaces.
2020
+ numberToStrip = new goog.string.StringBuffer('00 9 45677003898003');
2021
+ assertEquals(CCS.FROM_NUMBER_WITH_IDD,
2022
+ phoneUtil.maybeStripInternationalPrefixAndNormalize(numberToStrip,
2023
+ internationalPrefix));
2024
+ assertEquals('The number supplied was not stripped of its international ' +
2025
+ 'prefix.',
2026
+ strippedNumber.toString(), numberToStrip.toString());
2027
+ // Now the number no longer starts with an IDD prefix, so it should now report
2028
+ // FROM_DEFAULT_COUNTRY.
2029
+ assertEquals(CCS.FROM_DEFAULT_COUNTRY,
2030
+ phoneUtil.maybeStripInternationalPrefixAndNormalize(numberToStrip,
2031
+ internationalPrefix));
2032
+
2033
+ // Test the + symbol is also recognised and stripped.
2034
+ numberToStrip = new goog.string.StringBuffer('+45677003898003');
2035
+ strippedNumber = new goog.string.StringBuffer('45677003898003');
2036
+ assertEquals(CCS.FROM_NUMBER_WITH_PLUS_SIGN,
2037
+ phoneUtil.maybeStripInternationalPrefixAndNormalize(numberToStrip,
2038
+ internationalPrefix));
2039
+ assertEquals('The number supplied was not stripped of the plus symbol.',
2040
+ strippedNumber.toString(), numberToStrip.toString());
2041
+
2042
+ // If the number afterwards is a zero, we should not strip this - no country
2043
+ // calling code begins with 0.
2044
+ numberToStrip = new goog.string.StringBuffer('0090112-3123');
2045
+ strippedNumber = new goog.string.StringBuffer('00901123123');
2046
+ assertEquals(CCS.FROM_DEFAULT_COUNTRY,
2047
+ phoneUtil.maybeStripInternationalPrefixAndNormalize(
2048
+ numberToStrip, internationalPrefix));
2049
+ assertEquals('The number supplied had a 0 after the match so should not be ' +
2050
+ 'stripped.',
2051
+ strippedNumber.toString(), numberToStrip.toString());
2052
+ // Here the 0 is separated by a space from the IDD.
2053
+ numberToStrip = new goog.string.StringBuffer('009 0-112-3123');
2054
+ assertEquals(CCS.FROM_DEFAULT_COUNTRY,
2055
+ phoneUtil.maybeStripInternationalPrefixAndNormalize(numberToStrip,
2056
+ internationalPrefix));
2057
+ }
2058
+
2059
+ function testMaybeExtractCountryCode() {
2060
+ var CCS = i18n.phonenumbers.PhoneNumber.CountryCodeSource;
2061
+ /** @type {i18n.phonenumbers.PhoneNumber} */
2062
+ var number = new i18n.phonenumbers.PhoneNumber();
2063
+ /** @type {i18n.phonenumbers.PhoneMetadata} */
2064
+ var metadata = phoneUtil.getMetadataForRegion(RegionCode.US);
2065
+ // Note that for the US, the IDD is 011.
2066
+ try {
2067
+ /** @type {string} */
2068
+ var phoneNumber = '011112-3456789';
2069
+ /** @type {string} */
2070
+ var strippedNumber = '123456789';
2071
+ /** @type {number} */
2072
+ var countryCallingCode = 1;
2073
+ /** @type {!goog.string.StringBuffer} */
2074
+ var numberToFill = new goog.string.StringBuffer();
2075
+ assertEquals('Did not extract country calling code ' + countryCallingCode +
2076
+ ' correctly.',
2077
+ countryCallingCode,
2078
+ phoneUtil.maybeExtractCountryCode(phoneNumber, metadata,
2079
+ numberToFill, true, number));
2080
+ assertEquals('Did not figure out CountryCodeSource correctly',
2081
+ CCS.FROM_NUMBER_WITH_IDD,
2082
+ number.getCountryCodeSource());
2083
+ // Should strip and normalize national significant number.
2084
+ assertEquals('Did not strip off the country calling code correctly.',
2085
+ strippedNumber,
2086
+ numberToFill.toString());
2087
+ } catch (e) {
2088
+ fail('Should not have thrown an exception: ' + e.toString());
2089
+ }
2090
+ number = new i18n.phonenumbers.PhoneNumber();
2091
+ try {
2092
+ phoneNumber = '+6423456789';
2093
+ countryCallingCode = 64;
2094
+ numberToFill = new goog.string.StringBuffer();
2095
+ assertEquals('Did not extract country calling code ' + countryCallingCode +
2096
+ ' correctly.',
2097
+ countryCallingCode,
2098
+ phoneUtil.maybeExtractCountryCode(phoneNumber, metadata,
2099
+ numberToFill, true, number));
2100
+ assertEquals('Did not figure out CountryCodeSource correctly',
2101
+ CCS.FROM_NUMBER_WITH_PLUS_SIGN,
2102
+ number.getCountryCodeSource());
2103
+ } catch (e) {
2104
+ fail('Should not have thrown an exception: ' + e.toString());
2105
+ }
2106
+ number = new i18n.phonenumbers.PhoneNumber();
2107
+ try {
2108
+ phoneNumber = '+80012345678';
2109
+ countryCallingCode = 800;
2110
+ numberToFill = new goog.string.StringBuffer();
2111
+ assertEquals('Did not extract country calling code ' + countryCallingCode +
2112
+ ' correctly.',
2113
+ countryCallingCode,
2114
+ phoneUtil.maybeExtractCountryCode(phoneNumber, metadata,
2115
+ numberToFill, true, number));
2116
+ assertEquals('Did not figure out CountryCodeSource correctly',
2117
+ CCS.FROM_NUMBER_WITH_PLUS_SIGN,
2118
+ number.getCountryCodeSource());
2119
+ } catch (e) {
2120
+ fail('Should not have thrown an exception: ' + e.toString());
2121
+ }
2122
+ number = new i18n.phonenumbers.PhoneNumber();
2123
+ try {
2124
+ phoneNumber = '2345-6789';
2125
+ numberToFill = new goog.string.StringBuffer();
2126
+ assertEquals('Should not have extracted a country calling code - ' +
2127
+ 'no international prefix present.',
2128
+ 0,
2129
+ phoneUtil.maybeExtractCountryCode(phoneNumber, metadata,
2130
+ numberToFill, true, number));
2131
+ assertEquals('Did not figure out CountryCodeSource correctly',
2132
+ CCS.FROM_DEFAULT_COUNTRY,
2133
+ number.getCountryCodeSource());
2134
+ } catch (e) {
2135
+ fail('Should not have thrown an exception: ' + e.toString());
2136
+ }
2137
+ number = new i18n.phonenumbers.PhoneNumber();
2138
+ try {
2139
+ phoneNumber = '0119991123456789';
2140
+ numberToFill = new goog.string.StringBuffer();
2141
+ phoneUtil.maybeExtractCountryCode(phoneNumber, metadata,
2142
+ numberToFill, true, number);
2143
+ fail('Should have thrown an exception, no valid country calling code ' +
2144
+ 'present.');
2145
+ } catch (e) {
2146
+ // Expected.
2147
+ assertEquals('Wrong error type stored in exception.',
2148
+ i18n.phonenumbers.Error.INVALID_COUNTRY_CODE,
2149
+ e);
2150
+ }
2151
+ number = new i18n.phonenumbers.PhoneNumber();
2152
+ try {
2153
+ phoneNumber = '(1 610) 619 4466';
2154
+ countryCallingCode = 1;
2155
+ numberToFill = new goog.string.StringBuffer();
2156
+ assertEquals('Should have extracted the country calling code of the ' +
2157
+ 'region passed in',
2158
+ countryCallingCode,
2159
+ phoneUtil.maybeExtractCountryCode(phoneNumber, metadata,
2160
+ numberToFill, true, number));
2161
+ assertEquals('Did not figure out CountryCodeSource correctly',
2162
+ CCS.FROM_NUMBER_WITHOUT_PLUS_SIGN,
2163
+ number.getCountryCodeSource());
2164
+ } catch (e) {
2165
+ fail('Should not have thrown an exception: ' + e.toString());
2166
+ }
2167
+ number = new i18n.phonenumbers.PhoneNumber();
2168
+ try {
2169
+ phoneNumber = '(1 610) 619 4466';
2170
+ countryCallingCode = 1;
2171
+ numberToFill = new goog.string.StringBuffer();
2172
+ assertEquals('Should have extracted the country calling code of the ' +
2173
+ 'region passed in',
2174
+ countryCallingCode,
2175
+ phoneUtil.maybeExtractCountryCode(phoneNumber, metadata,
2176
+ numberToFill, false,
2177
+ number));
2178
+ assertFalse('Should not contain CountryCodeSource.',
2179
+ number.hasCountryCodeSource());
2180
+ } catch (e) {
2181
+ fail('Should not have thrown an exception: ' + e.toString());
2182
+ }
2183
+ number = new i18n.phonenumbers.PhoneNumber();
2184
+ try {
2185
+ phoneNumber = '(1 610) 619 446';
2186
+ numberToFill = new goog.string.StringBuffer();
2187
+ assertEquals('Should not have extracted a country calling code - invalid ' +
2188
+ 'number after extraction of uncertain country calling code.',
2189
+ 0,
2190
+ phoneUtil.maybeExtractCountryCode(phoneNumber, metadata,
2191
+ numberToFill, false,
2192
+ number));
2193
+ assertFalse('Should not contain CountryCodeSource.',
2194
+ number.hasCountryCodeSource());
2195
+ } catch (e) {
2196
+ fail('Should not have thrown an exception: ' + e.toString());
2197
+ }
2198
+ number = new i18n.phonenumbers.PhoneNumber();
2199
+ try {
2200
+ phoneNumber = '(1 610) 619';
2201
+ numberToFill = new goog.string.StringBuffer();
2202
+ assertEquals('Should not have extracted a country calling code - too ' +
2203
+ 'short number both before and after extraction of uncertain ' +
2204
+ 'country calling code.',
2205
+ 0,
2206
+ phoneUtil.maybeExtractCountryCode(phoneNumber, metadata,
2207
+ numberToFill, true, number));
2208
+ assertEquals('Did not figure out CountryCodeSource correctly',
2209
+ CCS.FROM_DEFAULT_COUNTRY,
2210
+ number.getCountryCodeSource());
2211
+ } catch (e) {
2212
+ fail('Should not have thrown an exception: ' + e.toString());
2213
+ }
2214
+ }
2215
+
2216
+ function testParseNationalNumber() {
2217
+ // National prefix attached.
2218
+ assertTrue(NZ_NUMBER.equals(phoneUtil.parse('033316005', RegionCode.NZ)));
2219
+ assertTrue(NZ_NUMBER.equals(phoneUtil.parse('33316005', RegionCode.NZ)));
2220
+ // National prefix attached and some formatting present.
2221
+ assertTrue(NZ_NUMBER.equals(phoneUtil.parse('03-331 6005', RegionCode.NZ)));
2222
+ assertTrue(NZ_NUMBER.equals(phoneUtil.parse('03 331 6005', RegionCode.NZ)));
2223
+ // Test parsing RFC3966 format with a phone context.
2224
+ assertTrue(NZ_NUMBER.equals(
2225
+ phoneUtil.parse('tel:03-331-6005;phone-context=+64', RegionCode.NZ)));
2226
+ assertTrue(NZ_NUMBER.equals(
2227
+ phoneUtil.parse('tel:331-6005;phone-context=+64-3', RegionCode.NZ)));
2228
+ assertTrue(NZ_NUMBER.equals(
2229
+ phoneUtil.parse('tel:331-6005;phone-context=+64-3', RegionCode.US)));
2230
+ assertTrue(NZ_NUMBER.equals(
2231
+ phoneUtil.parse('My number is tel:03-331-6005;phone-context=+64',
2232
+ RegionCode.NZ)));
2233
+ // Test parsing RFC3966 format with optional user-defined parameters. The
2234
+ // parameters will appear after the context if present.
2235
+ assertTrue(NZ_NUMBER.equals(
2236
+ phoneUtil.parse('tel:03-331-6005;phone-context=+64;a=%A1',
2237
+ RegionCode.NZ)));
2238
+ // Test parsing RFC3966 with an ISDN subaddress.
2239
+ assertTrue(NZ_NUMBER.equals(
2240
+ phoneUtil.parse('tel:03-331-6005;isub=12345;phone-context=+64',
2241
+ RegionCode.NZ)));
2242
+ assertTrue(NZ_NUMBER.equals(
2243
+ phoneUtil.parse('tel:+64-3-331-6005;isub=12345', RegionCode.NZ)));
2244
+ // Test parsing RFC3966 with "tel:" missing.
2245
+ assertTrue(NZ_NUMBER.equals(
2246
+ phoneUtil.parse('03-331-6005;phone-context=+64', RegionCode.NZ)));
2247
+ // Testing international prefixes.
2248
+ // Should strip country calling code.
2249
+ assertTrue(
2250
+ NZ_NUMBER.equals(phoneUtil.parse('0064 3 331 6005', RegionCode.NZ)));
2251
+ // Try again, but this time we have an international number with Region Code
2252
+ // US. It should recognise the country calling code and parse accordingly.
2253
+ assertTrue(
2254
+ NZ_NUMBER.equals(phoneUtil.parse('01164 3 331 6005', RegionCode.US)));
2255
+ assertTrue(
2256
+ NZ_NUMBER.equals(phoneUtil.parse('+64 3 331 6005', RegionCode.US)));
2257
+ // We should ignore the leading plus here, since it is not followed by a valid
2258
+ // country code but instead is followed by the IDD for the US.
2259
+ assertTrue(
2260
+ NZ_NUMBER.equals(phoneUtil.parse('+01164 3 331 6005', RegionCode.US)));
2261
+ assertTrue(
2262
+ NZ_NUMBER.equals(phoneUtil.parse('+0064 3 331 6005', RegionCode.NZ)));
2263
+ assertTrue(
2264
+ NZ_NUMBER.equals(phoneUtil.parse('+ 00 64 3 331 6005', RegionCode.NZ)));
2265
+
2266
+ assertTrue(US_LOCAL_NUMBER.equals(
2267
+ phoneUtil.parse('tel:253-0000;phone-context=www.google.com',
2268
+ RegionCode.US)));
2269
+ assertTrue(US_LOCAL_NUMBER.equals(
2270
+ phoneUtil.parse('tel:253-0000;isub=12345;phone-context=www.google.com',
2271
+ RegionCode.US)));
2272
+ // This is invalid because no "+" sign is present as part of phone-context.
2273
+ // The phone context is simply ignored in this case just as if it contains a
2274
+ // domain.
2275
+ assertTrue(US_LOCAL_NUMBER.equals(
2276
+ phoneUtil.parse('tel:2530000;isub=12345;phone-context=1-650',
2277
+ RegionCode.US)));
2278
+ assertTrue(US_LOCAL_NUMBER.equals(
2279
+ phoneUtil.parse('tel:2530000;isub=12345;phone-context=1234.com',
2280
+ RegionCode.US)));
2281
+
2282
+ /** @type {i18n.phonenumbers.PhoneNumber} */
2283
+ var nzNumber = new i18n.phonenumbers.PhoneNumber();
2284
+ nzNumber.setCountryCode(64);
2285
+ nzNumber.setNationalNumber(64123456);
2286
+ assertTrue(nzNumber.equals(phoneUtil.parse('64(0)64123456', RegionCode.NZ)));
2287
+ // Check that using a '/' is fine in a phone number.
2288
+ assertTrue(DE_NUMBER.equals(phoneUtil.parse('301/23456', RegionCode.DE)));
2289
+
2290
+ /** @type {i18n.phonenumbers.PhoneNumber} */
2291
+ var usNumber = new i18n.phonenumbers.PhoneNumber();
2292
+ // Check it doesn't use the '1' as a country calling code when parsing if the
2293
+ // phone number was already possible.
2294
+ usNumber.setCountryCode(1);
2295
+ usNumber.setNationalNumber(1234567890);
2296
+ assertTrue(usNumber.equals(phoneUtil.parse('123-456-7890', RegionCode.US)));
2297
+
2298
+ // Test star numbers. Although this is not strictly valid, we would like to
2299
+ // make sure we can parse the output we produce when formatting the number.
2300
+ assertTrue(
2301
+ JP_STAR_NUMBER.equals(phoneUtil.parse('+81 *2345', RegionCode.JP)));
2302
+
2303
+ /** @type {i18n.phonenumbers.PhoneNumber} */
2304
+ var shortNumber = new i18n.phonenumbers.PhoneNumber();
2305
+ shortNumber.setCountryCode(64);
2306
+ shortNumber.setNationalNumber(12);
2307
+ assertTrue(shortNumber.equals(phoneUtil.parse('12', RegionCode.NZ)));
2308
+ }
2309
+
2310
+ function testParseNumberWithAlphaCharacters() {
2311
+ // Test case with alpha characters.
2312
+ /** @type {i18n.phonenumbers.PhoneNumber} */
2313
+ var tollfreeNumber = new i18n.phonenumbers.PhoneNumber();
2314
+ tollfreeNumber.setCountryCode(64);
2315
+ tollfreeNumber.setNationalNumber(800332005);
2316
+ assertTrue(tollfreeNumber.equals(
2317
+ phoneUtil.parse('0800 DDA 005', RegionCode.NZ)));
2318
+ /** @type {i18n.phonenumbers.PhoneNumber} */
2319
+ var premiumNumber = new i18n.phonenumbers.PhoneNumber();
2320
+ premiumNumber.setCountryCode(64);
2321
+ premiumNumber.setNationalNumber(9003326005);
2322
+ assertTrue(premiumNumber.equals(
2323
+ phoneUtil.parse('0900 DDA 6005', RegionCode.NZ)));
2324
+ // Not enough alpha characters for them to be considered intentional, so they
2325
+ // are stripped.
2326
+ assertTrue(premiumNumber.equals(
2327
+ phoneUtil.parse('0900 332 6005a', RegionCode.NZ)));
2328
+ assertTrue(premiumNumber.equals(
2329
+ phoneUtil.parse('0900 332 600a5', RegionCode.NZ)));
2330
+ assertTrue(premiumNumber.equals(
2331
+ phoneUtil.parse('0900 332 600A5', RegionCode.NZ)));
2332
+ assertTrue(premiumNumber.equals(
2333
+ phoneUtil.parse('0900 a332 600A5', RegionCode.NZ)));
2334
+ }
2335
+
2336
+ function testParseMaliciousInput() {
2337
+ // Lots of leading + signs before the possible number.
2338
+ /** @type {!goog.string.StringBuffer} */
2339
+ var maliciousNumber = new goog.string.StringBuffer();
2340
+ for (var i = 0; i < 6000; i++) {
2341
+ maliciousNumber.append('+');
2342
+ }
2343
+ maliciousNumber.append('12222-33-244 extensioB 343+');
2344
+ try {
2345
+ phoneUtil.parse(maliciousNumber.toString(), RegionCode.US);
2346
+ fail('This should not parse without throwing an exception ' +
2347
+ maliciousNumber.toString());
2348
+ } catch (e) {
2349
+ // Expected this exception.
2350
+ assertEquals('Wrong error type stored in exception.',
2351
+ i18n.phonenumbers.Error.TOO_LONG,
2352
+ e);
2353
+ }
2354
+ /** @type {!goog.string.StringBuffer} */
2355
+ var maliciousNumberWithAlmostExt = new goog.string.StringBuffer();
2356
+ for (i = 0; i < 350; i++) {
2357
+ maliciousNumberWithAlmostExt.append('200');
2358
+ }
2359
+ maliciousNumberWithAlmostExt.append(' extensiOB 345');
2360
+ try {
2361
+ phoneUtil.parse(maliciousNumberWithAlmostExt.toString(), RegionCode.US);
2362
+ fail('This should not parse without throwing an exception ' +
2363
+ maliciousNumberWithAlmostExt.toString());
2364
+ } catch (e) {
2365
+ // Expected this exception.
2366
+ assertEquals('Wrong error type stored in exception.',
2367
+ i18n.phonenumbers.Error.TOO_LONG,
2368
+ e);
2369
+ }
2370
+ }
2371
+
2372
+ function testParseWithInternationalPrefixes() {
2373
+ assertTrue(US_NUMBER.equals(
2374
+ phoneUtil.parse('+1 (650) 253-0000', RegionCode.NZ)));
2375
+ assertTrue(INTERNATIONAL_TOLL_FREE.equals(
2376
+ phoneUtil.parse('011 800 1234 5678', RegionCode.US)));
2377
+ assertTrue(US_NUMBER.equals(
2378
+ phoneUtil.parse('1-650-253-0000', RegionCode.US)));
2379
+ // Calling the US number from Singapore by using different service providers
2380
+ // 1st test: calling using SingTel IDD service (IDD is 001)
2381
+ assertTrue(US_NUMBER.equals(
2382
+ phoneUtil.parse('0011-650-253-0000', RegionCode.SG)));
2383
+ // 2nd test: calling using StarHub IDD service (IDD is 008)
2384
+ assertTrue(US_NUMBER.equals(
2385
+ phoneUtil.parse('0081-650-253-0000', RegionCode.SG)));
2386
+ // 3rd test: calling using SingTel V019 service (IDD is 019)
2387
+ assertTrue(US_NUMBER.equals(
2388
+ phoneUtil.parse('0191-650-253-0000', RegionCode.SG)));
2389
+ // Calling the US number from Poland
2390
+ assertTrue(US_NUMBER.equals(
2391
+ phoneUtil.parse('0~01-650-253-0000', RegionCode.PL)));
2392
+ // Using '++' at the start.
2393
+ assertTrue(US_NUMBER.equals(
2394
+ phoneUtil.parse('++1 (650) 253-0000', RegionCode.PL)));
2395
+ }
2396
+
2397
+ function testParseNonAscii() {
2398
+ // Using a full-width plus sign.
2399
+ assertTrue(US_NUMBER.equals(
2400
+ phoneUtil.parse('\uFF0B1 (650) 253-0000', RegionCode.SG)));
2401
+ // Using a soft hyphen U+00AD.
2402
+ assertTrue(US_NUMBER.equals(
2403
+ phoneUtil.parse('1 (650) 253\u00AD-0000', RegionCode.US)));
2404
+ // The whole number, including punctuation, is here represented in full-width
2405
+ // form.
2406
+ assertTrue(US_NUMBER.equals(
2407
+ phoneUtil.parse('\uFF0B\uFF11\u3000\uFF08\uFF16\uFF15\uFF10\uFF09' +
2408
+ '\u3000\uFF12\uFF15\uFF13\uFF0D\uFF10\uFF10\uFF10\uFF10',
2409
+ RegionCode.SG)));
2410
+ // Using U+30FC dash instead.
2411
+ assertTrue(US_NUMBER.equals(
2412
+ phoneUtil.parse('\uFF0B\uFF11\u3000\uFF08\uFF16\uFF15\uFF10\uFF09' +
2413
+ '\u3000\uFF12\uFF15\uFF13\u30FC\uFF10\uFF10\uFF10\uFF10',
2414
+ RegionCode.SG)));
2415
+
2416
+ // Using a very strange decimal digit range (Mongolian digits).
2417
+ // TODO(user): Support Mongolian digits
2418
+ // assertTrue(US_NUMBER.equals(
2419
+ // phoneUtil.parse('\u1811 \u1816\u1815\u1810 ' +
2420
+ // '\u1812\u1815\u1813 \u1810\u1810\u1810\u1810',
2421
+ // RegionCode.US)));
2422
+ }
2423
+
2424
+ function testParseWithLeadingZero() {
2425
+ assertTrue(
2426
+ IT_NUMBER.equals(phoneUtil.parse('+39 02-36618 300', RegionCode.NZ)));
2427
+ assertTrue(
2428
+ IT_NUMBER.equals(phoneUtil.parse('02-36618 300', RegionCode.IT)));
2429
+
2430
+ assertTrue(
2431
+ IT_MOBILE.equals(phoneUtil.parse('345 678 901', RegionCode.IT)));
2432
+ }
2433
+
2434
+ function testParseNationalNumberArgentina() {
2435
+ // Test parsing mobile numbers of Argentina.
2436
+ /** @type {i18n.phonenumbers.PhoneNumber} */
2437
+ var arNumber = new i18n.phonenumbers.PhoneNumber();
2438
+ arNumber.setCountryCode(54);
2439
+ arNumber.setNationalNumber(93435551212);
2440
+ assertTrue(
2441
+ arNumber.equals(phoneUtil.parse('+54 9 343 555 1212', RegionCode.AR)));
2442
+ assertTrue(
2443
+ arNumber.equals(phoneUtil.parse('0343 15 555 1212', RegionCode.AR)));
2444
+
2445
+ arNumber = new i18n.phonenumbers.PhoneNumber();
2446
+ arNumber.setCountryCode(54);
2447
+ arNumber.setNationalNumber(93715654320);
2448
+ assertTrue(
2449
+ arNumber.equals(phoneUtil.parse('+54 9 3715 65 4320', RegionCode.AR)));
2450
+ assertTrue(
2451
+ arNumber.equals(phoneUtil.parse('03715 15 65 4320', RegionCode.AR)));
2452
+ assertTrue(
2453
+ AR_MOBILE.equals(phoneUtil.parse('911 876 54321', RegionCode.AR)));
2454
+
2455
+ // Test parsing fixed-line numbers of Argentina.
2456
+ assertTrue(
2457
+ AR_NUMBER.equals(phoneUtil.parse('+54 11 8765 4321', RegionCode.AR)));
2458
+ assertTrue(
2459
+ AR_NUMBER.equals(phoneUtil.parse('011 8765 4321', RegionCode.AR)));
2460
+
2461
+ arNumber = new i18n.phonenumbers.PhoneNumber();
2462
+ arNumber.setCountryCode(54);
2463
+ arNumber.setNationalNumber(3715654321);
2464
+ assertTrue(
2465
+ arNumber.equals(phoneUtil.parse('+54 3715 65 4321', RegionCode.AR)));
2466
+ assertTrue(
2467
+ arNumber.equals(phoneUtil.parse('03715 65 4321', RegionCode.AR)));
2468
+
2469
+ arNumber = new i18n.phonenumbers.PhoneNumber();
2470
+ arNumber.setCountryCode(54);
2471
+ arNumber.setNationalNumber(2312340000);
2472
+ assertTrue(
2473
+ arNumber.equals(phoneUtil.parse('+54 23 1234 0000', RegionCode.AR)));
2474
+ assertTrue(
2475
+ arNumber.equals(phoneUtil.parse('023 1234 0000', RegionCode.AR)));
2476
+ }
2477
+
2478
+ function testParseWithXInNumber() {
2479
+ // Test that having an 'x' in the phone number at the start is ok and that it
2480
+ // just gets removed.
2481
+ assertTrue(
2482
+ AR_NUMBER.equals(phoneUtil.parse('01187654321', RegionCode.AR)));
2483
+ assertTrue(
2484
+ AR_NUMBER.equals(phoneUtil.parse('(0) 1187654321', RegionCode.AR)));
2485
+ assertTrue(
2486
+ AR_NUMBER.equals(phoneUtil.parse('0 1187654321', RegionCode.AR)));
2487
+ assertTrue(
2488
+ AR_NUMBER.equals(phoneUtil.parse('(0xx) 1187654321', RegionCode.AR)));
2489
+ /** @type {i18n.phonenumbers.PhoneNumber} */
2490
+ var arFromUs = new i18n.phonenumbers.PhoneNumber();
2491
+ arFromUs.setCountryCode(54);
2492
+ arFromUs.setNationalNumber(81429712);
2493
+ // This test is intentionally constructed such that the number of digit after
2494
+ // xx is larger than 7, so that the number won't be mistakenly treated as an
2495
+ // extension, as we allow extensions up to 7 digits. This assumption is okay
2496
+ // for now as all the countries where a carrier selection code is written in
2497
+ // the form of xx have a national significant number of length larger than 7.
2498
+ assertTrue(
2499
+ arFromUs.equals(phoneUtil.parse('011xx5481429712', RegionCode.US)));
2500
+ }
2501
+
2502
+ function testParseNumbersMexico() {
2503
+ // Test parsing fixed-line numbers of Mexico.
2504
+ /** @type {i18n.phonenumbers.PhoneNumber} */
2505
+ var mxNumber = new i18n.phonenumbers.PhoneNumber();
2506
+ mxNumber.setCountryCode(52);
2507
+ mxNumber.setNationalNumber(4499780001);
2508
+ assertTrue(mxNumber.equals(
2509
+ phoneUtil.parse('+52 (449)978-0001', RegionCode.MX)));
2510
+ assertTrue(
2511
+ mxNumber.equals(phoneUtil.parse('01 (449)978-0001', RegionCode.MX)));
2512
+ assertTrue(
2513
+ mxNumber.equals(phoneUtil.parse('(449)978-0001', RegionCode.MX)));
2514
+
2515
+ // Test parsing mobile numbers of Mexico.
2516
+ mxNumber = new i18n.phonenumbers.PhoneNumber();
2517
+ mxNumber.setCountryCode(52);
2518
+ mxNumber.setNationalNumber(13312345678);
2519
+ assertTrue(mxNumber.equals(
2520
+ phoneUtil.parse('+52 1 33 1234-5678', RegionCode.MX)));
2521
+ assertTrue(mxNumber.equals(
2522
+ phoneUtil.parse('044 (33) 1234-5678', RegionCode.MX)));
2523
+ assertTrue(mxNumber.equals(
2524
+ phoneUtil.parse('045 33 1234-5678', RegionCode.MX)));
2525
+ }
2526
+
2527
+ function testFailedParseOnInvalidNumbers() {
2528
+ try {
2529
+ /** @type {string} */
2530
+ var sentencePhoneNumber = 'This is not a phone number';
2531
+ phoneUtil.parse(sentencePhoneNumber, RegionCode.NZ);
2532
+ fail('This should not parse without throwing an exception ' +
2533
+ sentencePhoneNumber);
2534
+ } catch (e) {
2535
+ // Expected this exception.
2536
+ assertEquals('Wrong error type stored in exception.',
2537
+ i18n.phonenumbers.Error.NOT_A_NUMBER,
2538
+ e);
2539
+ }
2540
+ try {
2541
+ sentencePhoneNumber = '1 Still not a number';
2542
+ phoneUtil.parse(sentencePhoneNumber, RegionCode.NZ);
2543
+ fail('This should not parse without throwing an exception ' +
2544
+ sentencePhoneNumber);
2545
+ } catch (e) {
2546
+ // Expected this exception.
2547
+ assertEquals('Wrong error type stored in exception.',
2548
+ i18n.phonenumbers.Error.NOT_A_NUMBER,
2549
+ e);
2550
+ }
2551
+ try {
2552
+ sentencePhoneNumber = '1 MICROSOFT';
2553
+ phoneUtil.parse(sentencePhoneNumber, RegionCode.NZ);
2554
+ fail('This should not parse without throwing an exception ' +
2555
+ sentencePhoneNumber);
2556
+ } catch (e) {
2557
+ // Expected this exception.
2558
+ assertEquals('Wrong error type stored in exception.',
2559
+ i18n.phonenumbers.Error.NOT_A_NUMBER,
2560
+ e);
2561
+ }
2562
+ try {
2563
+ sentencePhoneNumber = '12 MICROSOFT';
2564
+ phoneUtil.parse(sentencePhoneNumber, RegionCode.NZ);
2565
+ fail('This should not parse without throwing an exception ' +
2566
+ sentencePhoneNumber);
2567
+ } catch (e) {
2568
+ // Expected this exception.
2569
+ assertEquals('Wrong error type stored in exception.',
2570
+ i18n.phonenumbers.Error.NOT_A_NUMBER,
2571
+ e);
2572
+ }
2573
+ try {
2574
+ /** @type {string} */
2575
+ var tooLongPhoneNumber = '01495 72553301873 810104';
2576
+ phoneUtil.parse(tooLongPhoneNumber, RegionCode.GB);
2577
+ fail('This should not parse without throwing an exception ' +
2578
+ tooLongPhoneNumber);
2579
+ } catch (e) {
2580
+ // Expected this exception.
2581
+ assertEquals('Wrong error type stored in exception.',
2582
+ i18n.phonenumbers.Error.TOO_LONG,
2583
+ e);
2584
+ }
2585
+ try {
2586
+ /** @type {string} */
2587
+ var plusMinusPhoneNumber = '+---';
2588
+ phoneUtil.parse(plusMinusPhoneNumber, RegionCode.DE);
2589
+ fail('This should not parse without throwing an exception ' +
2590
+ plusMinusPhoneNumber);
2591
+ } catch (e) {
2592
+ // Expected this exception.
2593
+ assertEquals('Wrong error type stored in exception.',
2594
+ i18n.phonenumbers.Error.NOT_A_NUMBER,
2595
+ e);
2596
+ }
2597
+ try {
2598
+ /** @type {string} */
2599
+ var plusStar = '+***';
2600
+ phoneUtil.parse(plusStar, RegionCode.DE);
2601
+ fail('This should not parse without throwing an exception ' + plusStar);
2602
+ } catch (e) {
2603
+ // Expected this exception.
2604
+ assertEquals('Wrong error type stored in exception.',
2605
+ i18n.phonenumbers.Error.NOT_A_NUMBER,
2606
+ e);
2607
+ }
2608
+ try {
2609
+ /** @type {string} */
2610
+ var plusStarPhoneNumber = '+*******91';
2611
+ phoneUtil.parse(plusStarPhoneNumber, RegionCode.DE);
2612
+ fail('This should not parse without throwing an exception ' +
2613
+ plusStarPhoneNumber);
2614
+ } catch (e) {
2615
+ // Expected this exception.
2616
+ assertEquals('Wrong error type stored in exception.',
2617
+ i18n.phonenumbers.Error.NOT_A_NUMBER,
2618
+ e);
2619
+ }
2620
+ try {
2621
+ /** @type {string} */
2622
+ var tooShortPhoneNumber = '+49 0';
2623
+ phoneUtil.parse(tooShortPhoneNumber, RegionCode.DE);
2624
+ fail('This should not parse without throwing an exception ' +
2625
+ tooShortPhoneNumber);
2626
+ } catch (e) {
2627
+ // Expected this exception.
2628
+ assertEquals('Wrong error type stored in exception.',
2629
+ i18n.phonenumbers.Error.TOO_SHORT_NSN,
2630
+ e);
2631
+ }
2632
+ try {
2633
+ /** @type {string} */
2634
+ var invalidCountryCode = '+210 3456 56789';
2635
+ phoneUtil.parse(invalidCountryCode, RegionCode.NZ);
2636
+ fail('This is not a recognised region code: should fail: ' +
2637
+ invalidCountryCode);
2638
+ } catch (e) {
2639
+ // Expected this exception.
2640
+ assertEquals('Wrong error type stored in exception.',
2641
+ i18n.phonenumbers.Error.INVALID_COUNTRY_CODE,
2642
+ e);
2643
+ }
2644
+ try {
2645
+ /** @type {string} */
2646
+ var plusAndIddAndInvalidCountryCode = '+ 00 210 3 331 6005';
2647
+ phoneUtil.parse(plusAndIddAndInvalidCountryCode, RegionCode.NZ);
2648
+ fail('This should not parse without throwing an exception.');
2649
+ } catch (e) {
2650
+ // Expected this exception. 00 is a correct IDD, but 210 is not a valid
2651
+ // country code.
2652
+ assertEquals('Wrong error type stored in exception.',
2653
+ i18n.phonenumbers.Error.INVALID_COUNTRY_CODE,
2654
+ e);
2655
+ }
2656
+ try {
2657
+ /** @type {string} */
2658
+ var someNumber = '123 456 7890';
2659
+ phoneUtil.parse(someNumber, RegionCode.ZZ);
2660
+ fail('Unknown region code not allowed: should fail.');
2661
+ } catch (e) {
2662
+ // Expected this exception.
2663
+ assertEquals('Wrong error type stored in exception.',
2664
+ i18n.phonenumbers.Error.INVALID_COUNTRY_CODE,
2665
+ e);
2666
+ }
2667
+ try {
2668
+ someNumber = '123 456 7890';
2669
+ phoneUtil.parse(someNumber, RegionCode.CS);
2670
+ fail('Deprecated region code not allowed: should fail.');
2671
+ } catch (e) {
2672
+ // Expected this exception.
2673
+ assertEquals('Wrong error type stored in exception.',
2674
+ i18n.phonenumbers.Error.INVALID_COUNTRY_CODE,
2675
+ e);
2676
+ }
2677
+ try {
2678
+ someNumber = '123 456 7890';
2679
+ phoneUtil.parse(someNumber, null);
2680
+ fail('Null region code not allowed: should fail.');
2681
+ } catch (e) {
2682
+ // Expected this exception.
2683
+ assertEquals('Wrong error type stored in exception.',
2684
+ i18n.phonenumbers.Error.INVALID_COUNTRY_CODE,
2685
+ e);
2686
+ }
2687
+ try {
2688
+ someNumber = '0044------';
2689
+ phoneUtil.parse(someNumber, RegionCode.GB);
2690
+ fail('No number provided, only region code: should fail');
2691
+ } catch (e) {
2692
+ // Expected this exception.
2693
+ assertEquals('Wrong error type stored in exception.',
2694
+ i18n.phonenumbers.Error.TOO_SHORT_AFTER_IDD,
2695
+ e);
2696
+ }
2697
+ try {
2698
+ someNumber = '0044';
2699
+ phoneUtil.parse(someNumber, RegionCode.GB);
2700
+ fail('No number provided, only region code: should fail');
2701
+ } catch (e) {
2702
+ // Expected this exception.
2703
+ assertEquals('Wrong error type stored in exception.',
2704
+ i18n.phonenumbers.Error.TOO_SHORT_AFTER_IDD,
2705
+ e);
2706
+ }
2707
+ try {
2708
+ someNumber = '011';
2709
+ phoneUtil.parse(someNumber, RegionCode.US);
2710
+ fail('Only IDD provided - should fail.');
2711
+ } catch (e) {
2712
+ // Expected this exception.
2713
+ assertEquals('Wrong error type stored in exception.',
2714
+ i18n.phonenumbers.Error.TOO_SHORT_AFTER_IDD,
2715
+ e);
2716
+ }
2717
+ try {
2718
+ someNumber = '0119';
2719
+ phoneUtil.parse(someNumber, RegionCode.US);
2720
+ fail('Only IDD provided and then 9 - should fail.');
2721
+ } catch (e) {
2722
+ // Expected this exception.
2723
+ assertEquals('Wrong error type stored in exception.',
2724
+ i18n.phonenumbers.Error.TOO_SHORT_AFTER_IDD,
2725
+ e);
2726
+ }
2727
+ try {
2728
+ /** @type {string} */
2729
+ var emptyNumber = '';
2730
+ // Invalid region.
2731
+ phoneUtil.parse(emptyNumber, RegionCode.ZZ);
2732
+ fail('Empty string - should fail.');
2733
+ } catch (e) {
2734
+ // Expected this exception.
2735
+ assertEquals('Wrong error type stored in exception.',
2736
+ i18n.phonenumbers.Error.NOT_A_NUMBER,
2737
+ e);
2738
+ }
2739
+ try {
2740
+ // Invalid region.
2741
+ phoneUtil.parse(null, RegionCode.ZZ);
2742
+ fail('Null string - should fail.');
2743
+ } catch (e) {
2744
+ // Expected this exception.
2745
+ assertEquals('Wrong error type stored in exception.',
2746
+ i18n.phonenumbers.Error.NOT_A_NUMBER,
2747
+ e);
2748
+ }
2749
+ try {
2750
+ phoneUtil.parse(null, RegionCode.US);
2751
+ fail('Null string - should fail.');
2752
+ } catch (e) {
2753
+ // Expected this exception.
2754
+ assertEquals('Wrong error type stored in exception.',
2755
+ i18n.phonenumbers.Error.NOT_A_NUMBER,
2756
+ e);
2757
+ }
2758
+ try {
2759
+ /** @type {string} */
2760
+ var domainRfcPhoneContext = 'tel:555-1234;phone-context=www.google.com';
2761
+ phoneUtil.parse(domainRfcPhoneContext, RegionCode.ZZ);
2762
+ fail('"Unknown" region code not allowed: should fail.');
2763
+ } catch (e) {
2764
+ // Expected this exception.
2765
+ assertEquals('Wrong error type stored in exception.',
2766
+ i18n.phonenumbers.Error.INVALID_COUNTRY_CODE,
2767
+ e);
2768
+ }
2769
+ try {
2770
+ // This is invalid because no '+' sign is present as part of phone-context.
2771
+ // This should not succeed in being parsed.
2772
+ /** @type {string} */
2773
+ var invalidRfcPhoneContext = 'tel:555-1234;phone-context=1-331';
2774
+ phoneUtil.parse(invalidRfcPhoneContext, RegionCode.ZZ);
2775
+ fail('"Unknown" region code not allowed: should fail.');
2776
+ } catch (e) {
2777
+ // Expected this exception.
2778
+ assertEquals('Wrong error type stored in exception.',
2779
+ i18n.phonenumbers.Error.INVALID_COUNTRY_CODE,
2780
+ e);
2781
+ }
2782
+ }
2783
+
2784
+ function testParseNumbersWithPlusWithNoRegion() {
2785
+ // RegionCode.ZZ is allowed only if the number starts with a '+' - then the
2786
+ // country calling code can be calculated.
2787
+ assertTrue(
2788
+ NZ_NUMBER.equals(phoneUtil.parse('+64 3 331 6005', RegionCode.ZZ)));
2789
+ // Test with full-width plus.
2790
+ assertTrue(
2791
+ NZ_NUMBER.equals(phoneUtil.parse('\uFF0B64 3 331 6005', RegionCode.ZZ)));
2792
+ // Test with normal plus but leading characters that need to be stripped.
2793
+ assertTrue(
2794
+ NZ_NUMBER.equals(phoneUtil.parse('Tel: +64 3 331 6005', RegionCode.ZZ)));
2795
+ assertTrue(
2796
+ NZ_NUMBER.equals(phoneUtil.parse('+64 3 331 6005', null)));
2797
+ assertTrue(
2798
+ INTERNATIONAL_TOLL_FREE.equals(phoneUtil.parse('+800 1234 5678', null)));
2799
+ assertTrue(
2800
+ UNIVERSAL_PREMIUM_RATE.equals(phoneUtil.parse('+979 123 456 789', null)));
2801
+
2802
+ // Test parsing RFC3966 format with a phone context.
2803
+ assertTrue(NZ_NUMBER.equals(
2804
+ phoneUtil.parse('tel:03-331-6005;phone-context=+64', RegionCode.ZZ)));
2805
+ assertTrue(NZ_NUMBER.equals(
2806
+ phoneUtil.parse(' tel:03-331-6005;phone-context=+64', RegionCode.ZZ)));
2807
+ assertTrue(NZ_NUMBER.equals(
2808
+ phoneUtil.parse('tel:03-331-6005;isub=12345;phone-context=+64',
2809
+ RegionCode.ZZ)));
2810
+
2811
+ // It is important that we set the carrier code to an empty string, since we
2812
+ // used ParseAndKeepRawInput and no carrier code was found.
2813
+ /** @type {i18n.phonenumbers.PhoneNumber} */
2814
+ var nzNumberWithRawInput = NZ_NUMBER.clone();
2815
+ nzNumberWithRawInput.setRawInput('+64 3 331 6005');
2816
+ nzNumberWithRawInput.setCountryCodeSource(i18n.phonenumbers.PhoneNumber
2817
+ .CountryCodeSource.FROM_NUMBER_WITH_PLUS_SIGN);
2818
+ nzNumberWithRawInput.setPreferredDomesticCarrierCode('');
2819
+ assertTrue(nzNumberWithRawInput.equals(
2820
+ phoneUtil.parseAndKeepRawInput('+64 3 331 6005', RegionCode.ZZ)));
2821
+ // Null is also allowed for the region code in these cases.
2822
+ assertTrue(nzNumberWithRawInput.equals(
2823
+ phoneUtil.parseAndKeepRawInput('+64 3 331 6005', null)));
2824
+ }
2825
+
2826
+ function testParseNumberTooShortIfNationalPrefixStripped() {
2827
+ // Test that a number whose first digits happen to coincide with the national
2828
+ // prefix does not get them stripped if doing so would result in a number too
2829
+ // short to be a possible (regular length) phone number for that region.
2830
+ /** @type {i18n.phonenumbers.PhoneNumber} */
2831
+ var byNumber = new i18n.phonenumbers.PhoneNumber();
2832
+ byNumber.setCountryCode(375);
2833
+ byNumber.setNationalNumber(8123);
2834
+ assertTrue(byNumber.equals(phoneUtil.parse('8123', RegionCode.BY)));
2835
+ byNumber.setNationalNumber(81234);
2836
+ assertTrue(byNumber.equals(phoneUtil.parse('81234', RegionCode.BY)));
2837
+
2838
+ // The prefix doesn't get stripped, since the input is a viable 6-digit
2839
+ // number, whereas the result of stripping is only 5 digits.
2840
+ byNumber.setNationalNumber(812345);
2841
+ assertTrue(byNumber.equals(phoneUtil.parse('812345', RegionCode.BY)));
2842
+
2843
+ // The prefix gets stripped, since only 6-digit numbers are possible.
2844
+ byNumber.setNationalNumber(123456);
2845
+ assertTrue(byNumber.equals(phoneUtil.parse('8123456', RegionCode.BY)));
2846
+ }
2847
+
2848
+ function testParseExtensions() {
2849
+ /** @type {i18n.phonenumbers.PhoneNumber} */
2850
+ var nzNumber = new i18n.phonenumbers.PhoneNumber();
2851
+ nzNumber.setCountryCode(64);
2852
+ nzNumber.setNationalNumber(33316005);
2853
+ nzNumber.setExtension('3456');
2854
+ assertTrue(nzNumber.equals(
2855
+ phoneUtil.parse('03 331 6005 ext 3456', RegionCode.NZ)));
2856
+ assertTrue(nzNumber.equals(
2857
+ phoneUtil.parse('03-3316005x3456', RegionCode.NZ)));
2858
+ assertTrue(nzNumber.equals(
2859
+ phoneUtil.parse('03-3316005 int.3456', RegionCode.NZ)));
2860
+ assertTrue(nzNumber.equals(
2861
+ phoneUtil.parse('03 3316005 #3456', RegionCode.NZ)));
2862
+
2863
+ // Test the following do not extract extensions:
2864
+ assertTrue(ALPHA_NUMERIC_NUMBER.equals(
2865
+ phoneUtil.parse('1800 six-flags', RegionCode.US)));
2866
+ assertTrue(ALPHA_NUMERIC_NUMBER.equals(
2867
+ phoneUtil.parse('1800 SIX FLAGS', RegionCode.US)));
2868
+ assertTrue(ALPHA_NUMERIC_NUMBER.equals(
2869
+ phoneUtil.parse('0~0 1800 7493 5247', RegionCode.PL)));
2870
+ assertTrue(ALPHA_NUMERIC_NUMBER.equals(
2871
+ phoneUtil.parse('(1800) 7493.5247', RegionCode.US)));
2872
+
2873
+ // Check that the last instance of an extension token is matched.
2874
+ /** @type {i18n.phonenumbers.PhoneNumber} */
2875
+ var extnNumber = ALPHA_NUMERIC_NUMBER.clone();
2876
+ extnNumber.setExtension('1234');
2877
+ assertTrue(extnNumber.equals(
2878
+ phoneUtil.parse('0~0 1800 7493 5247 ~1234', RegionCode.PL)));
2879
+
2880
+ // Verifying bug-fix where the last digit of a number was previously omitted
2881
+ // if it was a 0 when extracting the extension. Also verifying a few different
2882
+ // cases of extensions.
2883
+ /** @type {i18n.phonenumbers.PhoneNumber} */
2884
+ var ukNumber = new i18n.phonenumbers.PhoneNumber();
2885
+ ukNumber.setCountryCode(44);
2886
+ ukNumber.setNationalNumber(2034567890);
2887
+ ukNumber.setExtension('456');
2888
+ assertTrue(ukNumber.equals(
2889
+ phoneUtil.parse('+44 2034567890x456', RegionCode.NZ)));
2890
+ assertTrue(ukNumber.equals(
2891
+ phoneUtil.parse('+44 2034567890x456', RegionCode.GB)));
2892
+ assertTrue(ukNumber.equals(
2893
+ phoneUtil.parse('+44 2034567890 x456', RegionCode.GB)));
2894
+ assertTrue(ukNumber.equals(
2895
+ phoneUtil.parse('+44 2034567890 X456', RegionCode.GB)));
2896
+ assertTrue(ukNumber.equals(
2897
+ phoneUtil.parse('+44 2034567890 X 456', RegionCode.GB)));
2898
+ assertTrue(ukNumber.equals(
2899
+ phoneUtil.parse('+44 2034567890 X 456', RegionCode.GB)));
2900
+ assertTrue(ukNumber.equals(
2901
+ phoneUtil.parse('+44 2034567890 x 456 ', RegionCode.GB)));
2902
+ assertTrue(ukNumber.equals(
2903
+ phoneUtil.parse('+44 2034567890 X 456', RegionCode.GB)));
2904
+ assertTrue(ukNumber.equals(
2905
+ phoneUtil.parse('+44-2034567890;ext=456', RegionCode.GB)));
2906
+ assertTrue(ukNumber.equals(
2907
+ phoneUtil.parse('tel:2034567890;ext=456;phone-context=+44',
2908
+ RegionCode.ZZ)));
2909
+ // Full-width extension, 'extn' only.
2910
+ assertTrue(ukNumber.equals(
2911
+ phoneUtil.parse('+442034567890\uFF45\uFF58\uFF54\uFF4E456',
2912
+ RegionCode.GB)));
2913
+ // 'xtn' only.
2914
+ assertTrue(ukNumber.equals(
2915
+ phoneUtil.parse('+442034567890\uFF58\uFF54\uFF4E456', RegionCode.GB)));
2916
+ // 'xt' only.
2917
+ assertTrue(ukNumber.equals(
2918
+ phoneUtil.parse('+442034567890\uFF58\uFF54456', RegionCode.GB)));
2919
+
2920
+ /** @type {i18n.phonenumbers.PhoneNumber} */
2921
+ var usWithExtension = new i18n.phonenumbers.PhoneNumber();
2922
+ usWithExtension.setCountryCode(1);
2923
+ usWithExtension.setNationalNumber(8009013355);
2924
+ usWithExtension.setExtension('7246433');
2925
+ assertTrue(usWithExtension.equals(
2926
+ phoneUtil.parse('(800) 901-3355 x 7246433', RegionCode.US)));
2927
+ assertTrue(usWithExtension.equals(
2928
+ phoneUtil.parse('(800) 901-3355 , ext 7246433', RegionCode.US)));
2929
+ assertTrue(usWithExtension.equals(
2930
+ phoneUtil.parse('(800) 901-3355 ,extension 7246433', RegionCode.US)));
2931
+ assertTrue(usWithExtension.equals(
2932
+ phoneUtil.parse('(800) 901-3355 ,extensi\u00F3n 7246433',
2933
+ RegionCode.US)));
2934
+ // Repeat with the small letter o with acute accent created by combining
2935
+ // characters.
2936
+ assertTrue(usWithExtension.equals(
2937
+ phoneUtil.parse('(800) 901-3355 ,extensio\u0301n 7246433',
2938
+ RegionCode.US)));
2939
+ assertTrue(usWithExtension.equals(
2940
+ phoneUtil.parse('(800) 901-3355 , 7246433', RegionCode.US)));
2941
+ assertTrue(usWithExtension.equals(
2942
+ phoneUtil.parse('(800) 901-3355 ext: 7246433', RegionCode.US)));
2943
+
2944
+ // Test that if a number has two extensions specified, we ignore the second.
2945
+ /** @type {i18n.phonenumbers.PhoneNumber} */
2946
+ var usWithTwoExtensionsNumber = new i18n.phonenumbers.PhoneNumber();
2947
+ usWithTwoExtensionsNumber.setCountryCode(1);
2948
+ usWithTwoExtensionsNumber.setNationalNumber(2121231234);
2949
+ usWithTwoExtensionsNumber.setExtension('508');
2950
+ assertTrue(usWithTwoExtensionsNumber.equals(
2951
+ phoneUtil.parse('(212)123-1234 x508/x1234', RegionCode.US)));
2952
+ assertTrue(usWithTwoExtensionsNumber.equals(
2953
+ phoneUtil.parse('(212)123-1234 x508/ x1234', RegionCode.US)));
2954
+ assertTrue(usWithTwoExtensionsNumber.equals(
2955
+ phoneUtil.parse('(212)123-1234 x508\\x1234', RegionCode.US)));
2956
+
2957
+ // Test parsing numbers in the form (645) 123-1234-910# works, where the last
2958
+ // 3 digits before the # are an extension.
2959
+ usWithExtension = new i18n.phonenumbers.PhoneNumber();
2960
+ usWithExtension.setCountryCode(1);
2961
+ usWithExtension.setNationalNumber(6451231234);
2962
+ usWithExtension.setExtension('910');
2963
+ assertTrue(usWithExtension.equals(
2964
+ phoneUtil.parse('+1 (645) 123 1234-910#', RegionCode.US)));
2965
+ // Retry with the same number in a slightly different format.
2966
+ assertTrue(usWithExtension.equals(
2967
+ phoneUtil.parse('+1 (645) 123 1234 ext. 910#', RegionCode.US)));
2968
+ }
2969
+
2970
+ function testParseAndKeepRaw() {
2971
+ var CCS = i18n.phonenumbers.PhoneNumber.CountryCodeSource;
2972
+ /** @type {i18n.phonenumbers.PhoneNumber} */
2973
+ var alphaNumericNumber = ALPHA_NUMERIC_NUMBER.clone();
2974
+ alphaNumericNumber.setRawInput('800 six-flags');
2975
+ alphaNumericNumber.setCountryCodeSource(CCS.FROM_DEFAULT_COUNTRY);
2976
+ alphaNumericNumber.setPreferredDomesticCarrierCode('');
2977
+ assertTrue(alphaNumericNumber.equals(
2978
+ phoneUtil.parseAndKeepRawInput('800 six-flags', RegionCode.US)));
2979
+
2980
+ /** @type {i18n.phonenumbers.PhoneNumber} */
2981
+ var shorterAlphaNumber = new i18n.phonenumbers.PhoneNumber();
2982
+ shorterAlphaNumber.setCountryCode(1);
2983
+ shorterAlphaNumber.setNationalNumber(8007493524);
2984
+ shorterAlphaNumber.setRawInput('1800 six-flag');
2985
+ shorterAlphaNumber.setCountryCodeSource(CCS.FROM_NUMBER_WITHOUT_PLUS_SIGN);
2986
+ shorterAlphaNumber.setPreferredDomesticCarrierCode('');
2987
+ assertTrue(shorterAlphaNumber.equals(
2988
+ phoneUtil.parseAndKeepRawInput('1800 six-flag', RegionCode.US)));
2989
+
2990
+ shorterAlphaNumber.setRawInput('+1800 six-flag');
2991
+ shorterAlphaNumber.setCountryCodeSource(CCS.FROM_NUMBER_WITH_PLUS_SIGN);
2992
+ assertTrue(shorterAlphaNumber.equals(
2993
+ phoneUtil.parseAndKeepRawInput('+1800 six-flag', RegionCode.NZ)));
2994
+
2995
+ alphaNumericNumber.setCountryCode(1);
2996
+ alphaNumericNumber.setNationalNumber(8007493524);
2997
+ alphaNumericNumber.setRawInput('001800 six-flag');
2998
+ alphaNumericNumber.setCountryCodeSource(CCS.FROM_NUMBER_WITH_IDD);
2999
+ assertTrue(alphaNumericNumber.equals(
3000
+ phoneUtil.parseAndKeepRawInput('001800 six-flag', RegionCode.NZ)));
3001
+
3002
+ // Invalid region code supplied.
3003
+ try {
3004
+ phoneUtil.parseAndKeepRawInput('123 456 7890', RegionCode.CS);
3005
+ fail('Deprecated region code not allowed: should fail.');
3006
+ } catch (e) {
3007
+ // Expected this exception.
3008
+ assertEquals('Wrong error type stored in exception.',
3009
+ i18n.phonenumbers.Error.INVALID_COUNTRY_CODE,
3010
+ e);
3011
+ }
3012
+
3013
+ /** @type {i18n.phonenumbers.PhoneNumber} */
3014
+ var koreanNumber = new i18n.phonenumbers.PhoneNumber();
3015
+ koreanNumber.setCountryCode(82);
3016
+ koreanNumber.setNationalNumber(22123456);
3017
+ koreanNumber.setRawInput('08122123456');
3018
+ koreanNumber.setCountryCodeSource(CCS.FROM_DEFAULT_COUNTRY);
3019
+ koreanNumber.setPreferredDomesticCarrierCode('81');
3020
+ assertTrue(koreanNumber.equals(
3021
+ phoneUtil.parseAndKeepRawInput('08122123456', RegionCode.KR)));
3022
+ }
3023
+
3024
+ function testParseItalianLeadingZeros() {
3025
+ // Test the number "011".
3026
+ /** @type {i18n.phonenumbers.PhoneNumber} */
3027
+ var oneZero = new i18n.phonenumbers.PhoneNumber();
3028
+ oneZero.setCountryCode(61);
3029
+ oneZero.setNationalNumber(11);
3030
+ oneZero.setItalianLeadingZero(true);
3031
+ assertTrue(oneZero.equals(phoneUtil.parse('011', RegionCode.AU)));
3032
+
3033
+ // Test the number "001".
3034
+ /** @type {i18n.phonenumbers.PhoneNumber} */
3035
+ var twoZeros = new i18n.phonenumbers.PhoneNumber();
3036
+ twoZeros.setCountryCode(61);
3037
+ twoZeros.setNationalNumber(1);
3038
+ twoZeros.setItalianLeadingZero(true);
3039
+ twoZeros.setNumberOfLeadingZeros(2);
3040
+ assertTrue(twoZeros.equals(phoneUtil.parse('001', RegionCode.AU)));
3041
+
3042
+ // Test the number "000". This number has 2 leading zeros.
3043
+ /** @type {i18n.phonenumbers.PhoneNumber} */
3044
+ var stillTwoZeros = new i18n.phonenumbers.PhoneNumber();
3045
+ stillTwoZeros.setCountryCode(61);
3046
+ stillTwoZeros.setNationalNumber(0);
3047
+ stillTwoZeros.setItalianLeadingZero(true);
3048
+ stillTwoZeros.setNumberOfLeadingZeros(2);
3049
+ assertTrue(stillTwoZeros.equals(phoneUtil.parse('000', RegionCode.AU)));
3050
+
3051
+ // Test the number "0000". This number has 3 leading zeros.
3052
+ /** @type {i18n.phonenumbers.PhoneNumber} */
3053
+ var threeZeros = new i18n.phonenumbers.PhoneNumber();
3054
+ threeZeros.setCountryCode(61);
3055
+ threeZeros.setNationalNumber(0);
3056
+ threeZeros.setItalianLeadingZero(true);
3057
+ threeZeros.setNumberOfLeadingZeros(3);
3058
+ assertTrue(threeZeros.equals(phoneUtil.parse('0000', RegionCode.AU)));
3059
+ }
3060
+
3061
+ function testCountryWithNoNumberDesc() {
3062
+ var PNF = i18n.phonenumbers.PhoneNumberFormat;
3063
+ var PNT = i18n.phonenumbers.PhoneNumberType;
3064
+ // Andorra is a country where we don't have PhoneNumberDesc info in the
3065
+ // metadata.
3066
+ /** @type {i18n.phonenumbers.PhoneNumber} */
3067
+ var adNumber = new i18n.phonenumbers.PhoneNumber();
3068
+ adNumber.setCountryCode(376);
3069
+ adNumber.setNationalNumber(12345);
3070
+ assertEquals('+376 12345', phoneUtil.format(adNumber, PNF.INTERNATIONAL));
3071
+ assertEquals('+37612345', phoneUtil.format(adNumber, PNF.E164));
3072
+ assertEquals('12345', phoneUtil.format(adNumber, PNF.NATIONAL));
3073
+ assertEquals(PNT.UNKNOWN, phoneUtil.getNumberType(adNumber));
3074
+ assertFalse(phoneUtil.isValidNumber(adNumber));
3075
+
3076
+ // Test dialing a US number from within Andorra.
3077
+ assertEquals('00 1 650 253 0000',
3078
+ phoneUtil.formatOutOfCountryCallingNumber(US_NUMBER,
3079
+ RegionCode.AD));
3080
+ }
3081
+
3082
+ function testUnknownCountryCallingCode() {
3083
+ var PNF = i18n.phonenumbers.PhoneNumberFormat;
3084
+ assertFalse(phoneUtil.isValidNumber(UNKNOWN_COUNTRY_CODE_NO_RAW_INPUT));
3085
+ // It's not very well defined as to what the E164 representation for a number
3086
+ // with an invalid country calling code is, but just prefixing the country
3087
+ // code and national number is about the best we can do.
3088
+ assertEquals('+212345',
3089
+ phoneUtil.format(UNKNOWN_COUNTRY_CODE_NO_RAW_INPUT, PNF.E164));
3090
+ }
3091
+
3092
+ function testIsNumberMatchMatches() {
3093
+ // Test simple matches where formatting is different, or leading zeros, or
3094
+ // country calling code has been specified.
3095
+ /** @type {i18n.phonenumbers.PhoneNumber} */
3096
+ var num1 = phoneUtil.parse('+64 3 331 6005', RegionCode.NZ);
3097
+ /** @type {i18n.phonenumbers.PhoneNumber} */
3098
+ var num2 = phoneUtil.parse('+64 03 331 6005', RegionCode.NZ);
3099
+ assertEquals(i18n.phonenumbers.PhoneNumberUtil.MatchType.EXACT_MATCH,
3100
+ phoneUtil.isNumberMatch(num1, num2));
3101
+ assertEquals(i18n.phonenumbers.PhoneNumberUtil.MatchType.EXACT_MATCH,
3102
+ phoneUtil.isNumberMatch('+64 3 331 6005', '+64 03 331 6005'));
3103
+ assertEquals(i18n.phonenumbers.PhoneNumberUtil.MatchType.EXACT_MATCH,
3104
+ phoneUtil.isNumberMatch('+800 1234 5678', '+80012345678'));
3105
+ assertEquals(i18n.phonenumbers.PhoneNumberUtil.MatchType.EXACT_MATCH,
3106
+ phoneUtil.isNumberMatch('+64 03 331-6005', '+64 03331 6005'));
3107
+ assertEquals(i18n.phonenumbers.PhoneNumberUtil.MatchType.EXACT_MATCH,
3108
+ phoneUtil.isNumberMatch('+643 331-6005', '+64033316005'));
3109
+ assertEquals(i18n.phonenumbers.PhoneNumberUtil.MatchType.EXACT_MATCH,
3110
+ phoneUtil.isNumberMatch('+643 331-6005', '+6433316005'));
3111
+ assertEquals(i18n.phonenumbers.PhoneNumberUtil.MatchType.EXACT_MATCH,
3112
+ phoneUtil.isNumberMatch('+64 3 331-6005', '+6433316005'));
3113
+ assertEquals(i18n.phonenumbers.PhoneNumberUtil.MatchType.EXACT_MATCH,
3114
+ phoneUtil.isNumberMatch('+64 3 331-6005',
3115
+ 'tel:+64-3-331-6005;isub=123'));
3116
+ // Test alpha numbers.
3117
+ assertEquals(i18n.phonenumbers.PhoneNumberUtil.MatchType.EXACT_MATCH,
3118
+ phoneUtil.isNumberMatch('+1800 siX-Flags', '+1 800 7493 5247'));
3119
+ // Test numbers with extensions.
3120
+ assertEquals(i18n.phonenumbers.PhoneNumberUtil.MatchType.EXACT_MATCH,
3121
+ phoneUtil.isNumberMatch('+64 3 331-6005 extn 1234',
3122
+ '+6433316005#1234'));
3123
+ // Test proto buffers.
3124
+ assertEquals(i18n.phonenumbers.PhoneNumberUtil.MatchType.EXACT_MATCH,
3125
+ phoneUtil.isNumberMatch(NZ_NUMBER, '+6403 331 6005'));
3126
+
3127
+ /** @type {i18n.phonenumbers.PhoneNumber} */
3128
+ var nzNumber = NZ_NUMBER.clone();
3129
+ nzNumber.setExtension('3456');
3130
+ assertEquals(i18n.phonenumbers.PhoneNumberUtil.MatchType.EXACT_MATCH,
3131
+ phoneUtil.isNumberMatch(nzNumber, '+643 331 6005 ext 3456'));
3132
+ // Check empty extensions are ignored.
3133
+ nzNumber.setExtension('');
3134
+ assertEquals(i18n.phonenumbers.PhoneNumberUtil.MatchType.EXACT_MATCH,
3135
+ phoneUtil.isNumberMatch(nzNumber, '+6403 331 6005'));
3136
+ // Check variant with two proto buffers.
3137
+ assertEquals('Numbers did not match',
3138
+ i18n.phonenumbers.PhoneNumberUtil.MatchType.EXACT_MATCH,
3139
+ phoneUtil.isNumberMatch(nzNumber, NZ_NUMBER));
3140
+
3141
+ var CCS = i18n.phonenumbers.PhoneNumber.CountryCodeSource;
3142
+ // Check raw_input, country_code_source and preferred_domestic_carrier_code
3143
+ // are ignored.
3144
+ /** @type {i18n.phonenumbers.PhoneNumber} */
3145
+ var brNumberOne = new i18n.phonenumbers.PhoneNumber();
3146
+ /** @type {i18n.phonenumbers.PhoneNumber} */
3147
+ var brNumberTwo = new i18n.phonenumbers.PhoneNumber();
3148
+ brNumberOne.setCountryCode(55);
3149
+ brNumberOne.setNationalNumber(3121286979);
3150
+ brNumberOne.setCountryCodeSource(CCS.FROM_NUMBER_WITH_PLUS_SIGN);
3151
+ brNumberOne.setPreferredDomesticCarrierCode('12');
3152
+ brNumberOne.setRawInput('012 3121286979');
3153
+ brNumberTwo.setCountryCode(55);
3154
+ brNumberTwo.setNationalNumber(3121286979);
3155
+ brNumberTwo.setCountryCodeSource(CCS.FROM_DEFAULT_COUNTRY);
3156
+ brNumberTwo.setPreferredDomesticCarrierCode('14');
3157
+ brNumberTwo.setRawInput('143121286979');
3158
+ assertEquals(i18n.phonenumbers.PhoneNumberUtil.MatchType.EXACT_MATCH,
3159
+ phoneUtil.isNumberMatch(brNumberOne, brNumberTwo));
3160
+ }
3161
+
3162
+ function testIsNumberMatchNonMatches() {
3163
+ // Non-matches.
3164
+ assertEquals(i18n.phonenumbers.PhoneNumberUtil.MatchType.NO_MATCH,
3165
+ phoneUtil.isNumberMatch('03 331 6005', '03 331 6006'));
3166
+ assertEquals(i18n.phonenumbers.PhoneNumberUtil.MatchType.NO_MATCH,
3167
+ phoneUtil.isNumberMatch('+800 1234 5678', '+1 800 1234 5678'));
3168
+ // Different country calling code, partial number match.
3169
+ assertEquals(i18n.phonenumbers.PhoneNumberUtil.MatchType.NO_MATCH,
3170
+ phoneUtil.isNumberMatch('+64 3 331-6005', '+16433316005'));
3171
+ // Different country calling code, same number.
3172
+ assertEquals(i18n.phonenumbers.PhoneNumberUtil.MatchType.NO_MATCH,
3173
+ phoneUtil.isNumberMatch('+64 3 331-6005', '+6133316005'));
3174
+ // Extension different, all else the same.
3175
+ assertEquals(i18n.phonenumbers.PhoneNumberUtil.MatchType.NO_MATCH,
3176
+ phoneUtil.isNumberMatch('+64 3 331-6005 extn 1234',
3177
+ '0116433316005#1235'));
3178
+ assertEquals(i18n.phonenumbers.PhoneNumberUtil.MatchType.NO_MATCH,
3179
+ phoneUtil.isNumberMatch('+64 3 331-6005 extn 1234',
3180
+ 'tel:+64-3-331-6005;ext=1235'));
3181
+ // NSN matches, but extension is different - not the same number.
3182
+ assertEquals(i18n.phonenumbers.PhoneNumberUtil.MatchType.NO_MATCH,
3183
+ phoneUtil.isNumberMatch('+64 3 331-6005 ext.1235',
3184
+ '3 331 6005#1234'));
3185
+
3186
+ // Invalid numbers that can't be parsed.
3187
+ assertEquals(i18n.phonenumbers.PhoneNumberUtil.MatchType.NOT_A_NUMBER,
3188
+ phoneUtil.isNumberMatch('4', '3 331 6043'));
3189
+ assertEquals(i18n.phonenumbers.PhoneNumberUtil.MatchType.NOT_A_NUMBER,
3190
+ phoneUtil.isNumberMatch('+43', '+64 3 331 6005'));
3191
+ assertEquals(i18n.phonenumbers.PhoneNumberUtil.MatchType.NOT_A_NUMBER,
3192
+ phoneUtil.isNumberMatch('+43', '64 3 331 6005'));
3193
+ assertEquals(i18n.phonenumbers.PhoneNumberUtil.MatchType.NOT_A_NUMBER,
3194
+ phoneUtil.isNumberMatch('Dog', '64 3 331 6005'));
3195
+ }
3196
+
3197
+ function testIsNumberMatchNsnMatches() {
3198
+ // NSN matches.
3199
+ assertEquals(i18n.phonenumbers.PhoneNumberUtil.MatchType.NSN_MATCH,
3200
+ phoneUtil.isNumberMatch('+64 3 331-6005', '03 331 6005'));
3201
+ assertEquals(i18n.phonenumbers.PhoneNumberUtil.MatchType.NSN_MATCH,
3202
+ phoneUtil.isNumberMatch('+64 3 331-6005',
3203
+ 'tel:03-331-6005;isub=1234;phone-context=abc.nz'));
3204
+ assertEquals(i18n.phonenumbers.PhoneNumberUtil.MatchType.NSN_MATCH,
3205
+ phoneUtil.isNumberMatch(NZ_NUMBER, '03 331 6005'));
3206
+ // Here the second number possibly starts with the country calling code for
3207
+ // New Zealand, although we are unsure.
3208
+ /** @type {i18n.phonenumbers.PhoneNumber} */
3209
+ var unchangedNzNumber = NZ_NUMBER.clone();
3210
+ assertEquals(i18n.phonenumbers.PhoneNumberUtil.MatchType.NSN_MATCH,
3211
+ phoneUtil.isNumberMatch(unchangedNzNumber, '(64-3) 331 6005'));
3212
+ // Check the phone number proto was not edited during the method call.
3213
+ assertTrue(NZ_NUMBER.equals(unchangedNzNumber));
3214
+
3215
+ // Here, the 1 might be a national prefix, if we compare it to the US number,
3216
+ // so the resultant match is an NSN match.
3217
+ assertEquals(i18n.phonenumbers.PhoneNumberUtil.MatchType.NSN_MATCH,
3218
+ phoneUtil.isNumberMatch(US_NUMBER, '1-650-253-0000'));
3219
+ assertEquals(i18n.phonenumbers.PhoneNumberUtil.MatchType.NSN_MATCH,
3220
+ phoneUtil.isNumberMatch(US_NUMBER, '6502530000'));
3221
+ assertEquals(i18n.phonenumbers.PhoneNumberUtil.MatchType.NSN_MATCH,
3222
+ phoneUtil.isNumberMatch('+1 650-253 0000', '1 650 253 0000'));
3223
+ assertEquals(i18n.phonenumbers.PhoneNumberUtil.MatchType.NSN_MATCH,
3224
+ phoneUtil.isNumberMatch('1 650-253 0000', '1 650 253 0000'));
3225
+ assertEquals(i18n.phonenumbers.PhoneNumberUtil.MatchType.NSN_MATCH,
3226
+ phoneUtil.isNumberMatch('1 650-253 0000', '+1 650 253 0000'));
3227
+ // For this case, the match will be a short NSN match, because we cannot
3228
+ // assume that the 1 might be a national prefix, so don't remove it when
3229
+ // parsing.
3230
+ /** @type {i18n.phonenumbers.PhoneNumber} */
3231
+ var randomNumber = new i18n.phonenumbers.PhoneNumber();
3232
+ randomNumber.setCountryCode(41);
3233
+ randomNumber.setNationalNumber(6502530000);
3234
+ assertEquals(i18n.phonenumbers.PhoneNumberUtil.MatchType.SHORT_NSN_MATCH,
3235
+ phoneUtil.isNumberMatch(randomNumber, '1-650-253-0000'));
3236
+ }
3237
+
3238
+ function testIsNumberMatchShortNsnMatches() {
3239
+ // Short NSN matches with the country not specified for either one or both
3240
+ // numbers.
3241
+ assertEquals(i18n.phonenumbers.PhoneNumberUtil.MatchType.SHORT_NSN_MATCH,
3242
+ phoneUtil.isNumberMatch('+64 3 331-6005', '331 6005'));
3243
+ assertEquals(i18n.phonenumbers.PhoneNumberUtil.MatchType.SHORT_NSN_MATCH,
3244
+ phoneUtil.isNumberMatch('+64 3 331-6005',
3245
+ 'tel:331-6005;phone-context=abc.nz'));
3246
+ assertEquals(i18n.phonenumbers.PhoneNumberUtil.MatchType.SHORT_NSN_MATCH,
3247
+ phoneUtil.isNumberMatch(
3248
+ '+64 3 331-6005',
3249
+ 'tel:331-6005;isub=1234;phone-context=abc.nz'));
3250
+ assertEquals(i18n.phonenumbers.PhoneNumberUtil.MatchType.SHORT_NSN_MATCH,
3251
+ phoneUtil.isNumberMatch(
3252
+ '+64 3 331-6005',
3253
+ 'tel:331-6005;isub=1234;phone-context=abc.nz;a=%A1'));
3254
+ // We did not know that the '0' was a national prefix since neither number has
3255
+ // a country code, so this is considered a SHORT_NSN_MATCH.
3256
+ assertEquals(i18n.phonenumbers.PhoneNumberUtil.MatchType.SHORT_NSN_MATCH,
3257
+ phoneUtil.isNumberMatch('3 331-6005', '03 331 6005'));
3258
+ assertEquals(i18n.phonenumbers.PhoneNumberUtil.MatchType.SHORT_NSN_MATCH,
3259
+ phoneUtil.isNumberMatch('3 331-6005', '331 6005'));
3260
+ assertEquals(i18n.phonenumbers.PhoneNumberUtil.MatchType.SHORT_NSN_MATCH,
3261
+ phoneUtil.isNumberMatch('3 331-6005',
3262
+ 'tel:331-6005;phone-context=abc.nz'));
3263
+ assertEquals(i18n.phonenumbers.PhoneNumberUtil.MatchType.SHORT_NSN_MATCH,
3264
+ phoneUtil.isNumberMatch('3 331-6005', '+64 331 6005'));
3265
+ // Short NSN match with the country specified.
3266
+ assertEquals(i18n.phonenumbers.PhoneNumberUtil.MatchType.SHORT_NSN_MATCH,
3267
+ phoneUtil.isNumberMatch('03 331-6005', '331 6005'));
3268
+ assertEquals(i18n.phonenumbers.PhoneNumberUtil.MatchType.SHORT_NSN_MATCH,
3269
+ phoneUtil.isNumberMatch('1 234 345 6789', '345 6789'));
3270
+ assertEquals(i18n.phonenumbers.PhoneNumberUtil.MatchType.SHORT_NSN_MATCH,
3271
+ phoneUtil.isNumberMatch('+1 (234) 345 6789', '345 6789'));
3272
+ // NSN matches, country calling code omitted for one number, extension missing
3273
+ // for one.
3274
+ assertEquals(i18n.phonenumbers.PhoneNumberUtil.MatchType.SHORT_NSN_MATCH,
3275
+ phoneUtil.isNumberMatch('+64 3 331-6005', '3 331 6005#1234'));
3276
+ // One has Italian leading zero, one does not.
3277
+ /** @type {i18n.phonenumbers.PhoneNumber} */
3278
+ var italianNumberOne = new i18n.phonenumbers.PhoneNumber();
3279
+ italianNumberOne.setCountryCode(39);
3280
+ italianNumberOne.setNationalNumber(1234);
3281
+ italianNumberOne.setItalianLeadingZero(true);
3282
+ /** @type {i18n.phonenumbers.PhoneNumber} */
3283
+ var italianNumberTwo = new i18n.phonenumbers.PhoneNumber();
3284
+ italianNumberTwo.setCountryCode(39);
3285
+ italianNumberTwo.setNationalNumber(1234);
3286
+ assertEquals(i18n.phonenumbers.PhoneNumberUtil.MatchType.SHORT_NSN_MATCH,
3287
+ phoneUtil.isNumberMatch(italianNumberOne, italianNumberTwo));
3288
+ // One has an extension, the other has an extension of ''.
3289
+ italianNumberOne.setExtension('1234');
3290
+ italianNumberOne.clearItalianLeadingZero();
3291
+ italianNumberTwo.setExtension('');
3292
+ assertEquals(i18n.phonenumbers.PhoneNumberUtil.MatchType.SHORT_NSN_MATCH,
3293
+ phoneUtil.isNumberMatch(italianNumberOne, italianNumberTwo));
3294
+ }
3295
+
3296
+ function testCanBeInternationallyDialled() {
3297
+ // We have no-international-dialling rules for the US in our test metadata
3298
+ // that say that toll-free numbers cannot be dialled internationally.
3299
+ assertFalse(phoneUtil.canBeInternationallyDialled(US_TOLLFREE));
3300
+
3301
+ // Normal US numbers can be internationally dialled.
3302
+ assertTrue(phoneUtil.canBeInternationallyDialled(US_NUMBER));
3303
+
3304
+ // Invalid number.
3305
+ assertTrue(phoneUtil.canBeInternationallyDialled(US_LOCAL_NUMBER));
3306
+
3307
+ // We have no data for NZ - should return true.
3308
+ assertTrue(phoneUtil.canBeInternationallyDialled(NZ_NUMBER));
3309
+ assertTrue(phoneUtil.canBeInternationallyDialled(INTERNATIONAL_TOLL_FREE));
3310
+ }
3311
+
3312
+ function testIsAlphaNumber() {
3313
+ assertTrue(phoneUtil.isAlphaNumber('1800 six-flags'));
3314
+ assertTrue(phoneUtil.isAlphaNumber('1800 six-flags ext. 1234'));
3315
+ assertTrue(phoneUtil.isAlphaNumber('+800 six-flags'));
3316
+ assertTrue(phoneUtil.isAlphaNumber('180 six-flags'));
3317
+ assertFalse(phoneUtil.isAlphaNumber('1800 123-1234'));
3318
+ assertFalse(phoneUtil.isAlphaNumber('1 six-flags'));
3319
+ assertFalse(phoneUtil.isAlphaNumber('18 six-flags'));
3320
+ assertFalse(phoneUtil.isAlphaNumber('1800 123-1234 extension: 1234'));
3321
+ assertFalse(phoneUtil.isAlphaNumber('+800 1234-1234'));
3322
+ }