U
    e»{j   ã                   @   s@   d dl Z d dlmZ d dlmZ ddlmZ G dd„ deƒZdS )é    N)Ú__version__)Ú
fitsheaderé   )ÚFitsTestCasec                   @   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S )ÚTestFITSheader_scriptc              	   C   s6   t  t¡�}t dg¡ W 5 Q R X |jjdks2t‚d S )Nz-hr   )ÚpytestÚraisesÚ
SystemExitr   ÚmainÚvalueÚcodeÚAssertionError)ÚselfÚe© r   úd/var/www/html/bwave/python/venv/lib/python3.8/site-packages/astropy/io/fits/tests/test_fitsheader.pyÚ	test_help   s    zTestFITSheader_script.test_helpc              	   C   sT   t  t¡�0}t dg¡ | ¡ d }|dt› �ks6t‚W 5 Q R X |jj	dksPt‚d S )Nz	--versionr   zfitsheader )
r   r   r	   r   r
   Ú
readouterrÚversionr   r   r   )r   Úcapsysr   Úoutr   r   r   Útest_version   s
    z"TestFITSheader_script.test_versionc                 C   sD   t  |  d¡g¡ | ¡ \}}| ¡ d  d¡s4t‚|dks@t‚d S )Núarange.fitsr   z:SIMPLE  =                    T / conforms to FITS standardÚ )r   r
   Údatar   Ú
splitlinesÚ
startswithr   ©r   r   r   Úerrr   r   r   Útest_file_exists   s    ÿz&TestFITSheader_script.test_file_existsc                 C   s  t  dd|  d¡g¡ | ¡ \}}| ¡ d  d¡s8t‚t  dd|  d¡g¡ | ¡ \}}| ¡ }t|ƒdksrt‚|d  d¡s„t‚|d  d	¡s–t‚|d
  d¡s¨t‚|d  d¡sºt‚t  dd|  d¡g¡ | ¡ \}}| d¡rîd|ksòt‚| d¡�rt‚d S )Nú-kÚNAXISr   r   z;NAXIS   =                    3 / number of array dimensionszNAXIS*é   é   ZNAXIS1é   ZNAXIS2é   ZNAXIS3Z	RANDOMKEYÚWARNINGÚERROR)r   r
   r   r   r   r   r   Úlenr   r   r   r   Útest_by_keyword    s"    ÿz%TestFITSheader_script.test_by_keywordc              	   C   sÞ   t  dd|  d¡g¡ | ¡ \}}t| ¡ ƒdks6t‚t  dddd|  d¡g¡ | ¡ \}}| ¡ d  d	¡srt‚t  dd
dd|  d¡g¡ | ¡ \}}| d¡s¦t‚t  dddd|  d¡g¡ | ¡ \}}| d¡sÚt‚d S )Nú-eÚ1ú
test0.fitsé>   Ú3r    ÚBACKGRNDr   zBACKGRND=                 312.Ú0r&   ZFOO)r   r
   r   r   r(   r   r   r   r   r   r   r   Útest_by_extension5   s    z'TestFITSheader_script.test_by_extensionc                 C   s  t  ddd|  d¡g¡ | ¡ \}}| ¡ }t|ƒdks<t‚|d  d¡sNt‚|d  d	¡s`t‚|d
  d¡srt‚|d  d¡s„t‚t  ddddd|  d¡|  d¡|  d¡g¡ | ¡ \}}| ¡ }t|ƒdksÔt‚|d  d¡sæt‚|d  d¡søt‚|d
  d¡�st‚d S )Nú-tr    r/   r,   r"   r   z|   1 | BACKGRND | 316.0 |r#   z|   2 | BACKGRND | 351.0 |r$   z|   3 | BACKGRND | 312.0 |r%   z|   4 | BACKGRND | 323.0 |r*   r0   r!   r   z
ascii.fitsz
blank.fitsz|   0 |   NAXIS |     3 |z|   0 |   NAXIS |     0 |z|   0 |   NAXIS |     2 |©r   r
   r   r   r   r(   r   Úendswithr   r   r   r   Ú
test_tableF   s2    øÿz TestFITSheader_script.test_tablec                 C   s  t  ddddddd|  d¡|  d¡g	¡ | ¡ \}}| ¡ }t|ƒd	ksLt‚|d
  d¡s^t‚|d  d¡spt‚t  ddddddd|  d¡g¡ | ¡ \}}| ¡ }t|ƒdks´t‚|d
  d¡sÆt‚t  ddd|  d¡|  d¡g¡ | ¡ \}}| ¡ }t|ƒd	k�st‚|d  d¡�s t‚|d
  d¡�s4t‚|d  d¡�sHt‚t  ddd|  d¡|  d¡g¡ | ¡ \}}| ¡ }t|ƒd	k�sŽt‚|d
  d¡�s¢t‚|d  d¡�s¶t‚t  ddd|  d¡g¡ | ¡ \}}| ¡ }t|ƒdk�sôt‚|d
  d¡�st‚d S )Nr*   r0   ú-fr    ZEXPSTARTZEXPTIMEr,   z
test1.fitsr%   r#   z!test0.fits 49491.65366175    0.23r$   z!test1.fits 49492.65366175    0.22r!   z	tdim.fitsr   z'0:NAXIS 1:NAXIS 2:NAXIS 3:NAXIS 4:NAXISz1tdim.fits       0       2      --      --      --z2test1.fits       0       2       2       2       2zDATE-OBSz
table.fitsztable.fits       --ztest0.fits 19/05/94ztb.fitszGtb.fits   True     16     0   True STScI-STSDAS/TABLES  tb.fits       1r3   r   r   r   r   Útest_fitsortc   sp    ÷ÿøÿÿÿÿz"TestFITSheader_script.test_fitsortc                 C   sà   t  ddddd|  d¡|  d¡g¡ | ¡ \}}| ¡ }t  ddddddd|  d¡|  d¡g	¡ | ¡ \}}| ¡ }t|ƒd	ks„t‚|d
  d¡s–t‚|d  d¡s¨t‚t|ƒd	ks¸t‚|d
  d¡sÊt‚|d  d¡sÜt‚dS )z#check that sorting by keyword worksr6   r    r!   r*   r0   ú
group.fitsr,   ú-sr%   r#   zgroup.fits     5r$   ztest0.fits     0Nr3   )r   r   Zout_unsortedZerr_unsortedZ
out_sortedZ
err_sortedr   r   r   Ú$test_fitsort_sorting_keyword_fitsort¥   s@    ùÿ÷ÿz:TestFITSheader_script.test_fitsort_sorting_keyword_fitsortc              
   C   sž   t  t¡�& t ddd|  d¡|  d¡g¡ W 5 Q R X | ¡ \}}d|ksNt‚t  t¡�$ t dd|  d¡|  d¡g¡ W 5 Q R X | ¡ \}}d|ksšt‚d S )Nr2   r9   ZDUMMYr8   r,   z/only supported in conjunction with -f/--fitsort)r   r   r	   r   r
   r   r   r   )r   r   Z	out_tableZ	err_tableZout_defaultZerr_defaultr   r   r   Ú&test_fitsort_sorting_keyword_complainsÍ   s    ÿÿz<TestFITSheader_script.test_fitsort_sorting_keyword_complainsc              	   C   s¬   t  dddd|  d¡g¡ | ¡ \}}| ¡ }t|ƒdks>t‚|d  ¡  d¡sTt‚t  dddd	|  d¡g¡ | ¡ \}}| ¡ }t|ƒdks’t‚|d  ¡  d¡s¨t‚d S )
Nr*   r0   r    z
ESO DET IDzfixed-1890.fitsr#   r   z1HIERARCH ESO DET ID = 'DV13' / Detector system Idz
ESO.DET.ID)	r   r
   r   r   r   r(   r   Ústripr4   r   r   r   r   Útest_dotkeywordÛ   s    ÿÿz%TestFITSheader_script.test_dotkeywordN)Ú__name__Ú
__module__Ú__qualname__r   r   r   r)   r1   r5   r7   r:   r;   r=   r   r   r   r   r      s   B(r   )	r   Zastropyr   r   Zastropy.io.fits.scriptsr   Zconftestr   r   r   r   r   r   Ú<module>   s   