ó
 ‰\c           @   sØ  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	 d  d l m
 Z
 d  d l m Z d  d l m Z m Z m Z d  d l m Z e  j j e
 d ƒ Z e  j j e
 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$ d „  Z% d „  Z& d „  Z' d „  Z( d „  Z) d „  Z* d „  Z+ d „  Z, d  „  Z- d! „  Z. d" „  Z/ d# „  Z0 d$ „  Z1 d% „  Z2 d& „  Z3 d' „  Z4 d S((   iÿÿÿÿN(   t   novice(   t   array_to_xy_origint   xy_to_array_origint   rgb_transpose(   t   data_dir(   t   testing(   t   assert_equalt   assert_allcloset   expected_warnings(   t   all_warningss   chelsea.pngs	   block.pngc         C   s,   t  j |  d  d  … d  d  … t  j f d ƒ S(   Ni   i   (   i   i   i   (   t   npt   tilet   newaxis(   t   array(    (    s?   lib/python2.7/site-packages/skimage/novice/tests/test_novice.pyt   _array_2d_to_RGBA   s    c          C   sb   d \ }  } t  j |  | ƒ j |  | d ƒ } t t | j ƒ  ƒ ƒ } t  j | | ƒ s^ t ‚ d  S(   Ni   i   i   (   i   i   (   R
   t   aranget   reshapeR   R   t   copyt   allcloset   AssertionError(   t   ht   wR   t   out(    (    s?   lib/python2.7/site-packages/skimage/novice/tests/test_novice.pyt   test_xy_to_array_origin   s    "c          C   s   t  j t ƒ }  t |  j d ƒ t |  j t j j t ƒ ƒ t |  j d ƒ t |  j	 d ƒ t |  j
 d ƒ |  j s{ t ‚ d  S(   Nt   pngiÃ  i,  (   iÃ  i,  (   R    t   opent
   IMAGE_PATHR   t   formatt   patht   ost   abspatht   sizet   widtht   heightt   modifiedR   (   t   pic(    (    s?   lib/python2.7/site-packages/skimage/novice/tests/test_novice.pyt   test_pic_info   s    c          C   s@   t  j t ƒ }  t d „  |  Dƒ ƒ } t | |  j |  j ƒ d  S(   Nc         s   s   |  ] } d  Vq d S(   i   N(    (   t   .0t   p(    (    s?   lib/python2.7/site-packages/skimage/novice/tests/test_novice.pys	   <genexpr>+   s    (   R    R   t   SMALL_IMAGE_PATHt   sumR   R    R!   (   R#   t
   num_pixels(    (    s?   lib/python2.7/site-packages/skimage/novice/tests/test_novice.pyt   test_pixel_iteration)   s    c          C   so  t  j t ƒ }  t |  j t ƒ xT |  D]L } | j |  j d k  r& | j d :_ | j	 d :_	 | j
 d :_
 q& q& Wxf |  D]^ } | j |  j d k  r} | j d k s® t ‚ | j	 d k sÃ t ‚ | j
 d k sÛ t ‚ q} q} W|  j } t ƒ  " |  j d |  j d f |  _ Wd  QXt |  j t | d d ƒ t | d d ƒ f ƒ |  j sVt ‚ |  j d  k skt ‚ d  S(   Ni   i€   i    i   (   R    R   R'   R   R"   t   Falset   xR    t   redt   greent   blueR   R   R	   R!   t   intR   t   None(   R#   R&   t   s(    (    s?   lib/python2.7/site-packages/skimage/novice/tests/test_novice.pyt   test_modify/   s$    	
#2c          C   sK  t  j j d d d ƒ}  |  d	 } t j d ƒ | _ t | j t j d ƒ ƒ x9 t | j | j	 | j
 f ƒ D] \ } } t | | ƒ ql Wd | _ d | _	 d | _
 t | j t j d ƒ d ƒ x= t | j | j	 | j
 f ƒ D] \ } } t | | d ƒ qà Wt j d ƒ | _ t | j t j d ƒ ƒ |  j j t j k sGt ‚ d  S(
   Ni   t   colori
   i    i   i   (   i   i   (   i
   i
   i
   (   i    i    (   R    t   Picturet	   from_sizeR
   R   t   rgbR   t	   enumerateR-   R.   R/   R   t   dtypet   uint8R   (   R#   t   pixelt   it   channel(    (    s?   lib/python2.7/site-packages/skimage/novice/tests/test_novice.pyt   test_pixel_rgbH   s    
+			+c          C   s&  t  j j d d d	 ƒ}  |  d
 } t j d ƒ | _ t | j t j d ƒ ƒ | j | j | j	 | j
 f } x' t | ƒ D] \ } } t | | ƒ qx Wd | _ d | _ d | _	 d | _
 t | j t j d ƒ d ƒ | j | j | j	 | j
 f } x+ t | ƒ D] \ } } t | | d ƒ qWd  S(   Ni   R4   i
   i    i   i   i   (   i   i   (   i
   i
   i
   (   i    i    (   R    R5   R6   R
   R   t   rgbaR   R-   R.   R/   t   alphaR8   (   R#   R;   t   pixel_channelsR<   R=   (    (    s?   lib/python2.7/site-packages/skimage/novice/tests/test_novice.pyt   test_pixel_rgba_   s    
				c          C   s3   t  j j d ƒ d }  d |  _ t |  j d ƒ d  S(   Ni   i    gš™™™™™ñ?(   i   i   (   i    i    (   gš™™™™™ñ?gš™™™™™ñ?gš™™™™™ñ?(   i   i   i   (   R    R5   R6   R7   R   (   R;   (    (    s?   lib/python2.7/site-packages/skimage/novice/tests/test_novice.pyt   test_pixel_rgb_floatt   s    	c          C   s3   t  j j d ƒ d }  d |  _ t |  j d ƒ d  S(   Ni   i    gš™™™™™ñ?(   i   i   (   i    i    (   gš™™™™™ñ?gš™™™™™ñ?gš™™™™™ñ?gš™™™™™ñ?(   i   i   i   i   (   R    R5   R6   R?   R   (   R;   (    (    s?   lib/python2.7/site-packages/skimage/novice/tests/test_novice.pyt   test_pixel_rgba_floatz   s    	c          C   sA   t  j t ƒ }  d |  d <|  j s( t ‚ |  j d  k s= t ‚ d  S(   Ni   i    (   i   i   i   (   i    i    (   R    R5   R'   R"   R   R   R1   (   R#   (    (    s?   lib/python2.7/site-packages/skimage/novice/tests/test_novice.pyt   test_modified_on_set€   s    
c          C   sS   t  j d d	 d t  j ƒ }  t j d |  ƒ } | d
 } d | _ | j sO t ‚ d  S(   Nt   shapei
   i   i   R9   R   i    i   (   i
   i   i   (   i    i    (   R
   t   zerosR:   R    R5   R.   R"   R   (   t   dataR#   R;   (    (    s?   lib/python2.7/site-packages/skimage/novice/tests/test_novice.pyt   test_modified_on_set_pixel‡   s
    
	c          C   sG   t  j t ƒ }  |  d } d |  d <|  j ƒ  |  d | k sC t ‚ d  S(   Ni    i   (   i    i    (   i   i   i   (   i    i    (   i    i    (   R    R5   R'   t   resetR   (   R#   t   v(    (    s?   lib/python2.7/site-packages/skimage/novice/tests/test_novice.pyt
   test_reset   s
    


c          C   sé   t  j d t j d	 ƒ ƒ }  d
 |  d <t ƒ   d |  _ Wd  QX|  j sM t ‚ |  j d  k sb t ‚ t
 j d d ƒ \ } } t j | ƒ zM |  j | ƒ |  j s§ t ‚ t |  j t j j | ƒ ƒ t |  j d ƒ Wd  t j | ƒ Xd  S(   NR   i   iÿ   i    i   t   suffixs   .pngR   (   i   i   i   (   iÿ   iÿ   iÿ   (   i    i    (   i   i   (   R    R5   R
   RG   R	   R   R"   R   R   R1   t   tempfilet   mkstempR   t   closet   saveR   R   R   t   unlink(   R#   t   fdt   filename(    (    s?   lib/python2.7/site-packages/skimage/novice/tests/test_novice.pyt   test_update_on_save˜   s    

c          C   st   t  j d t j d ƒ ƒ }  t j d d ƒ \ } } t j | ƒ t d g ƒ  |  j	 | ƒ Wd  QXt j
 | ƒ d  S(   NR   i   i   RM   s   .pngs   is a low contrast(   i   i   i   (   R    R5   R
   RG   RN   RO   R   RP   R   RQ   RR   (   R#   RS   RT   (    (    s?   lib/python2.7/site-packages/skimage/novice/tests/test_novice.pyt   test_save_with_alpha_channel®   s    c          C   sp  d t  j d	 d t  j ƒ}  t j d |  ƒ } d
 | d d … d d … f <xo | D]g } | j d k  rQ | j d k  rQ t | j d ƒ t | j	 d ƒ t | j
 d ƒ t | j d ƒ qQ qQ Wd | d  d … d  d … f <xo | D]g } | j d k  rß | j d k  rß t | j d ƒ t | j	 d ƒ t | j
 d ƒ t | j d ƒ qß qß Wd | d | j … d | j … f <xo | D]g } | j d k rs| j d k rst | j d ƒ t | j	 d ƒ t | j
 d ƒ t | j d ƒ qsqsWd | d d  … d d  … f <xo | D]g } | j d k r| j d k rt | j d ƒ t | j	 d ƒ t | j
 d ƒ t | j d ƒ qqWd  S(   Ni€   i
   i   R9   R   i    i   iÿ   (   i
   i
   i   (   i    i    i    (   i    i    i    (   iÿ   iÿ   iÿ   (   iÿ   iÿ   iÿ   (   iÿ   i    iÿ   (   iÿ   i    iÿ   (   i    i    iÿ   (   i    i    iÿ   (   R
   t   onesR:   R    R5   R,   t   yR   R7   R-   R.   R/   R    R!   (   R   R#   R&   (    (    s?   lib/python2.7/site-packages/skimage/novice/tests/test_novice.pyt   test_indexing¹   s<    "c          C   s†   t  t j d d ƒ t j d  d  … f ƒ }  t j d |  ƒ } t d d ƒ } | d  d  … | f } t | j |  | d  d  … f ƒ d  S(   Ni    i
   R   i   i   (	   R   R
   R   R   R    R5   t   sliceR   R   (   R   R#   t   x_slicet   subpic(    (    s?   lib/python2.7/site-packages/skimage/novice/tests/test_novice.pyt   test_picture_sliceÞ   s
    +c          C   s‚  d \ }  } t  t j d d |  | ƒ j |  | ƒ ƒ } | j t j ƒ } t j d | ƒ } t j d | j ƒ  ƒ } d } | j	 | } | d  | … d  d  … f } | j
 j ƒ  | _
 | | d  … d  d  … f | d  | … d  d  … f <| | | d  … d  d  … f <| | d  … d  d  … f | d  | … d  d  … f k s@t ‚ | d  | … d  d  … f | | d  … d  d  … f k s~t ‚ d  S(   Ni   i   i    iÿ   R   i   (   i   i   (   R   R
   t   linspaceR   t   astypeR:   R    R5   R   R    R   R   (   R   R   R   R#   t   pic_origt   cutt   restt   temp(    (    s?   lib/python2.7/site-packages/skimage/novice/tests/test_novice.pyt   test_move_sliceç   s    +2>c          C   s§   d }  t  t j d |  ƒ t j d  d  … f ƒ } t j d | ƒ } | d | |  d d f k sg t ‚ t j d t | ƒ ƒ } | d | d |  d f k s£ t ‚ d  S(   Ni
   i    R   iÿÿÿÿi   (   iÿÿÿÿi    (   i    iÿÿÿÿ(   R   R
   R   R   R    R5   R   R   (   t   nR   R#   (    (    s?   lib/python2.7/site-packages/skimage/novice/tests/test_novice.pyt   test_negative_indexû   s    +$c          C   sË   d }  t  t j d |  ƒ t j d  d  … f ƒ } t j d | ƒ } | d d  … d f | |  d d  … d f k sy t ‚ t j d t | ƒ ƒ } | d d d  … f | d |  d d  … f k sÇ t ‚ d  S(   Ni
   i    R   iýÿÿÿi   (   R   R
   R   R   R    R5   R   R   (   Re   R   R#   (    (    s?   lib/python2.7/site-packages/skimage/novice/tests/test_novice.pyt   test_negative_slice  s    +6c          C   s©   d \ }  } t  t j d d |  | ƒ j |  | ƒ ƒ } t j d | ƒ } | d  d  d … d  d  d … f } | t j d | d  d  d … d  d  d … f ƒ k s¥ t ‚ d  S(   Ni   i    iÿ   R   i   (   i   i   (   R   R
   R^   R   R    R5   R   (   R   R   R   R#   t
   sliced_pic(    (    s?   lib/python2.7/site-packages/skimage/novice/tests/test_novice.pyt   test_getitem_with_step  s
    +"c          C   s4   t  j j d ƒ }  t j t ƒ  |  d Wd  QXd  S(   Ni   (   i   i   (   R    R5   R6   R   t   raisest
   IndexError(   R#   (    (    s?   lib/python2.7/site-packages/skimage/novice/tests/test_novice.pyt   test_1d_getitem_raises  s    c          C   s4   t  j j d ƒ }  t j t ƒ  |  d Wd  QXd  S(   Ni   i   i   (   i   i   (   i   i   i   (   R    R5   R6   R   Rj   Rk   (   R#   (    (    s?   lib/python2.7/site-packages/skimage/novice/tests/test_novice.pyt   test_3d_getitem_raises  s    c          C   s6   t  j j d ƒ }  t j t ƒ  d |  d <Wd  QXd  S(   Ni   i    (   i   i   (   R    R5   R6   R   Rj   Rk   (   R#   (    (    s?   lib/python2.7/site-packages/skimage/novice/tests/test_novice.pyt   test_1d_setitem_raises#  s    c       	   C   s6   t  j j d ƒ }  t j t ƒ  d |  d <Wd  QXd  S(   Ni   i    i   i   (   i   i   (   i   i   i   (   R    R5   R6   R   Rj   Rk   (   R#   (    (    s?   lib/python2.7/site-packages/skimage/novice/tests/test_novice.pyt   test_3d_setitem_raises)  s    c          C   s=   t  j t ƒ }  t j t ƒ  |  |  j |  j f Wd  QXd  S(   N(   R    R   R'   R   Rj   Rk   R    R!   (   R#   (    (    s?   lib/python2.7/site-packages/skimage/novice/tests/test_novice.pyt   test_out_of_bounds_indexing/  s    c          C   s9   t  j j d ƒ d }  t j t ƒ  d |  _ Wd  QXd  S(   Ni   i    iÿÿÿÿ(   i   i   (   i    i    (   iÿÿÿÿiÿÿÿÿiÿÿÿÿ(   R    R5   R6   R   Rj   t
   ValueErrorR7   (   R;   (    (    s?   lib/python2.7/site-packages/skimage/novice/tests/test_novice.pyt   test_pixel_rgb_raises5  s    c          C   s9   t  j j d ƒ d }  t j t ƒ  d |  _ Wd  QXd  S(   Ni   i    i   (   i   i   (   i    i    (   R    R5   R6   R   Rj   Rq   R-   (   R;   (    (    s?   lib/python2.7/site-packages/skimage/novice/tests/test_novice.pyt   test_pixel_red_raises;  s    c          C   s9   t  j j d ƒ d }  t j t ƒ  d |  _ Wd  QXd  S(   Ni   i    i   (   i   i   (   i    i    (   R    R5   R6   R   Rj   Rq   R.   (   R;   (    (    s?   lib/python2.7/site-packages/skimage/novice/tests/test_novice.pyt   test_pixel_green_raisesA  s    c          C   s9   t  j j d ƒ d }  t j t ƒ  d |  _ Wd  QXd  S(   Ni   i    i   (   i   i   (   i    i    (   R    R5   R6   R   Rj   Rq   R/   (   R;   (    (    s?   lib/python2.7/site-packages/skimage/novice/tests/test_novice.pyt   test_pixel_blue_raisesG  s    c          C   s9   t  j j d ƒ d }  t j t ƒ  d |  _ Wd  QXd  S(   Ni   i    i   (   i   i   (   i    i    (   R    R5   R6   R   Rj   Rq   R@   (   R;   (    (    s?   lib/python2.7/site-packages/skimage/novice/tests/test_novice.pyt   test_pixel_alpha_raisesM  s    (5   R   RN   t   numpyR
   t   skimageR    t   skimage.novice._noviceR   R   R   R   t   skimage._sharedR   t   skimage._shared.testingR   R   R   t   skimage._shared.utilsR	   R   t   joinR   R'   R   R   R$   R*   R3   R>   RB   RC   RD   RE   RI   RL   RU   RV   RY   R]   Rd   Rf   Rg   Ri   Rl   Rm   Rn   Ro   Rp   Rr   Rs   Rt   Ru   Rv   (    (    (    s?   lib/python2.7/site-packages/skimage/novice/tests/test_novice.pyt   <module>   sP   			
													%				
	
										