
    1h+                         d dl Z d dlZd dlZd dlZd dlZd dlmZ d dlmZ d dl	Z	dddddd	d
ddddddZ
 e	j                  d      ZdZd Z G d de      Z G d dej"                        Zeeeee	f d Zy)    N)datetime)strptime                        	   
         )JanFebMarAprMayJunJulAugSepOctNovDecz	0:00:10.8g?c                 B    | j                         j                  dd      S )N :)stripreplace)ss    9D:\jyotish\venv\Lib\site-packages\ephem/tests/test_jpl.pycleanupr$      s    779S#&&    c                       e Zd Zy)JPLDatumN)__name__
__module____qualname__ r%   r#   r'   r'      s    r%   r'   c                       e Zd Zd Zy)JPLTestc                 L   d}t        | j                        }	 |j                         }|j                          |D ]  }|j	                  d      rI|j                         d   }t        t        |      st        d|z        t        t        |      } |       }^|j	                  d      rd}r|j	                  d      rd}|s|dd	 t        t        |d	d
          z   |d
d z   }t        j                  |d      }	j                  |	       t               }
t        j                   t#        |dd             |
_        t        j&                  t#        |dd             |
_        t+        |dd        |
_        dt.        fdt.        fdt0        ffD ]o  \  }}	 t        ||      }t        |
|      }t5        ||z
        }||kD  s3t        d|	d|j6                  d|d|d|d|dt        j&                  |      d        y # |j                          w xY w# t2        $ r Y w xY w)NFzTarget body name:r   zephem lacks a body named %rz$$SOETz$$EOEr   r
   r      z%Y-%m-%d %H:%M   "   #   .   G   a_raa_decsizezat z, z	 returns =z but JPL insists that z
 which is z degrees away)openpath	readlinesclose
startswithsplithasattrephem
ValueErrorgetattrstr
month_intsr   r   computer'   hoursr$   r5   degreesr6   floatr7   angle_error
size_errorAttributeErrorabsname)selfin_dataflineslinerM   
body_classbodydatestrdatejplattrerror
body_value	jpl_value
differences                   r#   runTestzJPLTest.runTest   s   O	KKMEGGID23zz|Aud+$%BT%IJJ$UD1
!|))q)c*T!AY*?&@@4":M((2BCT"j ;;wtBr{';<!MM'$r"+*>?	 bc+%+[$9%,k$:%+Z$8$:KD%!%,T4%8
 !(T 2I!$Z)%;!<J!E)( +/		4*.	*/--
*C*E F F$:3  GGI@ * ! !s   H HH	H#"H#N)r(   r)   r*   r]   r+   r%   r#   r-   r-      s    1Fr%   r-   c                     t        j                         }t        j                  t        j                  j                  t              dz         D ]$  }t               }||_        |j                  |       & |S )Nz
/jpl/*.txt)	unittest	TestSuiteglobosr:   dirname__file__r-   addTest)loadertestspatternsuiter:   cases         r#   
load_testsrk   S   sW     E		"''//(3lBCy	d D Lr%   )ra   os.pathrb   re	tracebackr_   r   timer   r@   rD   rG   rI   rJ   r$   objectr'   TestCaser-   rk   r+   r%   r#   <module>rr      s    . - -   
 Qq1QQqBr
 emmK(
'	v 	3Fh 3Fj Ix5 (r%   