
    wg}                     V    d dl Z d dlZd Zd Zd Zd Zd Zd Zd Z	d	 Z
d
 Zd Zd Zy)    Nc                      t        j                  g d      } t         j                  j                  | d      }|dddk(  sJ t         j                  j                  | d      d   }|dk(  sJ y )Nr      r      )r   r   )r      )r      r
      F
normalizedg?UUUUUU?r   r   nxGraphrichclubrich_club_coefficient)Grcrc0s      l/home/mcse/projects/flask/flask-venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_richclub.pytest_richclubr      sk    
ABA		*	*1	*	?BY8,,,, ++
+
+A%
+
@
CC+    c                      t        j                  g d      } t         j                  j                  | dd      }|dddk(  sJ y )Nr   r   r   Qseed      ?r   r   r   rcNorms     r   test_richclub_seedr"      s?    
ABA[[..qAA.>F%%%%r   c                      t        j                  g d      } t         j                  j                  | dd      }|dddk(  sJ y )Nr   r   *   r   r   r   r   r    s     r   test_richclub_normalizedr%      s?    
ABA[[..qAB.?F%%%%r   c                      t        j                  dd      } t         j                  j                  | d      }|ddddk(  sJ y )	Nr   
   Fr   g @ P?g@ `?g2<`?r   r   r   )r   balanced_treer   r   )Tr   s     r   test_richclub2r+      sM    
BA		*	*1	*	?B!""   r   c                      t        j                         } t        j                  | d      }|i ddddddd	d
ddddddddddddddddddddddddk(  sJ y )NFr   r   g)?r   g?r   gyy?r	   g?r
   gII?r   g10?         ?      	   r'   gUUUUUU?                       )r   karate_club_graphr   r   r   s     r   test_richclub3r:   &   s    
A		!	!!	6B 	<	< 	
; 	
:	
 	
9 	
9 	
9 	
9 	
9 	
8 	G 	G 	C 	C 	C  	C!   r   c                      t        j                         } | j                  g d       t        j                  | d      }|dddddk(  sJ y )N)	r   r   )r   r	   )r   r
   r   )r   r1   )r-   r1   )r/   r1   )r0   r1   Fr   g?r.   r4   )r   r   r   r	   )r   r   add_edges_fromr   r9   s     r   test_richclub4r=   >   sI    

AP 
	!	!!	6BY8<<<<r   c                      t        j                  t        j                        5  t        j                         } t        j
                  |        d d d        y # 1 sw Y   y xY wN)pytestraisesr   NetworkXNotImplementedDiGraphr   r   s    r   test_richclub_exceptionrE   G   sB    	r00	1 $JJL
  #$ $ $   *AA c                      t        j                  t        j                        5  t        j                         } t        j
                  |        d d d        y # 1 sw Y   y xY wr?   )r@   rA   r   rB   
MultiGraphr   rD   s    r   test_rich_club_exception2rI   M   sB    	r00	1 $MMO
  #$ $ $rF   c                      t        j                         } | j                  dd       | j                  dd       t        j                  t
        d      5  t        j                  |        d d d        y # 1 sw Y   y xY w)Nr   r   zDrich_club_coefficient is not implemented for graphs with self loops.match)r   r   add_edger@   rA   	Exceptionr   rD   s    r   test_rich_club_selflooprO   S   s`    

AJJq!JJq!	W
 $ 	  #	$ $ $s   A33A<c                     t        j                         } t        j                  | d      }|i k(  sJ t        d      D ]1  }| j	                  |       t        j                  | d      }|i k(  r1J  t        j                         } | j                  dd       t        j                  | d      }|ddik(  sJ t        j                         } | j                  g d       | j                  dd       t        j                  | d      }|ddik(  sJ | j                  dd       t        j                  | d      }|ddik(  sJ | j                  dd       t        j                  | d      }|ddd	k(  sJ y )
NFr   r	   r   r   r(   r   r   r   )r   r   r   rangeadd_noderM   add_nodes_fromr   r   is      r   'test_rich_club_leq_3_nodes_unnormalizedrV   ^   sU   

A		!	!!	6B8O81X 	

1%%aE:Rxx 	
AJJq!		!	!!	6B!Q<< 	
AYJJq!		!	!!	6B!Q<< JJq!		!	!!	6B!U JJq!		!	!!	6BQ1r   c                     t        j                         } t        j                  t         j                  j
                  d      5  t        j                  | d      }d d d        t        d      D ]b  }| j                  |       t        j                  t         j                  j
                  d      5  t        j                  | d      }d d d        d y # 1 sw Y   zxY w# 1 sw Y   {xY w)NzGraph has fewer than four nodesrK   Tr   r	   )	r   r   r@   rA   	exceptionNetworkXErrorr   rQ   rR   rT   s      r   %test_rich_club_leq_3_nodes_normalizedrZ      s    

A	
""/
 : %%aD9	: 1X >	

1]]LL&&3
 	> ))!=B		> 	>>: :	> 	>s   C2C!C!C*	)r@   networkxr   r   r"   r%   r+   r:   r=   rE   rI   rO   rV   rZ    r   r   <module>r]      sC     &&0=$$$ F>r   