
    Vhy                     P    d dl mZ d dlZd dlZdZdZddZddZd Z	d Z
d	 Zd
 Zy)    )productNe_weightn_weightc                    d}| rd}nd}|rt        j                         }nt        j                         } |j                  d	i t        d|z   i  |j                  d
i t        d|z   i  |j                  di t        d|z   i  |j                  di t        d|z   i |r"t        j
                  |dt               t        }nd }t         j                  j                  |||t              D ch c]  }t        |       }}|S c c}w )N   gMbP?r               node_weightedge_weightr   r	   r   r
   r	   r   r	      )
nxDiGraphGraphadd_edgeEWLset_node_attributesNWL	communitylukes_partitioning	frozenset)	float_edge_wtexplicit_node_wtdirectedlimitshift	example_1wtux
clusters_1s	            ^/home/dcms/DCMS/lib/python3.12/site-packages/networkx/algorithms/community/tests/test_lukes.pypaper_1_caser(      s   E JJL	HHJ	 I0QY/0I0QY/0I0QY/0I0QY/0 
y!S1
 00u#3 1 
 	!J  s   0Dc                 Z   d}|rt        j                         }nt        j                         }| rt        di}t        }ni }d } |j                  di |  |j                  di |  |j                  di |  |j                  di |  |j                  di |  |j                  di |  |j                  di |  |j                  di |  |j                  di |  |j                  di | d|j
                  d   t        <   d|j
                  d   t        <   d|j
                  d   t        <   d|j
                  d   t        <   d|j
                  d   t        <   d|j
                  d   t        <   d|j
                  d	   t        <   d|j
                  d
   t        <   d|j
                  d   t        <   d|j
                  d   t        <   d|j
                  d   t        <   t         j                  j                  ||t        |      D ch c]  }t        |       }}|S c c}w )N    r   namehome_address	educationbsmsphd	telephonehomeofficeno1no2   
      r
   r   )r+   r,   )r+   r-   )r-   r.   )r-   r/   )r-   r0   )r+   r1   )r1   r2   )r1   r3   )r3   r4   )r3   r5   )
r   r   r   r   r   nodesr   r   r   r   )explicit_edge_wtr    byte_block_size	example_2edicr$   r%   
clusters_2s           r'   paper_2_caser?   4   s   O JJL	HHJ	Qx I66I3d3I1D1I1D1I2T2I3d3I3d3I55I/$/I/$/#%IOOFC (*IOOK %!"IOOD#!"IOOD#"#IOOE3+,IOON#C(()IOOK %#$IOOFC %&IOOHc""#IOOE3"#IOOE3
 00CS 1 
 	!J  s   H(c                      t        ddg      t        g d      h} d}t        |||      D ]  \  }}}t        |||      }|| k(  rJ  y )Nr   r
   )r	   r   r   TF)r   r   r(   )ground_truthtffltnwtdrcparts         r'   test_paper_1_caserH   h   sY    q!f%y';<L	B R, $S#Cc*|###$    c                      t        g d      t        ddg      t        g d      h} d}t        ||      D ]  \  }}t        ||      }|| k(  rJ  y )N)r-   r.   r/   r0   r+   r,   )r1   r2   r3   r4   r5   rA   )r   r   r?   )rB   rC   ewtrF   rG   s        r'   test_paper_2_caserL   q   sb    236>*+?@L 
BBO $SC%|###$rI   c                      t        j                  d      } t        j                  t         j                        5  t         j
                  j                  | d       d d d        y # 1 sw Y   y xY w)Nr
   r   )r   complete_graphpytestraisesNotATreer   r   )
not_a_trees    r'   test_mandatory_treerS   ~   sK    ""1%J	r{{	# 7
''
A67 7 7s   !A##A,c                  ~   d} t        j                         } |j                  di t        di  |j                  di t        di  |j                  di t        di  |j                  di t        d
i d|j                  d   t
        <   d|j                  d   t
        <   d|j                  d   t
        <   d|j                  d   t
        <   d|j                  d	   t
        <   t        j                  t              5  t         j                  j                  || t
        t               d d d        y # 1 sw Y   y xY w)Nr*   r   r	   g	@r
   g333333@r   g      @r   g333333@g333333?r   r   r   r   r   )r   r   r   r   r9   r   rO   rP   	TypeErrorr   r   )r;   ex_1_brokens     r'   test_mandatory_integralityrW      s   O**,KK,#s,K,#s,K,#s,K,#s, #Ka !Ka !Ka !Ka !Ka	y	! 

''cs 	( 	

 
 
s   >,D33D<)FTFrA   )	itertoolsr   rO   networkxr   r   r   r(   r?   rH   rL   rS   rW    rI   r'   <module>r[      s8      $P1h$
$7
rI   