U
    e»{jãl  ã                   @   s¼  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mZ d dl	m
Z
 d dlmZ d dlmZ d dlmZ d dlmZmZmZ d dlmZ d d	lmZmZ d d
lm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)d*„ Z,d+d,„ Z-d-d.„ Z.d/d0„ Z/d1d2„ Z0d3d4„ Z1d5d6„ Z2d7d8„ Z3d9d:„ Z4d;d<„ Z5d=d>„ Z6d?d@„ Z7dAdB„ Z8dCdD„ Z9dEdF„ Z:dGdH„ Z;dIdJ„ Z<dKdL„ Z=dMdN„ Z>dOdP„ Z?dQdR„ Z@dSdT„ ZAdUdV„ ZBdWdX„ ZCdYdZ„ ZDd[d\„ ZEd]d^„ ZFd_d`„ ZGdadb„ ZHdcdd„ ZIdedf„ ZJdgdh„ ZKdidj„ ZLdkdl„ ZMdmdn„ ZNdodp„ ZOdqdr„ ZPdsdt„ ZQdudv„ ZRdwdx„ ZSdydz„ ZTd{d|„ ZUd}d~„ ZVdd€„ ZWd�d‚„ ZXdƒd„„ ZYd…d†„ ZZd‡dˆ„ Z[d‰dŠ„ Z\d‹dŒ„ Z]d�dŽ„ Z^d�d�„ Z_d‘d’„ Z`d“d”„ Zad•d–„ Zbd—d˜„ Zcd™dš„ Zdd›dœ„ Zed�dž„ ZfdŸd „ Zgd¡d¢„ Zhd£d¤„ Zid¥d¦„ Zjd§d¨„ Zkd©dª„ Zld«d¬„ Zmd­d®„ Znd¯d°„ Zod±d²„ Zpd³d´„ Zqdµd¶„ Zrd·d¸„ Zsd¹dº„ Ztd»d¼„ Zud½d¾„ Zvd¿dÀ„ ZwdÁdÂ„ ZxdÃdÄ„ ZydÅdÆ„ ZzdÇ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çdè„ Z‹dédê„ ZŒdëdìdídîdïdðdñdògZ�ejŽ �dóe�¡dôdõ„ ƒZ�död÷dødùdúdûdüdýdþdÿ�d �d�d�ddýgZ‘ejŽ �dóe‘¡�d�d„ ƒZ’ejŽ �dó�d�d�dg¡�d	�d
„ ƒZ“dS (  é    N)Úassert_array_almost_equalÚassert_array_equal)ÚVersion)Úunits©Úfits)ÚUnitsWarning)Úget_pkg_data_contentsÚget_pkg_data_filenameÚget_pkg_data_fileobj)Ú_set_locale)Ú_wcsÚwcs)ÚFITSFixedWarningc                  C   s@   t  ¡ } | jdkst‚d| _| jdks*t‚| `| jdks<t‚d S )Nú ÚX)r   ÚWcsprmÚaltÚAssertionError©Úw© r   ú\/var/www/html/bwave/python/venv/lib/python3.8/site-packages/astropy/wcs/tests/test_wcsprm.pyÚtest_alt   s    r   c               	   C   s(   t  ¡ } t t¡� d| _W 5 Q R X d S )Nú$©r   r   ÚpytestÚraisesÚ
ValueErrorr   r   r   r   r   Útest_alt_invalid1$   s    r   c               	   C   s(   t  ¡ } t t¡� d| _W 5 Q R X d S )Nz  r   r   r   r   r   Útest_alt_invalid2*   s    r    c                  C   s   t  ¡ } t| jddgƒ d S ©Nr   )r   r   r   Ú
axis_typesr   r   r   r   Útest_axis_types0   s    r#   c                  C   sj   t  ¡ } ddgddgg| _| jjtks*t‚|  ¡ dks:t‚t| jddgddggƒ | `|  ¡ dksft‚d S ©Né   r   TF)r   r   ÚcdÚdtypeÚfloatr   Úhas_cdr   r   r   r   r   Útest_cd5   s    r*   c               	   C   s8   t  ¡ } |  ¡ dkst‚t t¡� | j W 5 Q R X d S ©NF)r   r   r)   r   r   r   ÚAttributeErrorr&   r   r   r   r   Útest_cd_missing?   s    r-   c               	   C   s^   t  ¡ } ddgddgg| _|  ¡ dks*t‚| `|  ¡ dks>t‚t t¡� | j W 5 Q R X d S r$   )r   r   r&   r)   r   r   r   r,   r   r   r   r   Útest_cd_missing2F   s    r.   c               	   C   s0   t  ¡ } t t¡� ddddg| _W 5 Q R X d S ©Nr%   r   )r   r   r   r   r   r&   r   r   r   r   Útest_cd_invalidP   s    r0   c                  C   s   t  ¡ } |  ¡  d S ©N)r   r   Úcdfixr   r   r   r   Ú
test_cdfixV   s    r3   c                  C   s6   t  ¡ } t| jddgƒ ddg| _t| jddgƒ d S )Nr%   é*   é6   )r   r   r   Úcdeltr   r   r   r   Ú
test_cdelt[   s    
r7   c               	   C   s&   t  ¡ } t t¡�
 | `W 5 Q R X d S r1   )r   r   r   r   Ú	TypeErrorr6   r   r   r   r   Útest_cdelt_deleteb   s    r9   c                  C   sB   t  ¡ } | jdkst‚d| _| jdks*t‚d| _| jdks>t‚d S )NFÚfooTr   )r   r   Z
cel_offsetr   r   r   r   r   Útest_cel_offseth   s    r;   c                  C   s   t  ¡ } |  ¡ dkst‚d S ©Néÿÿÿÿ)r   r   Úcelfixr   r   r   r   r   Útest_celfixq   s    r?   c                  C   sZ   t  ¡ } | jD ]}|dkst‚qt| jƒddgks6t‚ddg| _t| jƒddgksVt‚d S )NÚ s   fooÚbarr:   )r   r   Úcnamer   Úlist)r   Úxr   r   r   Ú
test_cnamex   s    

rE   c               	   C   s,   t  ¡ } t t¡� ddg| _W 5 Q R X d S )Nr4   r5   )r   r   r   r   r8   rB   r   r   r   r   Útest_cname_invalid‚   s    rF   c               	   C   s„   t  ¡ } | jjtjkst‚t| jddgƒ ddg| _t| jddgƒ d| jd< t| jddgƒ t 	t
¡� dddg| _W 5 Q R X d S ©Nr   r4   r5   r%   é   é   )r   r   Zcolaxr'   ÚnpZintcr   r   r   r   r   r   r   r   r   Ú
test_colaxˆ   s    

rK   c               	   C   s€   t  ¡ } | jdkst‚d| _| jdks*t‚t t¡� d| _W 5 Q R X t t¡� d| _W 5 Q R X t t¡�
 | `W 5 Q R X d S )Nr   r4   l   ÿÿÿÿÿ l   ÿÿ )r   r   Úcolnumr   r   r   ÚOverflowErrorr8   r   r   r   r   Útest_colnum•   s    rN   c               	   C   s(   t  ¡ } t t¡� d| _W 5 Q R X d S )Nr:   )r   r   r   r   r8   rL   r   r   r   r   Útest_colnum_invalid¥   s    rO   c                  C   sj   t  ¡ } | jjtkst‚t t | j¡¡s.t‚d| jd< t | jd ¡sLt‚| jd dks^t‚| j| _d S ©Nr   r%   )	r   r   Zcrderr'   r(   r   rJ   ÚallÚisnanr   r   r   r   Ú
test_crder«   s    
rS   c                  C   sZ   t  ¡ } ddg| _| jjtks"t‚|  ¡ dks2t‚t| jddgƒ | `|  ¡ dksVt‚d S r$   )r   r   Úcrotar'   r(   r   Ú	has_crotar   r   r   r   r   Ú
test_crotaµ   s    
rV   c               	   C   s8   t  ¡ } |  ¡ dkst‚t t¡� | j W 5 Q R X d S r+   )r   r   rU   r   r   r   r,   rT   r   r   r   r   Útest_crota_missing¿   s    rW   c               	   C   sV   t  ¡ } ddg| _|  ¡ dks"t‚| `|  ¡ dks6t‚t t¡� | j W 5 Q R X d S r$   )r   r   rT   rU   r   r   r   r,   r   r   r   r   Útest_crota_missing2Æ   s    
rX   c               	   C   s‚   t  ¡ } | jjtkst‚t| jddgƒ ddg| _t| jddgƒ d| jd< t| jddgƒ t t	¡� dddg| _W 5 Q R X d S rG   )
r   r   Úcrpixr'   r(   r   r   r   r   r   r   r   r   r   Ú
test_crpixÐ   s    

rZ   c                  C   s`   t  ¡ } | jjtkst‚t| jddgƒ ddg| _t| jddgƒ d| jd< t| jddgƒ d S )Nr   r4   r5   )r   r   Zcrvalr'   r(   r   r   r   r   r   r   Ú
test_crvalÝ   s    

r[   c                  C   sj   t  ¡ } | jjtkst‚t t | j¡¡s.t‚d| jd< t | jd ¡sLt‚| jd dks^t‚| j| _d S rP   )	r   r   Zcsyerr'   r(   r   rJ   rQ   rR   r   r   r   r   Ú
test_csyerç   s    
r\   c                  C   sò   t  ¡ } t| jƒddgkst‚ddg| _t| jddgƒ | jdksFt‚| jdksTt‚| j	dksbt‚| j
d	kspt‚t| jƒd
dgks†t‚ddg| _t| jddgƒ t| jƒddgks¶t‚| jdksÄt‚| jdksÒt‚| j	dksàt‚| j
d	ksît‚d S )Nr@   ó   RA---TANúDEC--TANi˜  i™  r%   r   ZDECZRAúRA---TANr:   rA   r=   )r   r   rC   Úctyper   r   r"   ÚlatÚlngÚlattypÚlngtypr   r   r   r   Ú
test_ctypeñ   s     

re   c                  C   s>   t  ¡ } t| jƒddgkst‚ddg| _t| jdkƒs:t‚d S )Nr@   s	   RA-	--TANz	DEC-
-TANz["RA-	--TAN", "DEC-
-TAN"])r   r   rC   r`   r   Úreprr   r   r   r   Útest_ctype_repr  s    
rg   c               
   C   sl   t  ¡ } t| jƒddgkst‚dD ]D}t t¡� | j|  W 5 Q R X t t¡� d| j|< W 5 Q R X q"d S )Nr@   ©rH   éýÿÿÿÚFOO)r   r   rC   r`   r   r   r   Ú
IndexError©r   Úidxr   r   r   Útest_ctype_index_error  s    rn   c               	   C   sà   t  ¡ } t| jƒddgkst‚t t¡� d| jd< W 5 Q R X t t¡� d| jd< W 5 Q R X t t¡� ddg| _W 5 Q R X t t¡� d | _W 5 Q R X t t¡� dddg| _W 5 Q R X t t¡� dd	g| _W 5 Q R X d S )
Nr@   ZdXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXr   TÚaÚbÚcrj   ZdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA)	r   r   rC   r`   r   r   r   r   r8   r   r   r   r   Útest_ctype_invalid_error  s    rr   c               	   C   s<   t  ¡ } | jdkst‚d| _t t¡� d| _W 5 Q R X d S )Nr=   r   )r   r   Zcubefacer   r   r   rM   r   r   r   r   Útest_cubeface&  s
    rs   c                  C   sb   t  ¡ } t| jƒt d¡t d¡gks*t‚tjdg| _| jd tjksJt‚| jd tjks^t‚d S )Nr@   Úkmr   r%   )	r   r   rC   ÚcunitÚuÚUnitr   Úmrt   r   r   r   r   Ú
test_cunit.  s
    "ry   c               	   C   sB   t  ¡ } tjtjdd��}d| jd< W 5 Q R X t|ƒdks>t‚d S )Nr:   ©Úmatchr   r%   )	r   r   r   Úwarnsrv   r   ru   Úlenr   ©r   r|   r   r   r   Útest_cunit_invalid6  s    r   c               	   C   sj   t  ¡ } t tj¡�}ddg| _W 5 Q R X t|ƒdks:t‚dt	|d j
ƒksPt‚dt	|d j
ƒksft‚d S )Nr:   rA   rH   r   r%   )r   r   r   r|   rv   r   ru   r}   r   ÚstrÚmessager~   r   r   r   Útest_cunit_invalid2=  s    r‚   c                  C   sD   t  ¡ } tj| j jd< | j jd tjks,t‚t| j jƒdks@t‚d S )Nr   z['erg', ''])r   ÚWCSrv   Zergru   r   rf   r   r   r   r   Ú	test_unitF  s    r„   c               	   C   s<   t  ¡ } t t¡� tjddd�}W 5 Q R X || j jd< d S )NZFOOBARÚwarn)Zparse_strictr   )r   rƒ   r   r|   r   rv   rw   ru   )r   Zmyunitr   r   r   Ú
test_unit2N  s    r†   c               
   C   s†   t  ¡ } dD ]J}t t¡� | j j|  W 5 Q R X t t¡� tj| j j|< W 5 Q R X qt t¡� tjtjtjg| j _W 5 Q R X d S )Nrh   )	r   rƒ   r   r   rk   ru   rv   rx   r   rl   r   r   r   Ú
test_unit3U  s    r‡   c                  C   s   t  ¡ } |  ¡  d S r1   )r   r   Úunitfixr   r   r   r   Útest_unitfix`  s    r‰   c               	   C   sX   t  ¡ } |  ¡ dkst‚|  ddg¡dks.t‚t t¡� |  dddg¡ W 5 Q R X d S )Nr=   r   r%   rH   )r   r   Úcylfixr   r   r   r   r   r   r   r   Útest_cylfixe  s
    r‹   c                  C   s   t  ¡ } | jdkst‚d S ©Nr@   )r   r   Údateavgr   r   r   r   r   Útest_dateavgq  s    rŽ   c                  C   s   t  ¡ } | jdkst‚d S rŒ   )r   r   Údateobsr   r   r   r   r   Útest_dateobsw  s    r�   c                  C   s>   t  ¡ } d| _|  ¡ dkst‚| jdks,t‚| jdks:t‚d S )Nú31/12/99r   ú
1999-12-31ç    à*é@)r   r   r�   Údatfixr   Úmjdobsr   r   r   r   Útest_datfix}  s
    r–   c               	   C   s`   t  ¡ } t | j¡st‚d| _| jdks,t‚| `t | j¡s@t‚t t¡� d | _W 5 Q R X d S r!   )	r   r   rJ   rR   Úequinoxr   r   r   r8   r   r   r   r   Útest_equinox…  s    r˜   c               	   C   s’   t  ¡ } dddddddddœ}tj j}t|ƒtdƒkr<|d= t|ƒtdƒkrRd| _tdƒt|ƒ  krrtdƒk r~n nd	|d
< |  ¡ |ksŽt‚d S )Nú	No change)r2   rŠ   Úobsfixr”   Úspcfixrˆ   r>   rš   Ú5rš   ú7.1z
1858-11-17z7.4z7.6ZSuccessr”   )r   r   r   Ú__version__r   ÚdaterefÚfixr   ©r   Úfix_refÚversionr   r   r   Útest_fix‘  s$    ø$r¤   c                  C   sº   t  ¡ } d| _ddddddddœ}tj j}t|ƒtdƒkrH|d= d|d< t|ƒtd	ƒkrjd
|d  |d< n t|ƒtdƒkrŠd|d  |d< |  ¡ |ksšt‚| jdks¨t‚| jdks¶t‚d S )Nr‘   r™   z[Set MJD-OBS to 51543.000000 from DATE-OBS.
Changed DATE-OBS from '31/12/99' to '1999-12-31'©r2   rŠ   rš   r”   r›   rˆ   r>   rœ   rš   z"Changed '31/12/99' to '1999-12-31'r”   ú7.3ú)Set DATEREF to '1858-11-17' from MJDREF.
r�   ú+Set DATE-REF to '1858-11-17' from MJD-REF.
r’   r“   )	r   r   r�   r   rž   r   r    r   r•   r¡   r   r   r   Ú	test_fix2«  s.    ö
ÿ
ÿr©   c                  C   s¼   t  ¡ } d| _ddddddddœ}tj j}t|ƒtdƒkrH|d= d|d< t|ƒtd	ƒkrjd
|d  |d< n t|ƒtdƒkrŠd|d  |d< |  ¡ |ksšt‚| jdks¨t‚t 	| j
¡s¸t‚d S )Nz31/12/F9r™   z"Invalid DATE-OBS format '31/12/F9'r¥   rœ   rš   z0Invalid parameter value: invalid date '31/12/F9'r”   r¦   r§   r�   r¨   )r   r   r�   r   rž   r   r    r   rJ   rR   r•   r¡   r   r   r   Ú	test_fix3Î  s.    ù

ÿ
ÿrª   c               	   C   s,   t  ¡ } t t¡� |  d¡ W 5 Q R X d S )Nr   ©r   r   r   r   r   r    r   r   r   r   Ú	test_fix4î  s    r¬   c               	   C   s4   t  ¡ } t t¡� | jdddgd� W 5 Q R X d S )Nr   r%   rH   ©Únaxisr«   r   r   r   r   Ú	test_fix5ô  s    r¯   c                  C   s    t  ¡ } t|  ¡ ƒdkst‚d S r!   )r   r   r}   Úget_psr   r   r   r   r   Útest_get_psú  s    r±   c                  C   s    t  ¡ } t|  ¡ ƒdkst‚d S r!   )r   r   r}   Úget_pvr   r   r   r   r   Útest_get_pv   s    r³   c               	   C   s(   t  ¡ } t t¡� | j W 5 Q R X d S r1   )r   r   r   r   r   Úimgpix_matrixr   r   r   r   Útest_imgpix_matrix  s    rµ   c               	   C   s(   t  ¡ } t t¡� d | _W 5 Q R X d S r1   )r   r   r   r   r,   r´   r   r   r   r   Útest_imgpix_matrix2  s    r¶   c                  C   s   t  ¡ } |  ¡ st‚d S r1   )r   r   Zis_unityr   r   r   r   r   Útest_isunity  s    r·   c                  C   s   t  ¡ } | jdkst‚d S r<   )r   r   ra   r   r   r   r   r   Útest_lat  s    r¸   c               	   C   s(   t  ¡ } t t¡� d| _W 5 Q R X d S r!   )r   r   r   r   r,   ra   r   r   r   r   Útest_lat_set  s    r¹   c                  C   s@   t  ¡ } | jdkst‚d| _| jdks*t‚| `| jdks<t‚d S )Ng     €V@ç     €F@)r   r   Zlatpoler   r   r   r   r   Útest_latpole"  s    r»   c                  C   s   t  ¡ } | jdkst‚d S ©Nz    )r   r   rc   r   r   r   r   r   Útest_lattyp+  s    r½   c               	   C   s(   t  ¡ } t t¡� d| _W 5 Q R X d S r!   )r   r   r   r   r,   rc   r   r   r   r   Útest_lattyp_set0  s    r¾   c                  C   s   t  ¡ } | jdkst‚d S r<   )r   r   rb   r   r   r   r   r   Útest_lng6  s    r¿   c               	   C   s(   t  ¡ } t t¡� d| _W 5 Q R X d S r!   )r   r   r   r   r,   rb   r   r   r   r   Útest_lng_set;  s    rÀ   c                  C   s   t  ¡ } | jdkst‚d S r¼   )r   r   rd   r   r   r   r   r   Útest_lngtypA  s    rÁ   c               	   C   s(   t  ¡ } t t¡� d| _W 5 Q R X d S r!   )r   r   r   r   r,   rd   r   r   r   r   Útest_lngtyp_setF  s    rÂ   c                  C   sD   t  ¡ } t | j¡st‚d| _| jdks,t‚| `t | j¡s@t‚d S ©Nrº   )r   r   rJ   rR   Zlonpoler   r   r   r   r   Útest_lonpoleL  s    rÄ   c                  C   sR   t  ¡ } ddg| _t t j¡�* |  ddddgddddgd	d
gd¡ W 5 Q R X d S )Nr]   r^   r%   éð   ià  é   r   rH   r5   é    )r   r   r`   r   r   ZInvalidCoordinateErrorZmixr   r   r   r   Útest_mixU  s    
rÈ   c                  C   sD   t  ¡ } t | j¡st‚d| _| jdks,t‚| `t | j¡s@t‚d S rÃ   )r   r   rJ   rR   Zmjdavgr   r   r   r   r   Útest_mjdavg\  s    rÉ   c                  C   sD   t  ¡ } t | j¡st‚d| _| jdks,t‚| `t | j¡s@t‚d S rÃ   )r   r   rJ   rR   r•   r   r   r   r   r   Útest_mjdobse  s    rÊ   c                  C   s.   t  ¡ } | jdkst‚d| _| jdks*t‚d S ©Nr@   r:   )r   r   Únamer   r   r   r   r   Ú	test_namen  s    rÍ   c                  C   s   t  ¡ } | jdkst‚d S )NrH   )r   r   r®   r   r   r   r   r   Ú
test_naxisu  s    rÎ   c               	   C   s(   t  ¡ } t t¡� d| _W 5 Q R X d S )Né   )r   r   r   r   r,   r®   r   r   r   r   Útest_naxis_setz  s    rÐ   c                  C   sf   t  ¡ } t t | j¡¡st‚ddddddg| _t| jddddddgƒ | `t t | j¡¡sbt‚d S )Nr%   rH   rI   rÏ   rÆ   é   )r   r   rJ   rQ   rR   Zobsgeor   r   r   r   r   r   Útest_obsgeo€  s    rÒ   c                  C   s~   t  ¡ } |  ¡ st‚t| jddgddggƒ ddgddgg| _|  ¡ rJt‚| `|  ¡ sZt‚t| jddgddggƒ | j| _d S r/   )r   r   Úhas_pcr   r   Úpcr&   r   r   r   r   Útest_pc‰  s    rÕ   c               	   C   sF   t  ¡ } ddgddgg| _|  ¡ r&t‚t t¡� | j W 5 Q R X d S r/   )	r   r   r&   rÓ   r   r   r   r,   rÔ   r   r   r   r   Útest_pc_missing•  s
    rÖ   c                  C   sD   t  ¡ } t | j¡st‚d| _| jdks,t‚| `t | j¡s@t‚d S ©Nç      E@)r   r   rJ   rR   Zphi0r   r   r   r   r   Ú	test_phi0�  s    rÙ   c               	   C   s(   t  ¡ } t t¡� | j W 5 Q R X d S r1   )r   r   r   r   r   Úpiximg_matrixr   r   r   r   Útest_piximg_matrix¦  s    rÛ   c               	   C   s(   t  ¡ } t t¡� d | _W 5 Q R X d S r1   )r   r   r   r   r,   rÚ   r   r   r   r   Útest_piximg_matrix2¬  s    rÜ   c                  C   s   t  ¡ } tt| ƒtƒst‚d S r1   )r   r   Ú
isinstancer€   r   r   r   r   r   Útest_print_contents²  s    rÞ   c                  C   s.   t  ¡ } | jdkst‚d| _| jdks*t‚d S rË   )r   r   Úradesysr   r   r   r   r   Útest_radesys¹  s    rà   c                  C   s6   t  ¡ } | jdkst‚tj| _t | j¡s.t‚| `d S ©Nç        )r   r   Zrestfrqr   rJ   ÚnanrR   r   r   r   r   Útest_restfrqÀ  s
    rä   c                  C   s6   t  ¡ } | jdkst‚tj| _t | j¡s.t‚| `d S rá   )r   r   Zrestwavr   rJ   rã   rR   r   r   r   r   Útest_restwavÈ  s
    rå   c                  C   s.   t  ¡ } ddg}|  |¡ |  ¡ |ks*t‚d S )N©r   r   Zparam1)r%   r%   Zparam2)r   r   Úset_psr°   r   ©r   Údatar   r   r   Útest_set_psÐ  s    
rê   c                  C   s   t  ¡ } |  dgd ¡ d S )Nræ   é   )r   r   rç   r   r   r   r   Útest_set_ps_realloc×  s    rì   c                  C   s.   t  ¡ } ddg}|  |¡ |  ¡ |ks*t‚d S )N©r   r   rØ   )r%   r%   g      K@)r   r   Úset_pvr²   r   rè   r   r   r   Útest_set_pvÜ  s    
rï   c                  C   s   t  ¡ } |  dgd ¡ d S )Nrí   rë   )r   r   rî   r   r   r   r   Útest_set_pv_reallocã  s    rð   c                  C   s*   t ddd�} t | ¡}| ¡ dks&t‚d S )Núdata/spectra/orion-velo-1.hdrÚbinary©Úencodingr=   )r	   r   r   r›   r   ©Úheaderr   r   r   r   Útest_spcfixè  s    
r÷   c                  C   s   t  ¡ } | jdkst‚d S r<   )r   r   Úspecr   r   r   r   r   Ú	test_specð  s    rù   c               	   C   s(   t  ¡ } t t¡� d| _W 5 Q R X d S r!   )r   r   r   r   r,   rø   r   r   r   r   Útest_spec_setõ  s    rú   c                  C   s.   t  ¡ } | jdkst‚d| _| jdks*t‚d S rË   )r   r   Zspecsysr   r   r   r   r   Útest_specsysû  s    rû   c                   C   s   d S r1   r   r   r   r   r   Ú	test_sptr  s    rü   c                  C   s.   t  ¡ } | jdkst‚d| _| jdks*t‚d S rË   )r   r   Zssysobsr   r   r   r   r   Útest_ssysobs  s    rý   c                  C   s.   t  ¡ } | jdkst‚d| _| jdks*t‚d S rË   )r   r   Zssyssrcr   r   r   r   r   Útest_ssyssrc  s    rþ   c                  C   s   t  ¡ } t| jƒdkst‚d S r!   )r   r   r}   Útabr   r   r   r   r   Útest_tab  s    r   c                  C   sD   t  ¡ } t | j¡st‚d| _| jdks,t‚| `t | j¡s@t‚d S r×   )r   r   rJ   rR   Ztheta0r   r   r   r   r   Útest_theta0  s    r  c                  C   s   t  ¡ } t|  ¡ tƒst‚d S r1   )r   r   rÝ   Ú	to_headerr€   r   r   r   r   r   Útest_toheader$  s    r  c                  C   sD   t  ¡ } t | j¡st‚d| _| jdks,t‚| `t | j¡s@t‚d S r×   )r   r   rJ   rR   Zvelanglr   r   r   r   r   Útest_velangl)  s    r  c                  C   sD   t  ¡ } t | j¡st‚d| _| jdks,t‚| `t | j¡s@t‚d S r×   )r   r   rJ   rR   Zvelosysr   r   r   r   r   Útest_velosys2  s    r  c                  C   s@   t  ¡ } | jdkst‚d| _| jdks*t‚| `| jdks<t‚d S )Nrâ   r4   rØ   )r   r   Zvelrefr   r   r   r   r   Útest_velref;  s    r  c                  C   sD   t  ¡ } t | j¡st‚d| _| jdks,t‚| `t | j¡s@t‚d S r×   )r   r   rJ   rR   Zzsourcer   r   r   r   r   Útest_zsourceD  s    r  c                  C   sN   t ddd�} t | ¡}|jjdks&t‚| ¡ jdks8t‚| ¡ jdksJt‚d S )Núdata/3d_cd.hdrrò   ró   )rI   rI   )rI   )r	   r   r   r&   Úshaper   Úget_pcZ	get_cdeltrõ   r   r   r   Ú
test_cd_3dM  s
    
r  c               	   C   sN   t ddd�} t | ¡}| ¡ }zd|d< W n ttfk
rB   Y nX tƒ ‚d S )Nr  rò   ró   r4   )r   r   )r	   r   r   r
  ÚRuntimeErrorr   r   )rö   r   rÔ   r   r   r   Útest_get_pcU  s    
r  c               	   C   s>   t  ¡ } ddgddgg| _t t j¡� |  ¡  W 5 Q R X d S r!   )r   r   rÔ   r   r   ZSingularMatrixErrorÚsetr   r   r   r   Útest_detailed_erra  s    r  c               
   C   sl   ddl m}  tddd��6}|  |¡}t t¡� t |d j	¡}W 5 Q R X W 5 Q R X |jj
d dksht‚d S )Nr   r   zdata/header_newlines.fitsrò   ró   zRA---TAN-SIP)Ú
astropy.ior   r   Úopenr   r|   r   r   rƒ   rö   r`   r   )r   Z	test_fileZhdulistr   r   r   r   Útest_header_parseh  s     ÿ
$r  c               
   C   s‚   z\t dƒ�J tddd�} t t¡�( t | ¡}t d| 	¡ ¡d ksFt
‚W 5 Q R X W 5 Q R X W n  tjk
r|   t d¡ Y nX d S )NÚfr_FRzdata/locale.hdrrò   ró   z[0-9]+,[0-9]*zOCan't set to 'fr_FR' locale, perhaps because it is not installed on this system)r   r	   r   r|   r   r   r   ÚreÚsearchr  r   ÚlocaleÚErrorZxfailrõ   r   r   r   Útest_localet  s    

0ÿr  c               	   C   s(   t  ¡ } t t¡� d| _W 5 Q R X d S )Nu   â€°)r   r   r   r   ÚUnicodeEncodeErrorr   r   r   r   r   Útest_unicode‚  s    r  c                  C   s4   t j tdƒ¡} t | ¡}| tjg¡ t 	¡  dS )zIssue #1960zdata/sub-segfault.hdrN)
r   ÚHeaderZfromtextfiler
   r   rƒ   ÚsubZWCSSUB_CELESTIALÚgcZcollectrõ   r   r   r   Útest_sub_segfaultˆ  s    
r  c                  C   s   t  ¡ } |  d¡ d S r+   )r   r   Zbounds_checkr   r   r   r   Útest_bounds_check�  s    r  c               	   C   s0   t  ¡ } tjtdd�� |  d¡ W 5 Q R X dS )zIssue #1587z)axes must None, a sequence or an integer$rz   ÚlatitudeN)r   r   r   r   r8   r  r   r   r   r   Útest_wcs_sub_error_message•  s    r!  c                  C   s,   t  ¡ } |  dg¡ t  ¡ } |  dg¡ dS )zIssue #3356r   s   latitudeN)r   r   r  r   r   r   r   Útest_wcs_subœ  s    r"  c               	   C   sÌ   t ddd�} t | ¡}t | ¡}||ks,t‚d|_||ks>t‚| |¡rLt‚| |tj¡s^t‚t | ¡}t | ¡}t t	¡�F t
 d¡|jd< t
 d¡|jd< | |¡r¬t‚|j|dd�s¾t‚W 5 Q R X d S )	Nr  rò   ró   r4   gq?r   g�íµ ÷Æ°>)Z	tolerance)r	   r   r   r   r—   ÚcompareZWCSCOMPARE_ANCILLARYr   r|   ÚRuntimeWarningrJ   Zfloat32r6   Zfloat64)rö   r   Úw2r   r   r   Útest_compare¥  s    



r&  c                  C   s,   t  ¡ } ddg| _|  ¡  | jdks(t‚d S )Nr_   r^   ÚICRS)r   r   r`   r  rß   r   r   r   r   r   Útest_radesys_defaults½  s    
r(  c                  C   s  t jdd�} | jdkst‚t | j¡s*t‚t jdd�} dD ]0}|| _|  ¡  | jdksZt‚t | j¡s:t‚q:dD �]¤}t jdd�} || _|  ¡  | jdksžt‚t jdd�} || _d| _|  ¡  | jdksÌt‚t jdd�} || _d	| _|  ¡  | jd
ksút‚t jdd�} || _d| _|  ¡  | jdk�s*t‚t jdd�} || _|  ¡  t | j¡�sVt‚t jdd�} || _d| _|  ¡  t | j¡�sˆt‚t jdd�} || _d
| _|  ¡  | jdk�s¸t‚t jdd�} || _d| _|  ¡  | jdk�sèt‚t jdd�} || _d| _|  ¡  | jdkspt‚qpd S )NrH   r­   r@   ))úGLON-CARúGLAT-CAR)zSLON-SINzSLAT-SIN))r_   r^   )úELON-TANúELAT-TAN)r^   r_   )r,  r+  r'  i¼  ZFK4iÀ  ZFK5r:   g     @Ÿ@iž  zFK4-NO-E)	r   r   rß   r   rJ   rR   r—   r`   r  )r   r`   r   r   r   Útest_radesys_defaults_fullÄ  sj    
r-  c                  C   s  t  ddgddgddgddgddgddgddgddgddgddgg
t¡} t ¡ }dd	g|j_d
dg|j_ddg|j_| | d¡}t  ddgddgddgddgddgddgddgddgddgddgg
t¡}t	||ƒ | 
|d¡}| d d …df  d;  < t	|| ƒ d S )NgðLÙåàâ¿g      à¿gRm‡ö5{?g      Ð¿râ   g      Ð?g      à?r)  r*  gPþ¿�N{¿gPþ¿�N{?g5^ºIúR@gü©ñÒM¶R@r%   gÍÌÌÌÌŒd@gÔ:ýâJdÃ¿g}éíÏEºR@g3p­›¬B@gì¿ÎM\@gGå&»b@r   g     €v@)rJ   Úarrayr(   r   rƒ   r`   r6   rY   Zwcs_world2pixr   Zwcs_pix2world)Zworldr   rD   Úexpectedr%  r   r   r   Útest_iteration  sJ    öóöó
r0  c               	   C   s  t  t¡� tjdd� W 5 Q R X t  t¡� tjdd� W 5 Q R X t  t¡� tjdd� W 5 Q R X t  t¡� tjdd� W 5 Q R X tddd	�} t  t¡� tj| d
d� W 5 Q R X t  t¡� tj| dd� W 5 Q R X t  t¡� tj| dd� W 5 Q R X d S )NÚA)ZkeyselrH   )Zcolselé@   r­   rñ   rò   ró   rj   )ZrelaxrI   )Úkey)r   r   r8   r   r   r   r	   ÚKeyError)rö   r   r   r   Útest_invalid_argsN  s    r5  c                  C   s¢   t  ¡ } | jdkst‚d| _| jdks*t‚d| _ddddddddœ}ttj jƒtdƒkrjd|d	  |d	< n$ttj jƒtd
ƒkrŽd|d	  |d	< |  ¡ |ksžt‚d S )Nr@   z
2001-02-11r‘   r™   z"Invalid DATE-BEG format '31/12/99'r¥   r¦   r§   r”   r�   r¨   )r   r   Zdatebegr   r   r   rž   r    )r   r¢   r   r   r   Útest_datebegi  s(    ù

ÿ
ÿr6  ZtimesysZtrefposZtrefdirZplephemZtimeunitrŸ   r�   Zdateendr3  c              	   C   s^   t  ¡ }t|| ƒdkst‚t|| dƒ t|| ƒdks8t‚t t¡� t|| dƒ W 5 Q R X d S )Nr@   r:   r4   )r   r   Úgetattrr   Úsetattrr   r   r8   ©r3  r   r   r   r   Útest_char_keys‘  s    r:  r•   ZmjdbegZmjdendZjepochZbepochZtstartZtstopZxposureZtimsyerZtimrderZtimedelZtimepixrZtimeoffsZtelapsec              	   C   s~   t  ¡ }t t|| ƒ¡st‚t|| dƒ t|| ƒdks:t‚t|| ƒ t t|| ƒ¡sXt‚t 	t
¡� t|| dƒ W 5 Q R X d S )NrØ   r:   )r   r   rJ   rR   r7  r   r8  Údelattrr   r   r8   r9  r   r   r   Útest_num_keys®  s    
r<  ZczphsZcperiÚmjdrefc              	   C   sÔ   t  ¡ }t|| ƒ}| dkrBtt jƒtdƒkrBt |ddg¡sVt‚nt t 	|¡¡sVt‚|j
tksdt‚t|| ddgƒ tt|| ƒddgƒ t t¡� t|| ddgƒ W 5 Q R X t t¡� t|| dƒ W 5 Q R X d S )Nr=  r�   r   g      ð?g       @r:   rA   )r   r   r7  r   rž   rJ   Zallcloser   rQ   rR   r'   r(   r8  r   r   r   r   )r3  r   Úattrr   r   r   Útest_array_keysº  s    
r?  )”r  r  r  ÚnumpyrJ   r   Znumpy.testingr   r   Zpackaging.versionr   Zastropyr   rv   r  r   Zastropy.units.corer   Zastropy.utils.datar	   r
   r   Zastropy.utils.miscr   Zastropy.wcsr   r   Zastropy.wcs.wcsr   r   r   r    r#   r*   r-   r.   r0   r3   r7   r9   r;   r?   rE   rF   rK   rN   rO   rS   rV   rW   rX   rZ   r[   r\   re   rg   rn   rr   rs   ry   r   r‚   r„   r†   r‡   r‰   r‹   rŽ   r�   r–   r˜   r¤   r©   rª   r¬   r¯   r±   r³   rµ   r¶   r·   r¸   r¹   r»   r½   r¾   r¿   rÀ   rÁ   rÂ   rÄ   rÈ   rÉ   rÊ   rÍ   rÎ   rÐ   rÒ   rÕ   rÖ   rÙ   rÛ   rÜ   rÞ   rà   rä   rå   rê   rì   rï   rð   r÷   rù   rú   rû   rü   rý   rþ   r   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r!  r"  r&  r(  r-  r0  r5  r6  Z	char_keysÚmarkZparametrizer:  Znum_keysr<  r?  r   r   r   r   Ú<module>   s8  	

	






	# 												Z0ø

ñ