#!perl # Test FITS binary table read # Astro::Catalog test harness use Test::More; use Data::Dumper; use File::Spec; use strict; eval { require Astro::FITS::CFITSIO; }; if( $@ ) { plan skip_all => "Tests require Astro::FITS::CFITSIO"; } else { plan tests => 18; } require_ok( "Astro::Catalog" ); require_ok( "Astro::Catalog::IO::FITSTable" ); my $file = File::Spec->catfile( "t", "data", "cat.fit" ); my $cat = new Astro::Catalog( Format => 'FITSTable', File => $file ); isa_ok( $cat, "Astro::Catalog" ); is( $cat->sizeof, 672, "Size of catalog" ); my $star = $cat->popstar(); my $id = $star->id; is( $id, 672, "Last object's ID" ); is( $star->dec, "-02 03 51.95", "Last object's Dec" ); my $fluxes = $star->fluxes; isa_ok( $fluxes, "Astro::Fluxes" ); my @allfluxes = $fluxes->allfluxes; foreach my $flux ( @allfluxes ) { isa_ok( $flux, "Astro::Flux" ); if( lc($flux->type) eq 'isophotal_flux' ) { is( sprintf( "%.3f", $flux->quantity('isophotal_flux') ), 1169.419, "Last object's isophotal flux" ); is( $flux->datetime->datetime, "2004-11-27T05:49:14", "DateTime of flux measurement" ); is( $flux->waveband->natural, "Z", "Filter of flux measurement" ); } }