
    h                     H   S SK r S SKrS SKr\R                  " S5      r\R                  " S5        S rS r\R                  R                  S5      S 5       r
\R                  R                  S5      S 5       rS	 r\R                  R                  S
5      S 5       rS rS rg)    Nscipynumpyc                     [         R                  " S5      n [         R                  " U 5        [         R                  " U S9  [        R                  " [
        5         [         R                  " 5         S S S 5        g ! , (       d  f       g = f)N   G)nx
path_graphpagerankpytestraises	TypeErrorr   s    T/var/www/html/env/lib/python3.13/site-packages/networkx/utils/tests/test_backends.pytest_dispatch_kwds_vs_argsr      sH    
aAKKNKK!	y	!
 
"	!	!s   A::
Bc                  R   Sn [         R                  R                  R                  R	                  5        H  u  p[
        R                  " UR                  5      n[
        R                  " U5      UR                  L d   e [
        R                  " U5      n[
        R                  " U5      UL d   eU S-  n M     U S:  d   e[
        R                  " [
        R                  " [         R                  5      5      [         R                  L d   eg ! [
        R                   a     M  f = f)Nr      )r	   utilsbackends_registered_algorithmsitemspickledumps__wrapped__loadsPicklingErrorinverse_line_graph)countnamefuncpickleds       r   test_pickler!      s    Ehh''>>DDF
,,t//0||G$(8(8888	ll4(G ||G$,,,
 G 199<<R%:%:;<@U@UUUU ## 		s    DD&%D&z\not nx.config.backend_priority.algos or nx.config.backend_priority.algos[0] != 'nx_loopback'c                    ^ SSK Jn Jn  [        R                  R                  / SQ/ SQ/ SQ/5      n/ mU4S jn[        S S.S j5       nU R                  nX@l        X0l         T/ :X  d   e[        [        R                  " U5      5      [        R                  L d   eTS	/:X  d   e[        [        R                  " US
S95      UL d   eTS	S	/:X  d   e[        [        R                  " USS95      [        R                  L d   eTS	S	/:X  d   e [        U5      U l        U ?[        R                  " [        SS9   [        R                  " USS9  S S S 5        g ! [        U5      U l        U ?f = f! , (       d  f       g = f)Nr   LoopbackBackendInterfaceLoopbackGraph)r         )r&   r   r   )r'   r   r   c                 t   > TR                  S5        U R                  U R                  S5      " U0 UD6SSSS9$ )Nr   from_scipy_sparse_arrayT)preserve_edge_attrspreserve_node_attrspreserve_graph_attrs)appendconvert_from_nx__getattr__)selfargskwargsside_effectss      r   r)   Ctest_graph_converter_needs_backend.<locals>.from_scipy_sparse_array6   sK    A##67HH $ $!%	 $ 
 	
    r   c                j    [        U 5      [        R                  L a  U $ [        R                  " U 5      $ N)typer	   Graph)objr   s     r   convert_to_nx9test_graph_converter_needs_backend.<locals>.convert_to_nx?   s%    9 Jxx}r5   r   nx_loopbackbackendnetworkxbackend is not installedmatchzbad-backend-name))networkx.classes.tests.dispatch_interfacer$   r%   spsparse	coo_arraystaticmethodr<   r)   r9   r	   r:   r   r   ImportError)r$   r%   Ar)   r<   orig_convert_to_nxr3   s         @r   "test_graph_converter_needs_backendrM   #   sm   
 			Y	9=>AL
 #'   2??-:*7N4=r!!!B..q12bhh>>>s"""++A}EF-W	
W1v%%%B..q*EF"((RRR1v%%%1=>P1Q .$<	{*D	E
""1.@A 
F	E 2>>P1Q .$<	E	Es   #B+E :E0E-0
E>c                  J  ^ SSK Jn Jm  T" 5       nUR                  / SQ5        [        SS.U4S jj5       nU R
                  nX l         [        R                  " USSS9n[        U5      [        R                  L d   e [	        U5      U l        g! [	        U5      U l        f = f)	z;Test using `backend="networkx"` in a dispatchable function.r   r#   ))r   r   )r   r'   )r   r&   )r'   r   Nr6   c                   > [        U T5      (       a<  [        R                  " 5       nUR                  R	                  U R                  5        U$ U $ r8   )
isinstancer	   r:   __dict__update)r;   r   	new_graphr%   s      r   r<   ,test_networkx_backend.<locals>.convert_to_nxk   s>    c=))
I%%cll3
r5   rA   r?   )
rE   r$   r%   add_edges_fromrI   r<   r	   	ego_graphr9   r:   )r$   r   r<   rL   G2r%   s        @r   test_networkx_backendrX   \   s    
 	A56#'   2??-:*R\\!Q
3Bx288###1=>P1Q .>P1Q .s   
4B B"c                      [        [        R                  5      [        [        R                  R                  5      L d   eg r8   )r9   r	   r   	orig_func r5   r   test_dispatchable_are_functionsr\   ~   s(    R[[%:%: ;;;;r5   znot nx.utils.backends.backendsc                  
   SSK Jn   [        R                  " 5       nUR	                  SS5        UR	                  SS5        [        R                  " 5       nUR	                  SS5        [        R
                  " X5      n[        [        R
                  " X5      5      SS1:X  d   eU R                  U5      nU R                  U5      nS[        R                  R                  ;   aO  [        [        R
                  " XB5      5      SS1:X  d   e[        [        R
                  " X5      5      SS1:X  d   eg [        R                  R                  (       d  S[        R                  R                  ;  aq  [        R                  " [        SS9   [        R
                  " XB5        S S S 5        [        R                  " [        SS9   [        R
                  " X5        S S S 5        g g g ! , (       d  f       NI= f! , (       d  f       g = f)	Nr   )dispatch_interfacer   r'   r&   r>   rB   rC   )networkx.classes.testsr^   r	   r:   add_edgeintersectionsetconvertconfigbackend_priorityr   r   r   rJ   )r^   r   HrvrW   H2s         r   test_mixing_backend_graphsri      s_   9

AJJq!JJq!

AJJq!		Brq$%!Q///		#	#A	&B		#	#A	&B		2222??2)*q!f4442??1)*q!f444YY''MASAS,S]];.HIOOB" J]];.HIOOA" JI	 -T'IIIIs   	G#G4#
G14
Hc                      [         R                  " [        SS9   [        R                  " SS9  SSS5        g! , (       d  f       g= f)zKUsing `backend=` raises with unknown backend even if there are no backends.z6'this_backend_does_not_exist' backend is not installedrC   this_backend_does_not_existr?   N)r   r   rJ   r	   
null_graphr[   r5   r   test_bad_backend_namerm      s3    	S
 	;<
 
 
s	   8
Ac                  `   [         R                  " [        SS9   [        R                  R
                  [        R                  R                  :X  d   e[        R                  R                  R
                  [        R                  R                  :X  d   e S S S 5        g ! , (       d  f       g = f)N_fallback_to_nxrC   )
r   warnsDeprecationWarningr	   _dispatchablero   rd   fallback_to_nxr   r   r[   r5   r   test_fallback_to_nxrt      sk    	(0A	B//2993K3KKKK{{&&66")):R:RRRR	 
C	B	Bs   A;B
B-)r   r   rA   r	   importorskiprF   r   r!   markskipifrM   rX   r\   ri   rm   rt   r[   r5   r   <module>rx      s      !   G V  >2B	2Bj >R	R<< 45# 6#4=Sr5   