Astro-XSPEC-TableModel
view release on metacpan or search on metacpan
#!perl
use Test::More tests => 3;
use File::Compare;
use File::Temp;
use File::Spec::Functions qw( catfile );
use strict;
use warnings;
BEGIN {
use_ok('Astro::XSPEC::TableModel', 'write_table');
}
use Astro::FITS::CFITSIO::CheckStatus;
my $table = File::Temp->new( DIR => '.', SUFFIX => '.fits' );;
eval {
# energy grid
my @energy = ( 0..1024 );
# interpolation parameters
my @ipars = ( {
name => 'overlayer',
method => 0,
initial => 0,
delta => 1,
minimum => 0,
bottom => 0,
top => 10,
maximum => 10,
value => [ 0..10 ],
}
);
my $fptr =
write_table( output => $table->filename,
model => 'test',
units => 'pints_of_ale/hr',
ipars => \@ipars,
energy => \@energy,
);
# Fake some spectra.
tie my $status, 'Astro::FITS::CFITSIO::CheckStatus';
my $row = 0;
my $npars = 1;
my $nbins = @energy - 1;
for my $ol ( 0..10 )
{
$row++;
my @spectrum = map { 1 + $ol**2 * $_ } @energy;
$fptr->write_col_dbl( 1, $row, 1, $npars, [ $ol ], $status );
$fptr->write_col_dbl( 2, $row, 1, $nbins, \@spectrum, $status );
}
$fptr->close_file( $status )
};
ok( ! $@, "create table" )
or diag $@;
ok( compare( $table->filename, catfile( 'data', 'table.fits' ) ) == 0,
"table contents" );
( run in 1.319 second using v1.01-cache-2.11-cpan-39bf76dae61 )