Branch Coverage

blib/lib/Biblio/Citation/Parser/Jiao.pm
Criterion Covered Total %
branch 94 356 26.4


line true false branch
107 0 1 $notrim ? :
184 0 1 unless defined $$cite{'text'}
193 1 0 if ($cite->find_authors)
201 0 1 if $nFig == 0
202 0 1 if $nFig >= 8
208 1 0 if ($cite->find_vol_no_pg_year or $cite->find_vol_pg_year)
215 0 0 if ($cite->guess_vol_no_pg)
220 0 0 if ($cite->find_vol_no or $cite->find_vol_supl)
230 0 0 if ($cite->guess_vol_pg)
237 0 0 if ($cite->guess_vol_year)
246 0 0 if $cite->find_vol
247 0 0 if $cite->find_issue
248 0 0 if $cite->find_supplement
249 0 0 if $cite->find_jnl_name
250 0 0 if $cite->find_page
251 0 0 if $cite->find_year
253 0 0 if $Count >= 2
269 1 0 unless $Text =~ /"/
271 0 0 if ($Text =~ /"(.+?)"\s*\.?/ and word_count($1) >= 2)
274 0 0 if $Guess_title =~ /^http:/i
298 1 0 if $$cite{'volume'}
299 0 1 if $$cite{'issue'}
300 0 1 if $$cite{'supl'}
301 1 0 if $$cite{'spage'}
302 1 0 if $$cite{'year'}
315 1 0 if (scalar @Features >= 2)
328 0 1 if $aText eq '' or $aText =~ /^\W+$/
334 0 1 if word_count($Chunks[0]) > 4 and no_initials($Chunks[0])
338 0 1 if (scalar @Chunks == 1)
339 0 0 unless full_name($Chunks[0])
347 0 1 if (full_name($Chunks[0])) { }
0 1 elsif (full_name($Chunks[1])) { }
348 0 0 if ($Chunks[1] =~ /^\s*Jr\.?\s*$/i) { }
0 0 elsif (not only_initials($Chunks[1])) { }
372 0 1 if word_count($aFull) > 4
373 0 1 if $aFull =~ m[[\d/]+]
376 0 1 if @abbr = $aFull =~ /\w\w\./g and @abbr >= 2
380 0 1 if (scalar @Chunks > 2)
381 0 0 if (is_surname($Chunks[0]) and has_initials($Chunks[1]) and $Chunks[2] =~ /^\s*Jr\.?\s*$/i)
394 1 0 if (is_surname($Chunks[0]) and has_initials($Chunks[1]))
396 0 1 if ($Chunks[1] =~ /(.+?\.?)\s*Jr\.?\s*$/i) { }
410 0 0 if (only_initials($Chunks[0]) and is_surname($Chunks[1]))
412 0 0 if ($Chunks[0] =~ /(.+?[. ])\s*Jr\.?\s*$/i) { }
426 0 0 if (no_initials($Chunks[0]) and no_initials($Chunks[1]))
428 0 0 if (word_count($aFull) <= 4)
441 0 1 if $Authors eq ''
449 0 1 if $$cite{'authors'} eq ''
453 1 0 if ($$cite{'aufull'} =~ /./) { }
479 1 0 if ($Text =~ /\.\s+([\w\-'`"]+\s+){3,}[\w\-'"]{2,}\b/)
483 0 1 if ($Text =~ /[,;]\s*([\w\-'`"]{2,}\s+){3,}[\w\-'"]{2,}\b/)
488 0 1 if (only_initials($aText))
492 0 1 if ($aText =~ /[,:; ]\s*[a-z][\w\-'"]*\s+([a-z0-9\-'"]+\s+)*?[a-z0-9\-'"]{4,}(\b|$)/)
499 1 0 if ($aText =~ /[:"\[\(]/)
505 0 1 if ($aText =~ m[\S+/])
510 0 1 if ($aText =~ /\d+/i)
515 0 1 if ($aText =~ /[,;: ]\s*in /i)
520 0 1 if ($aText =~ /[,; ]\s*and ([^,;:]+)[,:;]([^,;:]+)/i)
523 0 0 if (full_name($Aft1)) { }
549 0 0 if ($Text =~ /\W+in\s+(.+?)\W+(ed|eds|edited)\.?(\W|$)/)
561 0 0 if ($Text =~ s/[,;. ]\s*(?:volume|vol|v)?\.?\s*(\d+)\s*[ ,;]\s*(?:n|no|issue|\#)\.?\s*(\d+)\b/$1/is) { }
576 0 0 if ($Text =~ s/(\s|,|;|\.)\s*(?:volume|vol|v)?\.?\s*(\d+)\s*[\s,;]\s*(?:supl|supplement)\.?\s*(\d+)\b/$1/is)
590 0 0 if ($Text =~ s/[,;:. ]\s*(?:volume|vol)[. ]\s*([a-z]*\d+[a-z]*)\b//i)
597 0 0 if ($Text =~ s/[,;:. ]\s*(?:volume|vol)(\d+[a-z]*)\b//i)
603 0 0 if ($Text =~ s/[,;:. ]\s*(?:volume|vol)(\d+[a-z]*)\b//i)
612 0 0 if $Guess_vol =~ /(19|20)\d\d/
621 0 0 if ($Text =~ s/[,;:. ]\s*V(\d+[a-z]*)\b//i)
632 0 0 if ($Text =~ s/[,;:. ]\s*(?:number|issue|num|no|Nr|\#)[. ]\s*([a-z]*\d+[a-z]*)\b//i)
639 0 0 if ($Text =~ s/[,;:. ]\s*(?:number|issue|num|no|Nr)(\d+[a-z]*)\b//i)
647 0 0 if $Guess_issue =~ /(19|20)\d\d/
654 0 0 if ($Text =~ s/[,;:. ]\s*(?:n|\#|\#\s+)(\d+[a-z]*)\b//i)
667 0 1 if ($Text =~ s/[,;:. ]\s*(?:suppl|supplement)\.?\s*(\d+)\b//i)
679 0 1 if ($Text =~ s[\b(http://[^\s]+)][ ]i)
687 0 1 if ($Text =~ s[\b(http://[^\s>]+)(?:\s|$)][ ]i)
705 0 0 if ($Text =~ s/[,;:. ]\s*(?:pages|page|pp)\s*[.# ]\s*([a-z]*\d+[a-z]*)\b//i)
712 0 0 if ($Text =~ s/[,;:. ]\s*(?:pages|page|pp)(\d+[a-z]*)\b//i)
719 0 0 if ($Text =~ s/[,;. ]\s*(?:p)\s*[. ]\s* ([a-z]*\d+[a-z]*)\s*\-\s*[a-z]*d+[a-z]*\b//xi)
730 0 0 if $Guess_page =~ /(19|20)\d\d/
739 0 0 if ($Text =~ s/[,;:. ]\s*p(\d+[a-z]*)\b//i)
750 0 0 if $$cite{'year'}
755 0 0 if ($Text =~ s/\(((19|20)\d\d)\w?\)//)
763 0 0 if ($Text =~ /[^\w\-"]((19|20)\d\d)\w?([^\w\-"]|$)/i)
777 0 0 if $$cite{'volume'} and $$cite{'issue'} and $$cite{'spage'}
779 0 0 if $$cite{'num_of_fig'} < 3
787 0 0 if ($Text =~ m[[^\w/.-](?:volume|vol\.?|v\.?)?\s*([a-z]*?\d+[a-z]*?) # volume [^\w/.-]+(?:n|no|number|issue|\#)?\.?\s*([a-z]*?\d+[a-z]*?) # issue [^\w/.-]+(?:pages|page|pp|p)?\.? \s*([a-z]*?\d+[a-z]*?)(?:\s*-\s*[a-z]*?\d+[a-z]*?)? (\W*|$)]xi)
811 0 0 if $$cite{'volume'} and $$cite{'spage'}
812 0 0 if $$cite{'num_of_fig'} < 2
821 0 0 if ($Text =~ s[[^\w/.-]([a-z]*?\d+[a-z]*?)\s*:\s*([a-z]*?\d+[a-z]*?)\s* (-\s*[a-z]*?\d+[a-z]*?)?(\W|$)][$4]xi)
834 0 0 if ($Text =~ m[[^\w/.-](?:volume|vol\.?|v\.?)?\s*([a-z]*?\d+[a-z]*?) # volume [^\w/.-]*,\s*(?:p|pp|page|pages)[. ]\s*([a-z]*?\d+[a-z]*?)\s* (-\s*[a-z]*?\d+[a-z]*?)?(?:\W|$)]xi)
843 0 0 if ($Guess_vol =~ /^(19|20)\d\d[a-z]?$/i)
857 0 0 if ($Text =~ m[[^\w/.-](?:n|no|num|issue)[. ]\s*([a-z]*?\d+[a-z]*?) # volume [^\w/.-]*,\s*(?:p|pp|page|pages)?\.?\s*([a-z]*?\d+[a-z]*?)\s* (-\s*[a-z]*?\d+[a-z]*?)?(?:\W|$)]xi)
873 0 0 if ($Text =~ m[[^\w/.-]([a-z]*?\d+[a-z]*?) # volume or year [^\w/.-]*[, ]\s*([a-z]*?\d+[a-z]*?)\s* # pages -\s*[a-z]*?\d+[a-z]*?(?:[^\w-]|$)]xi)
881 0 0 if ($Guess_vol =~ /^(19|20)\d\d[a-z]?$/i)
896 0 0 if ($Text =~ m[[^\w/.-]([a-uw-z]*?\d+[a-z]*?) [^\w/.-]*[, ]\s*([a-z]?\d+[a-z]?)(?:[^\w/.-]|$)]xi)
903 0 0 if ($Guess_vol =~ /^(19|20)\d\d[a-z]?$/i) { }
909 0 0 if ($Guess_page =~ /^(19|20)\d\d[a-z]?$/i) { }
917 0 0 if $$cite{'volume'} and $$cite{'spage'}
930 0 0 if $$cite{'num_of_fig'} < 2
938 0 0 if ($Text =~ m[[^\w/.-]\(?((19|20)\d\d)\w?\)?[^\w/.-]* (?:volume|vol|v)\W*([a-oq-z]*?\d+[a-z]*?)(\W|$)]six)
950 0 0 if ($Text =~ m[[^\w/.-](?:volume|vol|v)?\W*([a-oq-z]?\d+[a-z]?) [^\w/.-]+\(?((19|20)\d\d)\w?\)?(\W|$)]six)
965 0 0 if $$cite{'volume'} and $$cite{'issue'} and $$cite{'spage'} and $$cite{'year'}
967 1 0 if $$cite{'num_of_fig'} < 4
982 0 0 if ($Text =~ m[[^\w/.-](?:volume|vol\.?|v\.?)?\s*([a-z]*?\d+[a-z]*?) # volume [^\w/.-]+(?:n|no|number|issue|\#)?\.?\s*([a-z]*?\d+[a-z]*?) # issue [^\w/.-]+(?:pages|page|pp|p)?\.? \s*([a-z]*?\d+[a-z]*?)(?:\s*-\s*[a-z]*?\d+[a-z]*?)? \W*\(((19|20)\d\d)[a-z]*?\)(\W|$)]xi)
1000 0 0 if ($Text =~ m[[^\w/.-](?:volume|vol\.?|v\.?)?\s*([a-z]*?\d+[a-z]*?) # volume [^\w/.-]+(?:n|no|number|issue|\#)?\.?\s*([a-z]*?\d+[a-z]*?) # issue \W*\(((19|20)\d\d)[a-z]*?\) # year \W*(?:pages|page|pp|p)?\.?\s*([a-z]*?\d+[a-z]*?)(\W|$)]xi)
1018 0 0 if ($Text =~ m[\(((19|20)\d\d)[a-z]*?\)[,.;\s:]* # year (?:volume|vol|v)?\.?\s*([a-z]*?\d+[a-z]*?) # volume [^\w/.-]+(?:n|no|number|issue|\#)?\.?\s*([a-z]*?\d+[a-z]*?) # issue [^\w/.-]+(?:pages|page|pp|p)?\.?\s*([a-z]*?\d+[a-z]*?)(\W|$)]xi)
1036 0 0 if ($Text =~ m[\(((19|20)\d\d)[a-z]*?\) # year ([^(]+?) [^\w/.-](?:volume|vol|v)?\.?\s*([a-z]*?\d+[a-z]*?) # volume [^\w/.-]+(?:n|no|number|issue|\#)?\.?\s*([a-z]*?\d+[a-z]*?) # issue [^\w/.-]+(?:pages|page|pp|p)?\.?\s*([a-z]*?\d+[a-z]*?)(\W|$)]xi)
1059 0 0 if ($Text =~ m[[^\w/.-](?:volume|vol\.?|v\.?)?\s*([a-z]*?\d+[a-z]*?) # volume [^\w/.-]+(?:n|no|number|issue|\#)?\.?\s*([a-z]*?\d+[a-z]*?) # issue [^\w/.-]+(?:pages|page|pp|p)?\.? \s*([a-z]*?\d+[a-z]*?)(?:\s*-\s*[a-z]*?\d+[a-z]*?)? [^\w(:/.-]+?((19|20)\d\d)[a-z]?\s*(?![)-])]xi)
1078 0 0 if ($Text =~ m[[^\w/.-](?:volume|vol\.?|v\.?)?\s*([a-z]*?\d+[a-z]*?) # volume [^\w/.-]+(?:n|no|number|issue|\#)?\.?\s*([a-z]*?\d+[a-z]*?) # issue [^\w(:/.-]+?\s*((19|20)\d\d)[a-z]? # year \s*[^\w/.)-]+?\s*(?:pages|page|pp|p)?\.?\s*([a-z]*?\d+[a-z]*?)(\W|$)]xi)
1096 0 0 if ($Text =~ m[[^"(/.-]\s*((19|20)\d\d)[a-z]?[,;\.\s]+ # year (?:volume|vol|v)?\.?\s*([a-z]*?\d+[a-z]*?) # volume [^\w/.-]+?(?:n|no|number|issue|\#)?\.?\s*([a-z]*?\d+[a-z]*?) [^\w/.-]+(?:pages|page|pp|p)?\.?\s*([a-z]*?\d+[a-z]*?)(\W|$)]xi)
1118 0 0 if ($Text =~ m[(?:^|[^"(/.-])\s*((19|20)\d\d)[a-z]? # year [^\w:")(/-][^(]*? [^\w/.-](?:volume|vol|v)?\.?\s*([a-z]*?\d+[a-z]*?) # volume [^\w/.-]+?(?:n|no|number|issue|\#)?\.?\s*([a-z]?\d+[a-z]?) [^\w/.-]+(?:pages|page|pp|p)?\.?\s*([a-z]*?\d+[a-z]*?)(\W|$)]xi)
1141 0 0 if $$cite{'volume'} and $$cite{'spage'} and $$cite{'year'}
1143 0 1 if $$cite{'num_of_fig'} < 3
1155 0 1 if ($Text =~ m[(?:^|[^\w/.-])(?:volume|vol\.?|v\.?)?\s*([a-z]*?\d+[a-z]*?) # volume [^\w/.-]+(?:pages|page|pp|p)?\.? \s*([a-z]?\d+[a-z]?)(?:\s*-\s*[a-z]?\d+[a-z]?)? \W*\(((19|20)\d\d)[a-z]?\)(\W|$)]xi)
1171 0 1 if ($Text =~ m[(?:^|[^\w/.-])(?:volume|vol\.?|v\.?)?\s*([a-z]*?\d+[a-z]*?) # volume \W*\(((19|20)\d\d)[a-z]?\) # year \W*(?:pages|page|pp|p)?\.? \s*([a-z]?\d+[a-z]?)(?:\s*-\s*[a-z]?\d+[a-z]?)?(\W|$)]xi)
1187 0 1 if ($Text =~ m[\(((19|20)\d\d)[a-z]?\)[,;\.\s]* # year (?:volume|vol|v)?\.?\s*([a-z]*?\d+[a-z]*?) # volume [^\w/.-]+(?:pages|page|pp|p)?\.?\s*([a-z]?\d+[a-z]?)(\W|$)]xi)
1201 0 1 if ($Text =~ m[\(((19|20)\d\d)[a-z]?\)[,;\.\s]* # year (?:number|no|n)\.?\s*([a-z]*?\d+[a-z]*?) # volume [^\w/.-]+(?:pages|page|pp|p)?\.?\s*([a-z]?\d+[a-z]?)(\W|$)]xi)
1216 1 0 if ($Text =~ m[\(((19|20)\d\d)[a-z]?\) # year [^(]+? [^\w/.-](?:volume|vol|v)?\.?\s*([a-z]*?\d+[a-z]*?) # volume [^\w/.-]+(?:pages|page|pp|p)?\.?\s*([a-z]?\d+[a-z]?)(\W|$)]xi)
1235 0 0 if ($Text =~ m[[^\w/.-](?:volume|vol\.?|v\.?)?\s*([a-z]*?\d+[a-z]*?) # volume [^\w/.-]+(?:pages|page|pp|p)?\.? \s*([a-z]?\d+[a-z]?)(?:\s*-\s*[a-z]?\d+[a-z]?)? # page [^\w:(/.-]+\s*((19|20)\d\d)[a-z]?\s*(?![)-])]xi)
1252 0 0 if ($Text =~ m[[^\w/.-](?:volume|vol\.?|v\.?)?\s*([a-z]*?\d+[a-z]*?) # volume [^\w:(/.-]+?\s*((19|20)\d\d)[a-z]? # year [^\w/.)-]+(?:pages|page|pp|p)?\.?\s*([a-z]?\d+[a-z]?)(\W|$)]xi)
1267 0 0 if ($Text =~ m[[^\w/.(-]\s*((19|20)\d\d)[a-z]?[,;\.\s]+ (?:volume|vol|v)?\.?\s*([a-z]*?\d+[a-z]*?) # volume [^\w/.-]+(?:pages|page|pp|p)?\.?\s*([a-z]?\d+[a-z]?)(\W|$)]xi)
1280 0 0 if ($Text =~ m[[^\w/.(-]\s*((19|20)\d\d)[a-z]?[,;\.\s]+ (?:number|no|n)\.?\s*([a-z]*?\d+[a-z]*?) # no volume, but issues [^\w/.-]+(?:pages|page|pp|p)?\.?\s*([a-z]?\d+[a-z]?)(\W|$)]xi)
1294 0 0 if ($Text =~ m[((^|[^"/.(-])\s*)(((19|20)\d\d)[a-z]?) # year ([^\w:")(/][^(]*?) [^\w/.-](?:volume|vol|v)?\.?\s*([a-z]*?\d+[a-z]*?) # volume [^\w/.-]+(?:pages|page|pp|p)?\.?\s*([a-z]?\d+[a-z]?)(\W|$)]xi)
1331 0 1 if ($Text =~ /\b(?:volume|vol\.?|v\.?)\s*[a-z]*?\d+[a-z]*?(?![.0-9])/i)
1338 0 1 if ($Text =~ m[ [^\w/.-](?:volume|vol\.?|v\.?)?\s*[a-z]*?\d+[a-z]*? # volume [^\w/.-]+(?:n |n.|no |no.|number |issue |\#|p |p.|pp.|page )\s*[a-z]*?\d+[a-z]*? (?:\W|$)]xi)
1352 1 0 if ($Text =~ m[[^\w/.-][a-z]*?\d+[a-z]*?\s*[,:(\s]\s* [a-z]?\d+[a-z]?(\W|$)]xi)
1365 0 1 if $$cite{'title'}
1366 0 1 unless $$cite{'jnl_epos'}
1388 0 1 if $Text eq ''
1394 1 0 if ($Text =~ m(([^,;":?/\[]+)$)) { }
1407 0 1 if ($Guess_jnl =~ /^[a-z]\W*$/i)
1413 0 1 unless ($Guess_jnl =~ /[A-Z]/)
1419 0 1 unless ($Guess_jnl =~ /^[a-z]+/i)
1422 0 0 if (scalar @gWords <= 3)
1436 0 0 if ($Text =~ /[,\s\(]+(19|20)\d\d[,\s\)]+\s*/)
1442 0 1 if $Text =~ /\.$/
1451 0 1 unless $Parts[$i] =~ /[a-z]/i
1455 0 1 if ($i > 0 and $Parts[$i - 1] =~ /^([A-Z][a-z]* )*and\s+[A-Z]$/)
1458 0 1 if ($i > 1 and $Parts[$i - 2] =~ /^([A-Z][a-z]* )*and\s+[A-Z]$/)
1459 0 0 if $Parts[$i - 1] =~ /^[A-Z]$/
1464 0 1 if ($i > 0 and $Parts[$i] =~ /^[A-Z]$/)
1466 0 0 if ($Parts[$i - 1] =~ /^\S+\s+\S+(\s+\S+){0,2}$/ and $Parts[$i - 1] =~ /^(and )?[A-Z].+?[A-Z]$/)
1473 0 1 if $i == 0
1475 0 1 if $Parts[$i - 1] =~ /et\s+al$/i
1476 0 1 if $Parts[$i - 1] =~ /^\s*\d+$/
1484 0 1 if scalar @Words <= 2 and not $Parts[$i - 1] =~ /^\d/
1486 0 1 if (scalar @Words <= 4 and $Parts[$i - 1] =~ /^([A-Z][a-z]*\s+){0,3}[A-Z][a-z]*$/)
1494 0 1 if ($w =~ /^J$/)
1500 1 0 if (scalar @Title_words == 1) { }
1508 0 1 if $end_dot == 1
1522 0 2 if $Text =~ /^\s*et al\s*$/i
1524 0 2 if $Text =~ /^in /i
1525 0 2 unless $Text =~ /[A-Z]/
1526 0 2 if $Text =~ /\d+/
1527 0 2 if $Text =~ / (e-print|archive)s? /i
1528 0 2 if $Text =~ /\b(Collaboration|Review)\b/i
1531 0 2 if $wCount > 4
1534 0 2 if $Text =~ /^((v\.|von|van|de|den|der)\s+)+\S\S+\s*$/i
1536 0 2 if $Text =~ /^(von|van|de|den|der)\s+\S\S+\s+([a-z]+\s*)+$/i
1538 0 2 if $Text =~ /\b(Phy\.|Physics|Journal|The)\b/i
1540 0 2 if $Text =~ /^([a-z]+\.\s*)+[a-z]?\s*$/i
1545 0 2 if @Abbr = $Text =~ /\S\S+?\./g and scalar @Abbr > 1
1548 0 2 if $Text =~ /\w\w\w+\./
1551 0 0 if (has_surname($Text) and has_initials($Text) and $wCount >= 1 and $wCount < 5)
1560 0 0 if ($wCount >= 2 and $wCount <= 3 and no_initials($Text))
1574 0 0 if $Text =~ /(^| )[a-z]\./i
1575 0 0 if $Text =~ /(^| )[a-z]( |$)/i
1583 0 1 if $Text =~ /^[a-z]{2,} /i
1584 1 0 if $Text =~ /\.?\s*[a-z][a-z]+$/i
1588 0 0 if length $Word >= 2
1597 0 1 if $Text =~ / (e-print|archive)s? /i
1598 0 1 if $Text =~ /\bCollaboration\b/i
1600 1 0 if $Text =~ /^(\s*[a-z][\-'a-z]+){1,3}$/i
1609 0 2 if $Text =~ /\d+/
1610 0 2 if $Text =~ /^[a-z]{2,}[\s\-']/i
1612 0 2 if $Text =~ /[\-'\s.][a-z][a-z]+(\s+Jr\.?)?\s*$/i
1619 0 1 if $Text =~ /\d+/
1620 1 0 if $Text =~ /^\s*[']?\s*[A-Z](\s|\.|$)/
1621 0 0 if $Text =~ /(^|\s|\.)[a-z](\s|\.|$)/i
1644 3 2 unless $W =~ /^[a-z]\.?$/i