o
    3ήcO,                     @   s"   d dl Z d dlZG dd dZdS )    Nc                   @   s   e Zd Zedd Zdd Zdd Zdd Zd	d
 Zdd Z	dd Z
dd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd  Zd!d" Zd#d$ Zd%d& Zd'S )(TestLoadCentralityc                 C   sn  t  }|jdddd |jdddd |jdddd |jdddd |jdddd |jdddd |jdddd |jdddd |jdddd |jdddd || _d	d
dddd
d| _t  | _t d| _t d| _	t 
d| _t d| _t d| _t jddd| _t  | _| jg d t  | _t  | _t jdt  d| _| jddg d S )Nr         )weight                  @               @      @r   r   r   r   r   r	   )rhr   r   r   r   r   r   r   r   r   r   )r   r	   )r   r	   )create_using)r   r   )r   r   )nxGraphadd_edgeGexact_weightedkrackhardt_kite_graphK
path_graphP3P4complete_graphK5P2cycle_graphC4balanced_treeTGbadd_edges_fromflorentine_families_graphFles_miserables_graphLMDiGraphD)clsr    r2   `/tmp/pip-target-vg8gfxp4/lib/python/networkx/algorithms/centrality/tests/test_load_centrality.pysetup_class   s4   



zTestLoadCentrality.setup_classc                 C   sr   t | j}dddddd}t| jD ]#}|| tj|| ddks$J || tjt | j|ddks6J qd S )Ng?g      ?gUUUUUU?r   r   r   r   r   r   MbP?abs)r   load_centralityr0   sortedpytestapprox)selfbresultnr2   r2   r3   test_not_strongly_connected&   s   &z.TestLoadCentrality.test_not_strongly_connectedc                 C   sN   | j }tj|dd}ddd}t|D ]}|| tj|| ddks$J qd S )NT
normalizedr   r   r6   r7   )r$   r   r9   r:   r;   r<   r=   r   cdr@   r2   r2   r3   test_P2_normalized_load-   s   
 z*TestLoadCentrality.test_P2_normalized_loadc                 C   s<   t j| jddd}t| jD ]}|| | j| ksJ qd S )Nr   F)r   rC   )r   r9   r   r:   r   )r=   r>   r@   r2   r2   r3   test_weighted_load4   s   z%TestLoadCentrality.test_weighted_loadc                 C   sP   | j }t|}dddddd}t|D ]}|| tj|| ddks%J qd S )Nr   r5   r6   r7   r#   r   r9   r:   r;   r<   rD   r2   r2   r3   test_k5_load9   s   
 zTestLoadCentrality.test_k5_loadc                 C   s   | j }t|}dddd}t|D ]}|| tj|| ddks#J qtj|dd}|tjdddks6J tj|dd	d
}|tjdddksIJ d S )Nr   g      ?r   r   r   r6   r7   r   )vgHz>T)rL   rC   r    r   r9   r:   r;   r<   rD   r2   r2   r3   test_p3_load@   s   
 zTestLoadCentrality.test_p3_loadc                 C   sN   t d}t |}ddd}t|D ]}|| tj|| ddks$J qd S )Nr   r   r   r6   r7   )r   r   r9   r:   r;   r<   rD   r2   r2   r3   test_p2_loadK   s   


 zTestLoadCentrality.test_p2_loadc                 C   sZ   | j }t|}ddddddddddd
}t|D ]}|| tj|| dd	ks*J qd S )
NgZd;O?r   g&1?g rh?gL7A`?g"~j?
r   r   r   r   r   r	   r         	   r6   r7   r   r   r9   r:   r;   r<   rD   r2   r2   r3   test_krackhardt_loadR       
 z'TestLoadCentrality.test_krackhardt_loadc                 C   sd   | j }t|}dddddddddddd	d
ddd}t|D ]}|| tj|| ddks/J qd S )Nr   g5^I?g+η?g9v?g)\(?gMb?gNbX9?gI+?gʡE?gM?gA`"?g
ףp=
?
AcciaiuoliAlbizzi	BarbadoriBischeri
CastellaniGinoriGuadagniLamberteschiMediciPazziPeruzziRidolfiSalviatiStrozzi
Tornabuonir6   r7   r,   r   r9   r:   r;   r<   rD   r2   r2   r3   test_florentine_families_loadd   s*   
 z0TestLoadCentrality.test_florentine_families_loadc                 C   s   | j }t|}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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i d/dd0dd1dd2dd3dd4d5d6dd7d8d9dd:dd;dd<dd=d'd>dd?d@dAdBdCdi dDdEdFddGddHddIdJdKddLdMdNdOdPdQdRddSdQdTdUdVdWdXdYdZdWd[dd\dd]d]d]d^dddddd_	}t|D ]}|| tj|| dQd`ksJ qd S )aNNapoleonr   Myrielg-?MlleBaptistineMmeMagloireCountessDeLoGeborandChamptercierCravatteCountOldManValjeang/$?Labarre
MargueriteMmeDeRIsabeauGervais	Listolier	Tholomyesgjt?FameuilBlacheville	FavouriteDahliaZephineFantinegMb?MmeThenardiergV-?
Thenardierg333333?Cosetteg~jt?JavertgS㥫?Faucheleventg9v?
BamataboisgMb?PerpetueSimpliceg;On?ScaufflaireWoman1JudgeChampmathieuBrevet
ChenildieuCochepaille	Pontmercygy&1|?BoulatruelleEponineg~jt?AnzelmaWoman2MotherInnocentGribier	MmeBurgon	JondretteGavrochegˡE?Gillenormandg/$?MagnonMlleGillenormandgMb?MmePontmercyMlleVauboisLtGillenormandMariusg/$?	BaronessTMabeufgy&1?EnjolrasgˡE?
Combeferrer6   	ProuvaireFeuilly
Courfeyracg~jtx?BahorelgMb`?BossuetgMb?Joly	GrantaireMotherPlutarchg{Gzt?gMbp?)		GueulemerBabet
ClaquesousMontparnasse	ToussaintChild1Child2BrujonMmeHucheloupr7   )r.   r   r9   r:   r;   r<   rD   r2   r2   r3   test_les_miserables_load{   s0  
	
 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEO z+TestLoadCentrality.test_les_miserables_loadc                 C   sT   | j }tj|dd}dddddd}t|D ]}|| tj|| ddks'J qd S )NFrB   r   r5   r6   r7   rI   rD   r2   r2   r3   test_unnormalized_k5_load   s    z,TestLoadCentrality.test_unnormalized_k5_loadc                 C   sP   | j }tj|dd}dddd}t|D ]}|| tj|| ddks%J qd S )NFrB   r   g       @rK   r6   r7   rM   rD   r2   r2   r3   test_unnormalized_p3_load   s    z,TestLoadCentrality.test_unnormalized_p3_loadc                 C   s^   | j }tj|dd}ddddddddddd	
}t|D ]}|| tj|| d
dks,J qd S )NFrB   gy&1?r   gET@gn0@g      <@g      0@rP   r6   r7   rT   rD   r2   r2   r3   !test_unnormalized_krackhardt_load   s     z4TestLoadCentrality.test_unnormalized_krackhardt_loadc                 C   sh   | j }tj|dd}ddddddddd	dd
ddddd}t|D ]}|| tj|| ddks1J q d S )NFrB   r   gv*C@g      1@g      3@g      $@gL7A`F@g     W@r
   gh|?U5@g      :@gh|?U3@gh|?U0@rW   r6   r7   rg   rD   r2   r2   r3   *test_unnormalized_florentine_families_load   s*    z=TestLoadCentrality.test_unnormalized_florentine_families_loadc                 C   sf   t  }|g d t j|dd}ddddddd}t|D ]}|| tj|| ddks0J qd S )	Nr   FrB   g      ?g      @r   r6   r7   )r   r   r*   r9   r:   r;   r<   )r=   BrE   rF   r@   r2   r2   r3    test_load_betweenness_difference	  s    z3TestLoadCentrality.test_load_betweenness_differencec                 C   sN   | j }t|}ddddd}| D ]}|| tj|| ddks$J qd S )Nr   )r   r   r   r   r   r   r6   r7   )r&   r   edge_load_centralityedgesr;   r<   rD   r2   r2   r3   test_c4_edge_load-  s   
 z$TestLoadCentrality.test_c4_edge_loadc                 C   sL   | j }t|}dddd}| D ]}|| tj|| ddks#J qd S )Nr   r   )r   r   r   r6   r7   )r!   r   r   r   r;   r<   rD   r2   r2   r3   test_p4_edge_load4  s   
 z$TestLoadCentrality.test_p4_edge_loadc                 C   sZ   | j }t|}ddddddddddd
}| D ]}|| tj|| ddks*J qd S )Ng      @)
r   r   r   )r   r   r   r   r   r   r   r   )r   r   r6   r7   )r#   r   r   r   r;   r<   rD   r2   r2   r3   test_k5_edge_load;  rV   z$TestLoadCentrality.test_k5_edge_loadc                 C   sR   | j }t|}ddddddd}| D ]}|| tj|| ddks&J qd S )Ng      8@g      (@)r   r   r   r   )r   r	   )r   r   r6   r7   )r(   r   r   r   r;   r<   rD   r2   r2   r3   test_tree_edge_loadM  s   
 z&TestLoadCentrality.test_tree_edge_loadN)__name__
__module____qualname__classmethodr4   rA   rG   rH   rJ   rN   rO   rU   rh   r   r   r   r   r   r   r   r   r   r   r2   r2   r2   r3   r      s*    
U$r   )r;   networkxr   r   r2   r2   r2   r3   <module>   s    