irplib_wcs-test.c

00001 /* $Id: irplib_wcs-test.c,v 1.5 2009/03/02 13:14:03 cgarcia Exp $
00002  *
00003  * This file is part of the ESO Common Pipeline Library
00004  * Copyright (C) 2001-2008 European Southern Observatory
00005  *
00006  * This program is free software; you can redistribute it and/or modify
00007  * it under the terms of the GNU General Public License as published by
00008  * the Free Software Foundation; either version 2 of the License, or
00009  * (at your option) any later version.
00010  *
00011  * This program is distributed in the hope that it will be useful,
00012  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00013  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00014  * GNU General Public License for more details.
00015  *
00016  * You should have received a copy of the GNU General Public License
00017  * along with this program; if not, write to the Free Software
00018  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00019  */
00020 
00021 /*
00022  * $Author: cgarcia $
00023  * $Date: 2009/03/02 13:14:03 $
00024  * $Revision: 1.5 $
00025  * $Name: visir-3_2_2 $
00026  */
00027 
00028 /*-----------------------------------------------------------------------------
00029                                    Includes
00030  -----------------------------------------------------------------------------*/
00031 #ifdef HAVE_CONFIG_H
00032 #include <config.h>
00033 #endif
00034 
00035 #include <cpl_test.h>
00036 
00037 #include "irplib_wcs.h"
00038 
00039 #if defined CPL_VERSION_CODE && CPL_VERSION_CODE >= CPL_VERSION(4, 8, 0)
00040 /*-----------------------------------------------------------------------------
00041                                    Static functions
00042  -----------------------------------------------------------------------------*/
00043 static void irplib_wcs_all_test(void);
00044 
00045 /*-----------------------------------------------------------------------------
00046                                   Main
00047  -----------------------------------------------------------------------------*/
00048 int main (void)
00049 {
00050 
00051     cpl_test_init(PACKAGE_BUGREPORT, CPL_MSG_WARNING);
00052 
00053     irplib_wcs_all_test();
00054 
00055     return cpl_test_end(0);
00056 }
00057 
00058 static void irplib_wcs_all_test(void)
00059 {
00060     cpl_propertylist * prop_wcs; 
00061     cpl_wcs *          wcs = NULL;
00062     double             xorig,yorig;
00063     double             xnew,ynew;
00064     double             ra, dec;
00065     
00066     /* Create WCS object */
00067     prop_wcs = cpl_propertylist_new();
00068     cpl_test_nonnull(prop_wcs);
00069     cpl_propertylist_append_double(prop_wcs, "CRVAL1", 10.);
00070     cpl_propertylist_append_double(prop_wcs, "CRVAL2", 20.);
00071     cpl_propertylist_append_int(prop_wcs, "CRPIX1", 1);
00072     cpl_propertylist_append_int(prop_wcs, "CRPIX2", 2);
00073     cpl_propertylist_append_double(prop_wcs, "CD1_1", 10.);
00074     cpl_propertylist_append_double(prop_wcs, "CD1_2", 11.);
00075     cpl_propertylist_append_double(prop_wcs, "CD2_1", 13.);
00076     cpl_propertylist_append_double(prop_wcs, "CD2_2", 14.);
00077     wcs = cpl_wcs_new_from_propertylist(prop_wcs);
00078     if(cpl_error_get_code() == CPL_ERROR_NO_WCS)
00079     {
00080         cpl_msg_warning(__func__,"No WCS present. Tests disabled");
00081         cpl_test_error(CPL_ERROR_NO_WCS);
00082         cpl_test_null(wcs);
00083         cpl_propertylist_delete(prop_wcs);
00084         return;
00085     }
00086     cpl_test_nonnull(wcs);
00087     
00088     /* Test that a simple call to xytoradec does not fail*/
00089     xorig = 1;
00090     yorig = 2;
00091     irplib_wcs_xytoradec(wcs, xorig, yorig, &ra, &dec);
00092     cpl_test_error(CPL_ERROR_NONE);
00093     
00094     /* Get the transformation back and compare */
00095     irplib_wcs_radectoxy(wcs, ra, dec, &xnew, &ynew);
00096     cpl_test_leq((xnew - xorig), 2 * DBL_EPSILON);
00097     cpl_test_leq((ynew - yorig), 2 * DBL_EPSILON);
00098     cpl_test_error(CPL_ERROR_NONE);
00099     
00100     /* Free */
00101     cpl_wcs_delete(wcs);
00102     cpl_propertylist_delete(prop_wcs);
00103     
00104 }
00105 #endif

Generated on Fri Jul 3 11:15:23 2009 for VISIR Pipeline Reference Manual by  doxygen 1.5.8