
ʽXc           @` 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
 m Z m Z m Z 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/ m0 Z0 m1 Z1 d  d l2 m3 Z3 d  d l4 m5 Z5 d  d l6 Z6 y2 d  d l7 Z7 e7 j8 d  d  d l9 j: Z; e< Z= Wn e> Z= n Xd	 e? f d
     YZ@ d e? f d     YZA d e? f d     YZB d e? f d     YZC d e? f d     YZD d e? f d     YZE d e? f d     YZF d e? f d     YZG d e? f d     YZH d e? f d     YZI d e f d     YZJ d e? f d      YZK d! e f d"     YZL d# e f d$     YZM d% e? f d&     YZN d' e? f d(     YZO d) e? f d*     YZP d+ e? f d,     YZQ d-   ZR d. d/  ZS d0   ZT d1   ZU d2   ZV d3   ZW d4   ZX d5   ZY d6   ZZ e[ d7 k re   n  d S(8   i    (   t   divisiont   print_functiont   absolute_importN(   t   TestCaset   run_module_suitet   dect   assert_raisest   assert_allcloset   assert_equalt   assert_t   assert_warns(   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   _order_cluster_treet
   _hierarchyt   _LINKAGE_METHODS(   t   pdist(   t   Heapt   Aggt   TestLinkagec           B` sG   e  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   nanR   t
   ValueErrorR   (   t   selft   y(    (    sA   /tmp/pip-build-7oUkmx/scipy/scipy/cluster/tests/test_hierarchy.pyt3   test_linkage_non_finite_elements_in_distance_matrixG   s    c         C` s#   t  j d  } t t t |  d  S(   Ni    (   i    (   R/   R0   R   R2   R   (   R3   R4   (    (    sA   /tmp/pip-build-7oUkmx/scipy/scipy/cluster/tests/test_hierarchy.pyt"   test_linkage_empty_distance_matrixN   s    c         c` s8   x1 d d d d t  d  g D] } |  j | f Vq Wd  S(   NR   R   t   averageR   (   R   t   check_linkage_tdist(   R3   t   method(    (    sA   /tmp/pip-build-7oUkmx/scipy/scipy/cluster/tests/test_hierarchy.pyt   test_linkage_tdistS   s    "c         C` s<   t  t j |  } t t d |  } t | | d d d  S(   Nt   linkage_ytdist_t   atolg|=(   R   t   hierarchy_test_datat   ytdistt   getattrR   (   R3   R9   t   Zt	   expectedZ(    (    sA   /tmp/pip-build-7oUkmx/scipy/scipy/cluster/tests/test_hierarchy.pyR8   W   s    c         c` s,   x% d d d g D] } |  j  | f Vq Wd  S(   NR   t   mediant   ward(   t   check_linkage_q(   R3   R9   (    (    sA   /tmp/pip-build-7oUkmx/scipy/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@   RA   R4   (    (    sA   /tmp/pip-build-7oUkmx/scipy/scipy/cluster/tests/test_hierarchy.pyRD   a   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   nRI   t   dR9   t   codet	   Z_trivialR@   (    (    sA   /tmp/pip-build-7oUkmx/scipy/scipy/cluster/tests/test_hierarchy.pyt   test_compare_with_triviall   s    (	   t   __name__t
   __module__R5   R6   R:   R8   RE   RD   RW   (    (    (    sA   /tmp/pip-build-7oUkmx/scipy/scipy/cluster/tests/test_hierarchy.pyR.   F   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   RB   g@RC   c         c` s8   x1 d d d d d d d g D] } |  j  | f Vq Wd  S(   NR   R   R7   R   R   RB   RC   (   t   check_linkage_ties(   R3   R9   (    (    sA   /tmp/pip-build-7oUkmx/scipy/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   RI   R@   RA   (    (    sA   /tmp/pip-build-7oUkmx/scipy/scipy/cluster/tests/test_hierarchy.pyR[      s    *(   RX   RY   R/   R]   R^   R\   R[   (    (    (    sA   /tmp/pip-build-7oUkmx/scipy/scipy/cluster/tests/test_hierarchy.pyRZ   x   s"   	t   TestInconsistentc           B` s   e  Z d    Z d   Z RS(   c         c` s&   x t  j D] } |  j | f Vq
 Wd  S(   N(   R=   t   inconsistent_ytdistt   check_inconsistent_tdist(   R3   t   depth(    (    sA   /tmp/pip-build-7oUkmx/scipy/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   R`   (   R3   Rb   R@   (    (    sA   /tmp/pip-build-7oUkmx/scipy/scipy/cluster/tests/test_hierarchy.pyRa      s    	(   RX   RY   Rc   Ra   (    (    (    sA   /tmp/pip-build-7oUkmx/scipy/scipy/cluster/tests/test_hierarchy.pyR_      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=   Rd   R   R   (   R3   t	   expectedMR@   t   M(    (    sA   /tmp/pip-build-7oUkmx/scipy/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=   Rd   R   R>   R/   R]   R   (   R3   R@   t   cRg   Rf   t	   expectedc(    (    sA   /tmp/pip-build-7oUkmx/scipy/scipy/cluster/tests/test_hierarchy.pyt   test_linkage_cophenet_tdist_Z_Y   s    	$(   RX   RY   Rh   Rk   (    (    (    sA   /tmp/pip-build-7oUkmx/scipy/scipy/cluster/tests/test_hierarchy.pyRe      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   RI   (    (    sA   /tmp/pip-build-7oUkmx/scipy/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/   Rm   R   R   R   (   R3   R@   t   Zm(    (    sA   /tmp/pip-build-7oUkmx/scipy/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/   Rm   R]   t   doubleR   R   R   (   R3   Ro   R@   (    (    sA   /tmp/pip-build-7oUkmx/scipy/scipy/cluster/tests/test_hierarchy.pyt*   test_mlab_linkage_conversion_multiple_rows   s    -(   RX   RY   Rn   Rp   Rs   (    (    (    sA   /tmp/pip-build-7oUkmx/scipy/scipy/cluster/tests/test_hierarchy.pyRl      s   		t   TestFclusterc           B` sG   e  Z d    Z d   Z d   Z d   Z d   Z d   Z d   Z RS(   c         c` ss   x" t  j D] } |  j | d f Vq
 Wx" t  j D] } |  j | d f Vq/ Wx" t  j D] } |  j | d f VqT Wd  S(   NR   RL   t   maxclust(   R=   t   fcluster_inconsistentt   check_fclusterdatat   fcluster_distancet   fcluster_maxclust(   R3   t   t(    (    sA   /tmp/pip-build-7oUkmx/scipy/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	   criterionRz   (   R?   R=   t   Q_XR   R	   R   (   R3   Rz   R}   t	   expectedTRI   t   T(    (    sA   /tmp/pip-build-7oUkmx/scipy/scipy/cluster/tests/test_hierarchy.pyRw      s    	c         c` ss   x" t  j D] } |  j | d f Vq
 Wx" t  j D] } |  j | d f Vq/ Wx" t  j D] } |  j | d f VqT Wd  S(   NR   RL   Ru   (   R=   Rv   t   check_fclusterRx   Ry   (   R3   Rz   (    (    sA   /tmp/pip-build-7oUkmx/scipy/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}   Rz   (   R?   R=   R   R~   R   R	   R   (   R3   Rz   R}   R   R@   R   (    (    sA   /tmp/pip-build-7oUkmx/scipy/scipy/cluster/tests/test_hierarchy.pyR      s    c         c` sH   x t  j D] } |  j | f Vq
 Wx t  j D] } |  j | f Vq, Wd  S(   N(   R=   Rx   t   check_fcluster_monocritRy   t    check_fcluster_maxclust_monocrit(   R3   Rz   (    (    sA   /tmp/pip-build-7oUkmx/scipy/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=   Rx   R   R~   R   R   R	   R   (   R3   Rz   R   R@   R   (    (    sA   /tmp/pip-build-7oUkmx/scipy/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=   Ry   R   R~   R   R   R	   R   (   R3   Rz   R   R@   R   (    (    sA   /tmp/pip-build-7oUkmx/scipy/scipy/cluster/tests/test_hierarchy.pyR      s    !(	   RX   RY   R{   Rw   R   R   R   R   R   (    (    (    sA   /tmp/pip-build-7oUkmx/scipy/scipy/cluster/tests/test_hierarchy.pyRt      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}   Ru   Rz   i   i5   i7   i8   i   i   (	   R=   R~   R+   R   R   R/   R]   R   R   (   R3   RI   t   YR@   R   t   Lrightt   L(    (    sA   /tmp/pip-build-7oUkmx/scipy/scipy/cluster/tests/test_hierarchy.pyt   test_leaders_single  s    	0(   RX   RY   R   (    (    (    sA   /tmp/pip-build-7oUkmx/scipy/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   /tmp/pip-build-7oUkmx/scipy/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   /tmp/pip-build-7oUkmx/scipy/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   /tmp/pip-build-7oUkmx/scipy/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   /tmp/pip-build-7oUkmx/scipy/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   /tmp/pip-build-7oUkmx/scipy/scipy/cluster/tests/test_hierarchy.pyt   test_is_isomorphic_4B*  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   /tmp/pip-build-7oUkmx/scipy/scipy/cluster/tests/test_hierarchy.pyt   test_is_isomorphic_4C1  s    c         c` s/   x( d d d g D] } |  j  d | f Vq Wd  S(   Ni   i   i   i  (   t   help_is_isomorphic_randperm(   R3   t   nc(    (    sA   /tmp/pip-build-7oUkmx/scipy/scipy/cluster/tests/test_hierarchy.pyt   test_is_isomorphic_58  s    c         c` s5   x. d d d g D] } |  j  d | t d f Vq Wd  S(   Ni   i   i   i  (   R   t   True(   R3   R   (    (    sA   /tmp/pip-build-7oUkmx/scipy/scipy/cluster/tests/test_hierarchy.pyt   test_is_isomorphic_6>  s    c         C` s*   t  t d d d g d d d g   d  S(   Ni   i   i   (   R	   R   (   R3   (    (    sA   /tmp/pip-build-7oUkmx/scipy/scipy/cluster/tests/test_hierarchy.pyt   test_is_isomorphic_7E  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   Rq   i    i   (   t   rangeR/   t   int_RN   RP   R0   t   sizet   permutationR   t   shapeR	   R   (   R3   t   nobst	   nclusterst   nonisot   nerrorst   kR   R   t   Pt   it   Q(    (    sA   /tmp/pip-build-7oUkmx/scipy/scipy/cluster/tests/test_hierarchy.pyR   I  s    (   RX   RY   R   R   R   R   R   R   R   R   R   R   R   (    (    (    sA   /tmp/pip-build-7oUkmx/scipy/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` sb   x[ d d t  f d d t  f d d t f d d t f g D]# \ } } } |  j | | | f Vq7 Wd  S(   Ni   i   i   i   i   (   R   R   t#   check_is_valid_linkage_various_size(   R3   t   nrowt   ncolt   valid(    (    sA   /tmp/pip-build-7oUkmx/scipy/scipy/cluster/tests/test_hierarchy.pyt"   test_is_valid_linkage_various_sizeY  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      @Rq   t   throw(   R/   Rm   Rr   R	   R!   R   R2   R   (   R3   R   R   R   R@   (    (    sA   /tmp/pip-build-7oUkmx/scipy/scipy/cluster/tests/test_hierarchy.pyR   ^  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      @Rq   R   (	   R/   Rm   t   intR	   R!   R   R   t	   TypeErrorR   (   R3   R@   (    (    sA   /tmp/pip-build-7oUkmx/scipy/scipy/cluster/tests/test_hierarchy.pyt   test_is_valid_linkage_int_typeg  s    c         C` sH   t  j d d t  j } t t |  t k  t t t | d t d  S(   Ni    i   Rq   R   (   i    i   (	   R/   R0   Rr   R	   R!   R   R   R2   R   (   R3   R@   (    (    sA   /tmp/pip-build-7oUkmx/scipy/scipy/cluster/tests/test_hierarchy.pyt   test_is_valid_linkage_emptyn  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/   RN   RP   R   R	   R!   R   (   R3   R   R4   R@   (    (    sA   /tmp/pip-build-7oUkmx/scipy/scipy/cluster/tests/test_hierarchy.pyt   test_is_valid_linkage_4_and_upt  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/   RN   RP   R   R	   R!   R   R   R2   R   (   R3   R   R4   R@   (    (    sA   /tmp/pip-build-7oUkmx/scipy/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/   RN   RP   R   R	   R!   R   R   R2   R   (   R3   R   R4   R@   (    (    sA   /tmp/pip-build-7oUkmx/scipy/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/   RN   RP   R   R	   R!   R   R   R2   R   (   R3   R   R4   R@   (    (    sA   /tmp/pip-build-7oUkmx/scipy/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/   RN   RP   R   R	   R!   R   R   R2   R   (   R3   R   R4   R@   (    (    sA   /tmp/pip-build-7oUkmx/scipy/scipy/cluster/tests/test_hierarchy.pyt)   test_is_valid_linkage_4_and_up_neg_counts  s    (   RX   RY   R   R   R   R   R   R   R   R   R   (    (    (    sA   /tmp/pip-build-7oUkmx/scipy/scipy/cluster/tests/test_hierarchy.pyR   X  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      @Rq   R   (	   R/   Rm   R   R	   R"   R   R   R   R   (   R3   t   R(    (    sA   /tmp/pip-build-7oUkmx/scipy/scipy/cluster/tests/test_hierarchy.pyt   test_is_valid_im_int_type  s    c         c` sb   x[ d d t  f d d t  f d d t f d d t f g D]# \ } } } |  j | | | f Vq7 Wd  S(   Ni   i   i   i   i   (   R   R   t   check_is_valid_im_various_size(   R3   R   R   R   (    (    sA   /tmp/pip-build-7oUkmx/scipy/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      @Rq   R   (   R/   Rm   Rr   R	   R"   R   R2   R   (   R3   R   R   R   R   (    (    sA   /tmp/pip-build-7oUkmx/scipy/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   Rq   R   (   i    i   (	   R/   R0   Rr   R	   R"   R   R   R2   R   (   R3   R   (    (    sA   /tmp/pip-build-7oUkmx/scipy/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/   RN   RP   R   R   R	   R"   R   (   R3   R   R4   R@   R   (    (    sA   /tmp/pip-build-7oUkmx/scipy/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/   RN   RP   R   R   R	   R"   R   R   R2   R   (   R3   R   R4   R@   R   (    (    sA   /tmp/pip-build-7oUkmx/scipy/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/   RN   RP   R   R   R	   R"   R   R   R2   R   (   R3   R   R4   R@   R   (    (    sA   /tmp/pip-build-7oUkmx/scipy/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/   RN   RP   R   R   R	   R"   R   R   R2   R   (   R3   R   R4   R@   R   (    (    sA   /tmp/pip-build-7oUkmx/scipy/scipy/cluster/tests/test_hierarchy.pyt"   test_is_valid_im_4_and_up_neg_dist  s    (
   RX   RY   R   R   R   R   R   R   R   R   (    (    (    sA   /tmp/pip-build-7oUkmx/scipy/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   Rq   (   i    i   (   R/   R0   Rr   R   R2   R   (   R3   R@   (    (    sA   /tmp/pip-build-7oUkmx/scipy/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   Rq   (   R/   Rm   Rr   R   R   (   R3   R@   (    (    sA   /tmp/pip-build-7oUkmx/scipy/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      @Rq   (   R/   Rm   Rr   R   R   (   R3   R@   (    (    sA   /tmp/pip-build-7oUkmx/scipy/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/   RN   RP   R   R   R   (   R3   R   R4   R@   (    (    sA   /tmp/pip-build-7oUkmx/scipy/scipy/cluster/tests/test_hierarchy.pyt   test_num_obs_linkage_4_and_up  s    (   RX   RY   R   R   R   R   (    (    (    sA   /tmp/pip-build-7oUkmx/scipy/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   Rq   (   R/   Rm   Rr   R#   R   R$   (   R3   R@   (    (    sA   /tmp/pip-build-7oUkmx/scipy/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      @Rq   (   R/   Rm   Rr   R#   R   R$   (   R3   R@   (    (    sA   /tmp/pip-build-7oUkmx/scipy/scipy/cluster/tests/test_hierarchy.pyt   test_leaves_list_2x4  s    !
c         c` s8   x1 d d d d d d d g D] } |  j  | f Vq Wd  S(   NR   R   R7   R   R   RB   RC   (   t   check_leaves_list_Q(   R3   R9   (    (    sA   /tmp/pip-build-7oUkmx/scipy/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   RI   R@   t   node(    (    sA   /tmp/pip-build-7oUkmx/scipy/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   RI   R@   R   (    (    sA   /tmp/pip-build-7oUkmx/scipy/scipy/cluster/tests/test_hierarchy.pyt   test_Q_subtree_pre_order   s
    	(   RX   RY   R   R   R   R   R   (    (    (    sA   /tmp/pip-build-7oUkmx/scipy/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/   R0   R   R2   R   (   R3   R4   R@   (    (    sA   /tmp/pip-build-7oUkmx/scipy/scipy/cluster/tests/test_hierarchy.pyt   test_correspond_empty*  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/   RN   RP   R   R	   R   (   R3   R   R4   R@   (    (    sA   /tmp/pip-build-7oUkmx/scipy/scipy/cluster/tests/test_hierarchy.pyt   test_correspond_2_and_up0  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/   RN   RP   R   R   R   R   (   R3   R   t   jR4   t   y2R@   t   Z2(    (    sA   /tmp/pip-build-7oUkmx/scipy/scipy/cluster/tests/test_hierarchy.pyt   test_correspond_4_and_up<  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/   RN   RP   R   R   R   R   (   R3   R   R   R4   R   R@   R   (    (    sA   /tmp/pip-build-7oUkmx/scipy/scipy/cluster/tests/test_hierarchy.pyt   test_correspond_4_and_up_2H  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/   RN   RP   R+   R   R   R   (   R3   RS   RI   R   R@   (    (    sA   /tmp/pip-build-7oUkmx/scipy/scipy/cluster/tests/test_hierarchy.pyt!   test_num_obs_linkage_multi_matrixT  s
    (   RX   RY   R   R   R   R   R   (    (    (    sA   /tmp/pip-build-7oUkmx/scipy/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/   R0   R   R2   R   (   R3   R@   (    (    sA   /tmp/pip-build-7oUkmx/scipy/scipy/cluster/tests/test_hierarchy.pyt   test_is_monotonic_empty^  s    c         C` s>   t  j d d d d g g d t  j } t t |  t  d  S(   Ni    i   g333333?i   Rq   (   R/   Rm   Rr   R   R   R   (   R3   R@   (    (    sA   /tmp/pip-build-7oUkmx/scipy/scipy/cluster/tests/test_hierarchy.pyt   test_is_monotonic_1x4c  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?Rq   (   R/   Rm   Rr   R   R   R   (   R3   R@   (    (    sA   /tmp/pip-build-7oUkmx/scipy/scipy/cluster/tests/test_hierarchy.pyt   test_is_monotonic_2x4_Th  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?Rq   (   R/   Rm   Rr   R   R   R   (   R3   R@   (    (    sA   /tmp/pip-build-7oUkmx/scipy/scipy/cluster/tests/test_hierarchy.pyt   test_is_monotonic_2x4_Fn  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?Rq   (   R/   Rm   Rr   R   R   R   (   R3   R@   (    (    sA   /tmp/pip-build-7oUkmx/scipy/scipy/cluster/tests/test_hierarchy.pyt   test_is_monotonic_3x4_Tt  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?Rq   (   R/   Rm   Rr   R   R   R   (   R3   R@   (    (    sA   /tmp/pip-build-7oUkmx/scipy/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?Rq   (   R/   Rm   Rr   R   R   R   (   R3   R@   (    (    sA   /tmp/pip-build-7oUkmx/scipy/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?Rq   (   R/   Rm   Rr   R   R   R   (   R3   R@   (    (    sA   /tmp/pip-build-7oUkmx/scipy/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   R   (   R3   R@   (    (    sA   /tmp/pip-build-7oUkmx/scipy/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   /tmp/pip-build-7oUkmx/scipy/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   R   (   R3   RI   R@   (    (    sA   /tmp/pip-build-7oUkmx/scipy/scipy/cluster/tests/test_hierarchy.pyt   test_is_monotonic_Q_linkage  s    	(   RX   RY   R   R   R   R   R   R   R   R   R   R   R   (    (    (    sA   /tmp/pip-build-7oUkmx/scipy/scipy/cluster/tests/test_hierarchy.pyR   ]  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   Rq   (   i    i   (   R/   R0   Rr   R   R2   R   (   R3   R@   (    (    sA   /tmp/pip-build-7oUkmx/scipy/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   Rq   R<   gV瞯<(   R/   Rm   Rr   R   t   calculate_maximum_distancesR   (   R3   R@   t   MDt
   expectedMD(    (    sA   /tmp/pip-build-7oUkmx/scipy/scipy/cluster/tests/test_hierarchy.pyt!   test_maxdists_one_cluster_linkage  s    'c         c` s2   x+ d d d d d g D] } |  j  | f Vq Wd  S(   NR   R   RC   R   RB   (   t   check_maxdists_Q_linkage(   R3   R9   (    (    sA   /tmp/pip-build-7oUkmx/scipy/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   RI   R@   R   R   (    (    sA   /tmp/pip-build-7oUkmx/scipy/scipy/cluster/tests/test_hierarchy.pyR     s
    	(   RX   RY   R   R   R   R   (    (    (    sA   /tmp/pip-build-7oUkmx/scipy/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   Rq   (   i    i   (   i    i   (   R/   R0   Rr   R   R2   R   (   R3   R@   R   (    (    sA   /tmp/pip-build-7oUkmx/scipy/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   Rq   i   (   R/   Rm   Rr   RN   RP   R   R2   R   (   R3   R@   R   (    (    sA   /tmp/pip-build-7oUkmx/scipy/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   Rq   R<   gV瞯<(   R/   Rm   Rr   R   t!   calculate_maximum_inconsistenciesR   (   R3   R@   R   R   R   (    (    sA   /tmp/pip-build-7oUkmx/scipy/scipy/cluster/tests/test_hierarchy.pyt$   test_maxinconsts_one_cluster_linkage  s
    ''c         c` s2   x+ d d d d d g D] } |  j  | f Vq Wd  S(   NR   R   RC   R   RB   (   t   check_maxinconsts_Q_linkage(   R3   R9   (    (    sA   /tmp/pip-build-7oUkmx/scipy/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   RI   R@   R   R   R   (    (    sA   /tmp/pip-build-7oUkmx/scipy/scipy/cluster/tests/test_hierarchy.pyR     s    	(   RX   RY   R   R   R   R   R   (    (    (    sA   /tmp/pip-build-7oUkmx/scipy/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  | f Vq Wd  S(   Ngffffff
@ii   (   t   check_maxRstat_invalid_index(   R3   R   (    (    sA   /tmp/pip-build-7oUkmx/scipy/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   Rq   (	   R/   Rm   Rr   t
   isinstanceR   R   R2   R    R   (   R3   R   R@   R   (    (    sA   /tmp/pip-build-7oUkmx/scipy/scipy/cluster/tests/test_hierarchy.pyR     s
    ''c         c` s)   x" t  d  D] } |  j | f Vq Wd  S(   Ni   (   R   t   check_maxRstat_empty_linkage(   R3   R   (    (    sA   /tmp/pip-build-7oUkmx/scipy/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   Rq   (   i    i   (   i    i   (   R/   R0   Rr   R   R2   R    (   R3   R   R@   R   (    (    sA   /tmp/pip-build-7oUkmx/scipy/scipy/cluster/tests/test_hierarchy.pyR     s    c         c` s)   x" t  d  D] } |  j | f Vq Wd  S(   Ni   (   R   t   check_maxRstat_difrow_linkage(   R3   R   (    (    sA   /tmp/pip-build-7oUkmx/scipy/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   Rq   i   (   R/   Rm   Rr   RN   RP   R   R2   R    (   R3   R   R@   R   (    (    sA   /tmp/pip-build-7oUkmx/scipy/scipy/cluster/tests/test_hierarchy.pyR     s    'c         c` s)   x" t  d  D] } |  j | f Vq Wd  S(   Ni   (   R   t"   check_maxRstat_one_cluster_linkage(   R3   R   (    (    sA   /tmp/pip-build-7oUkmx/scipy/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   Rq   R<   gV瞯<(   R/   Rm   Rr   R    R   R   (   R3   R   R@   R   R   R   (    (    sA   /tmp/pip-build-7oUkmx/scipy/scipy/cluster/tests/test_hierarchy.pyR  
  s
    ''c         c` sL   xE d d d d d g D]. } x% t  d  D] } |  j | | f Vq) Wq Wd  S(   NR   R   RC   R   RB   i   (   R   t   check_maxRstat_Q_linkage(   R3   R9   R   (    (    sA   /tmp/pip-build-7oUkmx/scipy/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   RI   R@   R   R   R   (    (    sA   /tmp/pip-build-7oUkmx/scipy/scipy/cluster/tests/test_hierarchy.pyR    s    	(   RX   RY   R   R   R   R   R   R   R  R  R  R  (    (    (    sA   /tmp/pip-build-7oUkmx/scipy/scipy/cluster/tests/test_hierarchy.pyR     s   										t   TestDendrogramc           B` s^   e  Z d    Z d   Z e j e  d    Z d   Z e j e  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%   R   R   (   R3   R@   R   R  (    (    sA   /tmp/pip-build-7oUkmx/scipy/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>   R   R2   R%   (   R3   R@   (    (    sA   /tmp/pip-build-7oUkmx/scipy/scipy/cluster/tests/test_hierarchy.pyt   test_valid_orientation)  s    c         c` s/   x( d d d d g D] } |  j  | f Vq Wd  S(   Nt   topt   bottomt   leftt   right(   t   check_dendrogram_plot(   R3   R	  (    (    sA   /tmp/pip-build-7oUkmx/scipy/scipy/cluster/tests/test_hierarchy.pyt   test_dendrogram_plot-  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  (   s   tops   bottom(   s   tops   bottom(   s   tops   bottom(   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   /tmp/pip-build-7oUkmx/scipy/scipy/cluster/tests/test_hierarchy.pyR  2  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%   R   R   R'  R   (   R3   R@   R   (    (    sA   /tmp/pip-build-7oUkmx/scipy/scipy/cluster/tests/test_hierarchy.pyt   test_dendrogram_truncate_model  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   Ri   t   mR4   R   R  t   above_threshold_colorR  t   color_thresholdi   t   rR  (   R   R=   R>   R&   R%   R   R   t   None(   R3   R@   R   R  (    (    sA   /tmp/pip-build-7oUkmx/scipy/scipy/cluster/tests/test_hierarchy.pyt   test_dendrogram_colors  s    
(   RX   RY   R  R  R   t   skipift   have_matplotlibR  R  R1  R7  (    (    (    sA   /tmp/pip-build-7oUkmx/scipy/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/   R0   R   R   t   max(   R@   RS   t   Bt   qR   R  R  (    (    sA   /tmp/pip-build-7oUkmx/scipy/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/   R0   R   R   R:  (	   R@   R   R   RS   R;  R<  R   R  R  (    (    sA   /tmp/pip-build-7oUkmx/scipy/scipy/cluster/tests/test_hierarchy.pyR     s    c         C` s   t  j |  |  j   | k  S(   N(   R/   t   absR:  (   R   R   t   tol(    (    sA   /tmp/pip-build-7oUkmx/scipy/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   /tmp/pip-build-7oUkmx/scipy/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   RG   t	   cityblock(   RJ   t   clustert	   hierarchyt   _EUCLIDEAN_METHODSR   R2   R   (   R9   (    (    sA   /tmp/pip-build-7oUkmx/scipy/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   RG   RH   i    (   R   R   (   t   Z1R   (    (    sA   /tmp/pip-build-7oUkmx/scipy/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/   RN   t   seedt   randnRJ   RB  RC  RC   R#   R	   R   R   (   R   RI   R@   t   tree(    (    sA   /tmp/pip-build-7oUkmx/scipy/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/   RN   RH  RI  RJ   RB  RC  RC   R'   R   t   arangeR0   R:  R(   R]   t   distt   searchsorted(   R   RI   R@   t   cutreet   nodesR   t   heights(    (    sA   /tmp/pip-build-7oUkmx/scipy/scipy/cluster/tests/test_hierarchy.pyt   test_cut_tree  s&    &&),55%%((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   /tmp/pip-build-7oUkmx/scipy/scipy/cluster/tests/test_hierarchy.pyt	   test_Heap  s.    



t   __main__(\   t
   __future__R    R   R   t   numpyR/   t   numpy.testingR   R   R   R   R   R   R	   R
   t   scipy._lib.sixR   R   t   scipy.cluster.hierarchyRJ   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,   R=   t
   matplotlibt   uset   matplotlib.pyplott   pyplotR   R   R9  R   t   objectR.   RZ   R_   Re   Rl   Rt   R   R   R   R   R   R   R   R   R   R   R   R  R   R   R?  R@  RE  RG  RK  RT  R]  RX   (    (    (    sA   /tmp/pip-build-7oUkmx/scipy/scipy/cluster/tests/test_hierarchy.pyt   <module>"   sX   :

22JMG#4H$>u								 