line | % | coverage | branch |
104 | 50 | T | F | if (ref $text eq "SCALAR") |
132 | 0 | T | F | unless $list |
149 | 50 | T | F | unless $section |
162 | 100 | T | F | if ($entry =~ /^(\w+)\s+\(([^)]+)\)\s+(\w+)\s+of\s+(.+)$/) { } |
| 100 | T | F | elsif ($entry =~ /^(.+?)\s+\(([^)]+)\)\s+of\s+(.+)$/) { } |
| 100 | T | F | elsif ($entry =~ /^(.+?)\s+of\s+(.+)$/) { } |
177 | 100 | T | F | unless $name |
178 | 100 | T | F | if $name =~ /^father-in-law\sto\s/ |
179 | 100 | T | F | if $name =~ /^devoted\s/i |
180 | 50 | T | F | if $name =~ /^loved\s/i |
190 | 50 | T | F | if defined $person{$_} |
204 | 50 | T | F | if ($phrase =~ /^((?:\w+\s*,\s*)+\w+),?\s*and\s+(\w+)\s+(\w+)$/) |
213 | 50 | T | F | if ($phrase =~ /^([\w\s]+?)\s+and\s+(\w+)\s+(\w+)$/) |
223 | 50 | T | F | if defined $_ |
228 | 100 | T | F | if ($text =~ /survived by (his|her) children\s*([^\.;]+)/i) { } |
| 100 | T | F | elsif ($text =~ /Loving mum to\s*([^\.;]+)/i) { } |
| 100 | T | F | elsif ($text =~ /Loving father of\s*([^\.;]+)/i) { } |
| 100 | T | F | elsif ($text =~ /mother of\s*([^\.;]+)?,/i) { } |
| 100 | T | F | elsif ($text =~ /sons,?\s*([a-z]+)\s+and\s+([a-z]+)/i) { } |
246 | 100 | T | F | if ($text =~ /\bdaughter,?\s([a-z]+)/i) |
249 | 100 | T | F | if ($text =~ /\bgranddaughter,?\s([a-z]+)/i) |
252 | 50 | T | F | if @children |
253 | 100 | T | F | if @grandchildren |
260 | 100 | T | F | if ($text =~ /\ssons,\s*(.*?);/s) |
262 | 100 | T | F | if ($sons_text =~ /, all of (.+)$/) { } |
266 | 100 | T | F | if ($son =~ /(\w+)\s+and\s+(\w+)/) { } |
295 | 100 | T | F | if ($text =~ /\sdaughters?,\s*Mrs\.\s+(.+?)\s+(\w+),\s+([^;]+)\sand/) { } |
| 100 | T | F | elsif ($text =~ /one daughter,\s*(.+?),\s*(.+?);/) { } |
305 | 50 | T | F | if ($name =~ /(\w+)\s+(\w+)/) { } |
320 | 100 | T | F | if @children |
322 | 100 | T | F | unless ($family{"children"}) |
324 | 100 | T | F | $1 eq 'son' ? : |
327 | 50 | T | F | $grandkids ? : |
| 50 | T | F | if (my(@grandchildren) = $grandkids ? split(/\s*,\s*|\s+and\s+/, $grandkids, 0) : ()) { } |
| 100 | T | F | elsif ($sex eq 'F' and $child =~ /(.+)\s+\((.+)\)/) { } |
| 50 | T | F | elsif ($child ne 'Mrs') { } |
340 | 100 | T | F | if @children |
343 | 100 | T | F | unless ($family{"children"}) |
344 | 50 | T | F | if ($text =~ /\ssons?[,\s]\s*(.+?)[;\.]/) |
350 | 100 | T | F | if ($text =~ /\sdaughters?[,\s]\s*(.+?)[;\.]/) |
359 | 100 | T | F | unless ($family{"grandchildren"}) |
360 | 100 | T | F | if ($text =~ /grandchildren\s+([^\.;]+)/i) |
362 | 50 | T | F | if (scalar @grandchildren) |
363 | 50 | T | F | if defined $_ |
367 | 100 | T | F | if ($family{'grandchildren'} and scalar @{$family{'grandchildren'};}) { } |
371 | 50 | T | F | if ($family{"grandchildren"}[0] =~ /brothers/) |
372 | 0 | T | F | unless (exists $family{'brothers'}) |
381 | 100 | T | F | if (not defined $family{"grandchildren"} or $#{$family{"grandchildren"};} <= 0) |
386 | 100 | T | F | if ($grandchildren_str) |
389 | 100 | T | F | if (scalar @grandchildren) { } |
| 100 | T | F | elsif ($text =~ /grandm\w+\s/) { } |
399 | 100 | T | F | if ($text =~ /predeceased by (his|her) sisters?\s*([^;\.]+);?/i) { } |
407 | 100 | T | F | if ($name eq "Mrs") |
408 | 50 | T | F | if ($text =~ / sister,\s*Mrs\.\s+([A-Z][a-zA-Z]+\s+[A-Z][a-zA-Z]+)/) { } |
414 | 50 | T | F | if ($name) |
415 | 50 | T | F | $text =~ /\bpredeceased by.*?$name/i ? : |
422 | 100 | T | F | unless (exists $family{'sisters'}) |
423 | 100 | T | F | if ($text =~ /\stwo\ssisters,\s*(.*?)\sand\s(.*?)[;:]/s) |
426 | 50 | T | F | if ($sister =~ /Mrs\.\s(.+?),\s(.+)/) { } |
430 | 50 | T | F | if ($name =~ /(\w+)\s+(\w+)/) { } |
455 | 50 | T | F | if ($text =~ /predeceased by (his|her) brothers?\s*([^;\.]+);?/i) { } |
465 | 50 | T | F | $text =~ /\bpredeceased by.*?$1/i ? : |
470 | 50 | T | F | unless ($family{"brothers"} or $family{"sisters"} or $family{"siblings"}) |
471 | 100 | T | F | if ($text =~ /sister of ([a-z]+) and ([a-z]+)/i) |
478 | 100 | T | F | unless (exists $family{'brothers'}) |
479 | 100 | T | F | if ($text =~ /\sbrothers,\s*(.*?)[;\.]/s) |
481 | 50 | T | F | if ($brothers_text =~ /, all of (.+)$/) { } |
485 | 100 | T | F | if ($son =~ /(\w+)\s+and\s+(\w+)/) { } |
518 | 100 | T | F | $text =~ /as well as several nieces and nephews/i ? : |
521 | 100 | T | F | if ($text =~ /(son|daughter) of the late\s+(.+?)\s+and\s+(.+?)\./i) { } |
| 100 | T | F | elsif ($text =~ /parents were (\w+) and (\w+)/i) { } |
529 | 50 | T | F | if ($mother =~ /(.+)\s+\((.+)\)\s+(.+)/) |
544 | 100 | T | F | if ($text =~ /(wife|husband) of the late\s+([\w\s]+)\s+\((\d{4})\)/) { } |
| 100 | T | F | elsif ($text =~ /\bmarried ([^,]+),.*?\b(?:on\s+)?([A-Z][a-z]+ \d{1,2}, \d{4})(?:.*?\b(?:at|in)\s+([^.,]+))?/i) { } |
| 100 | T | F | elsif ($text =~ /husband (?:to|of) the late\s([\w\s]+)[\s\.]/i) { } |
| 100 | T | F | elsif ($text =~ /\b(?:wife|husband) of ([^.,;]+)/i) { } |
| 100 | T | F | elsif ($text =~ /\bsurvived by her husband ([^.,;]+)/i) { } |
| 100 | T | F | elsif ($text =~ /\bsurvived by his wife[,\s]+([^.,;]+)/i) { } |
582 | 0 | T | F | if (exists $family{'spouse'} and ref $family{"spouse"} eq "HASH" and defined $family{"spouse"}[0]{"location"} and $family{"spouse"}[0]{"location"} eq "the late") |
587 | 100 | T | F | if ($text =~ /funeral service.*?at\s+(.+?),?\s+on\s+(.*?),?\s+at\s+(.+?)\./) { } |
| 100 | T | F | elsif ($text =~ /funeral service.*?at\s+([^\n]+?)\s+on\s+([^\n]+)\s+at\s+([^\n]+)/i) { } |
| 100 | T | F | elsif ($text =~ /funeral services.+\sat\s(.+)\sat\s(.+),\swith\s/i) { } |
| 50 | T | F | elsif ($text =~ /funeral services.+\sat\s(.+),\swith\s/i) { } |
| 100 | T | F | elsif ($text =~ /services.+\sat\s(.+),\swith\s/i) { } |
599 | 50 | T | F | if ($family{"funeral"}{"date"} =~ /(.+?)\.\s{2,}/) |
601 | 50 | T | F | if ($family{"funeral"}{"date"} =~ /(.+?)\sat\s(.+)/) |
619 | 100 | T | F | if ($text =~ /father-in-law to\s+([A-Za-z\s]+)/) { } |
| 100 | T | F | elsif ($text =~ /mother-in-law to\s+([A-Za-z\s]+)/i) { } |
625 | 50 | T | F | if (scalar($family{"children_in_law"} == 0)) |
631 | 100 | T | F | if ($text =~ /niece of\s+([A-Za-z]+)/) |
637 | 100 | T | F | if ($text =~ /[^\b]Born in ([^,]+),.*?\b(?:on\s+)?([A-Z][a-z]+ \d{1,2}, \d{4})/i) { } |
| 100 | T | F | elsif ($text =~ /[^\b]Born in ([a-z,\.\s]+)\s+on\s+(.+)/i) { } |
| 100 | T | F | elsif ($text =~ /S?he was born (.+)\sin ([a-z,\.\s]+)\s+to\s+(.+?)\sand\s(.+?)\./i) { } |
| 100 | T | F | elsif ($text =~ /[^\b]S?he was born\s*(?:on\s+)?([A-Z][a-z]+ \d{1,2}, \d{4})[,\s]+(?:in\s+)([^,]+)?/i) { } |
644 | 50 | T | F | if (my $location = _extract_location($1)) |
647 | 50 | T | F | if (my $dt = _extract_date($2)) |
656 | 50 | T | F | if (my $dt = "DateTime::Format::Text"->parse_datetime($1)) |
664 | 50 | T | F | if ($mother =~ /(.+)\s+\((.+)\)\s+(.+)/) |
667 | 50 | T | F | if ($father =~ /(.+?)\.\s\s/) |
674 | 50 | T | F | if ($text =~ /survived by (his|her) (father|mother)[\s,;]/i) |
678 | 50 | T | F | if (my $dt = _extract_date($1)) |
681 | 50 | T | F | if ($2) |
687 | 100 | T | F | if ($text =~ /\bpassed away\b.*?\b(?:on\s+)?([A-Z]+ \d{1,2}, \d{4})/i) |
693 | 100 | T | F | if ($text =~ /,\s(\d{1,3}), of\s/) |
694 | 50 | T | F | if ($1 < 110) |
700 | 100 | T | F | if ($text =~ /\b(?:passed away|died)\b([a-z0-9\s,]+)\sat\s+(.+?)\./i) |
702 | 50 | T | F | if ($place =~ /(.+)\s+on\s+([A-Z]+ \d{1,2}, \d{4})/i) { } |
| 100 | T | F | elsif ($place =~ /(.+)\son\s(.+)/) { } |
707 | 50 | T | F | if (my $dt = _extract_date($2)) |
718 | 50 | T | F | if defined $family{$_} |
722 | 100 | T | F | if (ref $family{$key} eq "ARRAY") |
724 | 100 | T | F | if (@{$family{$key};} == 0) |
730 | 50 | T | F | unless scalar keys %family |
742 | 50 | T | F | if $dt and not $@ |
752 | 50 | T | F | unless scalar @locations |
756 | 0 | T | F | if (ref $result) |