File Coverage

blib/lib/Number/Phone/StubCountry/NO.pm
Criterion Covered Total %
statement 17 17 100.0
branch 2 2 100.0
condition n/a
subroutine 5 5 100.0
pod 1 1 100.0
total 25 25 100.0


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::NO;
20 5     5   2828 use base qw(Number::Phone::StubCountry);
  5         42  
  5         529  
21              
22 5     5   50 use strict;
  5         12  
  5         114  
23 5     5   32 use warnings;
  5         13  
  5         146  
24 5     5   37 use utf8;
  5         16  
  5         33  
25             our $VERSION = 1.20230614174404;
26              
27             my $formatters = [
28             {
29             'format' => '$1 $2 $3',
30             'leading_digits' => '8',
31             'pattern' => '(\\d{3})(\\d{2})(\\d{3})'
32             },
33             {
34             'format' => '$1 $2 $3 $4',
35             'leading_digits' => '[2-79]',
36             'pattern' => '(\\d{2})(\\d{2})(\\d{2})(\\d{2})'
37             }
38             ];
39              
40             my $validators = {
41             'fixed_line' => '
42             (?:
43             2[1-4]|
44             3[1-3578]|
45             5[1-35-7]|
46             6[1-4679]|
47             7[0-8]
48             )\\d{6}
49             ',
50             'geographic' => '
51             (?:
52             2[1-4]|
53             3[1-3578]|
54             5[1-35-7]|
55             6[1-4679]|
56             7[0-8]
57             )\\d{6}
58             ',
59             'mobile' => '
60             (?:
61             4[015-8]|
62             59|
63             9\\d
64             )\\d{6}
65             ',
66             'pager' => '',
67             'personal_number' => '880\\d{5}',
68             'specialrate' => '(
69             810(?:
70             0[0-6]|
71             [2-8]\\d
72             )\\d{3}
73             )|(82[09]\\d{5})|(
74             (?:
75             0[2-9]|
76             81(?:
77             0(?:
78             0[7-9]|
79             1\\d
80             )|
81             5\\d\\d
82             )
83             )\\d{3}
84             )',
85             'toll_free' => '80[01]\\d{5}',
86             'voip' => '85[0-5]\\d{5}'
87             };
88             my %areanames = ();
89             $areanames{en} = {"472382", "Oslo",
90             "4722", "Oslo",
91             "4770", "Møre\ og\ Romsdal",
92             "4737", "Aust\-Agder",
93             "4775", "Nordland",
94             "4724202", "Oslo",
95             "472381", "Oslo",
96             "472380", "Oslo",
97             "4723620", "Oslo",
98             "4777", "Troms",
99             "4735", "Telemark",
100             "47246", "Oslo",
101             "4724209", "Oslo",
102             "4723653", "Oslo",
103             "4721448", "Oslo",
104             "472364", "Oslo",
105             "4767", "Akershus",
106             "472194", "Oslo",
107             "472429", "Oslo",
108             "47231", "Oslo",
109             "472139", "Oslo",
110             "4721994", "Oslo",
111             "47218", "Oslo",
112             "472414", "Oslo",
113             "4773", "Sør\-Trøndelag",
114             "4721410", "Oslo",
115             "4721445", "Oslo",
116             "472137", "Oslo",
117             "472427", "Oslo",
118             "4723659", "Oslo",
119             "4724203", "Oslo",
120             "4756", "Hordaland",
121             "4763", "Akershus",
122             "472386", "Oslo",
123             "4774", "Nord\-Trøndelag",
124             "4721991", "Oslo",
125             "4721447", "Oslo",
126             "4764", "Akershus",
127             "4721446", "Oslo",
128             "4733", "Vestfold",
129             "4723652", "Oslo",
130             "472138", "Oslo",
131             "472428", "Oslo",
132             "47234", "Oslo",
133             "4723627", "Oslo",
134             "4731", "Buskerud",
135             "472384", "Oslo",
136             "47248", "Oslo",
137             "472133", "Oslo",
138             "4723626", "Oslo",
139             "472423", "Oslo",
140             "47211", "Oslo",
141             "472191", "Oslo",
142             "4724204", "Oslo",
143             "472146", "Oslo",
144             "472190", "Oslo",
145             "472360", "Oslo",
146             "4721418", "Oslo",
147             "4771", "Møre\ og\ Romsdal",
148             "472361", "Oslo",
149             "4761", "Oppland",
150             "47244", "Oslo",
151             "4723625", "Oslo",
152             "472416", "Oslo",
153             "4721993", "Oslo",
154             "4723628", "Oslo",
155             "472425", "Oslo",
156             "4721999", "Oslo",
157             "472135", "Oslo",
158             "472142", "Oslo",
159             "472140", "Oslo",
160             "4721440", "Oslo",
161             "4721415", "Oslo",
162             "472196", "Oslo",
163             "4778", "Finnmark",
164             "472410", "Oslo",
165             "4723654", "Oslo",
166             "47249", "Oslo",
167             "472411", "Oslo",
168             "472412", "Oslo",
169             "472366", "Oslo",
170             "4721992", "Oslo",
171             "4752", "Rogaland",
172             "47239", "Oslo",
173             "4721416", "Oslo",
174             "47216", "Oslo",
175             "4738", "Vest\-Agder",
176             "4721417", "Oslo",
177             "472387", "Oslo",
178             "472143", "Oslo",
179             "4721442", "Oslo",
180             "472413", "Oslo",
181             "4721411", "Oslo",
182             "47240", "Oslo",
183             "47233", "Oslo",
184             "4755", "Hordaland",
185             "47235", "Oslo",
186             "4723657", "Oslo",
187             "4724208", "Oslo",
188             "4721990", "Oslo",
189             "47230", "Oslo",
190             "47243", "Oslo",
191             "4723655", "Oslo",
192             "472388", "Oslo",
193             "47212", "Oslo",
194             "47245", "Oslo",
195             "472426", "Oslo",
196             "4769", "Østfold",
197             "472136", "Oslo",
198             "4757", "Sogn\ og\ Fjordane",
199             "472195", "Oslo",
200             "4779", "Svalbard\ \&\ Jan\ Mayen",
201             "4776", "Nordland",
202             "4723624", "Oslo",
203             "4753", "Hordaland",
204             "472415", "Oslo",
205             "4766", "Akershus",
206             "472422", "Oslo",
207             "4721443", "Oslo",
208             "4723658", "Oslo",
209             "472145", "Oslo",
210             "472132", "Oslo",
211             "47217", "Oslo",
212             "472421", "Oslo",
213             "4724205", "Oslo",
214             "472193", "Oslo",
215             "4723621", "Oslo",
216             "4724207", "Oslo",
217             "472363", "Oslo",
218             "4724206", "Oslo",
219             "472198", "Oslo",
220             "4721997", "Oslo",
221             "4721441", "Oslo",
222             "47247", "Oslo",
223             "472385", "Oslo",
224             "472368", "Oslo",
225             "4721412", "Oslo",
226             "4721996", "Oslo",
227             "4721444", "Oslo",
228             "472197", "Oslo",
229             "4751", "Rogaland",
230             "472369", "Oslo",
231             "4723650", "Oslo",
232             "4721419", "Oslo",
233             "472367", "Oslo",
234             "4723623", "Oslo",
235             "4721995", "Oslo",
236             "47237", "Oslo",
237             "4724200", "Oslo",
238             "472424", "Oslo",
239             "472147", "Oslo",
240             "472134", "Oslo",
241             "4721413", "Oslo",
242             "47232", "Oslo",
243             "47210", "Oslo",
244             "472383", "Oslo",
245             "472149", "Oslo",
246             "4732", "Buskerud",
247             "472417", "Oslo",
248             "4723622", "Oslo",
249             "472148", "Oslo",
250             "472418", "Oslo",
251             "4762", "Hedmark",
252             "47215", "Oslo",
253             "4772", "Sør\-Trøndelag",};
254              
255             sub new {
256 89     89 1 202 my $class = shift;
257 89         168 my $number = shift;
258 89         546 $number =~ s/(^\+47|\D)//g;
259 89         511 my $self = bless({ country_code => '47', number => $number, formatters => $formatters, validators => $validators, areanames => \%areanames}, $class);
260 89 100       454 return $self->is_valid() ? $self : undef;
261             }
262             1;