
    IR-e                        d dl Zd dlZd dlmZ d dlmZmZmZm	Z	m
Z
mZmZmZmZmZmZmZmZ  ej        g d          Zi Z ej        g d          e e            <    ej        g d          e ed           ed          z   <    ej        g d	          e e            <    ej        g d
          e e            <    ej        g d	          e ed          <    ej        g d          e e            <    ej        g d          e e            <    ej        g d          e e            <    ej        g d          e e            <    ej        g d          e edd          <   ee ee          <   ee eeddd                   <    ej        g d          e eedz            <    G d d          Zd Zej                            dg d          d             Zej                            dg d          d             Zej                            dg d          d             Zd ZdS )     N)assert_equal)AsinhStretchContrastBiasStretchHistEqStretchInvertedHistEqStretchInvertedLogStretchInvertedPowerDistStretchLinearStretch
LogStretchPowerDistStretchPowerStretchSinhStretchSqrtStretchSquaredStretch)              ?      ?      ?      ?)r   g      ?r   g      ?r   r   )	intercept)slope)r   r   'e?g+Pz?r   )r   g      ?r   g      ?r   )r   gUJr?gc?g>?r   )r   g×?gt\J?gM1AG?r   )r   gzlˀ?guYLl>?g?:?r   )r   g3}ƅ?gADj4?gWL?r   )g333333ӿg?gffffff?g333333?g333333?g       @g?)contrastbias)r   g      ?r   g}w(?r   c                   T   e Zd Zej                            de                                          d             Zej                            dddg          ej                            de                                          d                         Z	ej                            de                                          d             Z
ej                            de                                          d             Zej                            de                                          d	             Zej                            de                                          d
             Zej                            de                                          d             Zd Zd ZdS )TestStretchstretchc                     t           j                             |t          d          t          |         d           d S )NFclipư>atol)nptestingassert_allcloseDATARESULTSselfr   s     Hlib/python3.11/site-packages/astropy/visualization/tests/test_stretch.pytest_no_clipzTestStretch.test_no_clip.   sF    

""GDu%%%ww'7f 	# 	
 	
 	
 	
 	
    ndim      c                    t           j        d|z  z   }t          j                             |t                               |          d                                          t          j        t          |         dd          d           d S )N)   Tr    r   r3   r"   r#   )	r(   shaper%   r&   r'   reshaperavelr!   r)   )r+   r   r/   	new_shapes       r,   test_clip_ndimensionalz"TestStretch.test_clip_ndimensional4   s     J,	

""GDLL++$777==??GGG$c1-- 	# 	
 	
 	
 	
 	
r.   c                     t           j                             |t          d          t          j        t
          |         dd          d           d S )NTr    r   r3   r"   r#   )r%   r&   r'   r(   r!   r)   r*   s     r,   	test_clipzTestStretch.test_clip?   sT    

""GDt$$$bggg.>Q&G&Gf 	# 	
 	
 	
 	
 	
r.   c                 4   t                                           }t          j        t           j                  } |||d           t          j                            |t          |         d           t          j                            |t                      d S )NFoutr!   r"   r#   )r(   copyr%   zerosr4   r&   r'   r)   )r+   r   data_inresults       r,   test_inplacezTestStretch.test_inplaceE   sw    ))++$*%%V%0000

""677+;&"III

""7D11111r.   c                     t           j                            |                     |t          d          d          t                     d S )NFr    r%   r&   r'   inverser(   r*   s     r,   test_round_tripzTestStretch.test_round_tripM   sJ    

""OOGGDu555EOBBD	
 	
 	
 	
 	
r.   c                     t          j        t          j                  } |t          |d           |                    ||d           t           j                            |t                     d S )NFr<   )r%   r?   r(   r4   rE   r&   r'   )r+   r   rA   s      r,   test_inplace_roundtripz"TestStretch.test_inplace_roundtripS   s`    $*%%&u----F777

""6400000r.   c                     t           j                            |j                            t                     |t                    d           d S )Nr"   r#   rD   r*   s     r,   test_double_inversezTestStretch.test_double_inverseZ   sJ    

""O##D))774==v 	# 	
 	
 	
 	
 	
r.   c                     t                      j        }t          d          }t          j                             |t                     |t                               d S )Nr0   )r   rE   r   r%   r&   r'   r(   )r+   	stretch_1	stretch_2s      r,   test_invertedzTestStretch.test_inverted`   sG    MM)	 OO	

""99T??IIdOODDDDDr.   c                    t                      t                      z   }t          d          }t          d          }t          j                             |t
                     |t
                               t          j                            |                    t
                     |t
                               d S )Nr   g      @)r   r   r%   r&   r'   r(   rE   )r+   rL   rM   	stretch_3s       r,   test_chainingzTestStretch.test_chaininge   s    MMKMM1	 &&	 %%	

""99T??IIdOODDD

""9#4#4T#:#:IIdOOLLLLLr.   N)__name__
__module____qualname__pytestmarkparametrizer)   keysr-   r8   r:   rB   rF   rH   rJ   rN   rQ    r.   r,   r   r   -   s       [Y77
 
 87

 [VaV,,[Y77
 
 87 -,
 [Y77
 
 87

 [Y772 2 872 [Y77
 
 87

 [Y771 1 871 [Y77
 
 87

E E E
M M M M Mr.   r   c                      t                      }  | g d          }t          j                            |g d            | g dd          }t          j                            |t          j        ddddg           d S )	N)g      r   r   r         ?)r   r   r   r   r   Fr    r   r   r   g# ?)r   r%   r&   r'   nan)r   valuess     r,   test_clip_invalidr^   o   s    mmGW///00FJv'G'G'GHHHW///e<<<FJvZi'PQQQQQr.   a)       r   r   c                    d}t          j        t          |          5  t          |            d d d            n# 1 swxY w Y   t          j        t          |          5  t	          |            d d d            d S # 1 swxY w Y   d S )Nz&a must be >= 0, but cannot be set to 1matchr_   )rU   raises
ValueErrorr   r	   r_   rc   s     r,   test_invalid_powerdist_arh   y   s   4E	z	/	/	/  1              	z	/	/	/ & & 1%%%%& & & & & & & & & & & & & & & & & &   ;??!A??BB)r`   r   r   c                    d}t          j        t          |          5  t          |            d d d            n# 1 swxY w Y   t          j        t          |          5  t	          |            d d d            n# 1 swxY w Y   t          j        t          |          5  t          |            d d d            d S # 1 swxY w Y   d S )Nza must be > 0rb   rd   )rU   re   rf   r   r   r   rg   s     r,   test_invalid_power_log_ark      s   E	z	/	/	/  q              	z	/	/	/  Q              	z	/	/	/    Q                                   s1   ;??!A>>BB$CC	C)r`   r   r   r[   c                    d}t          j        t          |          5  t          |            d d d            n# 1 swxY w Y   t          j        t          |          5  t	          |            d d d            d S # 1 swxY w Y   d S )Nza must be > 0 and <= 1rb   rd   )rU   re   rf   r   r   rg   s     r,   test_invalid_sinh_arm      s   $E	z	/	/	/  q              	z	/	/	/  a                 ri   c            	      *   t          j        t           j         dddddt           j        g          } t          j        g d          }t           t	          |           |           |           t           t          |           |           |           d S )Nr   r   r   r   r   )r   r   r   r   r   r   r   )r%   arrayinfr   r   r   )datarA   s     r,   test_histeqstretch_invalidrr      s    8bfWdD$dBFCDDDX;;;<<F$t$$T**F333,&t,,T22F;;;;;r.   )numpyr%   rU   numpy.testingr   astropy.visualization.stretchr   r   r   r   r   r	   r
   r   r   r   r   r   r   ro   r(   r)   r   r^   rV   rW   rh   rk   rm   rr   rY   r.   r,   <module>rv      s        & & & & & &                               rx...//
#28$B$B$BCC CK28"""D D$$$}}3'?'?'?? @ ""H"H"HII $BH%E%E%EFF %RX&L&L&LMMS &bh'O'O'OPP  !I!I!IJJ

 ""(#J#J#JKK !"I"I"IJJ 7?rx8 8Ss333 4  $d %)d44R4j!! "$,BH-O-O-O$P$PdCi   !?M ?M ?M ?M ?M ?M ?M ?MDR R R ooo..& & /.& ooo..    /.  22233  43< < < < <r.   