use strict; use warnings; use Test::More; BEGIN { eval "use PDL::Slatec;"; if ( !$@ ) { eval "use PDL::Graphics::Limits;"; plan tests => 12; } else { plan skip_all => 'PDL::Slatec not available'; } }; *parse_vecspec = \&PDL::Graphics::Limits::parse_vecspec; ################################################################# # test parsing of hash key specs my @good = ( 'xp&f' => { data => 'x', errn => 'n', errp => 'p', trans => 'f' }, 'p&f' => { errn => 'n', errp => 'p', trans => 'f' }, 'x,p,&f' => { data => 'x', errn => 'n', errp => 'p', trans => 'f' }, 'x p &f' => { data => 'x', errn => 'n', errp => 'p', trans => 'f' }, 'p&f' => { errn => 'n', errp => 'p', trans => 'f' }, '&f' => { trans => 'f' }, 'x' => { data => 'x' }, '&' => { trans => undef }, undef() => { }, '<>&' => { errn => undef, errp => undef, trans => undef }, '=s' => { errn => 's', errp => 's' }, ); while( my ( $spec, $exp ) = splice( @good, 0, 2 ) ) { my $res = { parse_vecspec($spec) }; ok( eq_hash( $exp, $res ), defined $spec ? $spec : 'undef' ); } my @bad = ( '<<' ); for my $spec ( @bad ) { eval { parse_vecspec($spec) }; ok( $@, "$spec" ); }