
    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
  G d d          Z G d de          Z G d d	e          Zd
 Zd Zd Zd ZdS )    N)NumpyRNGContext)AsymmetricPercentileIntervalManualIntervalMinMaxIntervalPercentileIntervalZScaleIntervalc                   b    e Zd Z ej        ddd          Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd ZdS )TestInterval      4      N@d   c                     t          dd          }|                    | j                  \  }}t          j                            |d           t          j                            |d           d S )N      $      .@r   
get_limitsdatanptestingassert_allcloseselfintervalvminvmaxs       Ilib/python3.11/site-packages/astropy/visualization/tests/test_interval.pytest_manualzTestInterval.test_manual   s`    !%//((33
d

""4///

""4/////    c                    t          d          }|                    | j                  \  }}t          j                            |d           t          j                            |t          j        | j                             t          d          }|                    | j                  \  }}t          j                            |t          j        | j                             t          j                            |d           d S )Nr   )r   r   )r   )r   r   r   r   r   r   maxminr   s       r   test_manual_defaultsz!TestInterval.test_manual_defaults   s    !u---((33
d

""4///

""4	):):;;;!t,,,((33
d

""4	):):;;;

""4.....r   c                     t          dd          }|                    | j                  \  }}t          j                            |d           t          j                            |d           d S )Nr   )r   r   r   r   s       r   test_manual_zero_limitz#TestInterval.test_manual_zero_limit$   se     "qq111((33
d

""4+++

""4+++++r   c                 ,   t                      }t          j        | j                  }t          j        |d<   |                    | j                  \  }}t          j                            |d           t          j                            |d           d S )Nr   i<   )r   r   copyr   nanr   r   r   )r   r   r   r   r   s        r   test_manual_defaults_with_nanz*TestInterval.test_manual_defaults_with_nan,   sx    !##wty!!&Q((33
d

""4---

""4-----r   c                     t                      }|                    | j                  \  }}t          j                            |d           t          j                            |d           d S )Nr   r   )r   r   r   r   r   r   r   s       r   test_minmaxzTestInterval.test_minmax4   s\    !##((33
d

""4///

""4/////r   c                     t          d          }|                    | j                  \  }}t          j                            |d           t          j                            |d           d S )NgO@gQgq=
ףpF@)r   r   r   r   r   r   r   s       r   test_percentilezTestInterval.test_percentile:   s^    %d++((33
d

""4///

""4/////r   c                     t          dd          }|                    | j                  \  }}t          j                            |d           t          j                            |d           d S )N      %@     Q@g333333'g333333B@)r   r   r   r   r   r   r   s       r   test_asymmetric_percentilez'TestInterval.test_asymmetric_percentile@   s`    /d;;((33
d

""4///

""4.....r   c                 2   t          d          5  t          ddd          }|                    | j                  \  }}d d d            n# 1 swxY w Y   t          j                            |d           t          j                            |d           d S )Ni90  r/   r0      )	n_samplesggW!@,g""""""D@)r   r   r   r   r   r   r   r   s       r   #test_asymmetric_percentile_nsamplesz0TestInterval.test_asymmetric_percentile_nsamplesF   s    U## 	8 	83D$"MMMH!,,TY77JD$	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	
""4)<===

""4);<<<<<s   0AAAN)__name__
__module____qualname__r   linspacer   r   r"   r$   r)   r+   r-   r1   r5    r   r   r
   r
      s        2;udC((D0 0 0	/ 	/ 	/, , ,. . .0 0 00 0 0/ / /= = = = =r   r
   c                   V    e Zd Z ej        ddd                                          ZdS )TestIntervalListr   r   r   N)r6   r7   r8   r   r9   tolistr   r:   r   r   r<   r<   N   s/        2;udC((//11DDDr   r<   c                   Z    e Zd Z ej        ddd                              dd          ZdS )TestInterval2Dr   r   r      N)r6   r7   r8   r   r9   reshaper   r:   r   r   r?   r?   S   s3        2;udC((00a88DDDr   r?   c                     t           j                            d           t           j                            dd          dz  dz   } t	                      }|                    |           \  }}t           j                            |dd           t           j                            |dd           t          t          d	                    t           j
        gz   } t	                      }|                    |           \  }}t           j                            |d
d           t           j                            |dd           t          t          d                    } t	                      }|                    |           \  }}t           j                            |d
d           t           j                            |dd           d S )N*   r      
   g333333#g?)atolgffffff9@i  r   i  c   )r   randomseedrandnr   r   r   r   listranger(   r   r   r   r   s       r   test_zscalerN   X   s~   INN29??3$$q(2-DH$$T**JD$JtT444JtT444dx'DH$$T**JD$JtQS111JtSs333c

DH$$T**JD$JtQS111JtRc22222r   c                      t          j        d                              d          } t          d          }|                    |           \  }}|dk    sJ |dk    sJ dS )z
    Regression test to ensure ZScaleInterval returns the minimum and
    maximum of the data if the number of data points is less than
    ``min_pixels``.
       )   rQ   rD   )min_npixelsr      N)r   arangerA   r   r   rM   s       r   test_zscale_npointsrU   m   sd     9Q<<''D!,,,H$$T**JD$199991999999r   c                     t                      }  | g d          }t          j                            |g d           t          j        dt
                    }t          j        t          d          5   | g d|          }d d d            n# 1 swxY w Y   t          j        dt                    } | g d|           t          j                            |g d           d S )N)r@   rS   rP   rD      )g        g?g333333?g?      ?rD   )dtypez6Can only do in-place scaling for floating-point arrays)match)out)
r   r   r   r   zerosintpytestraises	TypeErrorfloat)r   valuesr[   s      r   test_integersrc   {   s5   HXooo&&FJv'@'@'@AAA (1C
 
 
 C	R
 
 
 4 4 ///s3334 4 4 4 4 4 4 4 4 4 4 4 4 4 4 (1E
"
"
"CH___#&&&&Js$=$=$=>>>>>s   4BBBc                  2   d} t          j        |           }t                      }|                    |          } ||          }t           j                            |d           t           j                            |t          j        |                      dS )z<Test intervals with constant data (avoiding divide-by-zero).)rE   rE   )rX   rX   N)r   onesr   r   r   r   r\   )shaper   r   limitsrb   s        r   test_constant_datarh      s}    E75>>DH  &&FXd^^FJvz222Jvrx77777r   )numpyr   r^   astropy.utilsr   astropy.visualization.intervalr   r   r   r   r   r
   r<   r?   rN   rU   rc   rh   r:   r   r   <module>rl      s7        ) ) ) ) ) )             ;= ;= ;= ;= ;= ;= ;= ;=|2 2 2 2 2| 2 2 2
9 9 9 9 9\ 9 9 9
3 3 3*  ? ? ?&8 8 8 8 8r   