Branch Coverage

blib/lib/DR/Tarantool/Spaces.pm
Criterion Covered Total %
branch 125 182 68.6


line true false branch
102 1 4 unless defined $spaces
103 1 4 unless 'HASH' eq ref $spaces
130 1 91 unless defined $space
131 6 85 if ($space =~ /^\d+$/)
132 0 6 unless exists $$self{'fast'}{$space}
136 0 85 unless exists $$self{'spaces'}{$space}
164 0 23 unless @_ == 4
180 0 19 unless @_ == 4
197 0 1 unless @_ == 3
212 0 1 unless @_ == 3
236 1 3 unless defined $no and $no =~ /^\d+$/
238 0 3 unless 'ARRAY' eq ref $$space{'fields'}
240 0 3 if not $$space{'indexes'} or 'HASH' ne ref $$space{'indexes'}
244 0 0 defined $name ? :
0 3 unless $name and $name =~ /^[a-z_]\w*$/i
252 0 3 unless $default_type =~ /$fqr/
257 9 6 if (ref $f eq 'HASH') { }
0 6 elsif (ref $f) { }
274 0 0 defined $$s{'type'} ? :
0 15 unless $$s{'type'} and $$s{'type'} =~ /$fqr/
278 0 0 defined $$s{'name'} ? :
0 15 unless $$s{'name'} and $$s{'name'} =~ /^[a-z_]\w*$/i
282 0 15 if exists $fast{$$s{'name'}}
287 3 0 if ($$space{'indexes'})
290 0 6 unless $no =~ /^\d+$/
294 2 4 if ('ARRAY' eq ref $l) { }
1 3 elsif ('HASH' eq ref $l) { }
300 1 0 ref $$l{'fields'} ? :
306 0 6 unless $name =~ /^[a-z_]\w*$/i
309 0 10 unless exists $fast{$_}
353 8 3 if ${$class . '::CREATED';}
355 0 3 unless eval "package $class; use base 'DR::Tarantool::Tuple'; 1"
389 0 105 unless defined $field
390 20 85 if ($field =~ /^\d+$/)
391 20 0 if $field < @{$$self{'fields'};}
394 0 85 unless exists $$self{'fast'}{$field}
408 0 4 unless defined $field
409 3 1 if exists $$self{'fast'}{$field}
434 0 52 unless @_ == 3
439 52 0 $f ? :
441 8 44 if ($type eq 'JSON')
443 0 8 if $@
448 4 40 if utf8::is_utf8($v)
449 7 37 if $type eq 'STR' or $type eq 'UTF8STR'
450 29 8 if $type eq 'NUM'
451 1 7 if $type eq 'INT'
452 0 7 if $type eq 'NUM64'
453 0 7 if $type eq 'INT64'
455 7 0 if ($type eq 'MONEY' or $type eq 'BIGMONEY')
458 3 4 unless defined $_
460 1 6 if length $_ < 2
465 2 5 if ($r < 0) { }
471 7 0 if $type eq 'MONEY'
488 0 27 unless @_ == 3
493 27 0 $f ? :
496 2 25 if utf8::is_utf8($v)
498 8 19 if ($type eq 'JSON')
500 0 8 if $@
504 9 10 if $type eq 'NUM'
505 1 18 if $type eq 'INT'
506 0 19 if $type eq 'NUM64'
507 0 19 if $type eq 'INT64'
508 2 17 if $type eq 'UTF8STR'
509 4 15 if ($type eq 'MONEY' or $type eq 'BIGMONEY')
510 4 0 if $type eq 'MONEY'
511 0 4 if $type eq 'BIGMONEY'
513 1 3 if ($v < 0)
533 0 1 unless 'ARRAY' eq ref $tuple
550 0 2 unless 'ARRAY' eq ref $tuple
561 5 11 if ($index =~ /^\d+$/)
563 5 12 if $$_{'no'} == $index
568 10 1 if exists $$self{'indexes'}{$index}
581 1 3 unless defined $idx
594 0 2 unless defined $idx
605 1 10 unless 'ARRAY' eq ref $keys
606 4 7 unless ('ARRAY' eq ref $$keys[0])
607 3 1 if ($ksize == @$keys) { }
609 2 1 if $ksize > 1 and not $disable_warn
619 3 10 unless $ksize >= @$k
633 0 0 if 'ARRAY' eq ref $key and 'ARRAY' eq ref $$key[0]
642 0 12 unless 'ARRAY' eq ref $op and @$op > 1
649 1 11 if ($opname eq 'delete')
650 0 1 unless @$op == 2
654 9 2 if ($opname =~ /^(?:set|insert|add|and|or|xor)$/)
655 0 9 unless @$op == 3
659 2 0 if ($opname eq 'substr')
660 0 2 unless @$op >= 4
661 0 2 unless $$op[2] =~ /^\d+$/
662 0 2 unless $$op[3] =~ /^\d+$/
671 0 2 unless 'ARRAY' eq ref $ops and @$ops >= 1
672 1 1 unless 'ARRAY' eq ref $$ops[0]