a
    ÝEbè1  ã                
   @   s*  d dl Z d dlZd dlZze W n ey>   d dlmZ Y n0 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„ 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d„ ZG dd„ de jƒZG dd„ de jƒZG dd„ de jƒZ dS )é    N)ÚSet)ÚBodyÚPlanetÚMoonÚJupiterÚSaturnÚ
PlanetMoonÚDateÚObserverÚreadtleÚreaddbÚ	FixedBodyÚEllipticalBodyÚHyperbolicBodyÚParabolicBodyÚEarthSatelliteÚconstellationc                   @   s   e Zd ZdS )Ú	TestErrorN)Ú__name__Ú
__module__Ú__qualname__© r   r   úW/home/ja/django-apps/lartica_env/lib/python3.9/site-packages/ephem/tests/test_bodies.pyr      s   r   )ZsublatZsublongZ	elevationÚrangeZrange_velocityZeclipsedF)	ÚraÚdecÚg_raÚg_decÚa_raÚa_decZelongÚmagÚsizeT)
ÚazÚaltZcircumpolarZneverupZ	rise_timeZrise_azZtransit_timeZtransit_altZset_timeZset_az)ZhlonZhlongZhlatZsun_distanceZearth_distanceÚphase)ZcolongZsubsolar_latZlibration_latZlibration_long)ÚcmlIÚcmlII)Ú
earth_tiltÚsun_tilt)r   r   r   r   r   r   ÚxÚyÚzZearth_visibleZsun_visible)r"   r#   c                 C   st   i }t D ]f\}}}|D ]V}||v r0|| tkr0qt| |ƒsDt||< q|sRt||< q|rd|sdt||< qd ||< qq|S ©N)Úattribute_listÚAttributeErrorÚ
isinstanceÚRuntimeError)ÚbodyÚwas_computedÚwas_given_observerZpredictionsÚbodytypeÚneeds_observerÚattrsÚattrr   r   r   Úpredict_attributes7   s    



r8   c                   @   s„   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ ZdS ) Ú	BodyTestsc                 C   s>   t dƒ| _tƒ  | _}d\|_|_|_d|_t ddt	¡ d S )Nz
2004/05/21)z33:45:10z	-84:23:37g      t@z	2005/2/15ÚignoreÚ.)
r	   Údater
   ÚobsZlatZlonZelevÚwarningsÚfilterwarningsÚDeprecationWarning)Úselfr=   r   r   r   ÚsetUpK   s
    
zBodyTests.setUpc                 C   s   t  ¡  d S r,   )r>   Úresetwarnings©rA   r   r   r   ÚtearDownU   s    zBodyTests.tearDownc                 C   sV   i }t D ]H\}}}|D ]8}zt||ƒ W n   t ¡ d ||< Y q0 d ||< qq|S )Né   )r-   ÚgetattrÚsysÚexc_info)rA   r1   Ú
attributesr4   r5   r6   r7   r   r   r   Úmeasure_attributes\   s    zBodyTests.measure_attributesc              
   C   s®   t |||ƒ}|  |¡}t|ƒ |¡D ]„}|| d u rB|| d u rBq$|| r^t|| || ƒr^q$|rz|rld}nd}|d7 }nd}td||||| || jd || f ƒ‚q$d S )NZtopoZgeozcentrically computedZ
uncomputedz2accessing %s of %s %s raised %r "%s" instead of %rr   )r8   rK   ÚsetÚunionr/   Ú
ValueErrorÚargs)rA   r1   r2   r3   ÚpÚtÚaZ	adjectiver   r   r   Úcompare_attributesl   s$    

ÿþzBodyTests.compare_attributesc                 C   s\   |   |dd¡ | d¡ |   |dd¡ | | j¡ |   |dd¡ | d¡ |   |dd¡ d S )NFz	2004/12/1T)rS   Úcomputer=   )rA   r1   r   r   r   Úrun_body†   s    

zBodyTests.run_bodyc                 C   s(   d  ¡ D ]}tt|ƒ}|  |ƒ ¡ qd S )NzÇMercury 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)ÚsplitrG   ÚephemrU   )rA   ÚnameZnamed_objectr   r   r   Ú
test_Named�   s    
zBodyTests.test_Namedc              
   C   st  t |tƒrt|Ž }nt|ƒ}|ƒ }| ¡ D ]F\}}zt|||ƒ W q* tyn   td||t 	¡ d f ƒ‚Y q*0 q*t ||ƒs�tdt
|ƒ|f ƒ‚|  |¡|  |¡f | j| jfD ]¾}t |tƒ}	| |¡| |¡f dd„ t|d|	ƒ ¡ D ƒ}
|
D ]|}t||ƒt||ƒ }}t |tƒ�rLtt|ƒƒtt|ƒƒ }}|d d… |d d… k�rLqð||krðtdt
|ƒ|||f ƒ‚qðq°d S )Nz$cannot modify attribute %s of %r: %srF   z9ephem database entry returned type %s rather than type %sc                 S   s   g | ]\}}|s|‘qS r   r   )Ú.0rR   Úer   r   r   Ú
<listcomp>¾   s   þz#BodyTests.build.<locals>.<listcomp>é   zE%s item from line returns %s for %s but constructed object returns %s)r/   Útupler   r   ÚitemsÚsetattrÚ	TypeErrorr   rH   rI   ÚtyperU   r<   r=   r
   rT   r8   rG   ÚfloatÚrepr)rA   r4   ÚdbentryrJ   ÚblÚbaÚ	attributeÚvalueZcircumstanceZis_observerr6   r7   ZvlÚvar   r   r   Úbuildž   s@    

ÿ

ÿ
ÿþzBodyTests.buildc              	   C   s    | j tdddddddœd� d S )	Nz-Achernar,f|V|B3,1:37:42.9,-57:14:12,0.46,2000ZAchernarz	1:37:42.9z	-57:14:12gq=
×£pÝ?Ú2000)rX   Z_raZ_decr    Ú_epoch©r4   re   rJ   )rk   r   rD   r   r   r   Útest_FixedBodyÌ   s    þýzBodyTests.test_FixedBodyc                 C   sH   |   t¡�}tdƒ W d   ƒ n1 s(0    Y  |  t|jƒd¡ d S )Né
   z/FixedBody() takes at most 0 arguments (1 given))ÚassertRaisesra   r   ÚassertEqualÚstrÚ	exception)rA   r[   r   r   r   Ú(test_FixedBody_does_not_ignore_argumentsÕ   s    &þz2BodyTests.test_FixedBody_does_not_ignore_argumentsc                 C   s.   | j tddddddddd	d
ddddœd� d S )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-Boppg©¤N@YV@g»'µ¦q@g;pÎˆÒZ`@g¨WÊ2ÄMg@g9nç±×ï?g        z1997/03/30.4376rl   r   g       Àç      @)rX   Ú_incÚ_OmÚ_omZ_aÚ_eÚ_MZ_epoch_Mrm   Ú_sizeÚ_gÚ_krn   )rk   r   rD   r   r   r   Útest_EllipticalBodyÝ   s    üûzBodyTests.test_EllipticalBodyc                 C   s*   | j tddddddddd	d
ddœ
d� d S )Nz[C/1999 J2 (Skiff),h,04/05.7769/2000,86.3277,50.0353,127.1286,1.002879,7.110858,2000,2.0,4.0ZSkiffz2000/4/5.7769gŒ¹k	ù”U@g?ÆÜµ„I@g ‘~û:È_@gà…­ÙÊð?gøÿqÂ„q@rl   g       @rv   )
rX   Ú_epoch_prw   rx   ry   rz   Ú_qrm   r}   r~   rn   )rk   r   rD   r   r   r   Útest_HyperbolicBodyê   s    ýüzBodyTests.test_HyperbolicBodyc                 C   s(   | j tddddddddd	d
dœ	d� d S )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õ¹ª\@gÕxé&14W@g& ÿ”*Ñå?g*©ÐD83@rl   g     €0@rv   )	rX   r€   rw   ry   r�   rx   rm   r}   r~   rn   )rk   r   rD   r   r   r   Útest_ParabolicBodyõ   s    ýüzBodyTests.test_ParabolicBodyc                 C   s8   | j tddtdƒd d dddd	d
dddddœd� d S )N)zHST                     úE1 20580U 90037B   04296.45910607  .00000912  00000-0  59688-4 0  1902úE2 20580  28.4694  17.3953 0004117 265.2946  94.7172 14.99359833594524zHubble TelescopeZ2004g¹@›X‡r@rF   gä<sAC ã>g¾>O0K?g¾0™*x<@gÚ|a2e1@gîÆ'	.û:?gmV}®¶”p@g=,Ôšæ­W@g¡k™ë¸ü-@i<è  )rX   rm   Z_decayZ_dragrw   Z_raanrz   Z_apr{   Z_nZ_orbitrn   )rk   r   r	   rD   r   r   r   Útest_EarthSatellite   s    ûùzBodyTests.test_EarthSatellitec                 C   s   t dddƒ dS )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   rD   r   r   r   Útest_newlineTLE  s    ýzBodyTests.test_newlineTLEc                 C   s   |   ttddd¡ dS )z<Make sure illegal-character TLE strings are properly caught.u   HST      Ã¾              r„   r…   N)rq   rN   r   rD   r   r   r   ÚOFF_test_badTLE  s
    üzBodyTests.OFF_test_badTLEN)r   r   r   rB   rE   rK   rS   rU   rY   rk   ro   ru   r   r‚   rƒ   r†   r‡   rˆ   r   r   r   r   r9   J   s   
	.	r9   c                   @   s    e Zd ZdZdd„ Zdd„ ZdS )ÚPlanetTestsz:See whether Jupiter Central Meridian Longitudes look good.c                 C   s0   t dƒ}|  t|jƒd¡ |  t|jƒd¡ d S )Nú	2008/10/1z146:15:13.8z221:03:27.0)r   rr   rs   r%   r&   )rA   Újr   r   r   Útest_jupiter+  s    zPlanetTests.test_jupiterc                 C   sD   t dƒ}d|j  k rdk s$n J ‚d|j  k r:dk s@n J ‚d S )NrŠ   gìQ¸…ë±¿g¸…ëQ¸®¿g
×£p=
·¿g{®Gáz´¿)r   r'   r(   )rA   Úsr   r   r   Útest_saturn1  s    zPlanetTests.test_saturnN)r   r   r   Ú__doc__rŒ   rŽ   r   r   r   r   r‰   )  s   r‰   c                   @   s   e Zd Zdd„ ZdS )ÚFunctionTestsc                 C   s&   t dƒ}| d¡ |  t|ƒd¡ d S )Nz#Orion Nebula,f,5.59,-5.45,2,2000.0,z	1999/2/28)ZOriZOrion)r   rT   rr   r   )rA   Zonebr   r   r   Útest_constellation:  s    
z FunctionTests.test_constellationN)r   r   r   r‘   r   r   r   r   r�   9  s   r�   )!ZunittestrH   r>   rL   Ú	NameErrorZsetsr   rW   r   r   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   Ú	Exceptionr   Zsatellite_attributesr-   r8   ZTestCaser9   r‰   r�   r   r   r   r   Ú<module>   sP   Hÿÿÿÿÿÿÿÿï `