
    hF                         S SK r S SKrS SKJr  S SKrS SKrS r " S S5      r " S S5      r	S r
 " S	 S
5      r " S S5      r " S S5      r " S S5      rS rS rS rS rS rS rS rS rS rS rS rS rg)    N)combinationsc                 8    [        S [        X5       5       5      $ )Nc              3   @   #    U  H  u  p[        X-
  5      v   M     g 7fNabs.0abs      Z/var/www/html/env/lib/python3.13/site-packages/networkx/generators/tests/test_geometric.py	<genexpr>l1dist.<locals>.<genexpr>   s     0idas15zzi   sumzipxys     r   l1distr   
   s    0c!i000    c                   6    \ rS rSrSrS rS rS rS rS r	Sr
g	)
TestRandomGeometricGraph   z7Unit tests for :func:`~networkx.random_geometric_graph`c                     [         R                  " SSSS9n[        U5      S:X  d   e[         R                  " [        S5      SSS9n[        U5      S:X  d   eg N2         ?*   seed)nxrandom_geometric_graphlenrangeselfGs     r   test_number_of_nodes-TestRandomGeometricGraph.test_number_of_nodes   sN    %%b$R81v||%%eBiB?1v||r   c                 d   [         R                  " SS5      n[        US5       H  u  p#X1U   ;   a?  [        R                  " UR
                  U   S   UR
                  U   S   5      S::  d   eML  [        R                  " UR
                  U   S   UR
                  U   S   5      S::  d  M   e   g\Tests that pairs of vertices adjacent if and only if they are
within the prescribed radius.
r   r      posN)r#   r$   r   mathdistnodesr(   r)   uvs       r   test_distances'TestRandomGeometricGraph.test_distances   s     %%b$/ A&DAaDyyyE!2AGGAJu4EF$NNN  99QWWQZ%6
58IJdRRR 'r   c                 6   [         R                  " SSSS9n[        US5       Hs  u  p#X1U   ;   a4  [        UR                  U   S   UR                  U   S   5      S::  d   eMA  [        UR                  U   S   UR                  U   S   5      S::  d  Ms   e   g)BTests for providing an alternate distance metric to the generator.r   r      pr/   r0   N)r#   r$   r   r   r3   r4   s       r   test_pTestRandomGeometricGraph.test_p&   s     %%b$!4 A&DAaDyaggaj/E1BCtKKK "!''!*U"3QWWQZ5FG4OOO 'r   c                    SSK n[        UR                  5      n[        R                  " US5      n[        U5      [        U5      :X  d   e[        US5       H  u  pEXSU   ;   a?  [        R                  " UR                  U   S   UR                  U   S   5      S::  d   eML  [        R                  " UR                  U   S   UR                  U   S   5      S::  d  M   e   g=Tests using values other than sequential numbers as node IDs.r   Nr   r/   r0   )
stringlistascii_lowercaser#   r$   r%   r   r1   r2   r3   r(   rC   r3   r)   r5   r6   s         r   test_node_names(TestRandomGeometricGraph.test_node_names2   s    V++,%%eT21vU### A&DAaDyyyE!2AGGAJu4EF$NNN  99QWWQZ%6
58IJdRRR 'r   c                     [         R                  " SSSSS9n[        S UR                  R	                  5        5       5      (       d   eg )Nr   r   r    coordsr"   pos_namec              3   H   #    U  H  u  p[        US    5      S:H  v   M     g7frJ   r/   Nr%   r
   nds      r   r   9TestRandomGeometricGraph.test_pos_name.<locals>.<genexpr>D         E_TQ3q{#q(_    ")r#   r$   allr3   itemsr'   s     r   test_pos_name&TestRandomGeometricGraph.test_pos_nameB   s9    %%b$R(KEQWW]]_EEEEEr    N)__name__
__module____qualname____firstlineno____doc__r*   r7   r>   rG   rX   __static_attributes__rZ   r   r   r   r      s"    AS
PS Fr   r   c                   B    \ rS rSrSrS rS rS rS rS r	S r
S	 rS
rg)TestSoftRandomGeometricGraphG   z<Unit tests for :func:`~networkx.soft_random_geometric_graph`c                     [         R                  " SSSS9n[        U5      S:X  d   e[         R                  " [        S5      SSS9n[        U5      S:X  d   eg r   )r#   soft_random_geometric_graphr%   r&   r'   s     r   r*   1TestSoftRandomGeometricGraph.test_number_of_nodesJ   sN    **2t"=1v||**59dD1v||r   c                     [         R                  " SS5      n[        US5       HL  u  p#X1U   ;   d  M  [        R                  " UR
                  U   S   UR
                  U   S   5      S::  a  ML   e   gr-   )r#   re   r   r1   r2   r3   r4   s       r   r7   +TestSoftRandomGeometricGraph.test_distancesP   se     **2t4 A&DAaDyyyE!2AGGAJu4EF$NNN 'r   c                     S n[         R                  " SSSS9n[        US5       H>  u  p4XBU   ;   d  M  U" UR                  U   S   UR                  U   S   5      S::  a  M>   e   g)	r:   c                 8    [        S [        X5       5       5      $ )Nc              3   @   #    U  H  u  p[        X-
  5      v   M     g 7fr   r   r	   s      r   r   DTestSoftRandomGeometricGraph.test_p.<locals>.dist.<locals>.<genexpr>a        8idas15zzir   r   r   s     r   r2   1TestSoftRandomGeometricGraph.test_p.<locals>.dist`       8c!i888r   r   r   r;   r<   r/   r0   N)r#   re   r   r3   r(   r2   r)   r5   r6   s        r   r>   #TestSoftRandomGeometricGraph.test_p\   sh    	9 **2tq9 A&DAaDyAGGAJu-qwwqz%/@ATIII 'r   c                 P   SSK n[        UR                  5      n[        R                  " US5      n[        U5      [        U5      :X  d   e[        US5       HL  u  pEXSU   ;   d  M  [        R                  " UR                  U   S   UR                  U   S   5      S::  a  ML   e   grA   )
rC   rD   rE   r#   re   r%   r   r1   r2   r3   rF   s         r   rG   ,TestSoftRandomGeometricGraph.test_node_namesi   s    V++,**5$71vU### A&DAaDyyyE!2AGGAJu4EF$NNN 'r   c           
      z   SnSn[        U5       VVs0 s H2  o3[        U5       Vs/ s H  n[        R                  " 5       PM     sn_M4     nnn[        R                  " SSUS9n[        R                  " SSUS9n[        UR                  5       5      [        UR                  5       5      ::  d   egs  snf s  snnf )zgTests default p_dict = 0.5 returns graph with edge count <= RGG with
same n, radius, dim and positions
r   r/   r   )r0   N)r&   randomr#   r$   re   r%   edges)r(   r3   dimr6   ir0   RGGSRGGs           r   test_p_dist_default0TestSoftRandomGeometricGraph.test_p_dist_defaultv   s     AFuNAE#J7Jq6==?J77N''Dc:--b$C@4::< C		$4444 8Ns   B7B2B72B7c                 l    S n[         R                  " SSUS9n[        UR                  5      S:X  d   eg);Tests if p_dict = 0 returns disconnected graph with 0 edgesc                     gNr   rZ   r2   s    r   p_dist=TestSoftRandomGeometricGraph.test_p_dist_zero.<locals>.p_dist       r   r   r   r   r   N)r#   re   r%   rv   r(   r   r)   s      r   test_p_dist_zero-TestSoftRandomGeometricGraph.test_p_dist_zero   s3    	 **2tFC177|q   r   c                     [         R                  " SSSSS9n[        S UR                  R	                  5        5       5      (       d   eg )Nr   r   r    rJ   rK   c              3   H   #    U  H  u  p[        US    5      S:H  v   M     g7frN   rO   rP   s      r   r   =TestSoftRandomGeometricGraph.test_pos_name.<locals>.<genexpr>   rT   rU   )r#   re   rV   r3   rW   r'   s     r   rX   *TestSoftRandomGeometricGraph.test_pos_name   s9    **2t"xPEQWW]]_EEEEEr   rZ   N)r[   r\   r]   r^   r_   r*   r7   r>   rG   r{   r   rX   r`   rZ   r   r   rb   rb   G   s,    F
OJO	5!Fr   rb   c                     U R                   U   U R                   U   pvUS   US   pUS   US   pX-   U" X5      U-  -  U:  $ )ab  Returns ``True`` if and only if the nodes whose attributes are
``du`` and ``dv`` should be joined, according to the threshold
condition for geographical threshold graphs.

``G`` is an undirected NetworkX graph, and ``u`` and ``v`` are nodes
in that graph. The nodes must have node attributes ``'pos'`` and
``'weight'``.

``metric`` is a distance metric.
r0   weight)r3   )r)   r5   r6   thetaalphametricdudvu_posv_posu_weightv_weights               r   joinr      sV     WWQZe9bi5Hr(|h6%#75#@@EIIr   c                   6    \ rS rSrSrS rS rS rS rS r	Sr
g	)
TestGeographicalThresholdGraph   z=Unit tests for :func:`~networkx.geographical_threshold_graph`c                     [         R                  " SSSS9n[        U5      S:X  d   e[         R                  " [        S5      SSS9n[        U5      S:X  d   eg )Nr   d   r    r!   )r#   geographical_threshold_graphr%   r&   r'   s     r   r*   3TestGeographicalThresholdGraph.test_number_of_nodes   sN    ++B"=1v||++E"IsD1v||r   c           	          [         R                  " SS5      n[        US5       HW  u  p#X1U   ;   a&  [        XUSS[        R
                  5      (       d   eM3  [        XUSS[        R
                  5      (       d  MW   e   g)z_Tests that pairs of vertices adjacent if and only if their
distances meet the given threshold.
r   
   r/   N)r#   r   r   r   r1   r2   r4   s       r   r7   -TestGeographicalThresholdGraph.test_distances   sn     ++B3 A&DAaDyA!RTYY7777  aR;;;; 'r   c           	          [         R                  " SS[        S9n[        US5       HC  u  p#X1U   ;   a  [	        XUSS[        5      (       d   eM)  [	        XUSS[        5      (       d  MC   e   g)r:   r   r   r   r/   r   N)r#   r   r   r   r   r4   s       r   test_metric*TestGeographicalThresholdGraph.test_metric   sh     ++B6B A&DAaDyA!RV4444  aR8888 'r   c                 l    S n[         R                  " SSUS9n[        UR                  5      S:X  d   eg)r~   c                     gr   rZ   r   s    r   r   ?TestGeographicalThresholdGraph.test_p_dist_zero.<locals>.p_dist   r   r   r   r;   r   r   N)r#   r   r%   rv   r   s      r   r   /TestGeographicalThresholdGraph.test_p_dist_zero   s3    	 ++B&A177|q   r   c                     [         R                  nU" SSSSSS9n[        S UR                  R	                  5        5       5      (       d   e[        S UR                  R	                  5        5       5      (       d   eg )	Nr   r   r    rJ   wtr"   rL   weight_namec              3   H   #    U  H  u  p[        US    5      S:H  v   M     g7frN   rO   rP   s      r   r   FTestGeographicalThresholdGraph.test_pos_weight_name.<locals>.<genexpr>   rT   rU   c              3   6   #    U  H  u  pUS    S:  v   M     g7fr   r   NrZ   rP   s      r   r   r           ;?411T7Q;?   )r#   r   rV   r3   rW   )r(   gtgr)   s      r   test_pos_weight_name3TestGeographicalThresholdGraph.test_pos_weight_name   sa    --Cb8FEQWW]]_EEEEE;177==?;;;;;r   rZ   N)r[   r\   r]   r^   r_   r*   r7   r   r   r   r`   rZ   r   r   r   r      s    G<
9!<r   r   c                   0    \ rS rSrSrS rS rS rS rSr	g)	TestWaxmanGraph   z;Unit tests for the :func:`~networkx.waxman_graph` function.c                     [         R                  " SSSSS9n[        U5      S:X  d   e[         R                  " [        S5      SSSS9n[        U5      S:X  d   eg )Nr         ?皙?r    r!   r#   waxman_graphr%   r&   r'   s     r   test_number_of_nodes_1&TestWaxmanGraph.test_number_of_nodes_1   sN    OOBSr21v||OOE"IsCb91v||r   c                     [         R                  " SSSSS9n[        U5      S:X  d   e[         R                  " [        S5      SSSS9n[        U5      S:X  d   eg )Nr   r   r   r;   )Lr   r'   s     r   test_number_of_nodes_2&TestWaxmanGraph.test_number_of_nodes_2   sN    OOBSA.1v||OOE"IsC151v||r   c                 \    [         R                  " SSS[        S9n[        U5      S:X  d   eg)r:   r   r   r   r   N)r#   r   r   r%   r'   s     r   r   TestWaxmanGraph.test_metric   s(     OOBS81v||r   c                     [         R                  " SSSSSS9n[        S UR                  R	                  5        5       5      (       d   eg )Nr   r   r   r    rJ   rK   c              3   H   #    U  H  u  p[        US    5      S:H  v   M     g7frN   rO   rP   s      r   r   0TestWaxmanGraph.test_pos_name.<locals>.<genexpr>   rT   rU   )r#   r   rV   r3   rW   r'   s     r   rX   TestWaxmanGraph.test_pos_name   s9    OOBSrHEEQWW]]_EEEEEr   rZ   N)
r[   r\   r]   r^   r_   r   r   r   rX   r`   rZ   r   r   r   r      s    EFr   r   c                       \ rS rSrS rS rS rS rS r\	R                  R                  S\" SS	S
5      5      S 5       rSrg)TestNavigableSmallWorldGraph   c                    [         R                  " SSSSS9n[         R                  " SS5      R                  5       n[         R                  " X5      (       d   e[         R                  " SSSSS9n[         R
                  " / SQ5      R                  5       n[         R                  " X5      (       d   e[         R                  " SSSSS9n[         R
                  " S/5      R                  5       n[         R                  " X5      (       d   eg )	N   r;   r   r    )r=   qr"      r=   r   rw   )r   r   r   )r#   navigable_small_world_graphgrid_2d_graphto_directedis_isomorphic
grid_graph)r(   r)   ggs      r   test_navigable_small_world7TestNavigableSmallWorldGraph.test_navigable_small_world   s    **1QR@a#//1&&&&**1QA>]]9%113&&&&**1QA>]]A3++-&&&&r   c                     [         R                  " [        R                  SS9   [        R                  " SSSSS9  S S S 5        g ! , (       d  f       g = f)Nz.*p must be >= 1matchr   r   r;   r   pytestraisesr#   NetworkXExceptionr   r(   s    r   test_invalid_diameter_value8TestNavigableSmallWorldGraph.test_invalid_diameter_value   s8    ]]2//7IJ**1QA> KJJ   A
Ac                     [         R                  " [        R                  SS9   [        R                  " SSSSS9  S S S 5        g ! , (       d  f       g = f)Nz.*q must be >= 0r   r   r;   r   r   r   s    r   )test_invalid_long_range_connections_valueFTestNavigableSmallWorldGraph.test_invalid_long_range_connections_value   s8    ]]2//7IJ**1RQ? KJJr   c           	          [         R                  " [        R                  SS9   [        R                  " SSSSSS9  S S S 5        g ! , (       d  f       g = f)Nz.*r must be >= 0r   r   r;   r   r   )r=   r   rrw   r   r   s    r   4test_invalid_exponent_for_decaying_probability_valueQTestNavigableSmallWorldGraph.test_invalid_exponent_for_decaying_probability_value  s:    ]]2//7IJ**1Q"!D KJJ   A
Ac           	          [         R                  " SSSSSSS9n[         R                  " SS[         R                  S9n[         R                  R                  X5      (       d   eg	)
z%Smoke test for radius in range [0, 1]r   r;   r   r   r/   r    )r=   r   r   rw   r"   )create_usingN)r#   r   r   DiGraphutilsgraphs_equal)r(   r)   expecteds      r   test_r_between_0_and_13TestNavigableSmallWorldGraph.test_r_between_0_and_1  sQ     **1Q#12N##AqrzzBxx$$Q1111r   r"   i	  i
  r   c                    [         R                  " SSSUS9n[         R                  " SSSUS9n[         R                  " SSSUS9nUR                  5       UR                  5       :  d   eUR                  5       UR                  5       :  d   eg)a'  The probability of adding a long-range edge scales with `1 / dist**r`,
so a navigable_small_world graph created with r < 1 should generally
result in more edges than a navigable_small_world graph with r >= 1
(for 0 < q << n).

N.B. this is probabilistic, so this test may not hold for all seeds.   r   r   )r   r   r"   r;   r/   N)r#   r   number_of_edges)r(   r"   G1G2G3s        r   test_r_general_scaling3TestNavigableSmallWorldGraph.test_r_general_scaling  s     ++AcE++AadC++AadC!!#b&8&8&::::!!#b&8&8&::::r   rZ   N)r[   r\   r]   r^   r   r   r   r   r   r   markparametrizer&   r   r`   rZ   r   r   r   r      sK    '?@E2 [[VU4r%:;; <;r   r   c                   <    \ rS rSrSrS rS rS rS rS r	S r
S	rg
)#TestThresholdedRandomGeometricGraphi  zCUnit tests for :func:`~networkx.thresholded_random_geometric_graph`c                     [         R                  " SSSSS9n[        U5      S:X  d   e[         R                  " [        S5      SSSS9n[        U5      S:X  d   eg )Nr   g?r   r    r!   )r#   "thresholded_random_geometric_graphr%   r&   r'   s     r   r*   8TestThresholdedRandomGeometricGraph.test_number_of_nodes!  sR    11"c3RH1v||11%)S#BO1v||r   c                     [         R                  " SSSSS9n[        US5       HL  u  p#X1U   ;   d  M  [        R                  " UR
                  U   S   UR
                  U   S   5      S::  a  ML   e   g)	r.   r   r   r   r    r!   r/   r0   N)r#   r  r   r1   r2   r3   r4   s       r   r7   2TestThresholdedRandomGeometricGraph.test_distances'  si     11"dCbI A&DAaDyyyE!2AGGAJu4EF$NNN 'r   c                     S n[         R                  " SSSSSS9n[        US5       H>  u  p4XBU   ;   d  M  U" UR                  U   S	   UR                  U   S	   5      S::  a  M>   e   g
)r:   c                 8    [        S [        X5       5       5      $ )Nc              3   @   #    U  H  u  p[        X-
  5      v   M     g 7fr   r   r	   s      r   r   KTestThresholdedRandomGeometricGraph.test_p.<locals>.dist.<locals>.<genexpr>8  rm   r   r   r   s     r   r2   8TestThresholdedRandomGeometricGraph.test_p.<locals>.dist7  ro   r   r   r   r   r;   r    )r=   r"   r/   r0   Nr#   r  r   r3   rp   s        r   r>   *TestThresholdedRandomGeometricGraph.test_p3  sl    	9 11"dC12N A&DAaDyAGGAJu-qwwqz%/@ATIII 'r   c                 P   SSK n[        UR                  5      n[        R                  " USSSS9n[        U5      [        U5      :X  d   e[        US5       HL  u  pEXSU   ;   d  M  [        R                  " UR                  U   S   UR                  U   S   5      S::  a  ML   e   g)	rB   r   Nr   r   r    r!   r/   r0   )
rC   rD   rE   r#   r  r%   r   r1   r2   r3   rF   s         r   rG   3TestThresholdedRandomGeometricGraph.test_node_names@  s    V++,11%sL1vU### A&DAaDyyyE!2AGGAJu4EF$NNN 'r   c                     [         R                  " SSSSS9n[        US5       H:  u  p#X1U   ;   d  M  UR                  U   S   UR                  U   S   -   S:  a  M:   e   g)	znTests that pairs of vertices adjacent if and only if their sum
weights exceeds the threshold parameter theta.
r   r   r   r    r!   r/   r   Nr  r4   s       r   
test_theta.TestThresholdedRandomGeometricGraph.test_thetaM  sc     11"dCbI A&DAaDy
8,qwwqz(/CCKKK 'r   c           	          [         R                  nU" SSSSSSS9n[        S UR                  R	                  5        5       5      (       d   e[        S	 UR                  R	                  5        5       5      (       d   eg )
Nr   r   r   r    r=   r   r   c              3   H   #    U  H  u  p[        US    5      S:H  v   M     g7f)r=   r/   NrO   rP   s      r   r   DTestThresholdedRandomGeometricGraph.test_pos_name.<locals>.<genexpr>[  s     @3qv;!#rU   c              3   6   #    U  H  u  pUS    S:  v   M     g7fr   rZ   rP   s      r   r   r  \  r   r   )r#   r  rV   r3   rW   )r(   trggr)   s      r   rX   1TestThresholdedRandomGeometricGraph.test_pos_nameX  sc    44T3R#4H@@@@@@;177==?;;;;;r   rZ   N)r[   r\   r]   r^   r_   r*   r7   r>   rG   r  rX   r`   rZ   r   r   r  r    s'    M
OJO	L<r   r  c                      [         R                  " 5       n U R                  SSS04SSS04SSS04/5        SS/nU[         R                  " U SSS	9:X  d   eg )
Nr   position)r   r   r;   )r   r;   r/   )r;   r   )r   r/   )radiusrL   )r#   Graphadd_nodes_fromgeometric_edges)r)   expected_edgess     r   "test_geometric_edges_pos_attributer#  _  sp    

AV$%V$%V$%	
 f%NR//!jQQQQr   c                      [         R                  " S5      n Sn[        R                  " [         R                  US9   [         R
                  " U SS9  S S S 5        g ! , (       d  f       g = f)Nr   zall nodes. must have a 'r   r;   )r  )r#   
path_graphr   r   NetworkXErrorr!  )r)   msgs     r   "test_geometric_edges_raises_no_posr(  l  sE    
aA
$C	r''s	3
1Q' 
4	3	3s   A
A)c                  V    [         R                  " SSSSSS9n [        U 5      S:X  d   eg )N      ?r   皙@r   r    betarQ   gammamean_degreer"   )r#   "geometric_soft_configuration_graphr%   r)   s    r   test_number_of_nodes_S1r2  s  s/    
--Cs	A q6S==r   c                  $   [         R                  " SSSSSS9n [         R                  " U S5      n[        U5      S:X  d   e[         R                  " U S5      n[        U5      S:X  d   e[         R                  " U S	5      n[        U5      S:X  d   eg )
Nr*  r   r+  r   r    r,  kappar   r  )r#   r0  get_node_attributesr%   )r)   kappasthetasradiis       r   test_set_attributes_S1r9  z  s    
--Cs	A ##Aw/Fv;###Aw/Fv;#""1h/Eu:r   c                     [         R                  " SSSSSS9n [         R                  " U S5      n[        UR	                  5       5      [        U5      -  n[        R                  " US-
  5      S:  d   e[        U R                  5       5      n[        UR	                  5       5      [        U5      -  n[        R                  " US-
  5      S	:  d   eg )
Ng      @r   r+  r   iW  r,  r4  r   r;   )
r#   r0  r5  r   valuesr%   r1   fabsdictdegree)r)   r6  mean_kappasdegreesr/  s        r   test_mean_kappas_mean_degree_S1rA    s    
--Bcr	A ##Aw/Ffmmo&V4K99[2%&,,,188:Ggnn&'#g,6K99[2%&***r   c                     [        S5       V s0 s H  o S_M     nn [        R                  " SUS9n[        U5      S:X  d   e[        R                  " US5      n[        S UR                  5        5       5      (       d   eg s  sn f )N  r   r;   )r-  r6  r4  c              3   *   #    U  H	  oS :H  v   M     g7f)r   NrZ   )r
   r4  s     r   r   &test_dict_kappas_S1.<locals>.<genexpr>  s     8u{s   )r&   r#   r0  r%   r5  rV   r;  )rx   r6  r)   s      r   test_dict_kappas_S1rF    sr    "4[)[e[F)
--1VDAq6T>>##Aw/F888888	 *s   Bc                      [         R                  " SSSSSS9n [         R                  " SSSSSS9n[         R                  " U 5      [         R                  " U5      :  d   eg )Nr*  r         @r   r    r,  g      @r#   r0  average_clustering)r   r   s     r   test_beta_clustering_S1rK    s`    		.	.Cs
B 
	.	.Cs
B   $r'<'<R'@@@@r   c                  8   [         R                  " [        R                  SS9   [        R                  " SSSSS9n S S S 5        [         R                  " [        R                  SS9   [        S	5       Vs0 s H  oS_M     nn[        R                  " SUS
SS9n S S S 5        [         R                  " [        R                  SS9   [        R                  " SSS9n S S S 5        g ! , (       d  f       N= fs  snf ! , (       d  f       Nf= f! , (       d  f       g = f)NzDPlease provide either kappas, or all 3 of: n, gamma and mean_degree.r   r*  rH  r   r    )r-  r.  r/  r"   z;When kappas is input, n, gamma and mean_degree must not be.rC  ffffff@)r-  r6  r.  r"   )r-  r"   )r   r   r#   r&  r0  r&   )r)   rx   r6  s      r   test_wrong_parameters_S1rN    s    	
T
 11CRb
	
 

K
 "'t-AR%-11V3R

 

T
 11sD	
 
#
 
 .	
 

 
s5   C$'C:5C5C:D$
C25C::
D
Dc            	          [         R                  " [        R                  SS9   [        R                  " SSSSSS9n S S S 5        g ! , (       d  f       g = f)	Nz3The parameter beta cannot be smaller or equal to 0.r   r   r   rM  r   r    r,  )r   r   r#   r&  r0  r1  s    r   test_negative_beta_S1rP    sG    	
 U
 11s#2B

 
 
r   c                  l    [         R                  " SSSSSS9n [         R                  " U 5      S:  d   eg )Nr   r   rH  r   r    r,  r   rI  r1  s    r   *test_non_zero_clustering_beta_lower_one_S1rR    s8    
--Cs	A   #a'''r   c                      Sn Sn[         R                  " SSSU SS9n[         R                  " SSSUSS9n[         R                  " U5      [         R                  " U5      :  d   eg )Nr/      g333333?r   r+  r    r,  )r#   r0  number_connected_components)low_mean_degreehigh_mean_degreeG_lowG_highs       r   -test_mean_degree_influence_on_connectivity_S1rZ    su    O11CsbE 22Cs0@rF ))%023Q3Q4   r   c                     [         R                  " SSSSSS9n [         R                  " SSSSSS9n[         R                  " U S5      n[        UR	                  5       5      [        U5      -  n[         R                  " US5      n[        UR	                  5       5      [        U5      -  n[        R                  " X5-
  5      S	:  d   eg )
Nr*  rT  r+  r   r    r,  rH  r4  r;   )r#   r0  r5  r   r;  r%   r1   r<  )r   r   kappas1mean_kappas1kappas2mean_kappas2s         r   ,test_compare_mean_kappas_different_gammas_S1r`    s    		.	.Bcqr
B 
	.	.Bcqr
B $$R1Gw~~'(3w<7L$$R1Gw~~'(3w<7L99\01A555r   )r1   ru   	itertoolsr   r   networkxr#   r   r   rb   r   r   r   r   r  r#  r(  r2  r9  rA  rF  rK  rN  rP  rR  rZ  r`  rZ   r   r   <module>rc     s      "  16F 6FrEF EFPJ"1< 1<hF F4-; -;`>< ><B
R(	+9AE2
(6r   