File Coverage

blib/lib/Mock/Person/DE.pm
Criterion Covered Total %
statement 39 46 84.7
branch 6 12 50.0
condition 3 9 33.3
subroutine 16 16 100.0
pod 9 9 100.0
total 73 92 79.3


line stmt bran cond sub pod time code
1             package Mock::Person::DE;
2              
3             # Pragmas.
4 10     10   47082 use base qw(Exporter);
  10         20  
  10         1103  
5 10     10   55 use strict;
  10         16  
  10         289  
6 10     10   11036 use utf8;
  10         100  
  10         53  
7 10     10   305 use warnings;
  10         19  
  10         336  
8              
9             # Modules.
10 10     10   9197 use List::MoreUtils qw(none);
  10         12881  
  10         905  
11 10     10   9945 use Readonly;
  10         35623  
  10         11185  
12              
13             # Constants.
14             Readonly::Scalar our $SPACE => q{ };
15             Readonly::Array our @EXPORT_OK => qw(first_male first_female middle_female
16             last_male last_female middle_male middle_female name name_male
17             name_female);
18              
19             # Variables.
20             our $TYPE = 'three';
21              
22             # Version.
23             our $VERSION = 0.04;
24              
25             # First and middle male names.
26             our @first_male = our @middle_male = qw(
27             Adam
28             Adrian
29             Alex
30             Alexander
31             Alexandre
32             Ali
33             Amin
34             Andreas
35             Andy
36             Anton
37             Ben
38             Cedric
39             Chris
40             Christian
41             Claus
42             Daniel
43             David
44             Dennis
45             Dominic
46             Dominik
47             Fabian
48             Fabio
49             Felix
50             Florian
51             Frank
52             Freddy
53             Frederic
54             Gregor
55             Hans
56             Henry
57             Hermann
58             Ingo
59             Jan
60             Jasper
61             Jean
62             Joe
63             Jonas
64             Jonathan
65             Julian
66             Kai
67             Kay
68             Kevin
69             Lars
70             Leon
71             Lucas
72             Ludwig
73             Lukas
74             Manuel
75             Marcel
76             Marco
77             Marcus
78             Mark
79             Markus
80             Martin
81             Marvin
82             Matthias
83             Max
84             Maximilian
85             Micha
86             Michael
87             Moeppel
88             Nick
89             Nico
90             Niklas
91             Nils
92             Pascal
93             Patrick
94             Paul
95             Peter
96             Phil
97             Philipp
98             Ralf
99             Raoul
100             Ray
101             Rene
102             Rico
103             Robert
104             Robin
105             Ryan
106             Sami
107             Samuel
108             Sebastian
109             Simon
110             Someone
111             Stefan
112             Steffen
113             Stephan
114             Sven
115             Thomas
116             Till
117             Tim
118             Timo
119             Tobias
120             Tom
121             Victor
122             Vincent
123             Vinz
124             Virgil
125             Willem
126             Yannik
127             );
128              
129             # First nad middle female names.
130             our @first_female = our @middle_female = qw(
131             Alexandra
132             Amelie
133             Andrea
134             Angela
135             Anja
136             Anjeli
137             Anna
138             Anne
139             Anni
140             Annika
141             Antonia
142             Bianca
143             Carina
144             Caro
145             Carolin
146             Charlotte
147             Christin
148             Christina
149             Clara
150             Claudia
151             Daniela
152             Diana
153             Emma
154             Esther
155             Eva
156             Franzi
157             Franziska
158             Gabi
159             Hanna
160             Hannah
161             Helene
162             Ina
163             Isabell
164             Jacqueline
165             Jana
166             Janina
167             Janine
168             Jasmin
169             Jennifer
170             Jenny
171             Jessica
172             Johanna
173             Judith
174             Jule
175             Julia
176             Julie
177             Kate
178             Katharina
179             Kathi
180             Kathrin
181             Katja
182             Kim
183             Kristin
184             Kristina
185             Lara
186             Laura
187             Lea
188             Lena
189             Leonie
190             Lina
191             Linda
192             Lisa
193             Luisa
194             Maike
195             Mara
196             Maria
197             Marie
198             Marina
199             Melanie
200             Meli
201             Melissa
202             Michelle
203             Miriam
204             Nadine
205             Nicole
206             Nina
207             Pia
208             Ramona
209             Rebecca
210             Rieke
211             Sabrina
212             Sandra
213             Sara
214             Sarah
215             Saskia
216             Silke
217             Simone
218             Sonja
219             Sophia
220             Sophie
221             Stefanie
222             Steffi
223             Stella
224             Stephanie
225             Svenja
226             Teresa
227             Theresa
228             Tina
229             Vanessa
230             Verena
231             );
232              
233             # Last names.
234             our @last_male = our @last_female = qw(
235             Müller
236             Schmidt
237             Schneider
238             Fischer
239             Weber
240             Schäfer
241             Meyer
242             Wagner
243             Becker
244             Bauer
245             Hoffmann
246             Schulz
247             Koch
248             Richter
249             Klein
250             Wolf
251             Schröder
252             Neumann
253             Braun
254             Werner
255             Schwarz
256             Hofmann
257             Zimmermann
258             Schmitt
259             Hartmann
260             Schmid
261             Weiß
262             Schmitz
263             Krüger
264             Lange
265             Meier
266             Walter
267             Köhler
268             Maier
269             Beck
270             König
271             Krause
272             Schulze
273             Huber
274             Mayer
275             Frank
276             Lehmann
277             Kaiser
278             Fuchs
279             Herrmann
280             Lang
281             Thomas
282             Peters
283             Stein
284             Jung
285             Möller
286             Berger
287             Martin
288             Friedrich
289             Scholz
290             Keller
291             Groß
292             Hahn
293             Roth
294             Günther
295             Vogel
296             Schubert
297             Winkler
298             Schuster
299             Jäger
300             Lorenz
301             Ludwig
302             Baumann
303             Heinrich
304             Otto
305             Simon
306             Graf
307             Kraus
308             Krämer
309             Böhm
310             Schulte
311             Albrecht
312             Franke
313             Winter
314             Schumacher
315             Vogt
316             Haas
317             Sommer
318             Schreiber
319             Engel
320             Ziegler
321             Dietrich
322             Brandt
323             Seidel
324             Kuhn
325             Busch
326             Horn
327             Arnold
328             Kühn
329             Bergmann
330             Pohl
331             Pfeiffer
332             Wolff
333             Voigt
334             Sauer
335             );
336              
337             # Get random first male name.
338             sub first_male {
339 3     3 1 108 return $first_male[rand @first_male];
340             }
341              
342             # Get random first female name.
343             sub first_female {
344 2     2 1 69 return $first_female[rand @first_female];
345             }
346              
347             # Get random last male name.
348             sub last_male {
349 3     3 1 69 return $last_male[rand @last_male];
350             }
351              
352             # Get random last female name.
353             sub last_female {
354 2     2 1 62 return $last_female[rand @last_female];
355             }
356              
357             # Get random middle male name.
358             sub middle_male {
359 3     3 1 191 return $middle_male[rand @middle_male];
360             }
361              
362             # Get random middle female name.
363             sub middle_female {
364 2     2 1 69 return $middle_female[rand @middle_female];
365             }
366              
367             # Get random name.
368             sub name {
369 3     3 1 9807 my $sex = shift;
370 3 50 33 5   49 if (! defined $sex || none { $sex eq $_ } qw(female male)) {
  5 100       35  
    50          
371 0 0       0 if ((int(rand(2)) + 1 ) % 2 == 0) {
372 0         0 return name_male();
373             } else {
374 0         0 return name_female();
375             }
376             } elsif ($sex eq 'female') {
377 1         5 return name_female();
378             } elsif ($sex eq 'male') {
379 2         6 return name_male();
380             }
381             }
382              
383             # Get random male name.
384             sub name_male {
385 2 50 33 2 1 20 if (defined $TYPE && $TYPE eq 'three') {
386 2         8 my $first_male = first_male();
387 2         9 my $middle_male = middle_male();
388 2         9 while ($first_male eq $middle_male) {
389 0         0 $middle_male = middle_male();
390             }
391 2         14 return $first_male.$SPACE.$middle_male.$SPACE.last_male();
392             } else {
393 0         0 return first_male().$SPACE.last_male();
394             }
395             }
396              
397             # Get random female name.
398             sub name_female {
399 1 50 33 1 1 10 if (defined $TYPE && $TYPE eq 'three') {
400 1         5 my $first_female = first_female();
401 1         4 my $middle_female = middle_female();
402 1         5 while ($first_female eq $middle_female) {
403 0         0 $middle_female = middle_female();
404             }
405 1         5 return $first_female.$SPACE.$middle_female.$SPACE.last_female();
406             } else {
407 0           return first_female().$SPACE.last_female();
408             }
409             }
410              
411             1;
412              
413             __END__