
    Vht                     B    d Z ddlmZ ddlZd Zd Zd Z G d d      Zy)	zLUnit tests for the :mod:`networkx.algorithms.community.centrality`
module.

    )
itemgetterNc                 4    t        t        t        |             S N)setmap	frozenset)iterables    c/home/dcms/DCMS/lib/python3.12/site-packages/networkx/algorithms/community/tests/test_centrality.pyset_of_setsr      s    s9h'((    c                 6    t        |       t        |      k(  sJ y r   r   resultexpecteds     r
   validate_communitiesr      s    v+h"7777r   c                 2     t         fd|D              sJ y )Nc              3   L   K   | ]  }t              t        |      k(    y wr   r   ).0pr   s     r
   	<genexpr>z0validate_possible_communities.<locals>.<genexpr>   s     G{6"k!n4Gs   !$)anyr   s   ` r
   validate_possible_communitiesr      s    GhGGGGr   c                   .    e Zd ZdZd Zd Zd Zd Zd Zy)TestGirvanNewmanziUnit tests for the
    :func:`networkx.algorithms.community.centrality.girvan_newman`
    function.

    c                     t        j                  d      }t        t         j                  j	                  |            }t        |      dk(  sJ t        |d   dhdhdhg       y )N      r      )nxempty_graphlist	communitygirvan_newmanlenr   selfGcommunitiess      r
   test_no_edgeszTestGirvanNewman.test_no_edges   sV    NN12<<55a89;1$$$[^qcA3_=r   c                 2   t        j                  d      }t        t         j                  j	                  |            }t        |      dk(  sJ t        |d   ddhddhg       t        |d   dhdhddhgddhdhdhg       t        |d   dhdhdhdhg       y N   r   r   r   r   )r    
path_graphr"   r#   r$   r%   r   r   r&   s      r
   test_undirectedz TestGirvanNewman.test_undirected$   s    MM!2<<55a89;1$$$[^q!fq!f-=> 	&NaS1#1v.!Q!qc0B	
 	[^qcA3aS-ABr   c                 X   t        j                  t        j                  d            }t        t         j                  j                  |            }t        |      dk(  sJ t        |d   ddhddhg       t        |d   dhdhddhgddhdhdhg       t        |d   dhdhdhdhg       y r,   )	r    DiGraphr.   r"   r#   r$   r%   r   r   r&   s      r
   test_directedzTestGirvanNewman.test_directed3   s    JJr}}Q'(2<<55a89;1$$$[^q!fq!f-=>%NaS1#1v.!Q!qc0B	
 	[^qcA3aS-ABr   c                 z   t        j                  d      }|j                  dd       |j                  dd       t        t         j                  j                  |            }t        |      dk(  sJ t        |d   ddhddhg       t        |d   dhdhddhgddhdhdhg       t        |d   dhdhdhdhg       y )Nr-   r   r   r   r   )	r    r.   add_edger"   r#   r$   r%   r   r   r&   s      r
   test_selfloopszTestGirvanNewman.test_selfloops=   s    MM!	

1a	

1a2<<55a89;1$$$[^q!fq!f-=>%NaS1#1v.!Q!qc0B	
 	[^qcA3aS-ABr   c                 L   t        j                         }|j                  g d       d }t        t         j                  j                  ||            }t        |      dk(  sJ t        |d   dhh dg       t        |d   dhdhddhg       t        |d   dhdhdhdhg       y )N))r   r   r   )r   r   r   )r   r   r   c                 T    t        | j                  d      t        d            d d S )Nweight)datar   )key)maxedgesr   )r(   s    r
   heaviestz:TestGirvanNewman.test_most_valuable_edge.<locals>.heaviestN   s%    qwwHw-:a=A"1EEr   r   r   >   r   r   r   r   r   )r    Graphadd_weighted_edges_fromr"   r#   r$   r%   r   )r'   r(   r=   r)   s       r
   test_most_valuable_edgez(TestGirvanNewman.test_most_valuable_edgeI   s    HHJ	!!"CD	F 2<<55aBC;1$$$[^qc9-=>[^qcA3A-?@[^qcA3aS-ABr   N)	__name__
__module____qualname____doc__r*   r/   r2   r5   r@    r   r
   r   r      s$    >CC
CCr   r   )	rD   operatorr   networkxr    r   r   r   r   rE   r   r
   <module>rH      s.   
   )8H>C >Cr   