U
    e»{jþ  ã                   @   sD  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 dddddg¡Zi Ze dddddg¡eeƒ < e dd	dd
dg¡eedd�edd� < e dddddg¡eeƒ < e dddddg¡eeƒ < e dddddg¡eedƒ< e dddddg¡eeƒ < e dddddg¡eeƒ < e dddddg¡eeƒ < e dddddg¡eeƒ < e dddd d!g¡eed"d#d$�< eeeeƒ< eeeeddd%… ƒ< e dd&dd'dg¡eeed ƒ< G d(d)„ d)ƒZd*d+„ Zej d,d-d%dg¡d.d/„ ƒZej d,d-d%dg¡d0d1„ ƒZej d,d-d%dd2g¡d3d4„ ƒZd5d6„ ZdS )7é    N)Úassert_equal)ÚAsinhStretchÚContrastBiasStretchÚHistEqStretchÚInvertedHistEqStretchÚInvertedLogStretchÚInvertedPowerDistStretchÚLinearStretchÚ
LogStretchÚPowerDistStretchÚPowerStretchÚSinhStretchÚSqrtStretchÚSquaredStretchç        ç      Ð?ç      à?ç      è?ç      ð?g      ä?g      ì?)Z	intercept)Zslopeçß'Üež æ?g‘+Pæz¶ë?g      °?g      â?g¨ŽUJÏôr?gôÞ€cŸ?gÕ>�¨Æ?g´„ÖÃ—é?gt\�ìJËì?gM1AG«î?gzlË€³”á?guYLl>®è?gƒ‰?Š:óì?g3þ}Æ…µ?gADjÚÅ4Ë?g¼W­LøÝ?g333333Ó¿gš™™™™™É?gffffffæ?g333333ó?g333333û?g       @gš™™™™™Ù?)ZcontrastZbiaséÿÿÿÿg      À?g}¾wåÄ(â?c                   @   sä   e Zd Zej de ¡ ¡dd„ ƒZej dddg¡ej de ¡ ¡dd„ ƒƒZ	ej de ¡ ¡d	d
„ ƒZ
ej de ¡ ¡dd„ ƒZej de ¡ ¡dd„ ƒZej de ¡ ¡dd„ ƒZej de ¡ ¡dd„ ƒZdd„ Zdd„ ZdS )ÚTestStretchÚstretchc                 C   s"   t jj|tdd�t| dd� d S )NF©Úclipç�íµ ÷Æ°>©Zatol)ÚnpÚtestingÚassert_allcloseÚDATAÚRESULTS©Úselfr   © r$   úg/var/www/html/bwave/python/venv/lib/python3.8/site-packages/astropy/visualization/tests/test_stretch.pyÚtest_no_clip.   s
    
  ÿzTestStretch.test_no_clipÚndimé   é   c                 C   sD   t jd|  }tjj|t  |¡dd� ¡ t t| dd¡dd� d S )N)é   Tr   r   r*   r   r   )	r    Úshaper   r   r   ZreshapeZravelr   r!   )r#   r   r'   Z	new_shaper$   r$   r%   Útest_clip_ndimensional4   s    ýz"TestStretch.test_clip_ndimensionalc                 C   s,   t jj|tdd�t  t| dd¡dd� d S )NTr   r   r*   r   r   )r   r   r   r    r   r!   r"   r$   r$   r%   Ú	test_clip?   s
    
  ÿzTestStretch.test_clipc                 C   sJ   t  ¡ }t t j¡}|||dd� tjj|t| dd� tj |t ¡ d S )NF©Úoutr   r   r   )r    Úcopyr   Úzerosr+   r   r   r!   )r#   r   Zdata_inÚresultr$   r$   r%   Útest_inplaceE   s
    zTestStretch.test_inplacec                 C   s$   t j |j|tdd�dd�t¡ d S )NFr   ©r   r   r   Úinverser    r"   r$   r$   r%   Útest_round_tripM   s     ÿzTestStretch.test_round_tripc                 C   s<   t  tj¡}|t|dd� |j||dd� t j |t¡ d S )NFr.   )r   r1   r    r+   r5   r   r   )r#   r   r2   r$   r$   r%   Útest_inplace_roundtripS   s    z"TestStretch.test_inplace_roundtripc                 C   s"   t jj|j t¡|tƒdd� d S )Nr   r   r4   r"   r$   r$   r%   Útest_double_inverseZ   s
    
  ÿzTestStretch.test_double_inversec                 C   s*   t ƒ j}tdƒ}tj |tƒ|tƒ¡ d S )Nr(   )r   r5   r   r   r   r   r    )r#   Ú	stretch_1Ú	stretch_2r$   r$   r%   Útest_inverted`   s    zTestStretch.test_invertedc                 C   sN   t ƒ t ƒ  }tdƒ}tdƒ}tj |tƒ|tƒ¡ tj | t¡|tƒ¡ d S )Nr   g      @)r   r   r   r   r   r    r5   )r#   r9   r:   Z	stretch_3r$   r$   r%   Útest_chaininge   s
    zTestStretch.test_chainingN)Ú__name__Ú
__module__Ú__qualname__ÚpytestÚmarkÚparametrizer!   Úkeysr&   r,   r-   r3   r6   r7   r8   r;   r<   r$   r$   r$   r%   r   -   s"   
	




r   c                  C   sd   t ƒ } | dddddgƒ}tj |dddddg¡ | dddddgdd�}tj |tjdddd	g¡ d S )
Ng      ð¿r   r   r   ç      ø?r   Fr   g#ß Ž˜ó?)r   r   r   r   Únan)r   Úvaluesr$   r$   r%   Útest_clip_invalido   s
    rG   Úag       Àc              	   C   sP   d}t jt|d�� t| d� W 5 Q R X t jt|d�� t| d� W 5 Q R X d S )Nz&a must be >= 0, but cannot be set to 1©Úmatch©rH   )r@   ÚraisesÚ
ValueErrorr   r   ©rH   rJ   r$   r$   r%   Útest_invalid_powerdist_ay   s
    rO   c              	   C   st   d}t jt|d�� t| d� W 5 Q R X t jt|d�� t| d� W 5 Q R X t jt|d�� t| d� W 5 Q R X d S )Nza must be > 0rI   rK   )r@   rL   rM   r   r
   r   rN   r$   r$   r%   Útest_invalid_power_log_a‚   s    rP   rD   c              	   C   sP   d}t jt|d�� t| d� W 5 Q R X t jt|d�� t| d� W 5 Q R X d S )Nza must be > 0 and <= 1rI   rK   )r@   rL   rM   r   r   rN   r$   r$   r%   Útest_invalid_sinh_a�   s
    rQ   c               	   C   s^   t  t j dddddt jg¡} t  dddddddg¡}tt| ƒ| ƒ|ƒ tt| ƒ| ƒ|ƒ d S )Nr   r   r   r   r   )r   ÚarrayÚinfr   r   r   )Údatar2   r$   r$   r%   Útest_histeqstretch_invalid–   s    rU   )Únumpyr   r@   Znumpy.testingr   Zastropy.visualization.stretchr   r   r   r   r   r   r	   r
   r   r   r   r   r   rR   r    r!   r   rG   rA   rB   rO   rP   rQ   rU   r$   r$   r$   r%   Ú<module>   s>   <ÿÿ B




