use strict;
use warnings;
use Test::More tests => 291;
use SOOT;
use SOOT::API qw/:all/;
pass();
TODO: {
local $TODO = 'Leaktest TArray*';
fail();
}
foreach my $type (qw(TArrayD TArrayF TArrayI TArrayL TArrayS TArrayC)) {
check_ary([1,2,3], $type);
check_ary([1], $type);
check_ary([1..20], $type);
}
foreach my $type (qw(TArrayD TArrayF)) {
check_ary([1.,2,3], $type);
check_ary([1.], $type);
check_ary([map {$_*1.} (1..20)], $type);
}
pass("alive");
sub check_ary {
my $perlary = shift;
my $class = shift;
my $ary = $class->new($perlary);
isa_ok($ary, $class);
my $clone = $ary->GetArray();
is_deeply($clone, $perlary);
my $index = 0;
is($ary->GetSize(), scalar(@$perlary));
foreach my $elem (@$perlary) {
is($ary->GetAt($index++), $elem);
}
$ary->SetAt(2, 0);
is($ary->GetAt(0), 2);
}