File Coverage

lib/Spreadsheet/Engine/Function/CHOOSE.pm
Criterion Covered Total %
statement 17 17 100.0
branch 3 4 75.0
condition n/a
subroutine 5 5 100.0
pod 2 2 100.0
total 27 28 96.4


line stmt bran cond sub pod time code
1             package Spreadsheet::Engine::Function::CHOOSE;
2              
3 28     28   152 use strict;
  28         66  
  28         1057  
4 28     28   141 use warnings;
  28         56  
  28         753  
5              
6 28     28   193 use base 'Spreadsheet::Engine::Fn::base';
  28         61  
  28         6713  
7              
8 107     107 1 272 sub argument_count { -2 }
9              
10             sub result {
11 107     107 1 208 my $self = shift;
12 107         413 my $index = $self->next_operand_as_number;
13 107 50       2713 my $cindex = $index->is_num ? int $index->value : 1;
14              
15 107         7564 my $count = 0;
16 107         660 while (my $op = $self->top_of_stack) {
17 342 100       8480 return $op if ($cindex == ++$count);
18             }
19 54         318 return Spreadsheet::Engine::Error->val;
20             }
21              
22             1;
23              
24             __END__