Main Page   Namespace List   Compound List   File List   Compound Members   File Members  

test.cxx

Go to the documentation of this file.
00001 // $Header: /nfs/slac/g/glast/ground/cvs/astro/src/test/test.cxx,v 1.3 2002/08/14 14:58:19 burnett Exp $
00002 
00003 #include "astro/SolarSystem.h"
00004 #include "astro/EarthCoordinate.h"
00005 #include "astro/EarthOrbit.h"
00006 #include "astro/JulianDate.h"
00007 #include "astro/SkyDir.h"
00008 
00009 bool testSkyDir(){
00010     using namespace astro;
00011     bool ok = true;
00012     for(double l = -175 ; l < 175 ; l += 5.){
00013         for(double b = -85 ; b < 85 ; b +=5.){
00014             SkyDir sd4(l,b,SkyDir::GALACTIC);
00015             double test = fabs(l-sd4.l()) + fabs(b - sd4.b());
00016             //uncomment next line for verbose output:
00017             //std::cout << "l in = " << l << " ,b in = " << b << 
00018              //   " ,l out = " << sd4.l() << " ,b out = " << sd4.b() << 
00019             //" ,ra out = " << sd4.ra() << " ,dec out = " << sd4.dec() << std::endl;
00020             if(test > 1E-3){ std::cout << "error - l,b output does not match input" << std::endl; 
00021             ok =false;}
00022         }
00023     }
00024     for(double ra = 5 ; l < 355 ; l += 5.){
00025         for(double dec = -85 ; dec < 85 ; dec +=5.){
00026             SkyDir sd4(ra,dec);
00027             double test = fabs(ra-sd4.ra()) + fabs(dec - sd4.dec());
00028             //uncomment next line for verbose output:
00029             //std::cout << "ra in = " << ra << " ,dec in = " << dec << 
00030             //    " ,ra out = " << sd4.ra() << " ,dec out = " << sd4.dec() << 
00031             //   " ,l out = " << sd4.l() << " ,b out = " << sd4.b() << std::endl;
00032             if(test > 1E-3){
00033                 std::cout << "error - ra,dec output does not match input" << std::endl; 
00034                 ok=false;
00035             }
00036         }
00037     }
00038     //test some known locations:
00039     SkyDir sd5(0.,0.,SkyDir::GALACTIC);
00040     //std::cout <<  "X =" << sd5.dir().x() << " , Y =" << sd5.dir().y() << " , Z =" << sd5.dir().z() << std::endl;
00041     
00042     std::cout << "galactic center corresponds to Ra = " << sd5.ra() << " , Dec = " << sd5.dec() << std::endl;
00043 return ok;
00044 }
00045 
00046 
00047 int main(){
00048 
00049 using namespace astro;
00050 using namespace std;
00051 
00052     if( !testSkyDir() )return 1;
00053 
00054     JulianDate JD2000 = JulianDate(2000,1,1,12.); //2451545
00055     
00056     double test=0;
00057 
00058     test += fabs(JD2000 -2451545);
00059 
00060     double ra=30,dec=50;
00061     SkyDir sd(ra, dec);
00062 
00063     double l=-10.,b=-10.;
00064     SkyDir sd3(l,b,SkyDir::GALACTIC);
00065 
00066     test += fabs(l-sd3.l()) + fabs(b - sd3.b());
00067     test += fabs(ra-sd.ra()) +fabs(dec-sd.dec());
00068     
00069     double lat=40, lon=45;
00070 
00071     EarthCoordinate ec(lat, lon);
00072 
00073     test += fabs(lat-ec.latitude()) + fabs(lon-ec.longitude());
00074 
00075     // test the SkyDir difference function
00076     SkyDir sd2(ra+1,dec);
00077     double 
00078         diff = sd2.difference(sd);
00079     test+= fabs( diff/cos(dec*M_PI/180) - M_PI/180. );
00080 
00081     if( test < 1e-3 ) {
00082         cout << "tests ok " << endl;
00083         return 0;
00084     }
00085     cout << "failed a test" << endl;
00086     cout << "JD2000" << JD2000 << endl;  
00087     cout << "SkyDir("<<ra<<","<<dec<<") " << sd.ra() << ", " << sd.dec()   << endl;
00088     cout << "SkyDir3("<<l<<","<<b<<") " << sd3.l() << ", " << sd3.b()   << endl;
00089     cout << "EarthCoordinate("<<lat<<","<<lon<<") " << ec.latitude() << ", " << ec.longitude() << endl;
00090 
00091     // run the sun and moon
00092     return 1; 
00093 }
00094 

Generated on Wed Aug 14 10:09:35 2002 for astro by doxygen1.2.11.1 written by Dimitri van Heesch, © 1997-2001