
    Vh@                         d dl Z d dlZd dlmZ d Zd Zd Zd Z	d Z
d Zd	 Zd
 Zd Zd Zd Zd Zd Z G d d      Zy)    N)approximationc                      t        j                         } | j                  g d       dt        j                  | dd      k(  sJ dt        j
                  |       k(  sJ dt        j
                  | dd      k(  sJ y )N))      )r      )r      )r      )r   r   )r      )r   r   )r   r
   )r   r
   )r      )r	   r   )r
      )r
   	   )r   r   )r   
   )r      )r   r   )r   r   )r   r   r   r   r   )nxGraphadd_edges_fromapproxlocal_node_connectivitynode_connectivityGs    i/home/dcms/DCMS/lib/python3.12/site-packages/networkx/algorithms/approximation/tests/test_connectivity.pytest_global_node_connectivityr      su    

A	
. ..q!R8888((++++((Ar2222    c                     t        j                  t        j                  d      t        j                  d            } | j                  d       t	        dd      D ]  }| j                  d|        t        j                  | t        j                  d            } | j                  | j                         dz
         t	        dd      D ]  }| j                  d|        dt        j                  |       k(  sJ y )Nr   r   r   r   r   )	r   disjoint_unioncomplete_graphremove_noderangeadd_edgeorderr   r   )r   is     r   test_white_harary1r#   &   s     	"++A.0A0A!0DEAMM!1a[ 	

1a
!R..q12AMM!'')a- 1b\ 	

1a((++++r   c                      t        ddd      D ]S  } t        j                  |       }| dz
  t        j                  |      k(  sJ | dz
  t        j                  |dd      k(  rSJ  y )Nr	      r   r   r   )r   r   r   r   r   )nr   s     r   test_complete_graphsr'   5   sg    1b!_ :a 1u0033331u00Aq9999:r   c                      t        ddd      D ]M  } t        j                  |       }dt        j                  |      k(  sJ dt        j                  |dd      k(  rMJ  y )Nr	   r%   r   r   )r   r   empty_graphr   r   )kr   s     r   test_empty_graphsr+   <   s]    1b!_ 6NN1F,,Q////F,,Q155556r   c                      t        j                         } dt        j                  |       k(  sJ dt        j                  | dd      k(  sJ y Nr   r   r	   )r   petersen_graphr   r   r   s    r   test_petersenr/   C   sF    
A((++++((Aq1111r   c                      t        j                         } dt        j                  |       k(  sJ dt        j                  | dd      k(  sJ y r-   )r   dodecahedral_graphr   r   r   s    r   test_dodecahedralr2   O   sF    
A((++++((Aq1111r   c                      t        j                         } dt        j                  |       k(  sJ dt        j                  | dd      k(  sJ y )Nr   r   r	   )r   octahedral_graphr   r   r   s    r   test_octahedralr5   U   sF    
A((++++((Aq1111r   c                      t        j                  d      } t        j                  t         j                  t
        j                  | d       y )Nr	   r   )sr   r   pytestraisesNetworkXErrorr   r   r   s    r   test_only_sourcer<   c   0    
!A
MM"""F$<$<a1Er   c                      t        j                  d      } t        j                  t         j                  t
        j                  | d       y )Nr	   r   )tr8   r   s    r   test_only_targetr@   h   r=   r   c                      t        j                  d      } t        j                  t         j                  t
        j                  | dd       y )Nr   r   r   r   
path_graphr9   r:   r;   r   r   r   s    r   test_missing_sourcerD   m   s0    
aA
MM"""F$<$<aQGr   c                      t        j                  d      } t        j                  t         j                  t
        j                  | dd       y )Nr   r   r   rB   r   s    r   test_missing_targetrF   r   s0    
aA
MM"""F$<$<aBGr   c                      t        j                  d      } t        j                  t         j                  t
        j                  | dd       y )Nr	   r   )r   r   r9   r:   r;   r   r   r   s    r   test_source_equals_targetrH   w   s2    
!A
MM"""F$B$BAq!Lr   c                  t   t        j                  dt        j                               } t        j                  d      j                         }dt	        j
                  |       k(  sJ dt	        j
                  | dd      k(  sJ dt	        j
                  |      k(  sJ dt	        j
                  |dd      k(  sJ y )Nr   create_usingr   r   r   )r   cycle_graphDiGraphto_directedr   r   )r   Ds     r   test_directed_node_connectivityrP   |   s    
r

5A
r&&(A((++++((Aq1111((++++((Aq1111r   c                   :    e Zd Zed        Zd Zd Zd Zd Zd Z	y)"TestAllPairsNodeConnectivityApproxc           	         t        j                  d      | _        t        j                  dt        j                               | _        t        j
                  d      | _        t        j
                  dt        j                               | _        t        j                  dd      | _	        t        j                  ddd      | _
        t        j                  d      | _        t        j                  d      | _        t        j                  d	      | _        | j                  | j                  | j                  | j                  | j                  | j                  | j                  | j                  | j                  g	| _        y )
Nr   rJ      g?T)directed   r   r	   )r   rC   pathrM   directed_pathrL   cycledirected_cyclegnp_random_graphgnpdirected_gnpr   K20K10K5G_list)clss    r   setup_classz.TestAllPairsNodeConnectivityApprox.setup_class   s   ==#MM!"**,GNN1%	^^ABJJLI%%b#...r3F##B'##B'""1%HHIIGGGGFFGG


r   c                 $   t        j                  | j                        }|D ]$  }||   j                         D ]  \  }}|dk(  rJ  & t        j                  | j                        }|D ]$  }||   j                         D ]  \  }}|dk(  rJ  & y )Nr   r   )r   all_pairs_node_connectivityrY   itemsrZ   selfK_undirsourcetargetr*   K_dirs         r   test_cyclesz.TestAllPairsNodeConnectivityApprox.test_cycles   s    44TZZ@ 	F$V_224 	Avv	 2243F3FG 	F"6]002 	Avv	r   c                     | j                   | j                  | j                  fD ]L  }t        j                  |      }|D ]0  }||   j                         D ]  \  }}|t        |      dz
  k(  rJ  2 N y )Nr   )r_   r`   r^   r   re   rf   len)rh   r   Krj   rk   r*   s         r   test_completez0TestAllPairsNodeConnectivityApprox.test_complete   su    ((DGGTXX. 	+A2215A +!"6!2 +IFAA
?*?++	+r   c                 >   t        j                  | j                        }|D ]$  }||   j                         D ]  \  }}|dk(  rJ  & t        j                  | j                        }|D ]1  }||   j                         D ]  \  }}||k  r|dk(  rJ |dk(  rJ  3 y )Nr   r   )r   re   rW   rf   rX   rg   s         r   
test_pathsz-TestAllPairsNodeConnectivityApprox.test_paths   s    44TYY? 	F$V_224 	Avv	 2243E3EF 	"F"6]002 "	F?6M66M6	"	"r   c                     | j                   | j                  | j                  fD ]I  }dD ]B  }t        j                  ||      }|D ]$  }||   j                         D ]  \  }}||k(  rJ  & D K y )N)r   r   r   )cutoff)r_   r`   r^   r   re   rf   )rh   r   mppathsrj   rk   rp   s          r   test_cutoffz.TestAllPairsNodeConnectivityApprox.test_cutoff   s    ((DGGTXX. 	'A '::1RH# 'F%*6]%8%8%: '	 Bww'''	'r   c                     t        j                  d      }g d}t        j                  ||      }t	        |      t	        |      k(  sJ y )Nr	   )r   r   r   )nbunch)r   r   r   re   ro   )rh   r   rz   Cs       r   "test_all_pairs_connectivity_nbunchzETestAllPairsNodeConnectivityApprox.test_all_pairs_connectivity_nbunch   s?    a ..q@1vV$$$r   N)
__name__
__module____qualname__classmethodrc   rm   rq   rs   rx   r|    r   r   rR   rR      s-    
 
,+"'%r   rR   )r9   networkxr   networkx.algorithmsr   r   r   r#   r'   r+   r/   r2   r5   r<   r@   rD   rF   rH   rP   rR   r   r   r   <module>r      s`      73>,:6222F
F
H
H
M
2B% B%r   