
    Vh                        d dl Z d dlZd dlmZmZ dZdZd Ze j                  j                  e      d        Ze j                  j                  e      d        Ze j                  j                  e      d        Ze j                  j                  e      d	        Ze j                  j                  e      d
        Ze j                  j                  e      d        Ze j                  j                  e      d        Ze j                  j                  e      d        Ze j                  j                  e      e j                  j                  e      d               Zy)    N)leiden_communitiesleiden_partitionszGnot set(nx.config.backend_priority.algos) & leiden_communities.backendszFnot set(nx.config.backend_priority.algos) & leiden_partitions.backendsc                  h   t        j                         } t        j                  t              5  t         j
                  j                  | d       d d d        t        j                  t              5  t         j
                  j                  | d       d d d        y # 1 sw Y   MxY w# 1 sw Y   y xY w)Nnetworkx)backend)nxkarate_club_graphpytestraisesNotImplementedError	communityr   r   Gs    _/home/dcms/DCMS/lib/python3.12/site-packages/networkx/algorithms/community/tests/test_leiden.pytest_leiden_with_nx_backendr      s    
A	*	+ >
&&q*&=>	*	+ ?
'':'>? ?> >? ?s   "B1"B(B%(B1c            	      J   t        j                  ddddddd      } | j                         D cg c]  }|h }}t         j                  j	                  | |      }t         j                  j                  |       }t         j                  j	                  | |      |kD  sJ y c c}w 	N            ?;On?      
   average_degreemin_communityseed)r   LFR_benchmark_graphnodesr   
modularityr   )r   u	partitionmods       r   test_modularity_increaser%      s    
QU1BR	A  ggi(!(I(
,,
!
!!Y
/C//2I<<""1i03666	 )s   
B c            	          t        j                  ddddddd      } t         j                  j                  |       }t         j                  j	                  | |      sJ y r   )r   r   r   r   is_partition)r   r#   s     r   test_valid_partitionr(   %   sQ    
QU1BR	A //2I<<$$Q	222    c                     t        j                  d      } t         j                  j                  | d      }t	        |      }|D cg c]  }|j                          }}|d   |d   k(  sJ t	        |      }|d   |d   k(  sJ y c c}w )N   *   r   r   )r   
path_graphr   r   nextcopy)r   
parts_iter
first_parts
first_copysecond_parts         r   test_partition_iteratorr6   /   s    
bA///;Jj!J$./q!&&(/J/ a=JqM)))z"Ka=JqM))) 0s   Bc            
         t        j                         } t        j                  | t        | j                        D ci c]  \  }}|||z   c}}d       t         j
                  j                  | d d      }t         j
                  j                  | dd      }t         j
                  j                  | dd      }||k7  sJ ||k7  sJ y c c}}w )Nfoo)name   )weightr   r;   )r   r	   set_edge_attributes	enumerateedgesr   r   )r   iedge
partition1
partition2
partition3s         r   test_none_weight_paramrD   <   s    
A	y'9:GAtD!a%K: 004a0HJ005q0IJ008!0LJ###### ;s   Cc            	         t        j                  ddddddd      } t        j                  |       }t         j                  j	                  |       }t         j                  j	                  |      }t         j                  j                  | |      d	   }t         j                  j                  ||      d	   }|d
k\  sJ |d
k\  sJ y )Nr   r   r   r   r   r   r   r   r   g?)r   r   
MultiGraphr   r   partition_quality)r   Hr#   rB   qualityquality2s         r   test_qualityrK   K   s    
QU1BR	A 	aA//2I003Jll,,Q	:1=G||--a<Q?Hd??tr)   c            	      j   t        j                  ddddddd      } t         j                  j                  | d	d
      }t         j                  j                  | d
      }t         j                  j                  | dd
      }t	        |      t	        |      k  sJ t	        |      t	        |      k  sJ y )Nr   r   r   r   r   r   r   r   g      ?   )
resolutionr   r-   r:   )r   r   r   r   len)r   rA   rB   rC   s       r   test_resolutionrP   \   s    
QU1BR	A 00s0LJ000<J00qr0JJz?c*o---z?c*o---r)   c                      t        j                         } | j                  t        d             dhdhdhdhdhg}t         j                  j                  |       |k(  sJ y )Nr   r      r:   r      )r   Graphadd_nodes_fromranger   r   )r   expecteds     r   test_empty_graphrX   j   sV    

AU1XaS1#sQC(H<<**1-999r)   c                      t        j                  dt         j                        } t        j                  t         j
                        5  t         j                  j                  |        d d d        y # 1 sw Y   y xY w)NrS   )create_using)r   cycle_graphDiGraphr
   r   NetworkXNotImplementedr   r   r   s    r   test_directed_not_implementedr^   r   sO    
qrzz2A	r00	1 +
''*+ + +s   	 A22A;c            	          t        j                  ddddddd      } t         j                  j                  | d	
      }t	        |d      D ].  \  }}t         j                  j                  | |d	      }||k(  r.J  dkD  sJ t         j                  j                  | |dz   d	      }|k(  sJ t        j                  t        d      5  t         j                  j                  | d       d d d        y # 1 sw Y   y xY w)Nr   r   r   r   r   r   r   r   r,   r-   rR   )	max_levelr   z-max_level argument must be a positive integer)matchr   )r`   )	r   r   r   r   r=   r   r
   r   
ValueError)r   r1   r`   rW   r#   s        r   test_max_levelrc   y   s     	QU1BR	A ///;J(Q7 %	8LL33AQS3T	H$$$% q==//Y]QS/TI   	I
 8 	''Q'78 8 8s   	"C44C=)r
   r   r   networkx.algorithms.communityr   r   "no_backends_for_leiden_communities!no_backends_for_leiden_partitionsr   markskipifr%   r(   r6   rD   rK   rP   rX   r^   rc    r)   r   <module>rj      s     O
 N #
 M "
? 677 87 673 83 56	* 7	* 67$ 8$ 67 8  67
. 8
. 67: 8: 67+ 8+ 56678 8 78r)   