Index: /trunk/doc/pslib/eoc_testing.txt
===================================================================
--- /trunk/doc/pslib/eoc_testing.txt	(revision 5535)
+++ /trunk/doc/pslib/eoc_testing.txt	(revision 5535)
@@ -0,0 +1,93 @@
+1. Start with RA, Dec:
+
+    r = 122.9153182445501
+    d = 48.562968978679194
+
+These get stuffed into a psSphere (obj): psSphereAlloc, followed by
+explicitly setting the values in the struct.
+
+2. Convert obj to a psCube (psSphereToCube), should get:
+
+    x=-0.3596195125758298
+    y=0.5555613903455866
+    z=0.7496834983724809
+
+3. Need the Sun position, stuff it into a psSphere (sun).
+
+4. Gravitational deflection:
+
+    psGravityDeflection(obj, obj, sun);
+
+Convert obj to a psCube, should get:
+
+    x=-0.35961949760293604
+    y=0.5555613950298085
+    z=0.7496835020836093
+
+5. Need the Earth's direction of motion (psSphere *direction) and
+   speed (double speed).
+
+6. Aberration:
+
+    psAberration(obj, obj, direction, speed);
+
+Convert obj to a psCube, should get:
+
+    x=-0.35963388069046304
+    y=0.5555192509816625
+    z=0.7497078321908413
+
+7. Generate a psTime (time) for 2003-04-01T01:30:00 UTC.
+
+8. Precession and Nutation
+
+(a) psEarthPole *earthPN = psEOC_PrecessionModel(time);
+(b) psEarthPole *precessionCorr = psEOC_PrecessionCorr(time, PS_IERS_A);
+(c) psEarthPole *nutationCorr = psEOC_NutationCorr(time);
+
+Add the above components:
+
+    earthPN->x += precessionCorr->x + nutationCorr->x;
+    earthPN->y += precessionCorr->y + nutationCorr->y;
+    earthPN->s += precessionCorr->s + nutationCorr->s;
+
+9. Apply these to the position:
+
+    psSphereRot *precessionNutationInv = psSphereRot_CEOtoGCRS(earth); // This is CEO->GCRS
+    psSphereRot precessionNutation = psSphereRotInvert(precessionNutationInv); // This is GCRS->CEO
+    obj = psSphereRotApply(obj, precessionNutation, obj);
+
+Convert obj to a psCube, should get:
+
+    x=-0.3598480726985338
+    y=0.5555012823608123
+    z=0.7496183628158023
+
+8. Earth rotation:
+
+    psSphereRot *earthRotInv = psSphereRot_TEOtoCEO(time); // This is TEO->CEO
+    psSphereRot *earthRot = psSphereRotInvert(earthRotInv); // This is CEO->TEO
+    obj = psSphereRotApply(obj, earthRot, obj);
+
+Convert obj to a psCube, should get:
+
+    x=0.01698625430807123
+    y=-0.6616523084626379
+    z=0.7496183628158023
+
+9. Polar Motion:
+
+   psEarthPole *earthPM = psEOC_GetPolarMotion(time, PS_IERS_A);
+   psSphereRot *polarMotionInv = psSphereRot_ITRStoTEO(earthPM); // This is ITRS->TEO
+   psSphereRot *polarMotion = psSphereRotInvert(polarMotionInv); // This is TEO->ITRS
+   obj = psSphereRotApply(obj, polarMotion, obj);
+
+Convert obj to a psCube, should get:
+   
+    x=0.01698577185310146
+    y=-0.6616538927902393
+    z=0.7496169753347885
+
+10. The psLib SDRS does not define functions to go beyond this point
+(specifically, atmospheric refraction correction, and conversion to
+the observer's horizon coordinates), so we stop here.
