ó
î&]\c           @` s”   d  d l  m Z m Z m Z 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    (   t   divisiont   absolute_importt   print_functionN(   t   assert_almost_equalt   assert_array_equalt   assert_equalt   assert_(   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   lib/python2.7/site-packages/scipy/spatial/tests/test_hausdorff.pyt   setup_method   s     33		!c         C` sF   t  |  j |  j ƒ d } t  |  j |  j ƒ d } t | | k ƒ d  S(   Ni    (   R   R   R   R   (   R   t   forwardt   reverse(    (    sA   lib/python2.7/site-packages/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   lib/python2.7/site-packages/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   lib/python2.7/site-packages/scipy/spatial/tests/test_hausdorff.pyt#   test_brute_force_comparison_reverse4   s    !c         C` s0   t  |  j |  j ƒ d } t | d d d ƒd  S(   Ni    g        R!   i	   (   R   R   R   (   R   R%   (    (    sA   lib/python2.7/site-packages/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   lib/python2.7/site-packages/scipy/spatial/tests/test_hausdorff.pyt   test_2d_data_forwardD   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   lib/python2.7/site-packages/scipy/spatial/tests/test_hausdorff.pyt   test_4d_data_reverseN   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   lib/python2.7/site-packages/scipy/spatial/tests/test_hausdorff.pyt   test_indicesW   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   lib/python2.7/site-packages/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©(   R0   R	   R1   R   R   R   R   (   R   R   R2   R3   R4   R5   (    (    sA   lib/python2.7/site-packages/scipy/spatial/tests/test_hausdorff.pyt   test_random_state_None_intj   s    (   t   __name__t
   __module__R   R    R'   R(   R)   R*   R+   R/   R6   R7   (    (    (    sA   lib/python2.7/site-packages/scipy/spatial/tests/test_hausdorff.pyR
      s   			
	
		
					
(   t
   __future__R    R   R   t   numpyR   t   numpy.testingR   R   R   R   t   scipy.spatial.distanceR   t   scipy.spatialR   t   scipy._lib._utilR	   t   objectR
   (    (    (    sA   lib/python2.7/site-packages/scipy/spatial/tests/test_hausdorff.pyt   <module>   s   "