
\c           @   s   d  d l  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 d d d     YZ d d d	     YZ d
 d d     YZ d S(   iN(   t   greycomatrixt   greycopropst   local_binary_patternt   multiblock_lbp(   t   test_parallel(   t   integral_image(   t   testingt   TestGLCMc           B   s   e  Z d    Z 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 RS(   c         C   s[   t  j d d d d g d d d d g d d d d g d d d d g g d t  j |  _ d  S(   Ni    i   i   i   t   dtype(   t   npt   arrayt   uint8t   image(   t   self(    (    sA   lib/python2.7/site-packages/skimage/feature/tests/test_texture.pyt   setup   s    c         C   se  t  |  j d g d t j d t j d d t j d g d  } | j d k sU t  t j d d d d g d d d d g d d d d g d d d d g g d t j } t j j	 | d  d   d  d   d d f |  t j d d d d g d d d d g d d d d g d d d d g g d t j } t j j	 | d  d   d  d   d d f |  t j d d d d g d d d d g d d d d g d d d d g g d t j } t j j	 | d  d   d  d   d d f |  t j d d d d g d d d d g d d d d g d d d d g g d t j } t j j	 | d  d   d  d   d d f |  d  S(   Ni   i    i   i   i   R   (   i   i   i   i   (
   R    R   R	   t   pit   shapet   AssertionErrorR
   t   uint32R   t   assert_array_equal(   R   t   resultt	   expected1t	   expected2t	   expected3t	   expected4(    (    sA   lib/python2.7/site-packages/skimage/feature/tests/test_texture.pyt   test_output_angles   s,    @!/!/!/!c         C   s   t  |  j d g t j d g d d t } | j d k s@ t  t j d d d d g d d d d g d d d d g d d d d g g d t j } t j	 j
 | d  d   d  d   d d f |  d  S(	   Ni   i   i   t	   symmetrici   i    R   (   i   i   i   i   (   R    R   R	   R   t   TrueR   R   R
   R   R   R   (   R   R   t   expected(    (    sA   lib/python2.7/site-packages/skimage/feature/tests/test_texture.pyt   test_output_symmetric_1,   s    "	!c      
   C   sq   xj t  j t  j t  j t  j t  j g D]D } t j t  - t	 |  j
 j |  d g t  j g d  Wd  QXq% Wd  S(   Ni   i   (   R	   t   floatt   doublet   float16t   float32t   float64R   t   raisest
   ValueErrorR    R   t   astypeR   (   R   R   (    (    sA   lib/python2.7/site-packages/skimage/feature/tests/test_texture.pyt   test_error_raise_float6   s    +c      	   C   st   xm t  j t  j t  j t  j t  j t  j g D]A } t j t	  * t
 |  j j |  d g t  j g  Wd  QXq+ Wd  S(   Ni   (   R	   t   int16t   int32t   int64t   uint16R   t   uint64R   R#   R$   R    R   R%   R   (   R   R   (    (    sA   lib/python2.7/site-packages/skimage/feature/tests/test_texture.pyt   test_error_raise_int_types;   s    1c      	   C   sI   t  j t  4 t |  j j t j  d d g t j g d  Wd  QXd  S(   Ni   i   (	   R   R#   R$   R    R   R%   R	   R'   R   (   R   (    (    sA   lib/python2.7/site-packages/skimage/feature/tests/test_texture.pyt   test_error_raise_negative@   s    c      	   C   s=   t  j t  ( t |  j d d g t j g d  Wd  QXd  S(   Ni   i   (   R   R#   R$   R    R   R	   R   (   R   (    (    sA   lib/python2.7/site-packages/skimage/feature/tests/test_texture.pyt#   test_error_raise_levels_smaller_maxD   s    c      	   C   s  xt  j t  j t  j t  j t  j t  j g D] } |  j j |  } t	 | d g t  j
 d g d d t } | j d k s t  t  j d d d d g d d d d g d d d d g d d d d g g d t  j } t  j j | d  d   d  d   d d f |  q+ Wd  S(	   Ni   i   i   R   i   i    R   (   i   i   i   i   (   R	   R*   R   R+   R'   R(   R)   R   R%   R    R   R   R   R   R
   R   R   (   R   R   t   imgR   R   (    (    sA   lib/python2.7/site-packages/skimage/feature/tests/test_texture.pyt   test_image_data_typesH   s    1	!3c         C   s   t  j d d d d g d d d d g d d d d g d d d d g g d t  j } t | d g d g d d t } t  j d d d d g d d d d g d d d d g d d d d g g d t  j } t  j j | d  d   d  d   d d f |  d  S(   Ni    i   i   i   R   i   R   (   R	   R
   R   R    t   FalseR   R   R   (   R   t   imR   R   (    (    sA   lib/python2.7/site-packages/skimage/feature/tests/test_texture.pyt   test_output_distanceV   s    !!!c         C   s  t  j d g d g d g d g g d t  j } t | d d g d t  j d g d  } | j d k sm t  t  j d d t  j } t  j d d d d g d d d d g d d d d g d d d d g g d t  j } t  j d d d d g d d d d g d d d d g d d d d g g d t  j } t  j	 j
 | d  d   d  d   d d f |  t  j	 j
 | d  d   d  d   d d f |  t  j	 j
 | d  d   d  d   d d f |  t  j	 j
 | d  d   d  d   d d f |  d  S(	   Ni    i   i   i   R   i   (   i   i   i   i   (   i   i   (   R	   R
   R   R    R   R   R   t   zerosR   R   R   (   R   R2   R   t   zt   e1t   e2(    (    sA   lib/python2.7/site-packages/skimage/feature/tests/test_texture.pyt   test_output_combob   s&    (!!///c         C   s   t  |  j d g d g d  } t j j | d  d   d  d   d d f t j d d t j  t  |  j d g d g d d t } t j j | d  d   d  d   d d f t j d d t j  d  S(   Ni
   i    i   R   t   normed(   i   i   (   i   i   (   R    R   R	   R   R   R4   R   R   (   R   R   (    (    sA   lib/python2.7/site-packages/skimage/feature/tests/test_texture.pyt   test_output_emptyy   s    ($(c      	   C   s  t  |  j d d d g d t j d t j g d d t d t } x t | j d  D] } x t | j d  D] } t j j | d  d   d  d   | | f j	   d  t j j
 | d  d   d  d   | | f | d  d   d  d   | | f j    qn WqT Wd  S(	   Ni   i   i   i    i   R9   R   g      ?(   R    R   R	   R   R   t   rangeR   R   t   assert_almost_equalt   sumR   t	   transpose(   R   R   t   dt   a(    (    sA   lib/python2.7/site-packages/skimage/feature/tests/test_texture.pyt   test_normed_symmetric   s    .(c      	   C   si   t  |  j d d g d g d d t d t } t j | d  } t | d  } t j j | d
 d	  d  S(   Ni   i   i    i   R9   R   i   t   contrastgn?(   i    i    (   R    R   R   R	   t   roundR   R   R<   (   R   R   RB   (    (    sA   lib/python2.7/site-packages/skimage/feature/tests/test_texture.pyt   test_contrast   s
    c      	   C   sp   t  |  j d g d t j d g d d t d t } t j | d  } t | d  } t j j | d
 d	  d  S(   Ni   i    i   i   R9   R   i   t   dissimilaritygn?(   i    i    (	   R    R   R	   R   R   RC   R   R   R<   (   R   R   RE   (    (    sA   lib/python2.7/site-packages/skimage/feature/tests/test_texture.pyt   test_dissimilarity   s
    %c      	   C   sp   t  |  j d d g t j d g d d t d t } t j | d  } t | d  d
 } t j j | d	  d  S(   Ni   i   i   i   R9   R   RE   i    gsh|??(   i    i    (	   R    R   R	   R   R   RC   R   R   R<   (   R   R   RE   (    (    sA   lib/python2.7/site-packages/skimage/feature/tests/test_texture.pyt   test_dissimilarity_2   s
    %c         C   sE   t  |  j d g d g d  } t j t   t | d  Wd  QXd  S(   Ni   i    i   t   ABC(   R    R   R   R#   R$   R   (   R   R   (    (    sA   lib/python2.7/site-packages/skimage/feature/tests/test_texture.pyt   test_invalid_property   s    c      	   C   sW   t  |  j d g d d g d d t d t } t | d  d	 } t j j | d  d  S(
   Ni   i    i   i   R9   R   t   homogeneityg?(   i    i    (   R    R   R   R   R	   R   R<   (   R   R   RJ   (    (    sA   lib/python2.7/site-packages/skimage/feature/tests/test_texture.pyt   test_homogeneity   s    $	c      	   C   sW   t  |  j d g d d g d d t d t } t | d  d } t j j | d  d  S(	   Ni   i    i   R9   R   t   energyg3YNp?(   i    i    (   R    R   R   R   R	   R   R<   (   R   R   RL   (    (    sA   lib/python2.7/site-packages/skimage/feature/tests/test_texture.pyt   test_energy   s    $	c      	   C   sn   t  |  j d d g d g d d t d t } t | d  } t j j | d
 d  t j j | d d	  d  S(   Ni   i   i    i   R9   R   t   correlationg
U i?gl	TZZ?(   i    i    (   i   i    (   R    R   R   R   R	   R   R<   (   R   R   RL   (    (    sA   lib/python2.7/site-packages/skimage/feature/tests/test_texture.pyt   test_correlation   s
    $	c      	   C   s   t  j d d t  j } t | d d d g d t  j d g d d t d t } x- d	 d
 d d d d g D] } t | |  qh Wd  S(   Ni   R   i   i   i   i    R9   R   RB   RE   RJ   RL   RN   t   ASM(   i   i   (   R	   t   onesR   R    R   R   R   (   R   R2   R   t   prop(    (    sA   lib/python2.7/site-packages/skimage/feature/tests/test_texture.pyt   test_uniform_properties   s    .	(   t   __name__t
   __module__R   R   R   R   R&   R,   R-   R.   R0   R3   R8   R:   RA   RD   RF   RG   RI   RK   RM   RO   RS   (    (    (    sA   lib/python2.7/site-packages/skimage/feature/tests/test_texture.pyR      s(   		
																t   TestLBPc           B   sG   e  Z d    Z e   d    Z d   Z d   Z d   Z d   Z RS(   c         C   s   t  j d d d d d d g d d d d d	 d
 g d d d d d d g d d d
 d d d g d d d d d d g d d d d d d g g d d |  _ d  S(   Ni   i   i    i   i0   i   i   i   i   i?   i   i   i2   i   i   i(   i   i"   i   i   i   i   i~   R   R   (   R	   R
   R   (   R   (    (    sA   lib/python2.7/site-packages/skimage/feature/tests/test_texture.pyR      s    c         C   s   t  |  j d d d  } t j d d d d d d g d d d	 d
 d d g d d d d d d g d d d d d d g d d d d d d g d d d d d d g g  } t j j | |  d  S(   Ni   i   t   defaulti    i   i   i`   i   i   i   i@   i8   i   i   i   i   i   g      P@i>   i   i   i   i   i   i   i   i   (   R   R   R	   R
   R   R   (   R   t   lbpt   ref(    (    sA   lib/python2.7/site-packages/skimage/feature/tests/test_texture.pyt   test_default   s    c         C   s   t  |  j d d d  } t j d d d d d d g d d d	 d
 d d g d d d d d d g d d d d d d g d d d d d d g d d	 d d d d g g  } t j j | |  d  S(   Ni   i   t   rori    i   i   i   i   i   i3   i   iw   i?   i_   (   R   R   R	   R
   R   R   (   R   RX   RY   (    (    sA   lib/python2.7/site-packages/skimage/feature/tests/test_texture.pyt   test_ror   s    c         C   s   t  |  j d d d  } t j d d d d d d g d d d d d d	 g d d d d d d
 g d d d d
 d d g d d d d d d g d d d d d d g g  } t j j | |  d  S(   Ni   i   t   uniformi    i   i   i   i	   i   i   (   R   R   R	   R
   R   R   (   R   RX   RY   (    (    sA   lib/python2.7/site-packages/skimage/feature/tests/test_texture.pyt   test_uniform   s    c         C   s   t  j j d  t  j j d d  } d } | | j   | } d
 \ } } t | | | d  } | d d  d d  f } | d	 | d | } t  j j | j   | d  d  S(   Ni i  g333333?i   i   t   vari   ii   (   i   i   (	   R	   t   randomt   seedt   randt   stdR   R   R<   t   mean(   R   R   t
   target_stdt   Pt   RRX   R   (    (    sA   lib/python2.7/site-packages/skimage/feature/tests/test_texture.pyt   test_var   s    c         C   s   t  |  j d d d  } t j d d d d d d g d d d	 d	 d
 d g d	 d d d d d g d d
 d d d d g d d d d	 d d g d d	 d d d d g g  } t j j | |  d  S(   Ni   i   t   nri_uniformi    i6   i9   i   i"   i:   i   i   i   i2   i/   i
   i(   i*   i#   i   i8   i	   i   (   R   R   R	   R
   R   t   assert_array_almost_equal(   R   RX   RY   (    (    sA   lib/python2.7/site-packages/skimage/feature/tests/test_texture.pyt   test_nri_uniform  s    (	   RT   RU   R   R   RZ   R\   R^   Rh   Rk   (    (    (    sA   lib/python2.7/site-packages/skimage/feature/tests/test_texture.pyRV      s   		
	
	t	   TestMBLBPc           B   s   e  Z d    Z RS(   c         C   s   t  j d
 d d } d | d d  d d  f <d | d  d  d  d  f <d | d d   d d   f <d } t |  } t | d	 d	 d d  } t  j j | |  d  S(   Ni	   R   R   i   i   i   i   i   i    (   i	   i	   (   R	   R4   R   R   R   t   assert_equal(   R   t   test_imgt   correct_answert   int_imgt   lbp_code(    (    sA   lib/python2.7/site-packages/skimage/feature/tests/test_texture.pyt   test_single_mblbp  s    (   RT   RU   Rr   (    (    (    sA   lib/python2.7/site-packages/skimage/feature/tests/test_texture.pyRl     s   (    (    (    (   t   numpyR	   t   skimage.featureR    R   R   R   t   skimage._shared.testingR   t   skimage.transformR   t   skimage._sharedR   R   RV   Rl   (    (    (    sA   lib/python2.7/site-packages/skimage/feature/tests/test_texture.pyt   <module>   s   "K