use strict; use warnings; use Data::Dumper; use Test::More; use Image::DS9; use Cwd; BEGIN { plan( tests => 68 ) ;} require 't/common.pl'; my $ds9 = start_up(); $ds9->file( cwd() . '/m31.fits.gz' ); $ds9->zoom(0); $ds9->mode( 'crosshair' ); $ds9->wcs( 'reset' ); my @coords = qw( wcs fk5 ); my $coords = $ds9->crosshair( @coords ); my $wcs = " CRPIX1 = 257.75 CRPIX2 = 258.93 CRVAL1 = -201.94541667302 CRVAL2 = -47.45444 CDELT1 = -2.1277777E-4 CDELT2 = 2.1277777E-4 CTYPE1 = 'RA---TAN' CTYPE2 = 'DEC--TAN' "; $ds9->wcs( 'reset' ); $ds9->wcs( replace => $wcs ); my $ncoords = $ds9->crosshair( @coords ); ok( ! eq_array( $coords, $ncoords ), 'wcs scalar' ); $ds9->wcs( 'reset' ); ok( eq_array( $coords, scalar $ds9->crosshair( @coords ) ), 'wcs reset' ); $ds9->wcs( 'reset' ); $ds9->wcs( replace => \$wcs ); ok( eq_array( $ncoords, scalar $ds9->crosshair( @coords ) ), 'wcs scalarref' ); my @wcs = split(/\n/, $wcs ); $ds9->wcs( 'reset' ); $ds9->wcs( replace => \@wcs ); ok( eq_array( $ncoords, scalar $ds9->crosshair( @coords ) ), 'wcs arrayref' ); my %wcs = ( CRPIX1 => 257.75, CRPIX2 => 258.93, CRVAL1 => -201.94541667302, CRVAL2 => -47.45444, CDELT1 => -2.1277777E-4, CDELT2 => 2.1277777E-4, CTYPE1 => 'RA---TAN', CTYPE2 => 'DEC--TAN', ); $ds9->wcs( 'reset' ); $ds9->wcs( replace => \%wcs ); ok( eq_array( $ncoords, scalar $ds9->crosshair( @coords ) ), 'wcs hashref' ); test_stuff( $ds9, ( wcs => [ ( map { ( system => $_ ) } ( (map { 'wcs' . $_ } ('a'..'z')), 'wcs' ) ), ( map { ( [] => $_ ) } ( (map { 'wcs' . $_ } ('a'..'z')), 'wcs' ) ), ( map { (sky => $_) } qw( fk4 icrs galactic ecliptic fk5 ) ), ( map { (skyformat => $_) } qw( degrees sexagesimal ) ), align => 1, align => 0, ], ) );