ó
Ê½÷Xc           @   sx   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 e f d „  ƒ  YZ d S(   iÿÿÿÿN(   t   TestCaset   assert_almost_equalt   assert_array_equalt   assert_equal(   t   directed_hausdorff(   t   distance(   t   check_random_statet   TestHausdorffc           B   sb   e  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 ƒ t  j j d ƒ t  j d } t  j | | t  j d ƒ f ƒ } t  j | d ƒ | d <t  j | d ƒ | d <t  j | | t  j d ƒ f ƒ } t  j | d d  … d f ƒ d | d d  … d f <t  j | d d  … d f ƒ d | d d  … d f <t  j | d ƒ d | d <t  j | d ƒ d | d <| |  _ | |  _	 t  j
 |  j d	 d
 d d ƒ|  _ t  j
 |  j	 d	 d d d ƒ|  _ d  S(   NiÒ  id   i   .i    i   g       @gffffff
@i   i   t   axisi   (   .i    (   .i    (   .i   (   .i   (   i    i    (   i    i    (   i    i   (   i    i   (   t   npt   randomt   seedt   pit   column_stackt   zerost   cost   sint   path_1t   path_2t   insertt	   path_1_4dt	   path_2_4d(   t   selft   random_anglest   random_columnst   random_columns_2(    (    sA   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_hausdorff.pyt   setUp   s     33		!c         C   sF   t  |  j |  j ƒ d } t  |  j |  j ƒ d } |  j | | ƒ d  S(   Ni    (   R   R   R   t   assertNotEqual(   R   t   forwardt   reverse(    (    sA   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_hausdorff.pyt   test_symmetry    s    c         C   s]   t  |  j |  j ƒ d } t t j t j |  j |  j ƒ d d ƒƒ } t | | d d ƒd  S(   Ni    R   i   t   decimali	   (	   R   R   R   t   maxR	   t   aminR   t   cdistR   (   R   t   actualt   expected(    (    sA   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_hausdorff.pyt#   test_brute_force_comparison_forward(   s    !c         C   s]   t  |  j |  j ƒ d } t t j t j |  j |  j ƒ d d ƒƒ } t | | d d ƒd  S(   Ni    R   R   i	   (	   R   R   R   R    R	   R!   R   R"   R   (   R   R#   R$   (    (    sA   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_hausdorff.pyt#   test_brute_force_comparison_reverse2   s    !c         C   s0   t  |  j |  j ƒ d } t | d d d ƒd  S(   Ni    g        R   i	   (   R   R   R   (   R   R#   (    (    sA   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_hausdorff.pyt   test_degenerate_case<   s    c         C   s   t  |  j d d  d … f |  j d d  d … f ƒ d } t t j t j |  j d d  d … f |  j d d  d … f ƒ d d ƒƒ } t | | d d ƒd  S(   N.i   i    R   i   R   i	   (	   R   R   R   R    R	   R!   R   R"   R   (   R   R#   R$   (    (    sA   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_hausdorff.pyt   test_2d_data_forwardB   s     %c         C   s]   t  |  j |  j ƒ d } t t j t j |  j |  j ƒ d d ƒƒ } t | | d d ƒd  S(   Ni    R   R   i	   (	   R   R   R   R    R	   R!   R   R"   R   (   R   R#   R$   (    (    sA   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_hausdorff.pyt   test_4d_data_reverseL   s    !c         C   s™   t  j d d g d d g d d g d d g d d g g ƒ } t  j d d g d d g d d	 g d
 d g g ƒ } t | | ƒ d } d } t | | ƒ d  S(   Niÿÿÿÿiôÿÿÿi    i   i   i   i   i   id   i
   i	   (   i   i   (   R	   t   arrayR   R   (   R   t   path_simple_1t   path_simple_2R#   R$   (    (    sA   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_hausdorff.pyt   test_indicesU   s
    <3c         C   sT   t  d  ƒ } | j ƒ  } t |  j |  j ƒ t  d  ƒ } | j ƒ  } t | | ƒ d  S(   N(   R   t   Nonet	   get_stateR   R   R   R   (   R   t   rst   old_global_statet   rs2t   new_global_state(    (    sA   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_hausdorff.pyt   test_random_state^   s    c         C   sn   xg d  d g D]Y } t d  ƒ } | j ƒ  } t |  j |  j | ƒ t d  ƒ } | j ƒ  } t | | ƒ q Wd  S(   NiÏE©(   R.   R   R/   R   R   R   R   (   R   R   R0   R1   R2   R3   (    (    sA   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_hausdorff.pyt   test_random_state_None_inth   s    (   t   __name__t
   __module__R   R   R%   R&   R'   R(   R)   R-   R4   R5   (    (    (    sA   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_hausdorff.pyR   
   s   			
	
		
					
(   t   numpyR	   t   numpy.testingR    R   R   R   t   scipy.spatial.distanceR   t   scipy.spatialR   t   scipy._lib._utilR   R   (    (    (    sA   /tmp/pip-build-7oUkmx/scipy/scipy/spatial/tests/test_hausdorff.pyt   <module>   s
   "