
    1h4              
          d dl Z d dlZd dlZ	 e d dlZd dlmZm	Z	m
Z
mZmZmZmZmZmZmZmZmZmZmZmZmZ  G d de      ZdZeddfed	d
fe	ddfe
ddfeddfeddfeddfed	dffZd Z G d de j:                        Z G d de j:                        Z G d de j:                        Z  G d de j:                        Z!y# e$ r	 d dlmZ Y w xY w)    N)Set)BodyPlanetMoonJupiterSaturn
PlanetMoonDateObserverreadtlereaddb	FixedBodyEllipticalBodyHyperbolicBodyParabolicBodyEarthSatelliteconstellationc                       e Zd Zy)	TestErrorN)__name__
__module____qualname__     <D:\jyotish\venv\Lib\site-packages\ephem/tests/test_bodies.pyr   r      s    r   r   )sublatsublong	elevationrangerange_velocityeclipsedF)	radecg_rag_deca_raa_decelongmagsizeT)
azaltcircumpolarneverup	rise_timerise_aztransit_timetransit_altset_timeset_az)hlonhlonghlatsun_distanceearth_distancephase)colongsubsolar_latlibration_latlibration_long)cmlIcmlII)
earth_tiltsun_tilt)r&   r'   r$   r%   r"   r#   xyzearth_visiblesun_visible)r+   r,   c                     i }t         D ]S  \  }}}|D ]H  }||v r||   t        k7  rt        | |      s
t        ||<   *|s
t        ||<   6|r|s
t        ||<   Dd ||<   J U |S N)attribute_listAttributeError
isinstanceRuntimeError)bodywas_computedwas_given_observerpredictionsbodytypeneeds_observerattrsattrs           r   predict_attributesrV   7   s|    K+9'.%D{"{4'8N'JdH-$2D!!$0D!(:$0D!$(D!  ,: r   c                   f    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zy)BodyBuilderTestsc                     t        d      | _        t               x| _        }d\  |_        |_        |_        d|_        t        j                  ddt               y )Nz
2004/05/21)z33:45:10z	-84:23:37g      t@z	2005/2/15ignore.)
r
   dater   obslatlonelevwarningsfilterwarningsDeprecationWarning)selfr]   s     r   setUpzBodyBuilderTests.setUpK   sJ    &	!#3%C"#( 	#/ABr   c                 ,    t        j                          y rI   )ra   resetwarningsrd   s    r   tearDownzBodyBuilderTests.tearDownU   s     r   c                     i }t         D ]  \  }}}|D ]  }	 t        ||       d ||<    ! |S #  t        j                         d   ||<   Y 9xY w)N   )rJ   getattrsysexc_info)rd   rN   
attributesrR   rS   rT   rU   s          r   measure_attributesz#BodyBuilderTests.measure_attributes\   sa    
/=+Hne,D$' (,Jt$  0> 	9'*||~a'8Jt$s	   -Ac                 J   t        |||      }| j                  |      }t        |      j                  |      D ]h  }||   ||   ||   rt	        ||   ||         r&|r|rd}nd}|dz  }nd}t        d|d|d|d||   d	||   j                  d
   d||          y )Ntopogeozcentrically computed
uncomputedz
accessing  of  z raised z "r   z" instead of )rV   rp   setunionrL   
ValueErrorargs)rd   rN   rO   rP   pta	adjectives           r   compare_attributesz#BodyBuilderTests.compare_attributesl   s    t\3EF##D)QaAt|!t
1Q41.% &I %I33	(	 )T tQqTYYq\1Q49 : : !r   c                    | j                  |dd       |j                  d       | j                  |dd       |j                  | j                         | j                  |dd       |j                  d       | j                  |dd       y )NFz	2004/12/1T)r   computer]   )rd   rN   s     r   run_bodyzBodyBuilderTests.run_body   sr    eU3[!dE2TXXdD1[!dE2r   c                 z    dj                         D ](  }t        t        |      }| j                   |              * y )NzMercury Venus Mars Jupiter Saturn Uranus Neptune Pluto Sun Moon Phobos Deimos Io Europa Ganymede Callisto Mimas Enceladus Tethys Dione Rhea Titan Hyperion Iapetus Ariel Umbriel Titania Oberon Miranda)splitrl   ephemr   )rd   namenamed_objects      r   
test_NamedzBodyBuilderTests.test_Named   s8    . 05uw7D #5$/LMM,.)7r   c                    t        |t              r	t        | }nt        |      } |       }|j	                         D ]  \  }}	 t        |||        t        ||      st        dt        |      d|      | j                  |      | j                  |      f | j                  | j                  fD ]  }t        |t              }	|j                  |      |j                  |      f t!        |d|	      j	                         D 
cg c]	  \  }
}|s|
 }}
}|D ]  }t#        ||      t#        ||      }}t        |t$              r4t'        t%        |            t'        t%        |            }}|d d |d d k(  r_||k7  set        t        |      d|d	|d
|        y # t        $ r* t        d|d|dt        j                         d         w xY wc c}}
w )Nzcannot modify attribute ru   z: rk   z#ephem database entry returned type z rather than type    z item from line returns z for z  but constructed object returns )rL   tupler   r   itemssetattr	TypeErrorr   rm   rn   typer   r\   r]   r   r   rV   rl   floatrepr)rd   rR   dbentryro   blba	attributevaluecircumstanceis_observerr}   erT   rU   vlvas                   r   buildzBodyBuilderTests.build   s    gu%'"BB Z * 0 0 2IuFIu- !3 "h'6:2hJ K K 	b4==,, !IItxx/L$\8<KJJ|$bjj&>>+B;?EEG!G "Qq G  !  T*GB,=Bb%(!%)_d59oB#2w"Sb') 8#'+BxT2%? @ @  0  F#,b#,,.2C!E F FF"!s   F G 3Gc           
      @    | j                  t        ddddddd       y )	Nz-Achernar,f|V|B3,1:37:42.9,-57:14:12,0.46,2000Achernarz	1:37:42.9z	-57:14:12gq=
ףp?2000)r   _ra_decr)   _epochrR   r   ro   )r   r   rh   s    r   test_FixedBodyzBodyBuilderTests.test_FixedBody   s+    

C **K#v 	 	r   c                     | j                  t              5 }t        d       d d d        | j                  t	        j
                        d       y # 1 sw Y   /xY w)N
   z/FixedBody() takes at most 0 arguments (1 given))assertRaisesr   r   assertEqualstr	exception)rd   r   s     r   (test_FixedBody_does_not_ignore_argumentsz9BodyBuilderTests.test_FixedBody_does_not_ignore_arguments   sD    y)QbM *=	
 *)s   AAc                 N    | j                  t        ddddddddd	d
dddd       y )NzvC/1995 O1 (Hale-Bopp),e,89.3918,282.4192,130.8382,186.4302,0.0003872,0.99500880,0.0000,03/30.4376/1997,2000,g -2.0,4.0z	Hale-BoppgN@YV@g'q@g;pΈZ`@gW2Mg@g9n?g        z1997/03/30.4376r   r   g             @)r   _inc_Om_om_a_e_M_epoch_Mr   _size_g_kr   )r   r   rh   s    r   test_EllipticalBodyz$BodyBuilderTests.test_EllipticalBody   s?    

#7 !,W'&j$5!"$c	 	 
	r   c                 J    | j                  t        ddddddddd	d
dd
       y )Nz[C/1999 J2 (Skiff),h,04/05.7769/2000,86.3277,50.0353,127.1286,1.002879,7.110858,2000,2.0,4.0Skiffz2000/4/5.7769gk	U@g?ܵI@g ~:_@g?gqq@r   g       @r   )
r   _epoch_pr   r   r   r   _qr   r   r   r   )r   r   rh   s    r   test_HyperbolicBodyz$BodyBuilderTests.test_HyperbolicBody   s8    

#?")")'( (F #3	 	 	r   c                 H    | j                  t        ddddddddd	d
d	       y )NzVC/2004 S1 (Van Ness),p,12/08.9212/2004,114.6676,92.8155,0.681783,19.2198,2000,16.5,4.0zVan Nessz2004/12/8.9212gгY\@gx&14W@g& *?g*D83@r   g     0@r   )	r   r   r   r   r   r   r   r   r   r   )r   r   rh   s    r   test_ParabolicBodyz#BodyBuilderTests.test_ParabolicBody   s7    

"> *8H (&&"#	 	 	r   c                 j    | j                  t        ddt        d      dz   dz
  dddd	d
ddddd       y )N)zHST                     E1 20580U 90037B   04296.45910607  .00000912  00000-0  59688-4 0  1902E2 20580  28.4694  17.3953 0004117 265.2946  94.7172 14.99359833594524zHubble Telescope2004g@Xr@rk   g<sAC >g>O0K?g0*x<@g|a2e1@g'	.:?gmV}p@g=,ԚW@gk-@i<  )r   r   _decay_dragr   _raanr   _apr   _n_orbitr   )r   r   r
   rh   s    r   test_EarthSatellitez$BodyBuilderTests.test_EarthSatellite   sL    

#2
 !3"&v,"="A"+i ''%hg)U 	 	r   c                     t        ddd       y)z1Make sure TLE strings with newlines are accepted.zHST                     
zF1 20580U 90037B   04296.45910607  .00000912  00000-0  59688-4 0  1902
zF2 20580  28.4694  17.3953 0004117 265.2946  94.7172 14.99359833594524
N)r   rh   s    r   test_newlineTLEz BodyBuilderTests.test_newlineTLE  s     	,..	/r   c                 >    | j                  t        t        ddd       y)z<Make sure illegal-character TLE strings are properly caught.u   HST      þ              r   r   N)r   ry   r   rh   s    r   OFF_test_badTLEz BodyBuilderTests.OFF_test_badTLE  s#     	*g766		7r   N)r   r   r   re   ri   rp   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rX   rX   J   sP    C!
 :43	*,@\
		 /7r   rX   c                       e Zd Zd Zy)BodyFailureTestsc                     d}t        |      }|j                  d       | j                  t              5  |j                   d d d        y # 1 sw Y   y xY w)NztC/1980 Y1 (Bradfield),e,138.5850,115.3515,358.2941,945.0557,0.0000339,0.999725,359.9999,12/27.0/1980,2000,g  9.0,4.0z	2022/7/15)r   r   r   rM   r"   )rd   linebs      r   5test_nearly_parabolic_EllipticalBody_and_far_from_SunzFBodyFailureTests.test_nearly_parabolic_EllipticalBody_and_far_from_Sun'  sE    G 	 4L			+|,DD -,,s   A

AN)r   r   r   r   r   r   r   r   r   &  s    r   r   c                       e Zd ZdZd Z	 d Zy)PlanetTestsz:See whether Jupiter Central Meridian Longitudes look good.c                     t        d      }| j                  t        |j                        d       | j                  t        |j                        d       y )N	2008/10/1z146:15:13.8z221:03:27.0)r   r   r   r?   r@   )rd   js     r   test_jupiterzPlanetTests.test_jupiter7  s<    K QVVm4QWW}5r   c                     t        d      }d|j                  cxk  rdk  sJ  J d|j                  cxk  rdk  sJ  J y )Nr   gQ뱿gQg
ףp=
g{Gz)r   rA   rB   )rd   ss     r   test_saturnzPlanetTests.test_saturn=  sF    ;q||+e+++++qzz)E)))))r   N)r   r   r   __doc__r   r   r   r   r   r   r   5  s    D6
 ,*r   r   c                       e Zd Zd Zy)FunctionTestsc                 r    t        d      }|j                  d       | j                  t        |      d       y )Nz#Orion Nebula,f,5.59,-5.45,2,2000.0,z	1999/2/28)OriOrion)r   r   r   r   )rd   onebs     r   test_constellationz FunctionTests.test_constellationF  s/    ;<[!t,.>?r   N)r   r   r   r   r   r   r   r   r   E  s    @r   r   )"unittestrm   ra   rw   	NameErrorsetsr   r   r   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   	Exceptionr   satellite_attributesrJ   rV   TestCaserX   r   r   r   r   r   r   <module>r      s-    
   " " " " "		 	?  
5LN	4;< UIK	5BDeU!56 #4&Y7x(( Y7x	x(( 	*(## * @H%% @w	    s   B? ?CC