6
eval "use PDL::Slatec;";
8
eval "use PDL::Graphics::Limits;";
11
plan skip_all => 'PDL::Slatec not available';
18
$y1 = pdl( 10, 3, 4 );
19
$y2 = pdl( -1, 2, 4 );
21
sub trans { $_[0] * 10 };
22
sub trans2 { $_[0] * 11 };
24
@udsets = ( [ $x1, [ $y1, \&trans ]], [ $x2, $y2 ] );
25
@limits = limits( @udsets, { Bounds => 'MinMax', Clean => 'None' } );
26
ok( eq_array( \@limits, [ 1, 4, -1, 100 ] ), 'array: y1 trans' );
28
@udsets = ( [ $x1, $y1], [ $x2, $y2 ] );
29
@limits = limits( @udsets, { Trans => [ undef, \&trans ],
32
ok( eq_array( \@limits, [ 1, 4, -10, 100 ] ), 'array: y* trans' );
34
@udsets = ( [ $x1, [ $y1, undef, undef, undef ] ], [ $x2, $y2 ] );
35
@limits = limits( @udsets, { Trans => [ undef, \&trans ],
38
ok( eq_array( \@limits, [ 1, 4, -10, 40 ] ), 'array: y* trans, y1 undef' );
40
@udsets = ( [ $x1, [ $y1, \&trans ]], [ $x2, [ $y2, \&trans2 ]] );
41
@limits = limits( @udsets, { Bounds => 'MinMax', Clean => 'None' } );
42
ok( eq_array( \@limits, [ 1, 4, -11, 100 ] ), 'array: y1 trans y2 trans2' );
44
############################################################
46
@udsets = ([ { x => $x1, y => $y1, ytrans => \&trans }, { x => $x2, y => $y2 } ]);
47
@limits = limits( @udsets, { Bounds => 'MinMax', Clean => 'None',
48
VecKeys => [qw( x y&ytrans )], KeyCroak => 0
50
ok( eq_array( \@limits, [ 1, 4, -1, 100 ] ), 'hash: y1 trans' );
52
@udsets = ([ { x => $x1, y => $y1 }, { x => $x2, y => $y2 } ]);
53
@limits = limits( @udsets, { Bounds => 'MinMax', Clean => 'None',
54
VecKeys => [qw( x y )],
55
Trans => [ undef, \&trans ]
57
ok( eq_array( \@limits, [ 1, 4, -10, 100 ] ), 'hash: y* trans' );
59
@udsets = ([ { x => $x1, y => $y1, ytrans => undef },
60
{ x => $x2, y => $y2 } ]);
61
@limits = limits( @udsets, { Bounds => 'MinMax', Clean => 'None',
62
VecKeys => [qw( x y&ytrans )], KeyCroak => 0,
63
Trans => [ undef, \&trans ],
65
ok( eq_array( \@limits, [ 1, 4, -10, 40 ] ), 'hash: y* trans y1 undef' );
67
@udsets = ([ { x => $x1, y => $y1, ytrans => \&trans },
68
{ x => $x2, y => $y2, ytrans => \&trans2 } ]);
69
@limits = limits( @udsets, { Bounds => 'MinMax', Clean => 'None',
70
VecKeys => [qw( x y&ytrans )],
72
ok( eq_array( \@limits, [ 1, 4, -11, 100 ] ), 'hash: y1 trans y2 trans2' );