a
    ߙfb^                     @   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 g d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g ddd Zdd ZG dd deZd d! Zd"d# Zd$d% ZdS )&    N)NDData)NDDataArray)StdDevUncertainty)WCS)units)
maskflagsuncertaintyunitshapesizedtypendimwcsconvert_unit_toc                  C   s(   t g d} tD ]}t| |sJ qd S )N         )r   NDDATA_ATTRIBUTEShasattr)nddattr r   ?lib/python3.9/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J | jdks*J | jttks>J d S )N
   r   d   )r   npzerosr   r   r   floatndr   r   r   test_nddata_simple   s    r$   c                  C   s   t tdd} | jdksJ | jdks,J | jttks@J t i tdd} | jdks`J | jdksnJ | jttksJ td}tdt| }t ||} | jdksJ | jdksJ | jttksJ | j	|ksJ d S )Nr   )datar   )metar%   皙?)
r   r   r    r   r   r   r!   r   
zeros_liker	   )r#   r%   r	   r   r   r   test_nddata_parameters    s    

r)   c                  C   s@   t tg dg dg} | jdks(J | jttks<J d S )Nr   )         r,   )r   r   arrayr   r   intr"   r   r   r   test_nddata_conversion5   s    r/   flags_inTFr   abc                 C   s&   t ddg| d}|j| k s"J d S )Nr   r   )r   r   all)r0   r   r   r   r   'test_nddata_flags_init_without_np_array;   s    r5   r   ))r   r+   r+   )r   r   r   c                 C   sZ   t t(}ttdt| d W d    n1 s80    Y  |jjd dksVJ d S )Nr   r3   r   z%dimensions of flags do not match data)	pytestZraises
ValueErrorr   r   r    onesvalueargs)r   excr   r   r   test_nddata_flags_invalid_shapeG   s    6r=   c                  C   s   t td} d| _tdt|  | _t| j}tj|t	d| _
| d}t|jtdkshJ t|jjd| jj ksJ |jtjksJ d|j
d< | j
d |j
d ksJ t| j| _| d}d S )	Nr6   kmr'   )r   mg     @@T)r   r   )r   r   r9   r
   r   r(   r	   r%   r-   boolr   r   r4   ur?   r   )dtmpZd1r   r   r   test_convert_unit_toN   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                    s:   t  j|i | | jd u r$td| jd u r6t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   i   s
    

zSubNDData.__init__)__name__
__module____qualname____doc__rG   __classcell__r   r   rJ   r   rE   d   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_toq   s    
rR   c                  C   sj   t g dtg dg dd} t | }|j| ju s6J |j| ju sFJ |j| ju sVJ |j| jksfJ d S )N      ?g      @g      "@rT   g       @g      @)r   r   r   )r	   r   )r   r   r%   r	   r   r&   Zndd1Zndd2r   r   r   !test_nddataarray_from_nddataarrayy   s    
rW   c                  C   sT   t g dtg dd} t| }|j| ju s0J |j| ju s@J |j| jksPJ d S )NrS   rU   )r	   )r   r   r   r%   r	   r&   rV   r   r   r   test_nddataarray_from_nddata   s    
rX   )r7   Znumpyr   Zastropy.nddata.nddatar   Zastropy.nddata.compatr   Zastropy.nddata.nduncertaintyr   Zastropy.wcsr   Zastropyr   rA   r   r   r$   r)   r/   ZmarkZparametrizer-   r5   r=   rD   rE   rR   rW   rX   r   r   r   r   <module>   s6   

