26 #include <lal/XLALError.h>
27 #include <lal/LALMalloc.h>
28 #include <lal/LALConstants.h>
29 #include <lal/TranslateAngles.h>
56 REAL8 diff, tol = 3e-15;
61 hmsRef =
"06:52:16.8750000";
62 radsRef = 1.79891631418447;
64 XLAL_CHECK ( (diff=fabs(rads - radsRef)) < tol,
XLAL_ETOL,
"Result XLALTranslateHMStoRAD(%s)=%.16g differs from reference '%.16g' by %g > tolerance %g\n", hmsRef, rads, radsRef, diff, tol );
67 XLAL_CHECK ( strcmp ( hms, hmsRef ) == 0,
XLAL_ETOL,
"Returned hms string '%s' differs from input '%s'\n", hms, hmsRef );
68 XLALPrintInfo (
"Translated HMS '%s' into %.16g rad, and back into '%s'\n", hmsRef, rads, hms );
73 radsRef = 1.797689129554159;
75 XLAL_CHECK ( (diff=fabs(rads - radsRef)) < tol,
XLAL_ETOL,
"Result XLALTranslateHMStoRAD(%s)=%.16g differs from reference '%.16g' by %g > tolerance %g\n", hmsRef, rads, radsRef, diff, tol );
78 XLAL_CHECK ( strcmp ( hms,
"06:52:00.0000000" ) == 0,
XLAL_ETOL,
"Returned hms string '%s' differs from input '%s'\n", hms, hmsRef );
79 XLALPrintInfo (
"Translated HMS '%s' into %.16g rad, and back into '%s'\n", hmsRef, rads, hms );
84 radsRef = 1.570796326794897;
86 XLAL_CHECK ( (diff=fabs(rads - radsRef)) < tol,
XLAL_ETOL,
"Result XLALTranslateHMStoRAD(%s)=%.16g differs from reference '%.16g' by %g > tolerance %g\n", hmsRef, rads, radsRef, diff, tol );
89 XLAL_CHECK ( strcmp ( hms,
"06:00:00.0000000" ) == 0,
XLAL_ETOL,
"Returned hms string '%s' differs from input '%s'\n", hms, hmsRef );
90 XLALPrintInfo (
"Translated HMS '%s' into %.16g rad, and back into '%s'\n", hmsRef, rads, hms );
93 hmsRef =
"00:52:16.8753234";
94 radsRef = 0.228120010907883;
96 XLAL_CHECK ( (diff=fabs(rads - radsRef)) < tol,
XLAL_ETOL,
"Result XLALTranslateHMStoRAD(%s)=%.16g differs from reference '%.16g' by %g > tolerance %g\n", hmsRef, rads, radsRef, diff, tol );
99 XLAL_CHECK ( strcmp ( hms, hmsRef ) == 0,
XLAL_ETOL,
"Returned hms string '%s' differs from input '%s'\n", hms, hmsRef );
100 XLALPrintInfo (
"Translated HMS '%s' into %.16g rad, and back into '%s'\n", hmsRef, rads, hms );
105 radsRef = 0.226892802759263;
107 XLAL_CHECK ( (diff=fabs(rads - radsRef)) < tol,
XLAL_ETOL,
"Result XLALTranslateHMStoRAD(%s)=%.16g differs from reference '%.16g' by %g > tolerance %g\n", hmsRef, rads, radsRef, diff, tol );
110 XLAL_CHECK ( strcmp ( hms,
"00:52:00.0000000" ) == 0,
XLAL_ETOL,
"Returned hms string '%s' differs from input '%s'\n", hms, hmsRef );
111 XLALPrintInfo (
"Translated HMS '%s' into %.16g rad, and back into '%s'\n", hmsRef, rads, hms );
118 XLAL_CHECK ( (diff=fabs(rads - radsRef)) < tol,
XLAL_ETOL,
"Result XLALTranslateHMStoRAD(%s)=%.16g differs from reference '%.16g' by %g > tolerance %g\n", hmsRef, rads, radsRef, diff, tol );
121 XLAL_CHECK ( strcmp ( hms,
"00:00:00.0000000" ) == 0,
XLAL_ETOL,
"Returned hms string '%s' differs from input '%s'\n", hms, hmsRef );
122 XLALPrintInfo (
"Translated HMS '%s' into %.16g rad, and back into '%s'\n", hmsRef, rads, hms );
134 REAL8 diff, tol = 3e-15;
139 dmsRef =
"-06:52:16.87500";
140 radsRef = -0.119927754278965;
142 XLAL_CHECK ( (diff=fabs(rads - radsRef)) < tol,
XLAL_ETOL,
"Result XLALTranslateDMStoRAD(%s)=%.16g differs from reference '%.16g' by %g > tolerance %g\n", dmsRef, rads, radsRef, diff, tol );
145 XLAL_CHECK ( strcmp ( dms, dmsRef ) == 0,
XLAL_ETOL,
"Returned dms string '%s' differs from input '%s'\n", dms, dmsRef );
146 XLALPrintInfo (
"Translated DMS '%s' into %.16g rad, and back into '%s'\n", dmsRef, rads, dms );
151 radsRef = -0.119845941970277;
153 XLAL_CHECK ( (diff=fabs(rads - radsRef)) < tol,
XLAL_ETOL,
"Result XLALTranslateDMStoRAD(%s)=%.16g differs from reference '%.16g' by %g > tolerance %g\n", dmsRef, rads, radsRef, diff, tol );
156 XLAL_CHECK ( strcmp ( dms,
"-06:52:00.00000" ) == 0,
XLAL_ETOL,
"Returned dms string '%s' differs from input '%s'\n", dms, dmsRef );
157 XLALPrintInfo (
"Translated DMS '%s' into %.16g rad, and back into '%s'\n", dmsRef, rads, dms );
162 radsRef = -0.104719755119660;
164 XLAL_CHECK ( (diff=fabs(rads - radsRef)) < tol,
XLAL_ETOL,
"Result XLALTranslateDMStoRAD(%s)=%.16g differs from reference '%.16g' by %g > tolerance %g\n", dmsRef, rads, radsRef, diff, tol );
167 XLAL_CHECK ( strcmp ( dms,
"-06:00:00.00000" ) == 0,
XLAL_ETOL,
"Returned dms string '%s' differs from input '%s'\n", dms, dmsRef );
168 XLALPrintInfo (
"Translated DMS '%s' into %.16g rad, and back into '%s'\n", dmsRef, rads, dms );
171 dmsRef =
"+00:52:16.87532";
172 radsRef = 0.0152080007107085;
174 XLAL_CHECK ( (diff=fabs(rads - radsRef)) < tol,
XLAL_ETOL,
"Result XLALTranslateDMStoRAD(%s)=%.16g differs from reference '%.16g' by %g > tolerance %g\n", dmsRef, rads, radsRef, diff, tol );
177 XLAL_CHECK ( strcmp ( dms, dmsRef ) == 0,
XLAL_ETOL,
"Returned dms string '%s' differs from input '%s'\n", dms, dmsRef );
178 XLALPrintInfo (
"Translated DMS '%s' into %.16g rad, and back into '%s'\n", dmsRef, rads, dms );
183 radsRef = 0.015126186850618;
185 XLAL_CHECK ( (diff=fabs(rads - radsRef)) < tol,
XLAL_ETOL,
"Result XLALTranslateDMStoRAD(%s)=%.16g differs from reference '%.16g' by %g > tolerance %g\n", dmsRef, rads, radsRef, diff, tol );
188 XLAL_CHECK ( strcmp ( dms,
"+00:52:00.00000" ) == 0,
XLAL_ETOL,
"Returned dms string '%s' differs from input '%s'\n", dms, dmsRef );
189 XLALPrintInfo (
"Translated DMS '%s' into %.16g rad, and back into '%s'\n", dmsRef, rads, dms );
196 XLAL_CHECK ( (diff=fabs(rads - radsRef)) < tol,
XLAL_ETOL,
"Result XLALTranslateDMStoRAD(%s)=%.16g differs from reference '%.16g' by %g > tolerance %g\n", dmsRef, rads, radsRef, diff, tol );
199 XLAL_CHECK ( strcmp ( dms,
"+00:00:00.00000" ) == 0,
XLAL_ETOL,
"Returned dms string '%s' differs from input '%s'\n", dms, dmsRef );
200 XLALPrintInfo (
"Translated DMS '%s' into %.16g rad, and back into '%s'\n", dmsRef, rads, dms );
void LALCheckMemoryLeaks(void)
int test_HMS_RAD(void)
test angle conversions between HMS and RAD: XLALTranslateHMStoRAD() and XLALTranslateRADtoHMS()
int test_DMS_RAD(void)
test angle conversions between DMS and RAD: XLALTranslateDMStoRAD() and XLALTranslateRADtoDMS()
int XLALPrintInfo(const char *fmt,...)
double REAL8
Double precision real floating-point number (8 bytes).
int XLALTranslateHMStoRAD(REAL8 *radians, const CHAR *hms)
Translate a string representing an angle in the form "hours:minutes:seconds" into radians.
CHAR * XLALTranslateRADtoHMS(REAL8 radians)
Translate (longitude, right-ascencsion, RA) radians into hours:minutes:seconds (HMS) format,...
int XLALTranslateDMStoRAD(REAL8 *radians, const CHAR *dms)
Translate a string representing an angle in the form "degrees:minutes:seconds" into radians.
CHAR * XLALTranslateRADtoDMS(REAL8 radians)
Translate (latitude, declination, DEC) radians into "sign*degrees:minutes:seconds" (DMS) format,...
#define XLAL_CHECK(assertion,...)
Macro to test an assertion and invoke a failure if it is not true in a function that returns an integ...
#define XLAL_CHECK_MAIN(assertion,...)
Macro to test an assertion and invoke a failure if it is not true in a C main() routine.
@ XLAL_SUCCESS
Success return value (not an error number)
@ XLAL_EFUNC
Internal function call failed bit: "or" this with existing error number.
@ XLAL_ETOL
Failed to reach specified tolerance.