
    h                     H   d dl Z d dlZd dlZ ej                  d      Z ej                  d       d Zd Zej                  j                  d      d        Z
ej                  j                  d      d        Zd	 Zej                  j                  d
      d        Zd Zd Zy)    Nscipynumpyc                     t        j                  d      } t        j                  |        t        j                  |        t        j                  t
              5  t        j                          d d d        y # 1 sw Y   y xY w)N   G)nx
path_graphpagerankpytestraises	TypeErrorr   s    _/var/www/django_project/virt/lib/python3.12/site-packages/networkx/utils/tests/test_backends.pytest_dispatch_kwds_vs_argsr      sQ    
aAKKNKK!	y	! 
  s   A88Bc                  8   d} t         j                  j                  j                  j	                         D ]{  \  }}t        j                  |j                        }t        j                  |      |j                  u sJ 	 t        j                  |      }t        j                  |      |u sJ | dz  } } | dkD  sJ t        j                  t        j                  t         j                              t         j                  u sJ y # t
        j                  $ r Y w xY w)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 	
d,,t//0||G$(8(8888	ll4(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                     ddl m} m} t        j                  j                  g dg dg dg      }g fd}t        d dd       }| j                  }|| _        || _        	 g k(  sJ t        t        j                  |            t        j                  u sJ d	gk(  sJ t        t        j                  |d
            |u sJ d	d	gk(  sJ t        t        j                  |d            t        j                  u sJ d	d	gk(  sJ 	 t        |      | _        | `t        j                  t        d      5  t        j                  |d       d d d        y # t        |      | _        | `w xY w# 1 sw Y   y xY w)Nr   LoopbackBackendInterfaceLoopbackGraph)r         )r&   r   r   )r'   r   r   c                 z    j                  d       | j                   | j                  d      |i |ddd      S )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)   zCtest_graph_converter_needs_backend.<locals>.from_scipy_sparse_array6   sM    A##7D67HH $ $!%	 $ 
 	
    r   c                f    t        |       t        j                  u r| S t        j                  |       S N)typer	   Graph)objr   s     r   convert_to_nxz9test_graph_converter_needs_backend.<locals>.convert_to_nx?   s%    9 Jxx}r4   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)   r8   r	   r9   r   r   ImportError)r$   r%   Ar)   r;   orig_convert_to_nxr3   s         @r   "test_graph_converter_needs_backendrK   #   s   
 			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 B
""1.@AB B 2>>P1Q .$<B Bs   #B'E 8E0E-0E9c                  J   ddl m} m         }|j                  g d       t        ddfd
       }| j
                  }|| _        	 t        j                  |dd      }t        |      t        j                  u sJ 	 t	        |      | _        y# t	        |      | _        w xY w)	z;Test using `backend="networkx"` in a dispatchable function.r   r#   ))r   r   )r   r'   )r   r&   )r'   r   Nr5   c                    t        |       r;t        j                         }|j                  j	                  | j                         |S | S r7   )
isinstancer	   r9   __dict__update)r:   r   	new_graphr%   s      r   r;   z,test_networkx_backend.<locals>.convert_to_nxk   s;    c=)
I%%cll3
r4   r?   r=   )
rC   r$   r%   add_edges_fromrG   r;   r	   	ego_graphr8   r9   )r$   r   r;   rJ   G2r%   s        @r   test_networkx_backendrU   \   s    
 	A56#'   2??-:*R\\!Q
3Bx288###1=>P1Q .>P1Q .s   	5B B"c                      t        t        j                        t        t        j                  j                        u sJ y r7   )r8   r	   r   	orig_func r4   r   test_dispatchable_are_functionsrY   ~   s(    R[[%:%: ;;;;r4   znot nx.utils.backends.backendsc                     ddl m}  t        j                         }|j	                  dd       |j	                  dd       t        j                         }|j	                  dd       t        j
                  ||      }t        t        j
                  ||            ddhk(  sJ | j                  |      }| j                  |      }dt        j                  j                  v rMt        t        j
                  ||            ddhk(  sJ t        t        j
                  ||            ddhk(  sJ y t        j                  j                  sdt        j                  j                  vrut        j                  t        d      5  t        j
                  ||       d d d        t        j                  t        d      5  t        j
                  ||       d d d        y y y # 1 sw Y   FxY w# 1 sw Y   y xY w)	Nr   )dispatch_interfacer   r'   r&   r<   r@   rA   )networkx.classes.testsr[   r	   r9   add_edgeintersectionsetconvertconfigbackend_priorityr   r   r   rH   )r[   r   HrvrT   H2s         r   test_mixing_backend_graphsrf      s}   9

AJJq!JJq!

AJJq!	A	Brq!$%!Q///		#	#A	&B		#	#A	&B		2222??2q)*q!f4442??1b)*q!f444YY''MASAS,S]];.HI 	#OOB"	#]];.HI 	#OOAr"	# 	#	 -T'	# 	#	# 	#s   =G7G%G"%G.c                      t        j                  t        d      5  t        j                  d       ddd       y# 1 sw Y   yxY w)zKUsing `backend=` raises with unknown backend even if there are no backends.z6'this_backend_does_not_exist' backend is not installedrA   this_backend_does_not_existr=   N)r   r   rH   r	   
null_graphrX   r4   r   test_bad_backend_namerj      s8    	S
 = 	;<= = =s	   <Ac                  V   t        j                  t        d      5  t        j                  j
                  t        j                  j                  k(  sJ t        j                  j                  j
                  t        j                  j                  k(  sJ 	 d d d        y # 1 sw Y   y xY w)N_fallback_to_nxrA   )
r   warnsDeprecationWarningr	   _dispatchablerl   ra   fallback_to_nxr   r   rX   r4   r   test_fallback_to_nxrq      sw    	(0A	B S//2993K3KKKK{{&&66")):R:RRRR	S S Ss   A9BB()r   r   r?   r	   importorskiprD   r   r!   markskipifrK   rU   rY   rf   rj   rq   rX   r4   r   <module>ru      s      V!   G V  >2B	2Bj >R	R<< 45# 6#4=Sr4   