Astro-PAL

 view release on metacpan or  search on metacpan

t/paltest.t  view on Meta::CPAN


  my @vu = Astro::PAL::palDcs2c( 0.345, 0.456 );
  my @vr = Astro::PAL::palRefv( \@vu, $refa, $refb );

  delta_within( $vr[0], 0.8447487047790478, 1e-12, "palRefv: x1" );
  delta_within( $vr[1], 0.3035794890562339, 1e-12, "palRefv: y1" );
  delta_within( $vr[2], 0.4407256738589851, 1e-12, "palRefv: z1" );

  @vu = Astro::PAL::palDcs2c( 3.7, 0.03 );
  @vr = Astro::PAL::palRefv( \@vu, $refa, $refb );

  delta_within( $vr[0], -0.8476187691681673, 1e-12, "palRefv: x2" );
  delta_within( $vr[1], -0.5295354802804889, 1e-12, "palRefv: y2" );
  delta_within( $vr[2], 0.0322914582168426, 1e-12, "palRefv: z2" );

  my $zr = Astro::PAL::palRefz( 0.567, $refa, $refb );
  delta_within( $zr, 0.566872285910534, 1e-12, "palRefz: hi el" );

  $zr = Astro::PAL::palRefz( 1.55, $refa, $refb );
  delta_within( $zr, 1.545697350690958, 1e-12, "palRefz: lo el" );
}

{ # t_aop

  my $date = 51000.1;
  my $dut = 25.0;
  my $elongm = 2.1;
  my $phim = 0.5;
  my $hm = 3000.0;
  my $xp = -0.5e-6;
  my $yp = 1.0e-6;
  my $tdk = 280.0;
  my $pmb = 550.0;
  my $rh = 0.6;
  my $tlr = 0.006;

  {
    # Loop must retain some previous context
    my $dap = -0.1234;
    my $rap;
    my $wl;

    for my $i (1..3) {

      if ( $i == 1 ) {
        $rap = 2.7;
        $wl = 0.45;
      } elsif ( $i == 2 ) {
        $rap = 2.345;
      } else {
        $wl = 1.0e6;
      }

      my ($aob, $zob, $hob, $dob, $rob ) = Astro::PAL::palAop ( $rap,
                $dap, $date, $dut, $elongm, $phim, $hm, $xp, $yp,
                $tdk, $pmb, $rh, $wl, $tlr );

      if ( $i == 1 ) {
        delta_within( $aob, 1.812817787123283034, 1e-10, "palAop: lo aob");
        delta_within( $zob, 1.393860816635714034, 1e-8, "palAop: lo zob");
        delta_within( $hob, -1.297808009092456683, 1e-8, "palAop: lo hob");
        delta_within( $dob, -0.122967060534561, 1e-8, "palAop: lo dob");
        delta_within( $rob, 2.699270287872084, 1e-8, "palAop: lo rob");

      } elsif ( $i == 2 ) {
        delta_within( $aob, 2.019928026670621442, 1e-10, "palAop: aob/o");
        delta_within( $zob, 1.101316172427482466, 1e-10, "palAop: zob/o");
        delta_within( $hob, -0.9432923558497740862, 1e-10, "palAop: hob/o");
        delta_within( $dob, -0.1232144708194224, 1e-10, "palAop: dob/o");
        delta_within( $rob, 2.344754634629428, 1e-10, "palAop: rob/o");

      } else {
        delta_within( $aob, 2.019928026670621442, 1e-10, "palAop: aob/r");
        delta_within( $zob, 1.101267532198003760, 1e-10, "palAop: zob/r");
        delta_within( $hob, -0.9432533138143315937, 1e-10, "palAop: hob/r");
        delta_within( $dob, -0.1231850665614878, 1e-10, "palAop: dob/r");
        delta_within( $rob, 2.344715592593984, 1e-10, "palAop: rob/r");

      }
    }
  }

  $date = 48000.3;
  my $wl = 0.45;

  my @aoprms = Astro::PAL::palAoppa ( $date, $dut, $elongm, $phim, $hm, $xp, $yp, $tdk,
                                      $pmb, $rh, $wl, $tlr );
  delta_within( $aoprms[0], 0.4999993892136306, 1e-13, "palAoppa: 0");
  delta_within( $aoprms[1], 0.4794250025886467, 1e-13, "palAoppa: 1");
  delta_within( $aoprms[2], 0.8775828547167932, 1e-13, "palAoppa: 2");
  delta_within( $aoprms[3], 1.363180872136126e-6, 1e-13, "palAoppa: 3");
  delta_within( $aoprms[4], 3000.0, 1e-10, "palAoppa: 4");
  delta_within( $aoprms[5], 280.0, 1e-11, "palAoppa: 5");
  delta_within( $aoprms[6], 550.0, 1e-11, "palAoppa : 6");
  delta_within( $aoprms[7], 0.6, 1e-13, "palAoppa : 7");
  delta_within( $aoprms[8], 0.45, 1e-13, "palAoppa : 8");
  delta_within( $aoprms[9], 0.006, 1e-15, "palAoppa : 9");
  delta_within( $aoprms[10], 0.0001562803328459898, 1e-13, "palAoppa: 10" );
  delta_within( $aoprms[11], -1.792293660141e-7, 1e-13, "palAoppa: 11" );
  delta_within( $aoprms[12], 2.101874231495843, 1e-13, "palAoppa: 12" );
  delta_within( $aoprms[13], 7.601916802079765, 1e-8, "palAoppa: 13" );

  my ($rap, $dap) = Astro::PAL::palOap ( "r", 1.6, -1.01, $date, $dut, $elongm, $phim,
           $hm, $xp, $yp, $tdk, $pmb, $rh, $wl, $tlr );
  delta_within( $rap, 1.601197569844787, 1e-10, "palOap: rr");
  delta_within( $dap, -1.012528566544262, 1e-10, "palOap: rd");

  ($rap, $dap) = Astro::PAL::palOap ( "h", -1.234, 2.34, $date, $dut, $elongm, $phim,
           $hm, $xp, $yp, $tdk, $pmb, $rh, $wl, $tlr );
  delta_within( $rap, 5.693087688154886463, 1e-10, "palOap: hr");
  delta_within( $dap, 0.8010281167405444, 1e-10, "palOap: hd");

  ($rap, $dap) = Astro::PAL::palOap ( "a", 6.1, 1.1, $date, $dut, $elongm, $phim,
           $hm, $xp, $yp, $tdk, $pmb, $rh, $wl, $tlr );
  delta_within( $rap, 5.894305175192448940, 1e-10, "palOap: ar");
  delta_within( $dap, 1.406150707974922, 1e-10, "palOap: ad");

  ($rap, $dap) = Astro::PAL::palOapqk ( "r", 2.1, -0.345, \@aoprms);
  delta_within( $rap, 2.10023962776202, 1e-10, "palOapqk: rr");
  delta_within( $dap, -0.3452428692888919, 1e-10, "palOapqk: rd");



( run in 1.761 second using v1.01-cache-2.11-cpan-98e64b0badf )