
&]\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 Z d  d l m Z d  d l m Z m Z d  d l Z d  d l m Z m Z m Z m Z m Z m Z m Z m Z m Z m Z m Z m Z m Z m  Z  m! Z! m" Z" m# Z# m$ Z$ m% Z% m& Z& m' Z' m( Z( m) Z) m* Z* m+ Z+ m, Z, m- Z- m. Z. m/ Z/ m0 Z0 m1 Z1 d  d l2 m3 Z3 d  d l4 m5 Z5 d	 d
 l6 m7 Z7 y2 d  d l8 Z8 e8 j9 d  d  d l: j; Z< e= Z> Wn e? k
 re@ Z> n Xd eA f d     YZB d eA f d     YZC d eA f d     YZD d eA f d     YZE d eA f d     YZF d eA f d     YZG d eA f d     YZH d eA f d     YZI d eA f d     YZJ d eA f d     YZK d  eA f d!     YZL d" eA f d#     YZM d$ eA f d%     YZN d& eA f d'     YZO d( eA f d)     YZP d* eA f d+     YZQ d, eA f d-     YZR d. eA f d/     YZS d0   ZT d1 d2  ZU d3   ZV d4   ZW d5   ZX d6   ZY d7   ZZ d8   Z[ d9   Z\ d:   Z] d S(;   i    (   t   divisiont   print_functiont   absolute_importN(   t   assert_allcloset   assert_equalt   assert_t   assert_warns(   t   raises(   t   xranget   u(   t   ClusterWarningt   linkaget   from_mlab_linkaget   to_mlab_linkaget   num_obs_linkaget   inconsistentt   cophenett   fclusterdatat   fclustert   is_isomorphict   singlet   leaderst   completet   weightedt   centroidt
   correspondt   is_monotonict   maxdistst   maxinconstst   maxRstatt   is_valid_linkaget   is_valid_imt   to_treet   leaves_listt
   dendrogramt   set_link_color_palettet   cut_treet   optimal_leaf_orderingt   _order_cluster_treet
   _hierarchyt   _LINKAGE_METHODS(   t   pdist(   t   Heapi   (   t   hierarchy_test_datat   Aggt   TestLinkagec           B` sP   e  Z d    Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z	 RS(   c         C` s0   t  j d  } t  j | d <t t t |  d  S(   Ni   i    (   i   (   t   npt   zerost   nant   assert_raisest
   ValueErrorR   (   t   selft   y(    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyt3   test_linkage_non_finite_elements_in_distance_matrixH   s    c         C` s#   t  j d  } t t t |  d  S(   Ni    (   i    (   R.   R/   R1   R2   R   (   R3   R4   (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyt"   test_linkage_empty_distance_matrixO   s    c         C` s7   x0 d d d d t  d  g D] } |  j |  q Wd  S(   NR   R   t   averageR   (   R	   t   check_linkage_tdist(   R3   t   method(    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyt   test_linkage_tdistT   s    "c         C` s<   t  t j |  } t t d |  } t | | d d d  S(   Nt   linkage_ytdist_t   atolg|=(   R   R+   t   ytdistt   getattrR   (   R3   R9   t   Zt	   expectedZ(    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyR8   X   s    c         C` s+   x$ d d d g D] } |  j  |  q Wd  S(   NR   t   mediant   ward(   t   check_linkage_q(   R3   R9   (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyt   test_linkage_X^   s    c         C` s|   t  t j |  } t t d |  } t | | d d t j j j t j d d } t  | |  } t | | d d d  S(   Nt
   linkage_X_R<   gư>t   metrict	   euclidean(	   R   R+   t   XR>   R   t   scipyt   spatialt   distanceR)   (   R3   R9   R?   R@   R4   (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyRC   b   s    	c   	      C` s   t  j j d  } d } | j | d  } t |  } xW t j   D]I \ } } t j | | |  } t | |  } t	 | | d d d d qC Wd  S(   Ni    i   i   t   rtolg+=R<   gV瞯<(
   R.   t   randomt   RandomStatet   randR)   R(   t   itemsR'   R   R   (	   R3   t   rngt   nRH   t   dR9   t   codet	   Z_trivialR?   (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyt   test_compare_with_trivialm   s    c         C` s;   t  t j d t } t t d  } t | | d d d  S(   Nt   optimal_orderingt   linkage_ytdist_single_oloR<   g|=(   R   R+   R=   t   TrueR>   R   (   R3   R?   R@   (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyt   test_optimal_leaf_orderingx   s    (
   t   __name__t
   __module__R5   R6   R:   R8   RD   RC   RV   RZ   (    (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyR-   G   s   							t   TestLinkageTiesc           B` sb  e  Z i e j d  d d d g d d d d g g  d 6e j d  d d d g d d d d g g  d 6e j d  d d d g d d d d g g  d	 6e j d  d d d g d d d d g g  d
 6e j d  d d d g d d d d g g  d 6e j d  d d d g d d d d g g  d 6e j d  d d d g d d d d g g  d 6Z d   Z d   Z RS(   i    i   g'e?i   i   R   g'e@R   gev @R7   R   R   RA   g@RB   c         C` s7   x0 d d d d d d d g D] } |  j  |  q Wd  S(   NR   R   R7   R   R   RA   RB   (   t   check_linkage_ties(   R3   R9   (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyt   test_linkage_ties   s    "c         C` s`   t  j d d g d d g d d g g  } t | d | } |  j | } t | | d d d  S(   Nii    i   R9   R<   gư>(   R.   t   arrayR   t   _expectationsR   (   R3   R9   RH   R?   R@   (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyR^      s    *(   R[   R\   R.   R`   Ra   R_   R^   (    (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyR]   ~   s"   	t   TestInconsistentc           B` s   e  Z d    Z d   Z RS(   c         C` s%   x t  j D] } |  j |  q
 Wd  S(   N(   R+   t   inconsistent_ytdistt   check_inconsistent_tdist(   R3   t   depth(    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyt   test_inconsistent_tdist   s    c         C` s*   t  j } t t | |  t  j |  d  S(   N(   R+   t   linkage_ytdist_singleR   R   Rc   (   R3   Re   R?   (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyRd      s    	(   R[   R\   Rf   Rd   (    (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyRb      s   	t   TestCopheneticDistancec           B` s   e  Z d    Z d   Z RS(   c         C` sh   t  j d d d d d d d d d d d d d d d g  } t j } t |  } t | | d d d  S(   Ni  i'  i   i   i   R<   g|=(   R.   R`   R+   Rg   R   R   (   R3   t	   expectedMR?   t   M(    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyt   test_linkage_cophenet_tdist_Z   s
    $	c         C` s   t  j } t | t  j  \ } } t j d d d d d d d d d d d d d d d g  } d } t | | d d t | | d d d  S(	   Ni  i'  i   i   i   g*ɻ2Qz?R<   g|=(   R+   Rg   R   R=   R.   R`   R   (   R3   R?   t   cRj   Ri   t	   expectedc(    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyt   test_linkage_cophenet_tdist_Z_Y   s    	$(   R[   R\   Rk   Rn   (    (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyRh      s   	t   TestMLabLinkageConversionc           B` s#   e  Z d    Z d   Z d   Z RS(   c         C` s9   t  j g   } t t g   |  t t g   |  d  S(   N(   R.   t   asarrayR   R   R   (   R3   RH   (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyt"   test_mlab_linkage_conversion_empty   s    c         C` sZ   t  j d d d d g g  } d d d g g } t t |  |  t t |  |  d  S(   Ng        g      ?g      @g       @i   i   i   (   R.   Rp   R   R   R   (   R3   R?   t   Zm(    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyt'   test_mlab_linkage_conversion_single_row   s    c      	   C` s   t  j d d d g d d d g d d d	 g d
 d d g d d d g g  } t  j d d d d g 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 t |  |  t t |  |  d  S(    Ni   i   i   i   i   i   i   i   i   i   i	   i  i   i
   i'  g       @g      @g     @a@g      @g      @g     `k@g        g      @g     o@g      ?g       @g     p@g      @g      "@g     pr@t   dtype(   R.   Rp   R`   t   doubleR   R   R   (   R3   Rr   R?   (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyt*   test_mlab_linkage_conversion_multiple_rows   s    -(   R[   R\   Rq   Rs   Rv   (    (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyRo      s   		t   TestFclusterc           B` sG   e  Z d    Z d   Z d   Z d   Z d   Z d   Z d   Z RS(   c         C` sp   x! t  j D] } |  j | d  q
 Wx! t  j D] } |  j | d  q. Wx! t  j D] } |  j | d  qR Wd  S(   NR   RK   t   maxclust(   R+   t   fcluster_inconsistentt   check_fclusterdatat   fcluster_distancet   fcluster_maxclust(   R3   t   t(    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyt   test_fclusterdata   s    c         C` sO   t  t d |  | } t j } t | d | d | } t t | |   d  S(   Nt	   fcluster_t	   criterionR}   (   R>   R+   t   Q_XR   R   R   (   R3   R}   R   t	   expectedTRH   t   T(    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyRz      s    	c         C` sp   x! t  j D] } |  j | d  q
 Wx! t  j D] } |  j | d  q. Wx! t  j D] } |  j | d  qR Wd  S(   NR   RK   Rx   (   R+   Ry   t   check_fclusterR{   R|   (   R3   R}   (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyt   test_fcluster   s    c         C` sU   t  t d |  | } t t j  } t | d | d | } t t | |   d  S(   NR   R   R}   (   R>   R+   R   R   R   R   R   (   R3   R}   R   R   R?   R   (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyR      s    c         C` sF   x t  j D] } |  j |  q
 Wx t  j D] } |  j |  q+ Wd  S(   N(   R+   R{   t   check_fcluster_monocritR|   t    check_fcluster_maxclust_monocrit(   R3   R}   (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyt   test_fcluster_monocrit   s    c         C` sT   t  j | } t t  j  } t | | d d d t |  } t t | |   d  S(   NR   t   monocrit(   R+   R{   R   R   R   R   R   R   (   R3   R}   R   R?   R   (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyR      s    !c         C` sT   t  j | } t t  j  } t | | d d d t |  } t t | |   d  S(   NR   t   maxclust_monocritR   (   R+   R|   R   R   R   R   R   R   (   R3   R}   R   R?   R   (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyR     s    !(	   R[   R\   R~   Rz   R   R   R   R   R   (    (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyRw      s   						t   TestLeadersc           B` s   e  Z d    Z RS(   c         C` s   t  j } t |  } t |  } t | d d d d } t j d d d g  t j d d d	 g  f } t | |  } t | |  d  S(
   NR   Rx   R}   i   i5   i7   i8   i   i   (	   R+   R   R)   R   R   R.   R`   R   R   (   R3   RH   t   YR?   R   t   Lrightt   L(    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyt   test_leaders_single	  s    	0(   R[   R\   R   (    (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyR     s   t   TestIsIsomorphicc           B` sh   e  Z d    Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 e d	 d
  Z RS(   c         C` sH   d d d g } d d d g } t  t | |   t  t | |   d  S(   Ni   i   (   R   R   (   R3   t   at   b(    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyt   test_is_isomorphic_1  s    c         C` sH   d d d g } d d d g } t  t | |   t  t | |   d  S(   Ni   i   i   i   (   R   R   (   R3   R   R   (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyt   test_is_isomorphic_2  s    c         C` s#   g  } g  } t  t | |   d  S(   N(   R   R   (   R3   R   R   (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyt   test_is_isomorphic_3#  s    c         C` sH   d d d g } d d d g } t  t | |   t  t | |   d  S(   Ni   i   i   (   R   R   (   R3   R   R   (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyt   test_is_isomorphic_4A)  s    c         C` sZ   d d d d g } d d d d g } t  t | |  t k  t  t | |  t k  d  S(   Ni   i   i   (   R   R   t   False(   R3   R   R   (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyt   test_is_isomorphic_4B0  s    c         C` sH   d d d g } d d d g } t  t | |   t  t | |   d  S(   Ni   i   i   i   (   R   R   (   R3   R   R   (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyt   test_is_isomorphic_4C7  s    c         C` s.   x' d d d g D] } |  j  d |  q Wd  S(   Ni   i   i   i  (   t   help_is_isomorphic_randperm(   R3   t   nc(    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyt   test_is_isomorphic_5>  s    c         C` s4   x- d d d g D] } |  j  d | t d  q Wd  S(   Ni   i   i   i  (   R   RY   (   R3   R   (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyt   test_is_isomorphic_6D  s    c         C` s*   t  t d d d g d d d g   d  S(   Ni   i   i   (   R   R   (   R3   (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyt   test_is_isomorphic_7K  s    i    c         C` s  xt  d  D]} t j t j j |  |  } t j | j d t j } t j j |  } x0 t d | j	 d  D] }	 | | |	 | |	 <qv W| r t j j |  }
 | |
 d | !c d 7<| |
 d | !c | ;<n  t
 t | |  | k  t
 t | |  | k  q Wd  S(   Ni   Rt   i    i   (   t   rangeR.   t   int_RM   RO   R/   t   sizet   permutationR   t   shapeR   R   (   R3   t   nobst	   nclusterst   nonisot   nerrorst   kR   R   t   Pt   it   Q(    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyR   O  s    (   R[   R\   R   R   R   R   R   R   R   R   R   R   R   (    (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyR     s   									t   TestIsValidLinkagec           B` sY   e  Z d    Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 RS(	   c         C` sa   xZ d d t  f d d t  f d d t f d d t f g D]" \ } } } |  j | | |  q7 Wd  S(   Ni   i   i   i   i   (   R   RY   t#   check_is_valid_linkage_various_size(   R3   t   nrowt   ncolt   valid(    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyt"   test_is_valid_linkage_various_size_  s    +c         C` s   t  j d d d d d g d d d d d g g d t  j } | d  |  d  |  f } t t |  | k  | s t t t | d	 t n  d  S(
   Ni    i   g      @i   i   i   g      @Rt   t   throw(   R.   Rp   Ru   R   R   R1   R2   RY   (   R3   R   R   R   R?   (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyR   d  s    $c         C` sc   t  j d d d d g d d d d g g d t } t t |  t k  t t t | d t d  S(	   Ni    i   g      @i   i   g      @Rt   R   (	   R.   Rp   t   intR   R   R   R1   t	   TypeErrorRY   (   R3   R?   (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyt   test_is_valid_linkage_int_typem  s    c         C` sH   t  j d d t  j } t t |  t k  t t t | d t d  S(   Ni    i   Rt   R   (   i    i   (	   R.   R/   Ru   R   R   R   R1   R2   RY   (   R3   R?   (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyt   test_is_valid_linkage_emptyt  s    c         C` sa   xZ t  d d d  D]F } t j j | | d d  } t |  } t t |  t k  q Wd  S(   Ni   i   i   i   i   (   R   R.   RM   RO   R   R   R   RY   (   R3   R   R4   R?   (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyt   test_is_valid_linkage_4_and_upz  s    c         C` s   x t  d d d  D]p } t j j | | d d  } t |  } d | | d d f <t t |  t k  t t	 t | d t
 q Wd  S(	   Ni   i   i   i   i   ii    R   (   R   R.   RM   RO   R   R   R   R   R1   R2   RY   (   R3   R   R4   R?   (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyt-   test_is_valid_linkage_4_and_up_neg_index_left  s    c         C` s   x t  d d d  D]p } t j j | | d d  } t |  } d | | d d f <t t |  t k  t t	 t | d t
 q Wd  S(   Ni   i   i   i   i   iR   (   R   R.   RM   RO   R   R   R   R   R1   R2   RY   (   R3   R   R4   R?   (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyt.   test_is_valid_linkage_4_and_up_neg_index_right  s    c         C` s   x t  d d d  D]p } t j j | | d d  } t |  } d | | d d f <t t |  t k  t t	 t | d t
 q Wd  S(   Ni   i   i   i   i   g      R   (   R   R.   RM   RO   R   R   R   R   R1   R2   RY   (   R3   R   R4   R?   (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyt'   test_is_valid_linkage_4_and_up_neg_dist  s    c         C` s   x t  d d d  D]p } t j j | | d d  } t |  } d | | d d f <t t |  t k  t t	 t | d t
 q Wd  S(   Ni   i   i   i   i   iR   (   R   R.   RM   RO   R   R   R   R   R1   R2   RY   (   R3   R   R4   R?   (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyt)   test_is_valid_linkage_4_and_up_neg_counts  s    (   R[   R\   R   R   R   R   R   R   R   R   R   (    (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyR   ^  s   							
	
	
t   TestIsValidInconsistentc           B` sP   e  Z d    Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z	 RS(   c         C` sc   t  j d d d d g d d d d g g d t } t t |  t k  t t t | d t d  S(	   Ni    i   g      @i   i   g      @Rt   R   (	   R.   Rp   R   R   R   R   R1   R   RY   (   R3   t   R(    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyt   test_is_valid_im_int_type  s    c         C` sa   xZ d d t  f d d t  f d d t f d d t f g D]" \ } } } |  j | | |  q7 Wd  S(   Ni   i   i   i   i   (   R   RY   t   check_is_valid_im_various_size(   R3   R   R   R   (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyt   test_is_valid_im_various_size  s    +c         C` s   t  j d d d d d g d d d d d g g d t  j } | d  |  d  |  f } t t |  | k  | s t t t | d	 t n  d  S(
   Ni    i   g      @i   i   i   g      @Rt   R   (   R.   Rp   Ru   R   R   R1   R2   RY   (   R3   R   R   R   R   (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyR     s    $c         C` sH   t  j d d t  j } t t |  t k  t t t | d t d  S(   Ni    i   Rt   R   (   i    i   (	   R.   R/   Ru   R   R   R   R1   R2   RY   (   R3   R   (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyt   test_is_valid_im_empty  s    c         C` sm   xf t  d d d  D]R } t j j | | d d  } t |  } t |  } t t |  t k  q Wd  S(   Ni   i   i   i   i   (	   R   R.   RM   RO   R   R   R   R   RY   (   R3   R   R4   R?   R   (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyt   test_is_valid_im_4_and_up  s
    c         C` s   x t  d d d  D]| } t j j | | d d  } t |  } t |  } d | | d d f <t t |  t k  t	 t
 t | d t q Wd  S(	   Ni   i   i   i   i   g       i    R   (   R   R.   RM   RO   R   R   R   R   R   R1   R2   RY   (   R3   R   R4   R?   R   (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyt(   test_is_valid_im_4_and_up_neg_index_left  s    c         C` s   x t  d d d  D]| } t j j | | d d  } t |  } t |  } d | | d d f <t t |  t k  t	 t
 t | d t q Wd  S(   Ni   i   i   i   i   g       R   (   R   R.   RM   RO   R   R   R   R   R   R1   R2   RY   (   R3   R   R4   R?   R   (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyt)   test_is_valid_im_4_and_up_neg_index_right  s    c         C` s   x t  d d d  D]| } t j j | | d d  } t |  } t |  } d | | d d f <t t |  t k  t	 t
 t | d t q Wd  S(   Ni   i   i   i   i   g      R   (   R   R.   RM   RO   R   R   R   R   R   R1   R2   RY   (   R3   R   R4   R?   R   (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyt"   test_is_valid_im_4_and_up_neg_dist  s    (
   R[   R\   R   R   R   R   R   R   R   R   (    (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyR     s   									t   TestNumObsLinkagec           B` s,   e  Z d    Z d   Z d   Z d   Z RS(   c         C` s,   t  j d d t  j } t t t |  d  S(   Ni    i   Rt   (   i    i   (   R.   R/   Ru   R1   R2   R   (   R3   R?   (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyt   test_num_obs_linkage_empty  s    c         C` s>   t  j d d d d g g d t  j } t t |  d  d  S(   Ni    i   g      @i   Rt   (   R.   Rp   Ru   R   R   (   R3   R?   (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyt   test_num_obs_linkage_1x4  s    'c         C` sM   t  j d d d d g d d d d g g d t  j } t t |  d  d  S(   Ni    i   g      @i   i   g      @Rt   (   R.   Rp   Ru   R   R   (   R3   R?   (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyt   test_num_obs_linkage_2x4  s    !c         C` s^   xW t  d d d  D]C } t j j | | d d  } t |  } t t |  |  q Wd  S(   Ni   i   i   i   i   (   R   R.   RM   RO   R   R   R   (   R3   R   R4   R?   (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyt   test_num_obs_linkage_4_and_up  s    (   R[   R\   R   R   R   R   (    (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyR     s   			t   TestLeavesListc           B` s5   e  Z d    Z d   Z d   Z d   Z d   Z RS(   c         C` sN   t  j d d d d g g d t  j } t |  t t |  d d g  d  S(   Ni    i   g      @i   Rt   (   R.   Rp   Ru   R    R   R!   (   R3   R?   (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyt   test_leaves_list_1x4  s    '
c         C` s`   t  j d d d d g d d d d g g d t  j } t |  t t |  d d d g  d  S(   Ni    i   g      @i   i   g      @Rt   (   R.   Rp   Ru   R    R   R!   (   R3   R?   (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyt   test_leaves_list_2x4  s    !
c         C` s7   x0 d d d d d d d g D] } |  j  |  q Wd  S(   NR   R   R7   R   R   RA   RB   (   t   check_leaves_list_Q(   R3   R9   (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyt   test_leaves_list_Q  s    c         C` sA   t  j } t | |  } t |  } t | j   t |   d  S(   N(   R+   R   R   R    R   t	   pre_orderR!   (   R3   R9   RH   R?   t   node(    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyR     s    	c         C` sW   t  j } t | d  } t |  } t | j   | j   j   | j   j    d  S(   NR   (   R+   R   R   R    R   R   t   get_leftt	   get_right(   R3   RH   R?   R   (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyt   test_Q_subtree_pre_order&  s
    	(   R[   R\   R   R   R   R   R   (    (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyR     s
   				t   TestCorrespondc           B` s5   e  Z d    Z d   Z d   Z d   Z d   Z RS(   c         C` s5   t  j d  } t  j d  } t t t | |  d  S(   Ni    i   (   i    (   i    i   (   R.   R/   R1   R2   R   (   R3   R4   R?   (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyt   test_correspond_empty0  s    c         C` s   xT t  d d  D]C } t j j | | d d  } t |  } t t | |   q WxW t  d d d  D]C } t j j | | d d  } t |  } t t | |   qj Wd  S(   Ni   i   i   i   i   (   R   R.   RM   RO   R   R   R   (   R3   R   R4   R?   (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyt   test_correspond_2_and_up6  s    c         C` s   x t  t t  t d d   t  t d d     t  t t  t d d   t  t d d     D] \ } } t j j | | d d  } t j j | | d d  } t |  } t |  } t t | |  t	  t t | |  t	  qe Wd  S(   Ni   i   i   i   i   (
   t   listt   zipR   R.   RM   RO   R   R   R   R   (   R3   R   t   jR4   t   y2R?   t   Z2(    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyt   test_correspond_4_and_upB  s    3>c         C` s   x t  t t  t d d   t  t d d     t  t t  t d d   t  t d d     D] \ } } t j j | | d d  } t j j | | d d  } t |  } t |  } t t | |  t	  t t | |  t	  qe Wd  S(   Ni   i   i   i   i   (
   R   R   R   R.   RM   RO   R   R   R   R   (   R3   R   R   R4   R   R?   R   (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyt   test_correspond_4_and_up_2N  s    3>c         C` s^   xW t  d d  D]F } t j j | d  } t |  } t |  } t t |  |  q Wd  S(   Ni   i
   i   (   R   R.   RM   RO   R)   R   R   R   (   R3   RR   RH   R   R?   (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyt!   test_num_obs_linkage_multi_matrixZ  s
    (   R[   R\   R   R   R   R   R   (    (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyR   /  s
   				t   TestIsMonotonicc           B` sk   e  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  } t t t |  d  S(   Ni    i   (   i    i   (   R.   R/   R1   R2   R   (   R3   R?   (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyt   test_is_monotonic_emptyd  s    c         C` s>   t  j d d d d g g d t  j } t t |  t  d  S(   Ni    i   g333333?i   Rt   (   R.   Rp   Ru   R   R   RY   (   R3   R?   (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyt   test_is_monotonic_1x4i  s    'c         C` sM   t  j d d d d g d d d d g g d t  j } t t |  t  d  S(   Ni    i   g333333?i   i   g?Rt   (   R.   Rp   Ru   R   R   RY   (   R3   R?   (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyt   test_is_monotonic_2x4_Tn  s    !c         C` sM   t  j d d d d g d d d d g g d t  j } t t |  t  d  S(   Ni    i   g?i   i   g333333?Rt   (   R.   Rp   Ru   R   R   R   (   R3   R?   (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyt   test_is_monotonic_2x4_Ft  s    !c         C` s\   t  j d d d d g d d d d g d d d	 d g g d
 t  j } t t |  t  d  S(   Ni    i   g333333?i   i   g?i   i   g333333?Rt   (   R.   Rp   Ru   R   R   RY   (   R3   R?   (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyt   test_is_monotonic_3x4_Tz  s    !c         C` s\   t  j d d d d g d d d d g d d d	 d g g d
 t  j } t t |  t  d  S(   Ni    i   g333333?i   i   g?i   i   g333333?Rt   (   R.   Rp   Ru   R   R   R   (   R3   R?   (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyt   test_is_monotonic_3x4_F1  s    !c         C` s\   t  j d d d d g d d d d g d d d	 d g g d
 t  j } t t |  t  d  S(   Ni    i   g?i   i   g?i   i   g333333?Rt   (   R.   Rp   Ru   R   R   R   (   R3   R?   (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyt   test_is_monotonic_3x4_F2  s    !c         C` s\   t  j d d d d g d d d d g d d d	 d g g d
 t  j } t t |  t  d  S(   Ni    i   g333333?i   i   g?i   i   g?Rt   (   R.   Rp   Ru   R   R   R   (   R3   R?   (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyt   test_is_monotonic_3x4_F3  s    !c         C` s)   t  t j d  } t t |  t  d  S(   NR   (   R   R+   R=   R   R   RY   (   R3   R?   (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyt    test_is_monotonic_tdist_linkage1  s    c         C` s3   t  t j d  } d | d <t t |  t  d  S(   NR   g        i   (   i   i   (   R   R+   R=   R   R   R   (   R3   R?   (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyt    test_is_monotonic_tdist_linkage2  s    
c         C` s/   t  j } t | d  } t t |  t  d  S(   NR   (   R+   R   R   R   R   RY   (   R3   RH   R?   (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyt   test_is_monotonic_Q_linkage  s    	(   R[   R\   R   R   R   R   R   R   R   R   R   R   R   (    (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyR   c  s   										t   TestMaxDistsc           B` s,   e  Z d    Z d   Z d   Z d   Z RS(   c         C` s,   t  j d d t  j } t t t |  d  S(   Ni    i   Rt   (   i    i   (   R.   R/   Ru   R1   R2   R   (   R3   R?   (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyt   test_maxdists_empty_linkage  s    c         C` sV   t  j d d d d g g d t  j } t |  } t |  } t | | d d d  S(   Ni    i   g333333?i   Rt   R<   gV瞯<(   R.   Rp   Ru   R   t   calculate_maximum_distancesR   (   R3   R?   t   MDt
   expectedMD(    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyt!   test_maxdists_one_cluster_linkage  s    'c         C` s1   x* d d d d d g D] } |  j  |  q Wd  S(   NR   R   RB   R   RA   (   t   check_maxdists_Q_linkage(   R3   R9   (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyt   test_maxdists_Q_linkage  s    c         C` sG   t  j } t | |  } t |  } t |  } t | | d d d  S(   NR<   gV瞯<(   R+   R   R   R   R   R   (   R3   R9   RH   R?   R   R   (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyR     s
    	(   R[   R\   R   R   R   R   (    (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyR     s   			t   TestMaxInconstsc           B` s5   e  Z d    Z d   Z d   Z d   Z d   Z RS(   c         C` sG   t  j d d t  j } t  j d d t  j } t t t | |  d  S(   Ni    i   Rt   (   i    i   (   i    i   (   R.   R/   Ru   R1   R2   R   (   R3   R?   R   (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyt   test_maxinconsts_empty_linkage  s    c         C` sS   t  j d d d d g g d t  j } t  j j d d  } t t t | |  d  S(   Ni    i   g333333?i   Rt   i   (   R.   Rp   Ru   RM   RO   R1   R2   R   (   R3   R?   R   (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyt   test_maxinconsts_difrow_linkage  s    'c         C` s   t  j d d d d g g d t  j } t  j d d d d g g d t  j } t | |  } t | |  } t | | d d d  S(   Ni    i   g333333?i   Rt   R<   gV瞯<(   R.   Rp   Ru   R   t!   calculate_maximum_inconsistenciesR   (   R3   R?   R   R   R   (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyt$   test_maxinconsts_one_cluster_linkage  s
    ''c         C` s1   x* d d d d d g D] } |  j  |  q Wd  S(   NR   R   RB   R   RA   (   t   check_maxinconsts_Q_linkage(   R3   R9   (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyt   test_maxinconsts_Q_linkage  s    c         C` sY   t  j } t | |  } t |  } t | |  } t | |  } t | | d d d  S(   NR<   gV瞯<(   R+   R   R   R   R   R   R   (   R3   R9   RH   R?   R   R   R   (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyR     s    	(   R[   R\   R   R   R   R   R   (    (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyR     s
   				t   TestMaxRStatc           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+   x$ d d d g D] } |  j  |  q Wd  S(   Ngffffff
@ii   (   t   check_maxRstat_invalid_index(   R3   R   (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyt   test_maxRstat_invalid_index  s    c         C` s   t  j d d d d g g d t  j } t  j d d d d g g d t  j } t | t  rv t t t | | |  n t t t | | |  d  S(   Ni    i   g333333?i   Rt   (	   R.   Rp   Ru   t
   isinstanceR   R1   R2   R   R   (   R3   R   R?   R   (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyR     s
    ''c         C` s(   x! t  d  D] } |  j |  q Wd  S(   Ni   (   R   t   check_maxRstat_empty_linkage(   R3   R   (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyt   test_maxRstat_empty_linkage  s    c         C` sJ   t  j d d t  j } t  j d d t  j } t t t | | |  d  S(   Ni    i   Rt   (   i    i   (   i    i   (   R.   R/   Ru   R1   R2   R   (   R3   R   R?   R   (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyR     s    c         C` s(   x! t  d  D] } |  j |  q Wd  S(   Ni   (   R   t   check_maxRstat_difrow_linkage(   R3   R   (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyt   test_maxRstat_difrow_linkage  s    c         C` sV   t  j d d d d g g d t  j } t  j j d d  } t t t | | |  d  S(   Ni    i   g333333?i   Rt   i   (   R.   Rp   Ru   RM   RO   R1   R2   R   (   R3   R   R?   R   (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyR    s    'c         C` s(   x! t  d  D] } |  j |  q Wd  S(   Ni   (   R   t"   check_maxRstat_one_cluster_linkage(   R3   R   (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyt!   test_maxRstat_one_cluster_linkage  s    c         C` s   t  j d d d d g g d t  j } t  j d d d d g g d t  j } t | | d  } t | | d  } t | | d d d  S(   Ni    i   g333333?i   Rt   R<   gV瞯<(   R.   Rp   Ru   R   R   R   (   R3   R   R?   R   R   R   (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyR    s
    ''c         C` sK   xD d d d d d g D]- } x$ t  d  D] } |  j | |  q) Wq Wd  S(   NR   R   RB   R   RA   i   (   R   t   check_maxRstat_Q_linkage(   R3   R9   R   (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyt   test_maxRstat_Q_linkage  s    c         C` s_   t  j } t | |  } t |  } t | | d  } t | | d  } t | | d d d  S(   Ni   R<   gV瞯<(   R+   R   R   R   R   R   R   (   R3   R9   R   RH   R?   R   R   R   (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyR    s    	(   R[   R\   R   R   R   R   R  R  R  R  R  R  (    (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyR     s   										t   TestDendrogramc           B` sp   e  Z d    Z d   Z e j j e d d d    Z d   Z	 e j j e d d d    Z
 d   Z RS(   c         C` sQ   t  t j d  } t | d t } | d } t | d d d d d d	 g  d  S(
   NR   t   no_plott   leavesi   i   i   i    i   i   (   R   R+   R=   R"   RY   R   (   R3   R?   R   R	  (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyt$   test_dendrogram_single_linkage_tdist(  s    
c         C` s,   t  t j d  } t t t | d d d  S(   NR   t   orientationt   foo(   R   R+   R=   R1   R2   R"   (   R3   R?   (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyt   test_valid_orientation/  s    t   reasons   no matplotlibc         C` s.   x' d d d d g D] } |  j  |  q Wd  S(   Nt   topt   bottomt   leftt   right(   t   check_dendrogram_plot(   R3   R  (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyt   test_dendrogram_plot3  s    c   
   
   C` s  t  t j d  } i d d d d d g d 6d d d d g d d d d g d d d d g d d	 d	 d g d d
 d
 d	 g g d 6d d d d g d d d d g d d d d g d d d d g d d d d g g d 6d d d d d d g d 6d d d  d! d" d# g d$ 6} t j   } | j d%  } t | d& | d' | } t | |  t | d& | d' | d( d) d* d+ } | d. k r| j   d! n | j	   d! } t | j
   d+  t | j   d)  t | d& | d' | d* d+ } | d/ k r| j   d! n | j	   d! } t | j
   d+  t | d& | d' | d( d) } | d0 k rQ| j   d! n | j	   d! } t | j   d)  t j   t | d' | }	 t j   t |	 |  d  S(1   NR   t   gR   t
   color_listg        g     @a@g     `k@g     o@g     p@g     pr@t   dcoordg      @g      .@g     F@g     K@g     A@g      I@g      9@g     @E@g      $@g     @@t   icoordt   2t   5t   1t   0t   3t   4t   ivli   i   i   i    i   i   R	  i   t   axR  t   leaf_font_sizei   t   leaf_rotationiZ   R  R  (   R  R  (   R  R  (   R  R  (   R   R+   R=   t   pltt   figuret   add_subplotR"   R   t   get_xticklabelst   get_yticklabelst   get_rotationt   get_sizet   close(
   R3   R  R?   t   expectedt   figR   t   R1t   R1at	   testlabelt   R2(    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyR  8  sL    		

c      
   C` s  t  t j d  } t | d d d t } t j   t | i d g d 6d d d d g g d	 6d
 d
 d d g g d 6d d g d 6d d g d 6 t | d d d t } t j   t | i d d d d g d 6d d d d g d d d d g d d d d g d d d d g g d	 6d
 d
 d d g d d d d g d d d d g d d d d g g d 6d d d  d! d g d 6d d" d# d$ d% g d 6 d  S(&   NR   i   t   lastpt   show_contractedR   R  g        g     pr@R  g      @g      .@R  s   (2)s   (4)R  i   i	   R	  t   mticaR  g     @a@g     o@g     p@g     A@g     F@g      9@g      D@g      $@g     @@@R  R  R  R  i   i   i    i   (   R   R+   R=   R"   RY   R#  R*  R   (   R3   R?   R   (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyt   test_dendrogram_truncate_moder  s*    

c         C` s   t  t j d  } t d d d d g  t | d t d d d	 d
 } t d d d d d d g  | d } t | d d d d d g  t d   d  S(   NR   Rl   t   mR4   R   R  t   above_threshold_colorR  t   color_thresholdi   t   rR  (   R   R+   R=   R#   R"   RY   R   t   None(   R3   R?   R   R  (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyt   test_dendrogram_colors  s    
(   R[   R\   R
  R  t   pytestt   markt   skipift   have_matplotlibR  R  R4  R:  (    (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyR  '  s   		"	:"c         C` s   |  j  d d } t j | d f  } t j d  } x t d | d  D] } d | (|  | d f } |  | d f } | | k r | t |  | | d <n  | | k r | t |  | | d <n  |  | d f | d <| j   | | <qJ W| S(   Ni    i   i   g        i   (   i   (   R   R.   R/   R   R   t   max(   R?   RR   t   Bt   qR   R  R  (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyR     s    i   c   	      C` s   |  j  d d } t j | d f  } t j d  } x t d | d  D] } d | (|  | d f } |  | d f } | | k r | t |  | | d <n  | | k r | t |  | | d <n  | | | f | d <| j   | | <qJ W| S(   Ni    i   i   g        i   (   i   (   R   R.   R/   R   R   R?  (	   R?   R   R   RR   R@  RA  R   R  R  (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyR     s    c         C` s   t  j |  |  j   | k  S(   N(   R.   t   absR?  (   R   R   t   tol(    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyt
   within_tol  s    c           C` s&   t  t t d d g d d g g  d  S(   Ni    i   (   R   R
   R   (    (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyt<   test_unsupported_uncondensed_distance_matrix_linkage_warning  s    c       	   C` sL   xE t  j j j D]4 }  t t t d d g d d g g d |  d d q Wd  S(   Ni   R9   RF   t	   cityblock(   RI   t   clustert	   hierarchyt   _EUCLIDEAN_METHODSR1   R2   R   (   R9   (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyt"   test_euclidean_linkage_value_error  s    !c          C` sV   t  d g d d d d }  t  d d g d d g g d d d d } t |  |  d  S(   Ni   R9   R   RF   RG   i    (   R   R   (   t   Z1R   (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyt   test_2x2_linkage  s    *c          C` s   t  j j d  d }  t  j j |  d  } t j j j |  } t |  } t	 | | j
   k  t	 | j   | j
   k  t	 | j   | j   k  t	 | j   | j
   k  d  S(   Ni   i2   i   (   R.   RM   t   seedt   randnRI   RG  RH  RB   R    R   R   R   (   R   RH   R?   t   tree(    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyt   test_node_compare  s    c          C` sF  t  j j d  d }  t  j j |  d  } t j j j |  } t |  } t	 | d  d   d f t  j
 |    t	 | d  d   d f t  j |    t	 | j d  t  j
 |  d d d   t	 | d  d   d g f t | d d	  t	 | d  d   d d
 g f t | d d	 d g  t	 | d  d   d
 d g f t | d d d	 g  t |  } t  j g  | D] } | j ^ qp } t	 | d  d   t  j | d	 g  f t | d d	  t	 | d  d   t  j | d	 d g  f t | d d	 d g  t	 | d  d   t  j | d d	 g  f t | d d d	 g  d  S(   Ni   i2   i   i    ii   it
   n_clustersi   ii
   t   height(   R.   RM   RM  RN  RI   RG  RH  RB   R$   R   t   arangeR/   R?  R&   R`   t   distt   searchsorted(   R   RH   R?   t   cutreet   nodesR   t   heights(    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyt   test_cut_tree  s&    &&),55%%((c          C` su   t  t t j  t j  }  t j } t |  | d d t  t t j d  t j  }  t j } t |  | d d d  S(   NR<   g|=RB   gư>(   R%   R   R+   R=   RX   R   RH   t   linkage_X_ward_olo(   R?   R@   (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyRZ     s    		c          C` s\  t  j d d d d d g  }  t |   } | j   } t | d d  t | d d  | j   | j   } t | d d  t | d d  | j d d	  | j   } t | d d  t | d d  | j   | j   | j d d
  | j   } t | d d  t | d d  | j   | j   } t | d d  t | d d
  d  S(   Ni   ii    g      i   t   keyt   valuei   g      @i
   i   (   R.   R`   R*   t   get_minR   t
   remove_mint   change_value(   t   valuest   heapt   pair(    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyt	   test_Heap  s.    



(^   t
   __future__R    R   R   t   numpyR.   t   numpy.testingR   R   R   R   R;  R   R1   t   scipy._lib.sixR   R	   t   scipy.cluster.hierarchyRI   R
   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R    R!   R"   R#   R$   R%   R&   R'   R(   t   scipy.spatial.distanceR)   t   scipy.cluster._hierarchyR*   t    R+   t
   matplotlibt   uset   matplotlib.pyplott   pyplotR#  RY   R>  t	   ExceptionR   t   objectR-   R]   Rb   Rh   Ro   Rw   R   R   R   R   R   R   R   R   R   R   R   R  R   R   RD  RE  RJ  RL  RP  RY  RZ   Rc  (    (    (    sA   lib/python2.7/site-packages/scipy/cluster/tests/test_hierarchy.pyt   <module>"   sZ   "

72JMG#4H$>u								