
    IR-e                        d dl Zd dlZd dlmZ d dlmZ d dlm	Z	m
Z
 d dlmZ d dlmZmZmZ  G d de
e	          Z G d	 d
e          Zd Zd Zd Zej                            dddg          d             Zd Zd Zd Zd Zd ZdS )    N)assert_array_equal)units)NDDataNDSlicingMixin)_testing)NDUncertaintyStdDevUncertaintyUnknownUncertaintyc                       e Zd ZdS )NDDataSliceableN)__name__
__module____qualname__     Jlib/python3.11/site-packages/astropy/nddata/mixins/tests/test_ndslicing.pyr   r      s        Dr   r   c                   <    e Zd Zed             Zd Zd Zd Zd ZdS )SomeUncertaintyc                     dS )Nfaker   )selfs    r   uncertainty_typez SomeUncertainty.uncertainty_type   s    vr   c                     d S Nr   r   data
final_datas      r   _propagate_addzSomeUncertainty._propagate_add       r   c                     d S r   r   r   s      r   _propagate_subtractz#SomeUncertainty._propagate_subtract"   r   r   c                     d S r   r   r   s      r   _propagate_multiplyz#SomeUncertainty._propagate_multiply%   r   r   c                     d S r   r   r   s      r   _propagate_dividez!SomeUncertainty._propagate_divide(   r   r   N)	r   r   r   propertyr   r   r!   r#   r%   r   r   r   r   r      si          X          r   r   c                      t          j        d          } t          |           }|dd         }t          | dd         |j                   d S )N
         )nparanger   r   r   )r   ndnd2s      r   test_slicing_only_datar/   ,   sI    9R==D			B
QqS'CtAaCy#(+++++r   c                      t          j        d          } t          |           }t          j        t
                    5  |d d           d d d            d S # 1 swxY w Y   d S )Nr(   )r+   arrayr   pytestraises	TypeErrorr   r-   s     r   test_slicing_data_scalar_failr6   3   s    8B<<D			B	y	!	!  
111                 s   AAAc                      t          j        ddg          } t          |           }t          j        t
                    5  |d d d d f          d d d            d S # 1 swxY w Y   d S )Nr(      )r+   r1   r   r2   r3   
IndexErrorr5   s     r   test_slicing_1ddata_ndslicer:   ;   s    8RHD			B	z	"	"  
111aaa4                 s   AA"A	prop_namemaskuncertaintyc                     t          j        d          }| t          j        d          i}t          |fi |}t          j        t
                    5  |d d d d f          d d d            d S # 1 swxY w Y   d S )N)   r?   r?   )r+   onesr   r2   r3   r9   )r;   r   kwargr-   s       r   test_slicing_1dmask_ndslicerB   C   s     76??D

#E		'	'	'	'B	z	"	"  
111aaa4                 s   A--A14A1c                     t          j        d          } | dk    }t          t          j        ddd                    }d}t	          j        |dg|z  dg|z  dg|z  dg|z            }t          j        }ddi}t          | |||||	          }|d
d         }t          | d
d         |j
                   t          |d
d         |j                   t          |d
d         j        |j        j                   |j                            d          |j                            d          k    sJ ||j        u sJ ||j        k    sJ d S )Nr(   r?   r8      degnaxisctypecrpixcrvalcdeltobserverBrian)r<   r=   wcsunitmetar)   r*   )r+   r,   r	   linspace
nd_testing_create_wcs_simpleusr   r   r   r<   r1   r=   rN   pixel_to_worldrO   rP   )	r   r<   r=   rG   rN   rO   rP   r-   r.   s	            r   test_slicing_all_npndarray_1drW   O   se   9R==D!8D#BKB$;$;<<KE

'gocEkdUlcEk  C 3D D	4[c4
 
 
B QqS'CtAaCy#(+++tAaCy#(+++{1Q3'-s/DEEE7!!!$$(=(=a(@(@@@@@3827??????r   c                  ~   t          j        d                              ddd          } | dk    }t          j        ddd                              ddd          }d}t	          j        |dg|z  dg|z  dg|z  dg|z            }t          | |||          }|d	d
         }t          | d	d
         |j                   t          |d	d
         |j	                   t          |d	d
         |j
        j                   |d	d
d d ddf         }t          | d	d
d d ddf         |j                   t          |d	d
d d ddf         |j	                   t          |d	d
d d ddf         |j
        j                   |j                            dd
d          |j                            d
d
d          k    sJ d S )Ni  r(   r?   r8   rE   rD   rF   r<   r=   rN   r)   r*         )r+   r,   reshaperQ   rR   rS   r   r   r   r<   r=   r1   rN   rV   r   r<   r=   rG   rN   r-   r.   s          r   test_slicing_all_npndarray_ndr^   k   s   9T??""2r2..D!8D+b"d++33BB??KE

'gocEkdUlcEk  C 
Dks	K	K	KB
QqS'CtAaCy#(+++tAaCy#(+++{1Q3')>???
QqS!!!QqS[/CtAaCAaCK(#(333tAaCAaCK(#(333{1Q31Q3;/1FGGG7!!!Q**bf.C.CAq!.L.LLLLLLLr   c                  .   t          j        d          } | dk    dd         }t          j        ddd          }d}t          j        |dg|z  dg|z  dg|z  dg|z  	          }t          | |||
          }|dd         }t          | dd         |j                   t          |dd         |j                   t          |dd         |j	        j
                   |j                            d          |j                            d          k    sJ d S )Nr(   r?   r   	   r8      rD   rE   rF   rY   r)   r*   )r+   r,   rQ   rR   rS   r   r   r   r<   r=   r1   rN   rV   r]   s          r   %test_slicing_all_npndarray_shape_diffrb      s$   9R==D1Hac?D+b"b))KE

'gocEkdUlcEk  C 
Dks	K	K	KB
QqS'CtAaCy#(+++tAaCy#(+++{1Q3')>???7!!!$$(=(=a(@(@@@@@@@r   c                  \   t          j        d          } dgdz  }t          ddd          }d}t          j        |dg|z  dg|z  dg|z  dg|z  	          }t          | |||
          }|dd         }t          | dd         |j                   t          |dd         |j                   |j	        |j
        j	        k    sJ |j        |j
        j        k    sJ |j        |j
        j        k    sJ |j                            d          |j                            d          k    sJ d S )Nr(   Fg333333@gffffff?)rdnoisegainrD   rE   r?   rF   rY   r)   r*   )r+   r,   r
   rR   rS   r   r   r   r<   r1   r=   r   rO   rN   rV   r]   s          r    test_slicing_all_something_wrongrf      sM   9R==D7R<D$c%B%BCCKE

'gocEkdUlcEk  C 
Dks	K	K	KB
QqS'CtAaCy#(+++tAaCy#(+++ 55555'3?+KKKKKs333337!!!$$(=(=a(@(@@@@@@@r   c                  l   t          j        d          } |                                 }t          |                                           }d}t	          j        |dg|z  dg|z  dg|z  dg|z            }t          | |||          }t          j        t                    5  ||j
        dk    |j
        dk     z           }d d d            n# 1 swxY w Y   d |_        ||j
        dk    |j
        dk     z           }t          | dd         |j
                   t          |dd         |j                   d S )Nr(   rD   rE   r?   rF   rY      )r+   r,   copyr	   rR   rS   r   r2   r3   
ValueErrorr   rN   r   r<   r]   s          r   test_boolean_slicingrk      sj   9R==D99;;D#DIIKK00KE

'gocEkdUlcEk  C 
Dks	K	K	KB	z	"	" 1 1"'Q,27Q;/01 1 1 1 1 1 1 1 1 1 1 1 1 1 1 BF
bglrw{+
,CtAaCy#(+++tAaCy#(+++++s   !CCC)numpyr+   r2   numpy.testingr   astropyr   rT   astropy.nddatar   r   r   rR   astropy.nddata.nduncertaintyr   r	   r
   r   r   r/   r6   r:   markparametrizerB   rW   r^   rb   rf   rk   r   r   r   <module>rs      s        , , , , , ,       1 1 1 1 1 1 1 1 1 1 1 1 1 1         	 	 	 	 	nf 	 	 	    m   $, , ,     v}&=>>  ?>  8M M M8A A A,A A A2, , , , ,r   