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