File Coverage

blib/lib/Number/Phone/StubCountry/MM.pm
Criterion Covered Total %
statement 20 20 100.0
branch 3 4 75.0
condition n/a
subroutine 5 5 100.0
pod 1 1 100.0
total 29 30 96.6


line stmt bran cond sub pod time code
1             # automatically generated file, don't edit
2              
3              
4              
5             # Copyright 2023 David Cantrell, derived from data from libphonenumber
6             # http://code.google.com/p/libphonenumber/
7             #
8             # Licensed under the Apache License, Version 2.0 (the "License");
9             # you may not use this file except in compliance with the License.
10             # You may obtain a copy of the License at
11             #
12             # http://www.apache.org/licenses/LICENSE-2.0
13             #
14             # Unless required by applicable law or agreed to in writing, software
15             # distributed under the License is distributed on an "AS IS" BASIS,
16             # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17             # See the License for the specific language governing permissions and
18             # limitations under the License.
19             package Number::Phone::StubCountry::MM;
20 2     2   1352 use base qw(Number::Phone::StubCountry);
  2         9  
  2         220  
21              
22 2     2   14 use strict;
  2         6  
  2         45  
23 2     2   11 use warnings;
  2         6  
  2         46  
24 2     2   11 use utf8;
  2         5  
  2         11  
25             our $VERSION = 1.20230903131448;
26              
27             my $formatters = [
28             {
29             'format' => '$1 $2 $3',
30             'leading_digits' => '
31             16|
32             2
33             ',
34             'national_rule' => '0$1',
35             'pattern' => '(\\d)(\\d{2})(\\d{3})'
36             },
37             {
38             'format' => '$1 $2 $3',
39             'leading_digits' => '
40             [45]|
41             6(?:
42             0[23]|
43             [1-689]|
44             7[235-7]
45             )|
46             7(?:
47             [0-4]|
48             5[2-7]
49             )|
50             8[1-6]
51             ',
52             'national_rule' => '0$1',
53             'pattern' => '(\\d{2})(\\d{2})(\\d{3})'
54             },
55             {
56             'format' => '$1 $2 $3',
57             'leading_digits' => '[12]',
58             'national_rule' => '0$1',
59             'pattern' => '(\\d)(\\d{3})(\\d{3,4})'
60             },
61             {
62             'format' => '$1 $2 $3',
63             'leading_digits' => '
64             [4-7]|
65             8[1-35]
66             ',
67             'national_rule' => '0$1',
68             'pattern' => '(\\d{2})(\\d{3})(\\d{3,4})'
69             },
70             {
71             'format' => '$1 $2 $3',
72             'leading_digits' => '
73             9(?:
74             2[0-4]|
75             [35-9]|
76             4[137-9]
77             )
78             ',
79             'national_rule' => '0$1',
80             'pattern' => '(\\d)(\\d{3})(\\d{4,6})'
81             },
82             {
83             'format' => '$1 $2 $3',
84             'leading_digits' => '2',
85             'national_rule' => '0$1',
86             'pattern' => '(\\d)(\\d{4})(\\d{4})'
87             },
88             {
89             'format' => '$1 $2 $3',
90             'leading_digits' => '8',
91             'national_rule' => '0$1',
92             'pattern' => '(\\d{3})(\\d{3})(\\d{4})'
93             },
94             {
95             'format' => '$1 $2 $3 $4',
96             'leading_digits' => '92',
97             'national_rule' => '0$1',
98             'pattern' => '(\\d)(\\d{3})(\\d{3})(\\d{3})'
99             },
100             {
101             'format' => '$1 $2 $3',
102             'leading_digits' => '9',
103             'national_rule' => '0$1',
104             'pattern' => '(\\d)(\\d{5})(\\d{4})'
105             }
106             ];
107              
108             my $validators = {
109             'fixed_line' => '
110             (?:
111             1(?:
112             (?:
113             2\\d|
114             3[56]|
115             [89][0-6]
116             )\\d|
117             4(?:
118             2[29]|
119             62|
120             7[0-2]|
121             83
122             )|
123             6
124             )|
125             2(?:
126             2(?:
127             00|
128             8[34]
129             )|
130             4(?:
131             0\\d|
132             [26]2|
133             7[0-2]|
134             83
135             )|
136             51\\d\\d
137             )|
138             4(?:
139             2(?:
140             2\\d\\d|
141             48[013]
142             )|
143             3(?:
144             20\\d|
145             4(?:
146             70|
147             83
148             )|
149             56
150             )|
151             420\\d|
152             5470
153             )|
154             6(?:
155             0(?:
156             [23]|
157             88\\d
158             )|
159             (?:
160             124|
161             [56]2\\d
162             )\\d|
163             2472|
164             3(?:
165             20\\d|
166             470
167             )|
168             4(?:
169             2[04]\\d|
170             472
171             )|
172             7(?:
173             (?:
174             3\\d|
175             8[01459]
176             )\\d|
177             4[67]0
178             )
179             )
180             )\\d{4}|
181             5(?:
182             2(?:
183             2\\d{5,6}|
184             47[02]\\d{4}
185             )|
186             (?:
187             3472|
188             4(?:
189             2(?:
190             1|
191             86
192             )|
193             470
194             )|
195             522\\d|
196             6(?:
197             20\\d|
198             483
199             )|
200             7(?:
201             20\\d|
202             48[01]
203             )|
204             8(?:
205             20\\d|
206             47[02]
207             )|
208             9(?:
209             20\\d|
210             470
211             )
212             )\\d{4}
213             )|
214             7(?:
215             (?:
216             0470|
217             4(?:
218             25\\d|
219             470
220             )|
221             5(?:
222             202|
223             470|
224             96\\d
225             )
226             )\\d{4}|
227             1(?:
228             20\\d{4,5}|
229             4(?:
230             70|
231             83
232             )\\d{4}
233             )
234             )|
235             8(?:
236             1(?:
237             2\\d{5,6}|
238             4(?:
239             10|
240             7[01]\\d
241             )\\d{3}
242             )|
243             2(?:
244             2\\d{5,6}|
245             (?:
246             320|
247             490\\d
248             )\\d{3}
249             )|
250             (?:
251             3(?:
252             2\\d\\d|
253             470
254             )|
255             4[24-7]|
256             5(?:
257             (?:
258             2\\d|
259             51
260             )\\d|
261             4(?:
262             [1-35-9]\\d|
263             4[0-57-9]
264             )
265             )|
266             6[23]
267             )\\d{4}
268             )|
269             (?:
270             1[2-6]\\d|
271             4(?:
272             2[24-8]|
273             3[2-7]|
274             [46][2-6]|
275             5[3-5]
276             )|
277             5(?:
278             [27][2-8]|
279             3[2-68]|
280             4[24-8]|
281             5[23]|
282             6[2-4]|
283             8[24-7]|
284             9[2-7]
285             )|
286             6(?:
287             [19]20|
288             42[03-6]|
289             (?:
290             52|
291             7[45]
292             )\\d
293             )|
294             7(?:
295             [04][24-8]|
296             [15][2-7]|
297             22|
298             3[2-4]
299             )|
300             8(?:
301             1[2-689]|
302             2[2-8]|
303             [35]2\\d
304             )
305             )\\d{4}|
306             25\\d{5,6}|
307             (?:
308             2[2-9]|
309             6(?:
310             1[2356]|
311             [24][2-6]|
312             3[24-6]|
313             5[2-4]|
314             6[2-8]|
315             7[235-7]|
316             8[245]|
317             9[24]
318             )|
319             8(?:
320             3[24]|
321             5[245]
322             )
323             )\\d{4}
324             ',
325             'geographic' => '
326             (?:
327             1(?:
328             (?:
329             2\\d|
330             3[56]|
331             [89][0-6]
332             )\\d|
333             4(?:
334             2[29]|
335             62|
336             7[0-2]|
337             83
338             )|
339             6
340             )|
341             2(?:
342             2(?:
343             00|
344             8[34]
345             )|
346             4(?:
347             0\\d|
348             [26]2|
349             7[0-2]|
350             83
351             )|
352             51\\d\\d
353             )|
354             4(?:
355             2(?:
356             2\\d\\d|
357             48[013]
358             )|
359             3(?:
360             20\\d|
361             4(?:
362             70|
363             83
364             )|
365             56
366             )|
367             420\\d|
368             5470
369             )|
370             6(?:
371             0(?:
372             [23]|
373             88\\d
374             )|
375             (?:
376             124|
377             [56]2\\d
378             )\\d|
379             2472|
380             3(?:
381             20\\d|
382             470
383             )|
384             4(?:
385             2[04]\\d|
386             472
387             )|
388             7(?:
389             (?:
390             3\\d|
391             8[01459]
392             )\\d|
393             4[67]0
394             )
395             )
396             )\\d{4}|
397             5(?:
398             2(?:
399             2\\d{5,6}|
400             47[02]\\d{4}
401             )|
402             (?:
403             3472|
404             4(?:
405             2(?:
406             1|
407             86
408             )|
409             470
410             )|
411             522\\d|
412             6(?:
413             20\\d|
414             483
415             )|
416             7(?:
417             20\\d|
418             48[01]
419             )|
420             8(?:
421             20\\d|
422             47[02]
423             )|
424             9(?:
425             20\\d|
426             470
427             )
428             )\\d{4}
429             )|
430             7(?:
431             (?:
432             0470|
433             4(?:
434             25\\d|
435             470
436             )|
437             5(?:
438             202|
439             470|
440             96\\d
441             )
442             )\\d{4}|
443             1(?:
444             20\\d{4,5}|
445             4(?:
446             70|
447             83
448             )\\d{4}
449             )
450             )|
451             8(?:
452             1(?:
453             2\\d{5,6}|
454             4(?:
455             10|
456             7[01]\\d
457             )\\d{3}
458             )|
459             2(?:
460             2\\d{5,6}|
461             (?:
462             320|
463             490\\d
464             )\\d{3}
465             )|
466             (?:
467             3(?:
468             2\\d\\d|
469             470
470             )|
471             4[24-7]|
472             5(?:
473             (?:
474             2\\d|
475             51
476             )\\d|
477             4(?:
478             [1-35-9]\\d|
479             4[0-57-9]
480             )
481             )|
482             6[23]
483             )\\d{4}
484             )|
485             (?:
486             1[2-6]\\d|
487             4(?:
488             2[24-8]|
489             3[2-7]|
490             [46][2-6]|
491             5[3-5]
492             )|
493             5(?:
494             [27][2-8]|
495             3[2-68]|
496             4[24-8]|
497             5[23]|
498             6[2-4]|
499             8[24-7]|
500             9[2-7]
501             )|
502             6(?:
503             [19]20|
504             42[03-6]|
505             (?:
506             52|
507             7[45]
508             )\\d
509             )|
510             7(?:
511             [04][24-8]|
512             [15][2-7]|
513             22|
514             3[2-4]
515             )|
516             8(?:
517             1[2-689]|
518             2[2-8]|
519             [35]2\\d
520             )
521             )\\d{4}|
522             25\\d{5,6}|
523             (?:
524             2[2-9]|
525             6(?:
526             1[2356]|
527             [24][2-6]|
528             3[24-6]|
529             5[2-4]|
530             6[2-8]|
531             7[235-7]|
532             8[245]|
533             9[24]
534             )|
535             8(?:
536             3[24]|
537             5[245]
538             )
539             )\\d{4}
540             ',
541             'mobile' => '
542             (?:
543             17[01]|
544             9(?:
545             2(?:
546             [0-4]|
547             [56]\\d\\d
548             )|
549             (?:
550             3(?:
551             [0-36]|
552             4\\d
553             )|
554             (?:
555             6\\d|
556             8[89]|
557             9[4-8]
558             )\\d|
559             7(?:
560             3|
561             40|
562             [5-9]\\d
563             )
564             )\\d|
565             4(?:
566             (?:
567             [0245]\\d|
568             [1379]
569             )\\d|
570             88
571             )|
572             5[0-6]
573             )\\d
574             )\\d{4}|
575             9[69]1\\d{6}|
576             9(?:
577             [68]\\d|
578             9[089]
579             )\\d{5}
580             ',
581             'pager' => '',
582             'personal_number' => '',
583             'specialrate' => '',
584             'toll_free' => '
585             80080(?:
586             0[1-9]|
587             2\\d
588             )\\d{3}
589             ',
590             'voip' => '
591             1333\\d{4}|
592             [12]468\\d{4}
593             '
594             };
595             my %areanames = ();
596             $areanames{en} = {"951680", "Bayintnaung",
597             "958523", "Pyinoolwin",
598             "9559470", "Dawei",
599             "9571470", "Monywa",
600             "951422", "Yangon",
601             "951688", "Bayintnaung",
602             "9569200", "Aunglan",
603             "951683", "Bayintnaung",
604             "958528", "Pyinoolwin",
605             "956260", "Kanma",
606             "958521", "Pyinoolwin",
607             "9567550", "Naypyidaw",
608             "951685", "Bayintnaung",
609             "9570470", "Hakha",
610             "955851", "Myawaddy",
611             "958141", "Naungtayar",
612             "951681", "Bayintnaung",
613             "958625", "Kyatpyin",
614             "951470", "Yangon",
615             "951465", "Yangon",
616             "9543483", "Sittwe\/Thandwe",
617             "9585440", "Pyinoolwin",
618             "9558470", "Hpa\-An",
619             "951424", "Yangon",
620             "951687", "Bayintnaung",
621             "9553472", "Pyay",
622             "9581471", "Shan\ \(South\)",
623             "958621", "Mogoke",
624             "951426", "Yangon",
625             "958620", "Mogoke",
626             "956124642", "Bagan",
627             "9583470", "Loikaw",
628             "951471", "Yangon",
629             "9564472", "Meiktila",
630             "951429", "Yangon",
631             "9585447", "Pyinoolwin",
632             "95522224", "Bago",
633             "9567470", "Naypyitaw",
634             "956525", "Ngape",
635             "951553", "Bahan",
636             "95522223", "Bago",
637             "9585441", "Pyinoolwin",
638             "9542483", "Ayeyarwaddy\/Pathein",
639             "95812823", "Moenae",
640             "95812824", "Moenae",
641             "951550", "Bahan",
642             "9552472", "Bago",
643             "952472", "Mandalay",
644             "9581470", "Taunggyi",
645             "951551", "Bahan",
646             "956124624", "Chauk",
647             "9585448", "Pyinoolwin",
648             "958546", "Pyinoolwin",
649             "956124623", "Chauk",
650             "9582320", "Manton",
651             "952462", "Mandalay",
652             "955645", "Tandar",
653             "958549", "Pyinoolwin",
654             "9563470", "Magway",
655             "95522221", "Bago",
656             "958635", "Sintkuu",
657             "956324", "Magway",
658             "95256", "Amarapura",
659             "9545470", "Pyapon",
660             "95812821", "Moenae",
661             "958542", "Pyinoolwin",
662             "95642487", "Shawpin",
663             "956124640", "Bagan",
664             "9554470", "Taungoo",
665             "958630", "Thabeikkyin",
666             "956124641", "Bagan",
667             "951483", "Yangon",
668             "951439", "Yangon",
669             "9542480", "Pathein",
670             "958149", "Sesin",
671             "956124644", "Bagan",
672             "958238", "Tantyan",
673             "956124643", "Bagan",
674             "958131", "Loilem",
675             "951686", "Bayintnaung",
676             "9543202", "Rakhine",
677             "958529", "Padaythar\ Myothit",
678             "951462", "Yangon",
679             "9585449", "Pyinoolwin",
680             "9574470", "Myitkyinar\/Bahmaw",
681             "95522222", "Bago",
682             "958130", "Pinlon",
683             "95812822", "Moenae",
684             "9557480", "Mawlamyine\/Thanbyuzayat",
685             "9585442", "Pyinoolwin",
686             "951684", "Bayintnaung",
687             "955620", "Mandalay",
688             "951472", "Yangon",
689             "9558472", "Hpa\-An",
690             "95712032", "Ohbotaung",
691             "956124620", "Chauk",
692             "95522230", "Oathar\ Myothit",
693             "956124621", "Chauk",
694             "952483", "Mandalay",
695             "958551", "Yangon",
696             "952439", "Mandalay",
697             "958522", "Pyinoolwin",
698             "951423", "Yangon",
699             "956940", "Sinpaungwae",
700             "951682", "Bayintnaung",
701             "9562472", "Pakokku",
702             "958541", "Pyinoolwin",
703             "958545", "Pyinoolwin",
704             "9543470", "Sittwe",
705             "952422", "Mandalay",
706             "9543565", "Palatwa",
707             "958543", "Pyinoolwin",
708             "95812820", "Moenae",
709             "958548", "Pyinoolwin",
710             "958540", "Ohn\ Chaw",
711             "9575470", "Shwebo",
712             "952426", "Mandalay",
713             "9585443", "Pyinoolwin",
714             "9567460", "Naypyitaw",
715             "954353", "Buthidaung",
716             "9542481", "Pathein",
717             "9522000", "Mingalar\ Mandalay",
718             "952471", "Mandalay",
719             "956124622", "Chauk",
720             "9556483", "Thanlyin",
721             "9561200", "Chauk",
722             "9571483", "Monywa",
723             "956323", "Magway",
724             "9582490", "Shan\ \(North\)",
725             "951552", "Bahan",
726             "952424", "Mandalay",
727             "958639", "Letpanhla",
728             "9552470", "Bago",
729             "952470", "Yangon",
730             "958547", "Pyinoolwin",
731             "9585445", "Pyinoolwin",
732             "956320", "Magway",
733             "9557481", "Mawlamyine",
734             "9585444", "Pyinoolwin",};
735              
736             sub new {
737 13     13 1 29 my $class = shift;
738 13         25 my $number = shift;
739 13         85 $number =~ s/(^\+95|\D)//g;
740 13         72 my $self = bless({ country_code => '95', number => $number, formatters => $formatters, validators => $validators, areanames => \%areanames}, $class);
741 13 100       62 return $self if ($self->is_valid());
742 1         3 $number =~ s/^(?:0)//;
743 1         12 $self = bless({ country_code => '95', number => $number, formatters => $formatters, validators => $validators, areanames => \%areanames}, $class);
744 1 50       4 return $self->is_valid() ? $self : undef;
745             }
746             1;