
    Vh                     4    d dl Z d dlZd dlmZ  G d d      Zy)    N)	bipartitec                   F    e Zd Zed        Zd Zd Zd Zd Zd Z	d Z
d Zy	)
TestBipartiteCentralityc                 Z   t        j                  d      | _        t        j                  dd      | _        t        j
                  d      | _        t        j                         | _        | j                  j                  d      D cg c]  \  }}|d   dk(  s| c}}| _
        y c c}}w )N      T)datar   r   )nx
path_graphP4complete_bipartite_graphK3cycle_graphC4davis_southern_women_graphdavisnodes	top_nodes)clsnds      c/home/dcms/DCMS/lib/python3.12/site-packages/networkx/algorithms/bipartite/tests/test_centrality.pysetup_classz#TestBipartiteCentrality.setup_class   s    q!,,Q2"113	))//t/4
!Q+!8KA
 
s   B'B'c                 (   t        j                  | j                  ddg      }ddddd}||k(  sJ t        j                  | j                  g d      }ddddddd}||k(  sJ t        j                  | j                  dd	g      }ddddd}||k(  sJ y )
N   r         ?      ?r   r      r   r   r   r   r   r   r   r   r      r   r   )r   degree_centralityr   r   r   )selfr   answers      r   test_degree_centralityz.TestBipartiteCentrality.test_degree_centrality   s    ''!Q8SSS1F{{'';SSSSSAF{{''!Q8SSS1F{{    c                 (   t        j                  | j                  ddg      }ddddd}||k(  sJ t        j                  | j                  g d      }ddddddd}||k(  sJ t        j                  | j                  d	d
g      }ddddd}||k(  sJ y )Nr   r           r   r   r    g      ?r!   r   r   g      ?)r   betweenness_centralityr   r   r   )r$   cr%   s      r   test_betweenness_centralityz3TestBipartiteCentrality.test_betweenness_centrality   s    ,,TWWq!f=SSS1F{{,,TWWi@u5UuMF{{,,TWWq!f=dt5F{{r'   c                    t        j                  | j                  ddg      }ddddd}||k(  sJ t        j                  | j                  g d      }ddddddd}||k(  sJ t        j                  | j                  dd	g      }ddddd}||k(  sJ t        j                         }|j                  d       |j                  d       t        j                  |dg      }|d
d
dk(  sJ t        j                  |dg      }|d
d
dk(  sJ y )Nr   r   gUUUUUU?r   r   r    r!   r   r   r)   )r   r   )r   closeness_centralityr   r   r   r
   Graphadd_node)r$   r+   r%   Gs       r   test_closeness_centralityz1TestBipartiteCentrality.test_closeness_centrality(   s   **477QF;9F{{**477I>SSSSSAF{{**477QF;SSS1F{{HHJ	

1	

1**1qc2$$$$**1qc2$$$$r'   c           	          t        j                  dd      }|j                  dd       t        j                  |g dd      }ddddddddd	}||k(  sJ y )
Nr         )r   r   r   r4   F)
normalizedgm۶m?g      $@)r   r   r   r4   r   r   r"   r5   )r
   r   add_edger   r.   )r$   r1   r+   r%   s       r   /test_bipartite_closeness_centrality_unconnectedzGTestBipartiteCentrality.test_bipartite_closeness_centrality_unconnected:   sc    ''1-	

1a**1luM	
 F{{r'   c                 X   | j                   }t        j                  || j                        }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ddddddddddddd d dd d d!}|j	                         D ]$  \  }}|t        j                  ||   d"#      k(  r$J  y )$NE8g(\?E9q=
ףp?E7Q?Nora Fayetteg=
ףp=?Evelyn JeffersonTheresa AndersonE6g)\(?Sylvia Avondaler   Laura MandevilleBrenda RogersKatherina RogersgQ?E5Helen Lloydg
ףp=
?E3gQ?Ruth DeSandg(\?Verne SandersonE12g)\(?gzG?gQ?gQ?g(\?zMyra LiddelE11zEleanor NyezFrances AndersonzPearl OglethorpeE4zCharlotte McDowdE10zOlivia CarletonzFlora PriceE2E1zDorothy MurchisonE13E14{Gz?abs)r   r   r#   r   itemspytestapprox)r$   r1   degr%   nodevalues         r   test_davis_degree_centralityz4TestBipartiteCentrality.test_davis_degree_centralityJ   s^   JJ))!T^^<!
$!
$!
 $!
 D	!

 !
 !
 $!
 t!
 !
 T!
 !
 $!
 4!
 $!
 4!
  t!!
" 4#!
$   $ $ $#!%A!
D "<<> 	?KD%FMM#d)>>>>	?r'   c                 X   | j                   }t        j                  || j                        }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dddddddddddddddddd}|j	                         D ]$  \  }}|t        j                  ||   d      k(  r$J  y ) Nr:   gQ?r;   gq=
ףp?r=   gp=
ף?r?   g)\(?r@   g?rA   g
ףp=
?rB   gQ?rC   rD   g?rE   rF   rG   g{Gz?rH   rI   g{Gz?rJ   rK   rL   rU   r)   rM   rV   )r   r   r*   r   rX   rY   rZ   )r$   r1   betr%   r\   r]   s         r   !test_davis_betweenness_centralityz9TestBipartiteCentrality.test_davis_betweenness_centralityr   s^   JJ..q$..A!
$!
$!
 $!
 D	!

 !
 !
 $!
 t!
 !
 T!
 !
 $!
 4!
 $!
 4!
  t!!
" 4#!
$   $ $ $#!%A!
D "<<> 	?KD%FMM#d)>>>>	?r'   c                 X   | j                   }t        j                  || j                        }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ddddddddddddddd ddd!}|j	                         D ]$  \  }}|t        j                  ||   d"#      k(  r$J  y )$Nr:   g333333?r;   gHzG?r=   g\(\?r?   g?r@   rA   rB   gGz?rC   gp=
ף?rD   rE   rF   rG   gzG?rH   rI   r>   rJ   gQ?rK   rL   gHzG?r<   g333333?g?gp=
ף?g?rM   rU   rV   )r   r   r.   r   rX   rY   rZ   )r$   r1   closr%   r\   r]   s         r   test_davis_closeness_centralityz7TestBipartiteCentrality.test_davis_closeness_centrality   s`   JJ--a@!
$!
$!
 $!
 D	!

 !
 !
 $!
 t!
 !
 T!
 !
 $!
 4!
 $!
 4!
  t!!
" 4#!
$   $ $ $#!%A!
D "<<> 	@KD%FMM$t*$????	@r'   N)__name__
__module____qualname__classmethodr   r&   r,   r2   r8   r^   ra   rd    r'   r   r   r      s:    
 
		%$ &?P&?P&@r'   r   )rY   networkxr
   networkx.algorithmsr   r   ri   r'   r   <module>rl      s      )y@ y@r'   