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