ó
 ‰\c           @   s  d  d l  m Z d  d l m Z d  d l Z d  d l Z d  d l m Z d  d l m	 Z	 d  d l
 m Z d  d l m Z d  d l m Z d  d	 l m Z d
 „  Z e j j d e j e j e j e j g ƒ e j j d d d) d g f d d* d g f d d+ d d d d g f d d, d d d d g f d d- d g f g ƒ d „  ƒ ƒ Z e j j d e j e j e j e j g ƒ e j j d d d d d d g ƒ d „  ƒ ƒ Z d „  Z e j j d d d d d d d d d g g ƒ d „  ƒ Z e j j d d d  d  d. d/ g d0 d1 g g d2 d3 g d4 d5 g g g f d d  d  d6 d7 g d8 d9 g g d: d; g d< d= g g g f d d# d# d> d? g d@ dA g dB dC g g dD dE g dF dG g dH dI g g dJ dK g dL dM g dN dO g g dP dQ g dR dS g dT dU g g dV dW g dX dY g dZ d[ g g g f d d# d# d\ d] g d^ d_ g d` da g g db dc g dd de g df dg g g dh di g dj dk g dl dm g g dn do g dp dq g dr ds g g dt du g dv dw g dx dy g g g f d d  d  dz d{ g d| d} g d~ d g d€ d g g g f g ƒ d$ „  ƒ Z e j j d% d‚ dƒ g ƒ d( „  ƒ Z d S(„   iÿÿÿÿ(   t   shuffle(   t   chainN(   t   assert_allclose(   t   assert_array_equal(   t   integral_image(   t   haar_like_feature(   t   haar_like_feature_coord(   t   draw_haar_like_featurec          C   sã   t  j d	 d t  j ƒ}  t |  ƒ } d } t j t ƒ P t | d d d d d | ƒt d d d | ƒt	 |  d d d d d | ƒWd  QXt d d d ƒ \ } } t j t ƒ + t | d d d d d | d  d | ƒWd  QXd  S(
   Ni   t   dtypet   unknown_typei    t   feature_types   type-2-xi   t   feature_coord(   i   i   (
   t   npt   onest   float32R   t   pytestt   raisest
   ValueErrorR   R   R   (   t   imgt   img_iiR
   t
   feat_coordt	   feat_type(    (    s>   lib/python2.7/site-packages/skimage/feature/tests/test_haar.pyt   test_haar_like_feature_error   s    "R   s1   feature_type,shape_feature,expected_feature_values   type-2-xiT   g        s   type-2-ys   type-3-xi*   g      Àg      Àg       Àg      ð¿s   type-3-ys   type-4i$   c         C   sb   t  j d d | ƒ} t | ƒ } t | d d d d d |  ƒ} t t  j t  j | ƒ ƒ | ƒ d  S(   Ni   R   i    R
   (   i   i   (   R   R   R   R   R   t   sortt   unique(   R
   t   shape_featuret   expected_feature_valueR   R   R   t   haar_feature(    (    s>   lib/python2.7/site-packages/skimage/feature/tests/test_haar.pyt   test_haar_like_feature    s
    	R
   c         C   s‘   t  j d d |  ƒ} t | ƒ } | j } d | j k rZ t  j | j j d d ƒ ƒ } n  t | d d d d d | ƒ} | j | k s t ‚ d  S(	   Ni   R   t   uintt   ut    i    R
   (   i   i   (   R   R   R   R   t   namet   replaceR   t   AssertionError(   R   R
   R   R   t   expected_dtypeR   (    (    s>   lib/python2.7/site-packages/skimage/feature/tests/test_haar.pyt!   test_haar_like_feature_fused_type2   s    	!	c          C   s€   t  j d
 d t  j ƒ}  t |  ƒ } d d d d d g } t | d d d d d	 | ƒ} t | d d d d ƒ } t | | ƒ d  S(   Ni   R   s   type-2-xs   type-2-ys   type-3-xs   type-3-ys   type-4i    R
   (   i   i   (   R   R   t   int8R   R   R   (   R   R   R
   t	   haar_listt   haar_all(    (    s>   lib/python2.7/site-packages/skimage/feature/tests/test_haar.pyt   test_haar_like_feature_listD   s    	c      
   C   s÷   t  j d d t  j ƒ} t | ƒ } t |  t ƒ r t |  ƒ t g  |  D] } t d d | ƒ ^ qG Œ  \ } } t  j	 | ƒ } t  j	 | ƒ } n t d d |  ƒ \ } } t
 | d d d d d | d | ƒ} t
 | d d d d |  ƒ } t | | ƒ d  S(   Ni   R   i    R
   R   (   i   i   (   R   R   R%   R   t
   isinstancet   listR    t   zipR   t   concatenateR   R   (   R
   R   R   t   feat_tR   R   t   haar_feature_precomputedR   (    (    s>   lib/python2.7/site-packages/skimage/feature/tests/test_haar.pyt"   test_haar_like_feature_precomputedN   s    
+	s(   feature_type,height,width,expected_coordi   i    i   i   c         C   sf   t  | | |  ƒ \ } } t j g  | D] } | ^ q% ƒ } t | | ƒ t j | |  k ƒ sb t ‚ d  S(   N(   R   R   t   arrayR   t   allR"   (   R
   t   heightt   widtht   expected_coordR   R   t   hf(    (    s>   lib/python2.7/site-packages/skimage/feature/tests/test_haar.pyt   test_haar_like_feature_coordg   s
    !	"s   max_n_features,nnz_valuesi.   i   c         C   s‹   t  j d d t  j ƒ} t d d d ƒ \ } } t | d d d d | d |  d d ƒ} | j d	 k sl t ‚ t  j | ƒ | k s‡ t ‚ d  S(
   Ni   R   s   type-4i    t   max_n_featurest   random_statei   (   i   i   (   i   i   i   (   R   t   zerosR   R   R   t   shapeR"   t   count_nonzero(   R7   t
   nnz_valuesR   t   coordt   _t   image(    (    s>   lib/python2.7/site-packages/skimage/feature/tests/test_haar.pyt   test_draw_haar_like_feature   s    	(   iT   (   iT   (   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    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   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   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    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   i   (   i   i   (   i   i   (   i    i    (   i    i    (   i    i   (   i    i   (   i   i   (   i   i   (   i   i    (   i   i    (   Ni.   (   i   i   (   t   randomR    t	   itertoolsR   R   t   numpyR   t   numpy.testingR   R   t   skimage.transformR   t   skimage.featureR   R   R   R   t   markt   parametrizet   uint8R%   R   t   float64R   R$   R(   R/   R6   t   NoneR@   (    (    (    s>   lib/python2.7/site-packages/skimage/feature/tests/test_haar.pyt   <module>   s~   	$	
					-
