The Perl and Raku Conference 2025: Greenville, South Carolina - June 27-29 Learn more

#!/usr/bin/perl -w
require 5.001;
$runtests=shift(@ARGV);
if ( -f "t/test.pl" ) {
require "t/test.pl";
$dir="./lib";
$tdir="t";
} elsif ( -f "test.pl" ) {
require "test.pl";
$dir="../lib";
$tdir=".";
} else {
die "ERROR: cannot find test.pl\n";
}
unshift(@INC,$dir);
sub test {
($o,$val) = @_;
$o = $obj{$o};
@ret = ();
@idx = $o->index($val);
$idx = $o->index($val);
push(@ret,@idx,'--',$idx,'--');
@idx = $o->rindex($val);
$idx = $o->rindex($val);
push(@ret,@idx,'--',$idx);
return @ret;
}
%obj = ();
$o = new Array::AsObject qw( a b c a b );
$obj{'01'} = $o;
$i = [ qw(a b) ];
$o = new Array::AsObject ('a', $i, $i, 'b', undef, 'a');
$obj{'02'} = $o;
$j = [ qw(a b) ];
$o = new Array::AsObject ('a', $i, $j, undef, 'b', undef, 'a');
$obj{'03'} = $o;
$tests = [
[
[ qw(01) ],
[ qw(-- -1 -- -- -1) ],
],
[
[ qw(01 a) ],
[ qw(0 3 -- 0 -- 3 0 -- 3) ],
],
[
[ qw(01 z) ],
[ qw(-- -1 -- -- -1) ],
],
[
[ qw(02) ],
[ qw(4 -- 4 -- 4 -- 4) ],
],
[
[ qw(02 a) ],
[ qw(0 5 -- 0 -- 5 0 -- 5) ],
],
[
[ '02', $i ],
[ qw(1 2 -- 1 -- 2 1 -- 2) ],
],
[
[ qw(02 z) ],
[ qw(-- -1 -- -- -1) ],
],
[
[ qw(03) ],
[ qw(3 5 -- 3 -- 5 3 -- 5) ],
],
];
print "index/rindex...\n";
test_Func(\&test,$tests,$runtests);
1;
# Local Variables:
# mode: cperl
# indent-tabs-mode: nil
# cperl-indent-level: 3
# cperl-continued-statement-offset: 2
# cperl-continued-brace-offset: 0
# cperl-brace-offset: 0
# cperl-brace-imaginary-offset: 0
# cperl-label-offset: -2
# End: