ó
ßČ[c           @   s;  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 y d  d l Z e Z Wn e k
 r e Z n Xe j d d	 d
  Z e j d  Z d e Z e  j j d  d    Z e  j j d  d e f d     Y Z e  j j d  d e f d     Y Z d S(   i’’’’N(   t   ma(   t   assert_allclosei   (   t   ImageNormalizet   simple_norm(   t   ManualInterval(   t   SqrtStretchg        g      .@i   i   g      ą?t   HAS_MATPLOTLIBc          C   s?   t  j t   }  t   Wd  QX|  j j d d k s; t  d  S(   Ni    s2   matplotlib is required in order to use this class.(   t   pytestt   raisest   ImportErrorR   t   valuet   argst   AssertionError(   t   exc(    (    sD   lib/python2.7/site-packages/astropy/visualization/tests/test_norm.pyt   test_normalize_error_message   s    s   not HAS_MATPLOTLIBt   TestNormalizec           B   sP   e  Z d    Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z	 RS(   c         C   s9   t  j t  $ t d d d d d t d t  Wd  QXd  S(   Nt   vming       @t   vmaxg      $@t   intervalt   clip(   R   R   t	   TypeErrorR   R   t   True(   t   self(    (    sD   lib/python2.7/site-packages/astropy/visualization/tests/test_norm.pyt   test_invalid_interval"   s    c         C   s9   t  j t  $ t d d d d d t d t  Wd  QXd  S(   NR   g       @R   g      $@t   stretchR   (   R   R   R   R   R   R   (   R   (    (    sD   lib/python2.7/site-packages/astropy/visualization/tests/test_norm.pyt   test_invalid_stretch'   s    c      	   C   s   t  d d d d d t   d t  } t  d d d	 t d
 d  d t   d t  } t | d  d  t | d  | d   d  S(   NR   g       @R   g      $@R   R   t   datai   R   i   i
   gß'Üe ę?(   R   R   R   R   R   (   R   t   normt   norm2(    (    sD   lib/python2.7/site-packages/astropy/visualization/tests/test_norm.pyt   test_scalar,   s    	c      	   C   sø   t  d d d d d t   d t  } t  t d t d d	  d t   d t } | t  } d
 d d d d d g } t | |  t | j d d d d d d g  t | | t   d  S(   NR   g       @R   g      $@R   R   R   i   i
   g        gß'Üe Ö?gß'Üe ę?gķ°.źīķ?g      š?i    (   R   R   R   t   DATAR   R   t   mask(   R   R   R   t   outputt   expected(    (    sD   lib/python2.7/site-packages/astropy/visualization/tests/test_norm.pyt	   test_clip4   s    	"c      	   C   sß   t  d d d d d t   d t  } t  t d t d d	  d t   d t } | t  } t j d
 d d d d g } t | |  t | j d d d d d d g  t | j	 | t   d t d  t | | t   d  S(   NR   g       @R   g      $@R   R   R   i   i
   gß'Üe Ö?gß'Üe ę?gķ°.źīķ?g½Üķwćń?g1C_eeō?i    i   (
   R   R   t   FalseR   R   t   npt   nanR   R   t   inverse(   R   R   R   R    R!   (    (    sD   lib/python2.7/site-packages/astropy/visualization/tests/test_norm.pyt   test_noclip?   s    		"$c      	   C   sD  t  d d  d d d t   d t  } t  t d t d  d  d t   d t } | t  } | j t j t  k sx t	  | j
 d k s t	  t | | t   t  d d d d  d t   d t  } t  t d t d	 d   d t   d t } | t  } | j d k st	  | j
 t j t  k s-t	  t | | t   d  S(
   NR   R   g      $@R   R   R   i
   g       @i   (   R   t   NoneR   R#   R   R   R   R$   t   minR   R   R   t   max(   R   R   R   R    (    (    sD   lib/python2.7/site-packages/astropy/visualization/tests/test_norm.pyt   test_implicit_autoscaleL   s     		c      	   C   sč   t  j t d d d d d d d g } t d d d d d t   d	 t  } t | d
 t d d  d t   d	 t } | |  } d d d d d d g } t | j d  |  t | j	 d d d d d d g  t | | |   d  S(   NR   i    i   R   g       @R   g      $@R   R   R   i   i
   g        gß'Üe Ö?g      š?gķ°.źīķ?iö’’’(
   R    t   arrayR   R   R   R   R   R   t   filledR   (   R   t   mdataR   R   R    R!   (    (    sD   lib/python2.7/site-packages/astropy/visualization/tests/test_norm.pyt   test_masked_clip_   s    '	"c      	   C   s  t  j t d d d d d d d g } t d d d d d t   d	 t  } t | d
 t d d  d t   d	 t } | |  } t j d d d d d g } t	 | j
 d  |  t	 | j d d d d d d g  t	 | j | t   d t d  t	 | | |   d  S(   NR   i    i   R   g       @R   g      $@R   R   R   i   i
   gß'Üe Ö?iö’’’gķ°.źīķ?g½Üķwćń?g1C_eeō?(   R    R,   R   R   R   R#   R   R$   R%   R   R-   R   R&   (   R   R.   R   R   R    R!   (    (    sD   lib/python2.7/site-packages/astropy/visualization/tests/test_norm.pyt   test_masked_noclipk   s    '		"$(
   t   __name__t
   __module__R   R   R   R"   R'   R+   R/   R0   (    (    (    sD   lib/python2.7/site-packages/astropy/visualization/tests/test_norm.pyR       s   							t   TestImageScalingc           B   sP   e  Z d    Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z	 RS(   c         C   s5   t  t d d } t | t  t d d d d d S(   s   Test linear scaling.R   t   lineart   atoli    t   rtolgńhćµųä>N(   R   t   DATA2R   t   DATA2SCL(   R   R   (    (    sD   lib/python2.7/site-packages/astropy/visualization/tests/test_norm.pyt   test_linear~   s    c         C   s>   t  t d d } t | t  t j t  d d d d d S(   s   Test sqrt scaling.R   t   sqrtR5   i    R6   gńhćµųä>N(   R   R7   R   R$   R:   R8   (   R   R   (    (    sD   lib/python2.7/site-packages/astropy/visualization/tests/test_norm.pyt	   test_sqrt   s    c         C   sE   d } t  t d d d | } t | t  t | d d d d d S(	   s   Test power scaling.g      @R   t   powerR5   i    R6   gńhćµųä>N(   R   R7   R   R8   (   R   R<   R   (    (    sD   lib/python2.7/site-packages/astropy/visualization/tests/test_norm.pyt
   test_power   s    c         C   sY   t  t d d } t j d t d  t j d  } t | t  | d d d d	 d
 S(   s   Test log10 scaling.R   t   logič  g      š?g     H@R5   i    R6   gńhćµųä>N(   R   R7   R$   t   log10R8   R   (   R   R   t   ref(    (    sD   lib/python2.7/site-packages/astropy/visualization/tests/test_norm.pyt   test_log   s    $c         C   se   d } t  t d d d | } t j t |  t j d |  } t | t  | d d d d	 d
 S(   s   Test asinh scaling.g¹?R   t   asinht   asinh_ag      š?R5   i    R6   gńhćµųä>N(   R   R7   R$   t   arcsinhR8   R   (   R   t   aR   R@   (    (    sD   lib/python2.7/site-packages/astropy/visualization/tests/test_norm.pyt
   test_asinh   s    $c         C   sD   t  t d d d d } t | t  d d d g d d d d	 d
 S(   s   Test linear scaling.R   R4   t   min_cutg      š?g        R5   i    R6   gńhćµųä>N(   R   R7   R   (   R   R   (    (    sD   lib/python2.7/site-packages/astropy/visualization/tests/test_norm.pyt   test_min   s    c         C   s~   t  t d d d d } t | t  t d d d d t  t d d d	 d
 d d } t | t  | t  d d d d d S(   s   Test percent keywords.R   R4   t   percentg     ĄX@R5   i    R6   gńhćµųä>t   min_percentg      ą?t   max_percentg     ąX@N(   R   R7   R   R8   (   R   R   R   (    (    sD   lib/python2.7/site-packages/astropy/visualization/tests/test_norm.pyt   test_percent    s
    	c         C   s*   t  j t   t t d d Wd QXd S(   s   Test invalid stretch keyword.R   t   invalidN(   R   R   t
   ValueErrorR   R7   (   R   (    (    sD   lib/python2.7/site-packages/astropy/visualization/tests/test_norm.pyR   ©   s    (
   R1   R2   R9   R;   R=   RA   RF   RH   RL   R   (    (    (    sD   lib/python2.7/site-packages/astropy/visualization/tests/test_norm.pyR3   {   s   								(   R   t   numpyR$   R    t   numpy.testingR   t   mpl_normalizeR   R   R   R   R   R   t
   matplotlibR   R   R	   R#   t   linspaceR   t   arangeR7   R8   t   markt   skipifR   t   objectR   R3   (    (    (    sD   lib/python2.7/site-packages/astropy/visualization/tests/test_norm.pyt   <module>   s&   


Z