irplib_wcs-test.c
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
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
00042
00043 static void irplib_wcs_all_test(void);
00044
00045
00046
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
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
00089 xorig = 1;
00090 yorig = 2;
00091 irplib_wcs_xytoradec(wcs, xorig, yorig, &ra, &dec);
00092 cpl_test_error(CPL_ERROR_NONE);
00093
00094
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
00101 cpl_wcs_delete(wcs);
00102 cpl_propertylist_delete(prop_wcs);
00103
00104 }
00105 #endif