
    sh{                     t   S SK r S SKrS SKr\R                  " S5      r\R                  " S5        \R                  " SS9S 5       r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numpyF)implemented_by_nxc                     [        S5      e)Nz_stub_func is a stub)NotImplementedErrorGs    v/Users/tiagomarins/Projetos/claudeai/copy_bank/venv/lib/python3.13/site-packages/networkx/utils/tests/test_backends.py
_stub_funcr      s    
4
55    c                     [         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   r   )nx
path_graphpagerankpytestraises	TypeErrorr   s    r
   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_array;   sK    A##67HH $ $!%	 $ 
 	
r   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_nxD   s%    9 Jxx}r   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.   r=   r   r>   r   r   ImportError)r)   r*   Ar.   r@   orig_convert_to_nxr8   s         @r
   "test_graph_converter_needs_backendrQ   (   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   Nr:   c                   > [        U T5      (       a<  [        R                  " 5       nUR                  R	                  U R                  5        U$ U $ r<   )
isinstancer   r>   __dict__update)r?   r#   	new_graphr*   s      r
   r@   ,test_networkx_backend.<locals>.convert_to_nxp   s>    c=))
I%%cll3
r   rE   rC   )
rI   r)   r*   add_edges_fromrM   r@   r   	ego_graphr=   r>   )r)   r	   r@   rP   G2r*   s        @r
   test_networkx_backendr\   a   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 r<   )r=   r   r   	orig_func r   r
   test_dispatchable_are_functionsr`      s(    R[[%:%: ;;;;r   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+   rB   rF   rG   )networkx.classes.testsrb   r   r>   add_edgeintersectionsetconvertconfigbackend_priorityr   r   r   rN   )rb   r	   Hrvr[   H2s         r
   test_mixing_backend_graphsrm      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 installedrG   this_backend_does_not_existrC   N)r   r   rN   r   
null_graphr_   r   r
   test_bad_backend_namerq      s3    	S
 	;<
 
 
s	   8
Ac                     S[         R                  R                  ;   d   eS[        R                  ;  d   eS[         R                  R                  ;   a@  SSKJn   S n[        U5      U l         [        [         R                  " 5       5      SL d   e U ?[        R                  " [        5         [        [         R                  " 5       5        S S S 5        g ! U ?f = f! , (       d  f       g = f)NrE   rB   r   )r)   c                     g)NTr_   r   s    r
   stub_func_implementation<test_not_implemented_by_nx.<locals>.stub_func_implementation   s    r   T)r   r   r   r   rh   rI   r)   rM   r>   r   r   r   )r)   rt   s     r
   test_not_implemented_by_nxrv      s    -----Z00000		***V	 /;;S.T +	4bhhj)T111(3	*	+288: 
,	+ )3	+	+s   /#C /CC
C,)r   r   rE   r   importorskiprJ   _dispatchabler   r   r&   markskipifrQ   r\   r`   rm   rq   rv   r_   r   r
   <module>r{      s      !   G  E*6 +6V  >2B	2Bj >R	R<< 45# 6#4=r   