File Coverage

blib/lib/Mock/Person/CZ.pm
Criterion Covered Total %
statement 36 41 87.8
branch 9 18 50.0
condition n/a
subroutine 14 14 100.0
pod 9 9 100.0
total 68 82 82.9


line stmt bran cond sub pod time code
1             package Mock::Person::CZ;
2              
3 11     11   80174 use base qw(Exporter);
  11         81  
  11         1465  
4 11     11   91 use strict;
  11         20  
  11         252  
5 11     11   7404 use utf8;
  11         174  
  11         62  
6 11     11   349 use warnings;
  11         22  
  11         310  
7              
8 11     11   6008 use Readonly;
  11         45849  
  11         10051  
9              
10             # Constants.
11             Readonly::Scalar our $SPACE => q{ };
12             Readonly::Array our @EXPORT_OK => qw(first_male first_female middle_female
13             last_male last_female middle_male middle_female name name_female
14             name_male);
15              
16             our $VERSION = 0.07;
17              
18             our $STRICT_NUM_NAMES = 0;
19              
20             # First and middle male names.
21             our @first_male = our @middle_male = qw(
22             Adam
23             Alexandr
24             Aleš
25             Alois
26             Antonín
27             Bedřich
28             Bohumil
29             Bohuslav
30             Břetislav
31             Dalibor
32             Daniel
33             David
34             Denis
35             Dominik
36             Dušan
37             Eduard
38             Emil
39             Filip
40             František
41             Ivan
42             Ivo
43             Jakub
44             Jan
45             Jaromír
46             Jaroslav
47             Jindřich
48             Jiří
49             Josef
50             Jozef
51             Ján
52             Kamil
53             Karel
54             Kryštof
55             Ladislav
56             Leoš
57             Libor
58             Lubomír
59             Luboš
60             Ludvík
61             Luděk
62             Lukáš
63             Marcel
64             Marek
65             Marian
66             Martin
67             Matyáš
68             Matěj
69             Michael
70             Michal
71             Milan
72             Miloslav
73             Miloš
74             Miroslav
75             Oldřich
76             Ondřej
77             Otakar
78             Patrik
79             Pavel
80             Petr
81             Přemysl
82             Radek
83             Radim
84             Radomír
85             Radovan
86             René
87             Richard
88             Robert
89             Roman
90             Rostislav
91             Rudolf
92             Samuel
93             Stanislav
94             Tadeáš
95             Tomáš
96             Viktor
97             Vilém
98             Vladimír
99             Vladislav
100             Vlastimil
101             Vojtěch
102             Vratislav
103             Václav
104             Vít
105             Vítězslav
106             Zbyněk
107             Zdeněk
108             Šimon
109             Štefan
110             Štěpán
111             );
112              
113             # First and middle female names.
114             our @first_female = our @middle_female = qw(
115             Alena
116             Andrea
117             Anna
118             Barbora
119             Božena
120             Dagmar
121             Dana
122             Eliška
123             Eva
124             Hana
125             Helena
126             Irena
127             Ivana
128             Jana
129             Jarmila
130             Jaroslava
131             Jitka
132             Jiřina
133             Kateřina
134             Kristýna
135             Lenka
136             Libuše
137             Lucie
138             Ludmila
139             Marcela
140             Marie
141             Markéta
142             Marta
143             Martina
144             Michaela
145             Miroslava
146             Monika
147             Pavla
148             Petra
149             Tereza
150             Veronika
151             Vlasta
152             Věra
153             Zdeňka
154             Zuzana
155             );
156              
157             # Last male names.
158             our @last_male = qw(
159             Bartoš
160             Beneš
161             Blažek
162             Bláha
163             Bureš
164             Doležal
165             Dostál
166             Dušek
167             Dvořák
168             Fiala
169             Havlíček
170             Holub
171             Horák
172             Hrubý
173             Hruška
174             Hájek
175             Janda
176             Jelínek
177             Kadlec
178             Kolář
179             Konečný
180             Kopecký
181             Kovář
182             Kratochvíl
183             Krejčí
184             Král
185             Kučera
186             Kříž
187             Liška
188             Mach
189             Malý
190             Marek
191             Mareš
192             Matoušek
193             Mašek
194             Moravec
195             Musil
196             Müller
197             Navrátil
198             Nguyen
199             Novotný
200             Novák
201             Němec
202             Pavlík
203             Pokorný
204             Polák
205             Pospíšil
206             Procházka
207             Růžička
208             Sedláček
209             Soukup
210             Staněk
211             Svoboda
212             Sýkora
213             Tichý
214             Urban
215             Valenta
216             Vaněk
217             Veselý
218             Vlček
219             Vávra
220             Zeman
221             Čech
222             Čermák
223             Černý
224             Říha
225             Ševčík
226             Šimek
227             Štěpánek
228             Šťastný
229             );
230              
231             # Last female names.
232             our @last_female = qw(
233             Bartošová
234             Benešová
235             Blažková
236             Bláhová
237             Burešová
238             Doležalová
239             Dostálová
240             Dvořáková
241             Fialová
242             Havlíčková
243             Holubová
244             Horáková
245             Hrubá
246             Hrušková
247             Hájková
248             Jandová
249             Jelínková
250             Kadlecová
251             Kolářová
252             Konečná
253             Kopecká
254             Kovářová
255             Kratochvílová
256             Krejčová
257             Krejčí
258             Králová
259             Kučerová
260             Křížová
261             Lišková
262             Machová
263             Malá
264             Marešová
265             Marková
266             Matoušková
267             Mašková
268             Moravcová
269             Musilová
270             Müllerová
271             Navrátilová
272             Nguyen
273             Novotná
274             Nováková
275             Němcová
276             Pavlíková
277             Pavlíková
278             Pokorná
279             Poláková
280             Pospíšilová
281             Procházková
282             Růžičková
283             Sedláčková
284             Soukupová
285             Staňková
286             Svobodová
287             Sýkorová
288             Tichá
289             Urbanová
290             Valentová
291             Vaňková
292             Veselá
293             Vlčková
294             Vávrová
295             Zemanová
296             Čechová
297             Čermáková
298             Černá
299             Říhová
300             Ševčíková
301             Šimková
302             Štěpánková
303             Šťastná
304             );
305              
306             # Get random first male name.
307             sub first_male {
308 3     3 1 184 return $first_male[rand @first_male];
309             }
310              
311             # Get random first female name.
312             sub first_female {
313 4     4 1 191 return $first_female[rand @first_female];
314             }
315              
316             # Get random last male name.
317             sub last_male {
318 3     3 1 133 return $last_male[rand @last_male];
319             }
320              
321             # Get random last female name.
322             sub last_female {
323 4     4 1 155 return $last_female[rand @last_female];
324             }
325              
326             # Get random middle male name.
327             sub middle_male {
328 3     3 1 169 return $middle_male[rand @middle_male];
329             }
330              
331             # Get random middle female name.
332             sub middle_female {
333 4     4 1 141 return $middle_female[rand @middle_female];
334             }
335              
336             # Get random name.
337             sub name {
338 3     3 1 5189 my $sex = shift;
339              
340             # In case of undefined sex, get random.
341 3 100       10 if (! defined $sex) {
342 1 50       39 if (int(rand(2))) {
343 1         4 $sex = 'female';
344             } else {
345 0         0 $sex = 'male';
346             }
347             }
348              
349 3 100       9 if ($sex eq 'female') {
350 2         7 return name_female();
351             } else {
352 1         11 return name_male();
353             }
354             }
355              
356             sub name_female {
357 3     3 1 83 my $strict_num_names = $STRICT_NUM_NAMES;
358 3 50       10 if ($strict_num_names == 0) {
359 0         0 $strict_num_names = int(rand(2)) + 2;
360             }
361 3 50       9 if ($strict_num_names == 3) {
    0          
362 3         8 return first_female().$SPACE.middle_female().$SPACE.last_female();
363             } elsif ($strict_num_names == 2) {
364 0         0 return first_female().$SPACE.last_female();
365             }
366             }
367              
368             sub name_male {
369 2     2 1 81 my $strict_num_names = $STRICT_NUM_NAMES;
370 2 50       10 if ($strict_num_names == 0) {
371 0         0 $strict_num_names = int(rand(2)) + 2;
372             }
373 2 50       7 if ($strict_num_names == 3) {
    0          
374 2         9 return first_male().$SPACE.middle_male().$SPACE.last_male();
375             } elsif ($strict_num_names == 2) {
376 0           return first_male().$SPACE.last_male();
377             }
378             }
379              
380             1;
381              
382             __END__