ó
î&]\c           @` s•  d  d l  m Z m Z m Z d  d l Z d  d l Z d  d l Z d  d l Z	 d  d l
 Z
 d  d l Z d  d l m Z d  d l m Z m Z m Z m Z d  d l m Z d  d l m Z d  d l m Z y d  d l Z Wn e k
 rï e Z n Xe Z e j j  e d d	 ƒZ! e j" j# e$ ƒ Z% e! d
 e& f d „  ƒ  Yƒ Z' d „  Z( e! d „  ƒ Z) e! d „  ƒ Z* e! d „  ƒ Z+ e! d „  ƒ Z, e! d „  ƒ Z- d S(   i    (   t   divisiont   print_functiont   absolute_importN(   t   raises(   t   assert_equalt   assert_allcloset   assert_array_equalt   assert_(   t   suppress_warnings(   t   misc(   t   assert_mask_equalt   reasons    Need to import PIL for this testt   TestPILUtilc           B` s   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d	 „  Z d
 „  Z d „  Z d „  Z d „  Z d „  Z RS(   c      	   C` s|   t  j j d ƒ } xc t  j d t g D]M } t ƒ  , } | j t ƒ t j | | d ƒ ƒ } Wd  QXt	 | j
 d ƒ q' Wd  S(	   Ni
   i   t   floatgV-²ñ?i   i   (   i
   i   (   i   i   (   t   npt   randomt   sctypesR   R   t   filtert   DeprecationWarningR	   t   imresizeR   t   shape(   t   selft   imt   Tt   supt   im1(    (    s<   lib/python2.7/site-packages/scipy/misc/tests/test_pilutil.pyt   test_imresize    s    c      	   C` s]   t  j j d ƒ } t ƒ  , } | j t ƒ t j | d d d ƒ} Wd  QXt | j d ƒ d  S(	   Ni   i   i(   t   interpt   bicubic(   i   i   (   i   i(   (   i   i(   (	   R   R   R   R   R   R	   R   R   R   (   R   R   R   t   im2(    (    s<   lib/python2.7/site-packages/scipy/misc/tests/test_pilutil.pyt   test_imresize2)   s
    c      	   C` s]   t  j j d ƒ } t ƒ  , } | j t ƒ t j | d d d ƒ} Wd  QXt | j d ƒ d  S(	   Ni   i   i<   R   t   nearest(   i   i   (   i   i<   (   i   i<   (	   R   R   R   R   R   R	   R   R   R   (   R   R   R   R   (    (    s<   lib/python2.7/site-packages/scipy/misc/tests/test_pilutil.pyt   test_imresize30   s
    c      	   C` s¦   t  j d d g d d g g ƒ } t ƒ  \ } | j t ƒ t j | d	 d d ƒ} t j | d d d ƒ} t j | d d d ƒ} Wd  QXt | | ƒ t | | ƒ d  S(
   Ni   i   i   i   t   modet   Fg       @iÈ   (   i   i   (   R   t   arrayR   R   R   R	   R   R   (   R   R   R   R   t   im3t   im4(    (    s<   lib/python2.7/site-packages/scipy/misc/tests/test_pilutil.pyt   test_imresize47   s    c      	   C` s]   t  j j d ƒ } t ƒ  , } | j t ƒ t j | d d d ƒ} Wd  QXt | j d	 ƒ d  S(
   Ni   i   i   i<   R   t   lanczos(   i   i   (   i   i<   (   i   i<   (	   R   R   R   R   R   R	   R   R   R   (   R   R   R   R   (    (    s<   lib/python2.7/site-packages/scipy/misc/tests/test_pilutil.pyt   test_imresize5C   s
    c      	   C` sŽ   t  j d d d g t  j ƒ } t  j d d d g ƒ } t ƒ  I } | j t ƒ t t j | ƒ | ƒ t t j | ƒ d d d g ƒ Wd  QXd  S(   Ni    i   i   i€   iÿ   (	   R   R#   t   uint8R   R   R   R   R	   t	   bytescale(   R   t   xt   yR   (    (    s<   lib/python2.7/site-packages/scipy/misc/tests/test_pilutil.pyt   test_bytescaleJ   s    c         C` sï   t  j d d d d d d g ƒ } t ƒ  ¿ } | j t ƒ t j | d d d	 d
 ƒ} t | d d d d d d
 g ƒ t j | d d d d ƒ} t | d d d d d d g ƒ t t j t  j d d d g ƒ d d ƒd d d g ƒ Wd  QXd  S(   Ni(   i<   ix   iÈ   i,  iô  t   lowi
   t   highi   i   i!   i8   iU   t   cmint   cmaxi    i@   i•   iÿ   i   i   (   R   R#   R   R   R   R	   R*   R   (   R   R+   R   t   res_lowhight   res_cmincmax(    (    s<   lib/python2.7/site-packages/scipy/misc/tests/test_pilutil.pyt   test_bytescale_keywordsR   s    !c         C` sŠ   t  j d ƒ } t ƒ  ; } | j t ƒ t j | d d d d d d d d	 ƒ} Wd  QXd d d d d
 d d	 d	 d	 d	 g
 } t | | ƒ d  S(   Ni
   R0   i   R1   i   R.   id   R/   iÈ   i…   i§   (   R   t   arangeR   R   R   R	   R*   R   (   R   t   aR   t   actualt   expected(    (    s<   lib/python2.7/site-packages/scipy/misc/tests/test_pilutil.pyt   test_bytescale_cscale_lowhigh\   s    -$c         C` s§   t  j j d d d d g d t t t g ƒ } t ƒ  # } | j t ƒ t j	 | ƒ } Wd  QXd d d g } t
 | | ƒ t | j | j ƒ t t | t  j j ƒ ƒ d  S(   Nt   datai   i   i   t   maski    iÿ   (   R   t   mat   MaskedArrayt   Falset   TrueR   R   R   R	   R*   R   R
   R;   R   t
   isinstance(   R   R6   R   R7   R8   (    (    s<   lib/python2.7/site-packages/scipy/misc/tests/test_pilutil.pyt   test_bytescale_maskd   s    -c         C` sŠ   t  j d d d d d g ƒ } t ƒ  ; } | j t ƒ t j | d d d d	 d
 d d d	 ƒ} Wd  QXd d d d d g } t | | ƒ d  S(   Ng      à¿g      à?g      ø?g      @g      @R0   i    R1   i
   R.   R/   i   i   i   i   (   R   R#   R   R   R   R	   R*   R   (   R   R6   R   R7   R8   (    (    s<   lib/python2.7/site-packages/scipy/misc/tests/test_pilutil.pyt   test_bytescale_roundingn   s    -c         C` sX   t  t ƒ F t ƒ  6 } | j t ƒ t j t j d ƒ d d d d ƒWd  QXWd  QXd  S(   Ni   R.   i
   R/   i   (	   t   assert_raisest
   ValueErrorR   R   R   R	   R*   R   R5   (   R   R   (    (    s<   lib/python2.7/site-packages/scipy/misc/tests/test_pilutil.pyt#   test_bytescale_low_greaterthan_highv   s    c         C` sR   t  t ƒ @ t ƒ  0 } | j t ƒ t j t j d ƒ d d ƒWd  QXWd  QXd  S(   Ni   R.   iÿÿÿÿ(	   RC   RD   R   R   R   R	   R*   R   R5   (   R   R   (    (    s<   lib/python2.7/site-packages/scipy/misc/tests/test_pilutil.pyt   test_bytescale_low_lessthan_0|   s    c         C` sR   t  t ƒ @ t ƒ  0 } | j t ƒ t j t j d ƒ d d ƒWd  QXWd  QXd  S(   Ni   R/   i   (	   RC   RD   R   R   R   R	   R*   R   R5   (   R   R   (    (    s<   lib/python2.7/site-packages/scipy/misc/tests/test_pilutil.pyt#   test_bytescale_high_greaterthan_255‚   s    c      
   C` si   t  j d ƒ } t ƒ  / } | j t ƒ t j | d d d d ƒ} Wd  QXd d d g } t | | ƒ d  S(   Ni   R.   i
   R/   (   R   R5   R   R   R   R	   R*   R   (   R   R6   R   R7   R8   (    (    s<   lib/python2.7/site-packages/scipy/misc/tests/test_pilutil.pyt   test_bytescale_low_equals_highˆ   s    !c   
   
   C` sŸ  t  j j t d ƒ } xƒt j | d ƒ D]n} t ƒ  3 } | j d d ƒ | j t ƒ t	 j
 | ƒ } Wd  QXt j ƒ  } zt  j j | d ƒ } t  j j | d ƒ } t ƒ  G } | j d d ƒ | j t ƒ t	 j | | ƒ t	 j | | d ƒ Wd  QXt ƒ  B } | j d d ƒ | j t ƒ t	 j
 | ƒ } t	 j
 | ƒ }	 Wd  QXt | | ƒ t |	 | ƒ t | j | j ƒ t |	 j | j ƒ Wd  t j | ƒ Xq) Wd  S(   NR:   s   /*.pngt   messages   unclosed files   test.pngt   testimgt   PNG(   t   ost   patht   joint   datapatht   globt   iglobR   R   R   R	   t   imreadt   tempfilet   mkdtempt   imsaveR   R   R   t   shutilt   rmtree(
   R   t   picdirt   pngR   t   imgt   tmpdirt   fn1t   fn2t   data1t   data2(    (    s<   lib/python2.7/site-packages/scipy/misc/tests/test_pilutil.pyt   test_imsave   s2    (   t   __name__t
   __module__R   R   R    R&   R(   R-   R4   R9   RA   RB   RE   RF   RG   RH   R`   (    (    (    s<   lib/python2.7/site-packages/scipy/misc/tests/test_pilutil.pyR      s   								
		
					c         C` s™   t  |  d ƒ } t ƒ  / } | j t ƒ t j t j j  | ƒ ƒ } Wd  QX| j ƒ  | \ } } t	 | j
 ƒ  | ƒ t	 | j ƒ  | ƒ t	 | j | ƒ d  S(   Nt   rb(   t   openR   R   R   R	   t	   fromimaget   PILt   Imaget   closeR   t   mint   maxR   (   t   filenamet   irangeR   t   fpR   RZ   t   imint   imax(    (    s<   lib/python2.7/site-packages/scipy/misc/tests/test_pilutil.pyt   check_fromimage±   s    !
c       
   C` s‰   d d
 d f d d d f d d d f g }  xX |  D]P \ } } } t  ƒ  6 } | j t ƒ t t j j t d	 | ƒ | | ƒ Wd  QXq1 Wd  S(   Ns   icon.pngi    iÿ   i0   i   s   icon_mono.pngs   icon_mono_flat.pngi   R:   (   i    iÿ   (   i0   i0   i   (   i    iÿ   (   i0   i0   i   (   i    iÿ   (   i0   i0   i   (   R   R   R   Rp   RL   RM   RN   RO   (   t   filest   fnRl   R   R   (    (    s<   lib/python2.7/site-packages/scipy/misc/tests/test_pilutil.pyt   test_fromimage½   s    c          C` sq  t  j d d d d g d d d d g d d d d g d d d d g d d d d g g d d d d g d d d d g d d d d g d d d d g d d d d g g d d d d g d d d d g d d d d g d d d d g d d d d g g g d t  j ƒ}  t j j t d d ƒ } t | d	 ƒ 5 } t ƒ  # } | j	 t
 ƒ t j | ƒ } Wd  QXWd  QXt | |  ƒ d  S(
   Ni   i    iÿ   iÀ   i   t   dtypeR:   s   foo3x5x4indexed.pngRc   (   R   R#   R)   RL   RM   RN   RO   Rd   R   R   R   R	   RR   R   (   R:   Rk   t   fR   R   (    (    s<   lib/python2.7/site-packages/scipy/misc/tests/test_pilutil.pyt   test_imread_indexed_pngÊ   s*    $c       
   C` sò   t  j j t d d ƒ }  t |  d ƒ 5 } t ƒ  # } | j t ƒ t j	 | ƒ } Wd  QXWd  QXt
 | j t j ƒ t j d	 d t j ƒ} d | d  d  … d f <d | d  d  … d f <d | d d  d  … f <d | d d  d  … f <t
 | | ƒ d  S(
   NR:   s   box1.pngRc   i0   Rt   iÿ   i    iÿÿÿÿ(   i0   i0   (   RL   RM   RN   RO   Rd   R   R   R   R	   RR   R   Rt   R   R)   t   zeros(   Rk   Ru   R   R   R8   (    (    s<   lib/python2.7/site-packages/scipy/misc/tests/test_pilutil.pyt   test_imread_1bitæ   s    c       
   C` sî   t  j j t d d ƒ }  t |  d ƒ 5 } t ƒ  # } | j t ƒ t j	 | ƒ } Wd  QXWd  QXt
 | j t j ƒ t j d
 d t j ƒ} d | d  d … d d  … f <d | d d  … d  d … f <d	 | d d  … d d  … f <t
 | | ƒ d  S(   NR:   s   blocks2bit.pngRc   i   Rt   iU   i   iª   iÿ   (   i   i   (   RL   RM   RN   RO   Rd   R   R   R   R	   RR   R   Rt   R   R)   Rw   (   Rk   Ru   R   R   R8   (    (    s<   lib/python2.7/site-packages/scipy/misc/tests/test_pilutil.pyt   test_imread_2bitù   s    c       
   C` sØ   t  j j t d d ƒ }  t |  d ƒ 5 } t ƒ  # } | j t ƒ t j	 | ƒ } Wd  QXWd  QXt
 | j t j ƒ t j t j d ƒ t j d ƒ d d ƒ\ } } d t j | | ƒ d	 j t j ƒ } t
 | | ƒ d  S(
   NR:   s   pattern4bit.pngRc   i   i   t   indexingt   iji   i   (   RL   RM   RN   RO   Rd   R   R   R   R	   RR   R   Rt   R   R)   t   meshgridR5   t   maximumt   astype(   Rk   Ru   R   R   t   jt   iR8   (    (    s<   lib/python2.7/site-packages/scipy/misc/tests/test_pilutil.pyt   test_imread_4bit  s    0&(.   t
   __future__R    R   R   t   os.pathRL   RS   RV   t   numpyR   RP   t   pytestR   RC   t   numpy.testingR   R   R   R   t   scipy._lib._numpy_compatR   t   scipyR	   t   numpy.ma.testutilsR
   t	   PIL.ImageRf   t   ImportErrorR>   t	   _have_PILR?   t   markt   skipift   _pilskipRM   t   dirnamet   __file__RO   t   objectR   Rp   Rs   Rv   Rx   Ry   R   (    (    (    s<   lib/python2.7/site-packages/scipy/misc/tests/test_pilutil.pyt   <module>   s4   "
’	