U
    e»{j÷  ã                   @   s   d dl Zd dl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 ddd	d
ddddddg
Zdd„ Zdd„ Zdd„ Zdd„ Zej de ddg¡e dd g¡ddgdd ge ddg¡ddgg¡dd „ ƒZej dd!d"d#g¡d$d%„ ƒZd&d'„ ZG d(d)„ d)eƒZd*d+„ Zd,d-„ Zd.d/„ ZdS )0é    N)Úunits)ÚNDDataArray)ÚNDData)ÚStdDevUncertainty)ÚWCSÚmaskÚflagsÚuncertaintyÚunitÚshapeÚsizeÚdtypeÚndimÚwcsÚconvert_unit_toc                  C   s*   t dddgƒ} tD ]}t| |ƒst‚qd S )Né   é   é   )r   ÚNDDATA_ATTRIBUTESÚhasattrÚAssertionError)ÚnddÚattr© r   ú_/var/www/html/bwave/python/venv/lib/python3.8/site-packages/astropy/nddata/tests/test_compat.pyÚ-test_nddataarray_has_attributes_of_old_nddata   s    r   c                  C   sB   t t d¡ƒ} | jdkst‚| jdks*t‚| jt t¡ks>t‚d S )N©é
   r   éd   )r   ÚnpÚzerosr   r   r   r   Úfloat©Úndr   r   r   Útest_nddata_simple"   s    r$   c                  C   sê   t t d¡d�} | jdkst‚| jdks,t‚| jt t¡ks@t‚t i t d¡d�} | jdks`t‚| jdksnt‚| jt t¡ks‚t‚t d¡}tdt 	|¡ ƒ}t ||ƒ} | jdks¶t‚| jdksÄt‚| jt t¡ksØt‚| j
|ksæt‚d S )Nr   )Údatar   )Úmetar%   çš™™™™™¹?)r   r   r    r   r   r   r   r!   r   Ú
zeros_liker	   )r#   r%   r	   r   r   r   Útest_nddata_parameters)   s    

r)   c                  C   sD   t t dddgdddgg¡ƒ} | jdks,t‚| jt t¡ks@t‚d S )Nr   r   r   é   é   é   )r   r   Úarrayr   r   r   Úintr"   r   r   r   Útest_nddata_conversion>   s    r/   Úflags_inTFr   ÚaÚbc                 C   s&   t ddg| d�}|j| k ¡ s"t‚d S )Nr   ©r   )r   r   Úallr   )r0   r   r   r   r   Ú'test_nddata_flags_init_without_np_arrayD   s    r5   )r   ©r+   r+   )r   r   r   c              	   C   sF   t  t¡�}tt d¡t | ¡d� W 5 Q R X |jjd dksBt	‚d S )Nr   r3   r   z%dimensions of flags do not match data)
ÚpytestZraisesÚ
ValueErrorr   r   r    ÚonesÚvalueÚargsr   )r   Úexcr   r   r   Útest_nddata_flags_invalid_shapeT   s    "r=   c                  C   sÔ   t t d¡ƒ} d| _tdt | ¡ ƒ| _t | j¡}tj|t	d�| _
|  d¡}t |jt d¡k¡sht‚t |jjd| jj k¡s†t‚|jtjks–t‚d|j
d< | j
d |j
d ks¸t‚t | j¡| _|  d¡}d S )	Nr6   Úkmr'   )r   Úmg     @�@T)r   r   )r   r   r9   r
   r   r(   r	   r%   r-   Úboolr   r   r4   r   Úur?   r   )ÚdÚtmpZd1r   r   r   Útest_convert_unit_to[   s    

rD   c                       s    e Zd ZdZ‡ fdd„Z‡  ZS )Ú	SubNDDatazm
    Subclass for test initialization of subclasses in NDData._arithmetic and
    NDData.convert_unit_to
    c                    s6   t ƒ j||Ž | jd kr tdƒ‚| jd kr2tdƒ‚d S )Nz#Unit for subclass must be specifiedz"WCS for subclass must be specified)ÚsuperÚ__init__r
   r8   r   )ÚselfÚargZkwd©Ú	__class__r   r   rG   w   s
    

zSubNDData.__init__)Ú__name__Ú
__module__Ú__qualname__Ú__doc__rG   Ú__classcell__r   r   rJ   r   rE   q   s   rE   c                  C   sF   t  ddg¡} t| dtdd�d�}| d¡}t j |jd|j ¡ d S )Nr   r?   r   )Znaxis)r
   r   r>   iè  )r   r9   rE   r   r   ZtestingZassert_array_equalr%   )r%   Zarr1Úresultr   r   r   Ú(test_init_of_subclass_in_convert_unit_to   s    
rR   c                  C   sp   t dddgtdddgƒdddgd�} t | ƒ}|j| jks<t‚|j| jksLt‚|j| jks\t‚|j| jkslt‚d S )	Nç      ð?ç      @ç      "@ç       @ç      @r   r   )r	   r   )r   r   r%   r   r	   r   r&   ©Zndd1Zndd2r   r   r   Ú!test_nddataarray_from_nddataarray‡   s      ÿrY   c                  C   sX   t dddgtdddgƒd�} t| ƒ}|j| jks4t‚|j| jksDt‚|j| jksTt‚d S )NrS   rT   rU   rV   rW   )r	   )r   r   r   r%   r   r	   r&   rX   r   r   r   Útest_nddataarray_from_nddata—   s
    rZ   )Únumpyr   r7   Zastropyr   rA   Zastropy.nddata.compatr   Zastropy.nddata.nddatar   Zastropy.nddata.nduncertaintyr   Zastropy.wcsr   r   r   r$   r)   r/   ÚmarkZparametrizer-   r5   r=   rD   rE   rR   rY   rZ   r   r   r   r   Ú<module>   sN   öúþ

