File Coverage

blib/lib/Number/Phone/StubCountry/UZ.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::UZ;
20 2     2   1325 use base qw(Number::Phone::StubCountry);
  2         13  
  2         241  
21              
22 2     2   17 use strict;
  2         9  
  2         51  
23 2     2   14 use warnings;
  2         8  
  2         54  
24 2     2   14 use utf8;
  2         5  
  2         12  
25             our $VERSION = 1.20230614174404;
26              
27             my $formatters = [
28             {
29             'format' => '$1 $2 $3 $4',
30             'leading_digits' => '[35-9]',
31             'national_rule' => '8 $1',
32             'pattern' => '(\\d{2})(\\d{3})(\\d{2})(\\d{2})'
33             }
34             ];
35              
36             my $validators = {
37             'fixed_line' => '
38             (?:
39             55\\d\\d|
40             6(?:
41             1(?:
42             22|
43             3[124]|
44             4[1-4]|
45             5[1-3578]|
46             64
47             )|
48             2(?:
49             22|
50             3[0-57-9]|
51             41
52             )|
53             5(?:
54             22|
55             3[3-7]|
56             5[024-8]
57             )|
58             6\\d\\d|
59             7(?:
60             [23]\\d|
61             7[69]
62             )|
63             9(?:
64             22|
65             4[1-8]|
66             6[135]
67             )
68             )|
69             7(?:
70             0(?:
71             5[4-9]|
72             6[0146]|
73             7[124-6]|
74             9[135-8]
75             )|
76             (?:
77             1[12]|
78             8\\d
79             )\\d|
80             2(?:
81             22|
82             3[13-57-9]|
83             4[1-3579]|
84             5[14]
85             )|
86             3(?:
87             2\\d|
88             3[1578]|
89             4[1-35-7]|
90             5[1-57]|
91             61
92             )|
93             4(?:
94             2\\d|
95             3[1-579]|
96             7[1-79]
97             )|
98             5(?:
99             22|
100             5[1-9]|
101             6[1457]
102             )|
103             6(?:
104             22|
105             3[12457]|
106             4[13-8]
107             )|
108             9(?:
109             22|
110             5[1-9]
111             )
112             )
113             )\\d{5}
114             ',
115             'geographic' => '
116             (?:
117             55\\d\\d|
118             6(?:
119             1(?:
120             22|
121             3[124]|
122             4[1-4]|
123             5[1-3578]|
124             64
125             )|
126             2(?:
127             22|
128             3[0-57-9]|
129             41
130             )|
131             5(?:
132             22|
133             3[3-7]|
134             5[024-8]
135             )|
136             6\\d\\d|
137             7(?:
138             [23]\\d|
139             7[69]
140             )|
141             9(?:
142             22|
143             4[1-8]|
144             6[135]
145             )
146             )|
147             7(?:
148             0(?:
149             5[4-9]|
150             6[0146]|
151             7[124-6]|
152             9[135-8]
153             )|
154             (?:
155             1[12]|
156             8\\d
157             )\\d|
158             2(?:
159             22|
160             3[13-57-9]|
161             4[1-3579]|
162             5[14]
163             )|
164             3(?:
165             2\\d|
166             3[1578]|
167             4[1-35-7]|
168             5[1-57]|
169             61
170             )|
171             4(?:
172             2\\d|
173             3[1-579]|
174             7[1-79]
175             )|
176             5(?:
177             22|
178             5[1-9]|
179             6[1457]
180             )|
181             6(?:
182             22|
183             3[12457]|
184             4[13-8]
185             )|
186             9(?:
187             22|
188             5[1-9]
189             )
190             )
191             )\\d{5}
192             ',
193             'mobile' => '
194             (?:
195             (?:
196             33|
197             50|
198             88|
199             9[0-57-9]
200             )\\d{3}|
201             6(?:
202             1(?:
203             2(?:
204             2[01]|
205             98
206             )|
207             35[0-4]|
208             50\\d|
209             61[23]|
210             7(?:
211             [01][017]|
212             4\\d|
213             55|
214             9[5-9]
215             )
216             )|
217             2(?:
218             (?:
219             11|
220             7\\d
221             )\\d|
222             2(?:
223             [12]1|
224             9[01379]
225             )|
226             5(?:
227             [126]\\d|
228             3[0-4]
229             )
230             )|
231             5(?:
232             19[01]|
233             2(?:
234             27|
235             9[26]
236             )|
237             (?:
238             30|
239             59|
240             7\\d
241             )\\d
242             )|
243             6(?:
244             2(?:
245             1[5-9]|
246             2[0367]|
247             38|
248             41|
249             52|
250             60
251             )|
252             (?:
253             3[79]|
254             9[0-3]
255             )\\d|
256             4(?:
257             56|
258             83
259             )|
260             7(?:
261             [07]\\d|
262             1[017]|
263             3[07]|
264             4[047]|
265             5[057]|
266             67|
267             8[0178]|
268             9[79]
269             )
270             )|
271             7(?:
272             2(?:
273             24|
274             3[237]|
275             4[5-9]|
276             7[15-8]
277             )|
278             5(?:
279             7[12]|
280             8[0589]
281             )|
282             7(?:
283             0\\d|
284             [39][07]
285             )|
286             9(?:
287             0\\d|
288             7[079]
289             )
290             )|
291             9(?:
292             2(?:
293             1[1267]|
294             3[01]|
295             5\\d|
296             7[0-4]
297             )|
298             (?:
299             5[67]|
300             7\\d
301             )\\d|
302             6(?:
303             2[0-26]|
304             8\\d
305             )
306             )
307             )|
308             7(?:
309             [07]\\d{3}|
310             1(?:
311             13[01]|
312             6(?:
313             0[47]|
314             1[67]|
315             66
316             )|
317             71[3-69]|
318             98\\d
319             )|
320             2(?:
321             2(?:
322             2[79]|
323             95
324             )|
325             3(?:
326             2[5-9]|
327             6[0-6]
328             )|
329             57\\d|
330             7(?:
331             0\\d|
332             1[17]|
333             2[27]|
334             3[37]|
335             44|
336             5[057]|
337             66|
338             88
339             )
340             )|
341             3(?:
342             2(?:
343             1[0-6]|
344             21|
345             3[469]|
346             7[159]
347             )|
348             (?:
349             33|
350             9[4-6]
351             )\\d|
352             5(?:
353             0[0-4]|
354             5[579]|
355             9\\d
356             )|
357             7(?:
358             [0-3579]\\d|
359             4[0467]|
360             6[67]|
361             8[078]
362             )
363             )|
364             4(?:
365             2(?:
366             29|
367             5[0257]|
368             6[0-7]|
369             7[1-57]
370             )|
371             5(?:
372             1[0-4]|
373             8\\d|
374             9[5-9]
375             )|
376             7(?:
377             0\\d|
378             1[024589]|
379             2[0-27]|
380             3[0137]|
381             [46][07]|
382             5[01]|
383             7[5-9]|
384             9[079]
385             )|
386             9(?:
387             7[015-9]|
388             [89]\\d
389             )
390             )|
391             5(?:
392             112|
393             2(?:
394             0\\d|
395             2[29]|
396             [49]4
397             )|
398             3[1568]\\d|
399             52[6-9]|
400             7(?:
401             0[01578]|
402             1[017]|
403             [23]7|
404             4[047]|
405             [5-7]\\d|
406             8[78]|
407             9[079]
408             )
409             )|
410             6(?:
411             2(?:
412             2[1245]|
413             4[2-4]
414             )|
415             39\\d|
416             41[179]|
417             5(?:
418             [349]\\d|
419             5[0-2]
420             )|
421             7(?:
422             0[017]|
423             [13]\\d|
424             22|
425             44|
426             55|
427             67|
428             88
429             )
430             )|
431             9(?:
432             22[128]|
433             3(?:
434             2[0-4]|
435             7\\d
436             )|
437             57[02569]|
438             7(?:
439             2[05-9]|
440             3[37]|
441             4\\d|
442             60|
443             7[2579]|
444             87|
445             9[07]
446             )
447             )
448             )
449             )\\d{4}
450             ',
451             'pager' => '',
452             'personal_number' => '',
453             'specialrate' => '',
454             'toll_free' => '',
455             'voip' => ''
456             };
457              
458             sub new {
459 7     7 1 20 my $class = shift;
460 7         13 my $number = shift;
461 7         48 $number =~ s/(^\+998|\D)//g;
462 7         39 my $self = bless({ country_code => '998', number => $number, formatters => $formatters, validators => $validators, }, $class);
463 7 100       39 return $self if ($self->is_valid());
464 1         7 $number =~ s/^(?:8)//;
465 1         16 $self = bless({ country_code => '998', number => $number, formatters => $formatters, validators => $validators, }, $class);
466 1 50       5 return $self->is_valid() ? $self : undef;
467             }
468             1;