
    çg                     N   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        	                    d          d             Z
ej        	                    d          d             Zd	 Zej        	                    d
          d             Zd Zd ZdS )    Nscipynumpyc                  
   t          j        d          } t          j        |            t          j        |            t          j        t
                    5  t          j                     d d d            d S # 1 swxY w Y   d S )N   G)nx
path_graphpagerankpytestraises	TypeErrorr   s    ^/var/www/html/ai-engine/env/lib/python3.11/site-packages/networkx/utils/tests/test_backends.pytest_dispatch_kwds_vs_argsr      s    
aAKNNNK!	y	!	!  
                 s   A88A<?A<c                     d} t           j        j        j                                        D ]\  }}t          j        |j                  }t          j        |          |j        u sJ 	 t          j        |          }n# t
          j	        $ r Y bw xY wt          j        |          |u sJ | dz  } | dk    sJ t          j        t          j        t           j
                            t           j
        u sJ d S )Nr      )r	   utilsbackends_registered_algorithmsitemspickledumps__wrapped__loadsPicklingErrorinverse_line_graph)countnamefuncpickleds       r   test_pickler!      s    Eh'>DDFF 	 	
d,t/00|G$$(88888	l4((GG# 	 	 	H	|G$$,,,,
19999<R%:;;<<@UUUUUUUs   'A<<BBz\not nx.config.backend_priority.algos or nx.config.backend_priority.algos[0] != 'nx_loopback'c                     ddl m} m} t          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          |          | _        | `n# t          |          | _        | `w xY wt          j        t          d          5  t          j        |d           d d d            d S # 1 swxY w Y   d S )Nr   LoopbackBackendInterfaceLoopbackGraph)r         )r&   r   r   )r'   r   r   c                                          d           |                      |                     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   s^    A##7D677HHH $ $!%	 $ 
 
 	
    r   c                d    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(    99  Jx}}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   #   so          
 		YYY			999=>>AL
 
 
 
 
 #'     \ 2?-:*7N4=r!!!!B.q1122bh>>>>s""""+A}EEEFF-WWWW1v%%%%B.q*EEEFF"(RRRR1v%%%%%1=>P1Q1Q .$<< 2>>P1Q1Q .$<<<<<	{*D	E	E	E B B
"1.@AAAAB B B B B B B B B B B B B B B B B Bs   "B,D& &D>F  FFc                  f   ddl m} m              }|                    g d           t          ddfd
            }| j        }|| _        	 t          j        |dd          }t          |          t          j	        u sJ 	 t	          |          | _        dS # 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          |           r4t          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   sD    c=)) 	

I%%cl33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55666#'       \ 2?-:*R\!Q
333Bxx28#####1=>P1Q1Q ...>P1Q1Q .QQQQs   4B B0c                  x    t          t          j                  t          t          j        j                  u sJ d S r7   )r8   r	   r   	orig_func r4   r   test_dispatchable_are_functionsrY   ~   s0    R[%: ; ;;;;;;;r4   znot nx.utils.backends.backendsc                     ddl m}  t          j                    }|                    dd           |                    dd           t          j                    }|                    dd           t          j        ||          }t          t          j        ||                    ddhk    sJ |                     |          }|                     |          }dt          j        j	        v rVt          t          j        ||                    ddhk    sJ t          t          j        ||                    ddhk    sJ d S t          j        j	        sdt          j        j
        vrt          j        t          d          5  t          j        ||           d d d            n# 1 swxY w Y   t          j        t          d          5  t          j        ||           d d d            d S # 1 swxY w Y   d S d S d S )	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      sc   99999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42?1b))**q!f444444Y' #MAS,S,S];.HIII 	# 	#OB"""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#];.HIII 	# 	#OAr"""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#	# #,S,Ss$    F""F&)F&G++G/2G/c                      t          j        t          d          5  t          j        d           ddd           dS # 1 swxY w Y   dS )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      s    	S
 
 
 = = 	;<<<<= = = = = = = = = = = = = = = = = =s   ?AAc                     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            d S # 1 swxY w Y   d S )N_fallback_to_nxrA   )
r   warnsDeprecationWarningr	   _dispatchablerl   ra   fallback_to_nxr   r   rX   r4   r   test_fallback_to_nxrq      s    	(0A	B	B	B S S/293KKKKK{&6"):RRRRRR	S S S S S S S S S S S S S S S S S Ss   AA<<B B )r   r   r?   r	   importorskiprD   r   r!   markskipifrK   rU   rY   rf   rj   rq   rX   r4   r   <module>ru      sC        V!!  G     V V V  > 2B 2B	 2Bj > R R	 R<< < < 455# # 65#4= = =S S S S Sr4   