Astro-Nova
view release on metacpan or search on metacpan
libnova-0.15.0/lntest/test.c view on Meta::CPAN
au = ln_get_pluto_phase (JD);
printf ("pluto -> phase %f\n",au);
au = ln_get_pluto_sdiam (JD);
printf ("pluto -> sdiam %f\n",au);
return failed;
}
int lunar_test ()
{
double JD = 2448724.5;
struct ln_rect_posn moon;
struct ln_equ_posn equ;
struct ln_lnlat_posn ecl;
int failed = 0;
/* JD = get_julian_from_sys();*/
/*JD=2448724.5;*/
ln_get_lunar_geo_posn (JD, &moon, 0);
printf ("lunar x %f y %f z %f\n",moon.X, moon.Y, moon.Z);
ln_get_lunar_ecl_coords (JD, &ecl, 0);
printf ("lunar long %f lat %f\n",ecl.lng, ecl.lat);
ln_get_lunar_equ_coords_prec (JD, &equ, 0);
printf ("lunar RA %f Dec %f\n",equ.ra, equ.dec);
printf ("lunar distance km %f\n", ln_get_lunar_earth_dist(JD));
printf ("lunar disk %f\n", ln_get_lunar_disk(JD));
printf ("lunar phase %f\n", ln_get_lunar_phase(JD));
printf ("lunar bright limb %f\n", ln_get_lunar_bright_limb(JD));
return failed;
}
int elliptic_motion_test ()
{
double r,v,l,V,dist;
double E, e_JD, o_JD;
struct ln_ell_orbit orbit;
struct ln_rect_posn posn;
struct ln_date epoch_date, obs_date;
struct ln_equ_posn equ_posn;
int failed = 0;
obs_date.years = 1990;
obs_date.months = 10;
obs_date.days = 6;
obs_date.hours = 0;
obs_date.minutes = 0;
obs_date.seconds = 0;
epoch_date.years = 1990;
epoch_date.months = 10;
epoch_date.days = 28;
epoch_date.hours = 12;
epoch_date.minutes = 30;
epoch_date.seconds = 0;
e_JD = ln_get_julian_day (&epoch_date);
o_JD = ln_get_julian_day (&obs_date);
orbit.JD = e_JD;
orbit.a = 2.2091404;
orbit.e = 0.8502196;
orbit.i = 11.94525;
orbit.omega = 334.75006;
orbit.w = 186.23352;
orbit.n = 0;
E = ln_solve_kepler (0.1, 5.0);
failed += test_result ("(Equation of kepler) E when e is 0.1 and M is 5.0 ", E, 5.554589253872320, 0.000000000001);
v = ln_get_ell_true_anomaly (0.1, E);
failed += test_result ("(True Anomaly) v when e is 0.1 and E is 5.5545 ", v, 6.13976152, 0.00000001);
r = ln_get_ell_radius_vector (0.5, 0.1, E);
failed += test_result ("(Radius Vector) r when v is , e is 0.1 and E is 5.5545 ", r, 0.45023478, 0.00000001);
ln_get_ell_geo_rect_posn (&orbit, o_JD, &posn);
failed += test_result ("(Geocentric Rect Coords X) for comet Enckle ", posn.X, 0.72549850, 0.00000001);
failed += test_result ("(Geocentric Rect Coords Y) for comet Enckle ", posn.Y, -0.28443537, 0.00000001);
failed += test_result ("(Geocentric Rect Coords Z) for comet Enckle ", posn.Z, -0.27031656, 0.00000001);
ln_get_ell_helio_rect_posn (&orbit, o_JD, &posn);
failed += test_result ("(Heliocentric Rect Coords X) for comet Enckle ", posn.X, 0.25017473, 0.00000001);
failed += test_result ("(Heliocentric Rect Coords Y) for comet Enckle ", posn.Y, 0.48476422, 0.00000001);
failed += test_result ("(Heliocentric Rect Coords Z) for comet Enckle ", posn.Z, 0.35716517, 0.00000001);
ln_get_ell_body_equ_coords (o_JD, &orbit, &equ_posn);
failed += test_result ("(RA) for comet Enckle ", equ_posn.ra, 158.58242653, 0.00000001);
failed += test_result ("(Dec) for comet Enckle ", equ_posn.dec, 19.13924815, 0.00000001);
l = ln_get_ell_orbit_len (&orbit);
failed += test_result ("(Orbit Length) for comet Enckle in AU ", l, 10.75710334, 0.00000001);
V = ln_get_ell_orbit_pvel (&orbit);
failed += test_result ("(Orbit Perihelion Vel) for comet Enckle in kms ", V, 70.43130198, 0.00000001);
V = ln_get_ell_orbit_avel (&orbit);
failed += test_result ("(Orbit Aphelion Vel) for comet Enckle in kms ", V, 5.70160892, 0.00000001);
V = ln_get_ell_orbit_vel (o_JD, &orbit);
failed += test_result ("(Orbit Vel JD) for comet Enckle in kms ", V, 48.16148331, 0.00000001);
dist = ln_get_ell_body_solar_dist (o_JD, &orbit);
failed += test_result ("(Body Solar Dist) for comet Enckle in AU ", dist, 0.65203581, 0.00000001);
dist = ln_get_ell_body_earth_dist (o_JD, &orbit);
failed += test_result ("(Body Earth Dist) for comet Enckle in AU ", dist, 0.82481670, 0.00000001);
// TNO http://www.cfa.harvard.edu/mpec/K05/K05O42.html
obs_date.years = 2006;
obs_date.months = 5;
obs_date.days = 5;
obs_date.hours = 0;
obs_date.minutes = 0;
obs_date.seconds = 0;
epoch_date.years = 2006;
epoch_date.months = 3;
epoch_date.days = 6;
epoch_date.hours = 0;
( run in 2.052 seconds using v1.01-cache-2.11-cpan-98e64b0badf )