The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!perl
use strict;
use Test::More tests => 6;

require_ok('Astro::Coords');
require_ok('Astro::Telescope');
use Time::Piece qw/ :override /;

# Force stringification to use colons
Astro::Coords::Angle->DELIM(':');
Astro::Coords::Angle::Hour->DELIM(':');
Astro::Coords::Angle::Hour->NDP(1);
Astro::Coords::Angle->NDP(1);

my $tel = new Astro::Telescope('JCMT');

# Hard wire a reference date
my $t  = gmtime( 1077557000 );
print "# Epoch : J". Astro::PAL::palEpj( $t->mjd)."\n";

# RA/Dec in J2000 at 2000.0:     6 14 1.584  +15 9 54.36
# RA/Dec in J2000 at 2004.1457:  6 14 1.777  +15 9 49.17
# Proper motion: 739, -1248 milliarcsec/yr
# COCO says                      6 14 1.788  +15 9 49.18
my $fs = new Astro::Coords( 
			   name => "LHS216",
			   ra => '6 14 1.584',
			   dec => '15 9 54.36',
			   parallax => 0.3,
			   pm => [0.739, -1.248 ],
			   type => 'J2000',
			   units => 's',
			  );
$fs->datetime( $t );
$fs->telescope( $tel );

my ($fsra, $fsdec) = $fs->radec;
$fsra->str_ndp( 3 );
$fsdec->str_ndp( 2 );
is( $fsra->string,  "06:14:01.788", "RA of LHS 216");
is( $fsdec->string, " 15:09:49.19", "Dec of LHS216");

# Test out of SUN/67, section titled "Mean Place Transformations"
my $c = new Astro::Coords( name => "target",
                           ra => '16 9 55.13',
                           dec => '-75 59 27.2',
                           type => 'B1900',
                           epoch => 1963.087,
                           pm => [ (-0.0312 * &Astro::PAL::DS2R * &Astro::PAL::DR2AS), 0.103 ],
                           parallax => 0.062,
                           units => 's',
			   rv => -34.22,
                         );

# epoch of observation is J1994.35
$t = gmtime( 768427560 );
$c->datetime( $t );
print "# Epoch : J". Astro::PAL::palEpj( $t->mjd)."\n";
# Sun67 says 16 23 07.901 -76 13 58.87
is( $c->ra( format => 's' ), "16:23:07.9", "RA for SUN/67 test");
is( $c->dec( format => 's' ), "-76:13:58.9", "Dec for SUN/67 test");

print "# Time is $t\n";