
    çg"                     x   d Z ddlZddlZddlZddlmZ ddlZddlZd Zd Z	d Z
 ej        d          d	             Z ej        d          d
             Z	 ddlZdZn# e$ r dZY nw xY w	 ddlZdZn# e$ r dZY nw xY w	 ddlZdZn# e$ r dZY nw xY w	 ddlZdZn# e$ r dZY nw xY w	 ddlZdZn# e$ r dZY nw xY w	 ddlZdZn# e$ r dZY nw xY w	 ddlZdZn# e$ r dZY nw xY wg Zg dZg dZddgZ dgZ!dgZ"dgZ#dgZ$eseez  Zeseez  Zesee z  Zesee!z  Zesee"z  Zesee#z  Zesee$z  ZdS dS )ax  
Testing
=======

General guidelines for writing good tests:

- doctests always assume ``import networkx as nx`` so don't add that
- prefer pytest fixtures over classes with setup methods.
- use the ``@pytest.mark.parametrize``  decorator
- use ``pytest.importorskip`` for numpy, scipy, pandas, and matplotlib b/c of PyPy.
  and add the module to the relevant entries below.

    N)entry_pointsc                     |                      dddd           |                      ddd d           |                      d	ddd
           d S )N	--runslow
store_trueFzrun slow tests)actiondefaulthelp	--backendstorezGRun tests with a backend by auto-converting nx graphs to backend graphs--fallback-to-nxz[Run nx function if a backend doesn't implement a dispatchable function (use with --backend))	addoption)parsers    M/var/www/html/ai-engine/env/lib/python3.11/site-packages/networkx/conftest.pypytest_addoptionr      s    
L%>N     V	      	          c                    |                      dd           |                     d          }|t          j                            d          }t          dd          }|st          j        d           || _        |r|d         t          j
        j        j        d<   i t          j
        j        j        d<   t          j
        j        ddt          j
                                        it          j        j        t          j        _        |                     d	          }|st          j                            d
          }t          |          t          j        _        d S d S )Nmarkerszslow: mark test as slow to runr
   NETWORKX_TEST_BACKENDnx_loopbackznetworkx.backends)namegroupac  

             WARNING: Mixed NetworkX configuration! 

        This environment has mixed configuration for networkx.
        The test object nx_loopback is not configured correctly.
        You should not be seeing this message.
        Try `pip install -e .`, or change your PYTHONPATH
        Make sure python finds the networkx repo you are testing

r   NETWORKX_FALLBACK_TO_NX )addinivalue_line	getoptionosenvirongetr   warningswarnbackendnetworkxutilsbackendsbackend_infoConfigconfigboolfallback_to_nx)r'   r!   loopback_epr)   s       r   pytest_configurer+   ,   sM   
I'GHHH{++G*..!899M9LMMMK 
S	
 	
 	
 FN > ;Fm:T(7>@,];#+>#8 $
 $
 --//$
o&$
 $
   ))*<== 	GZ^^,EFFN)-n)=)=&&&> >r   c                 "   | j         r| j         }|dk    rdt          j        j        j        _        |gt          j        j        _        |gt          j        j        _	        t          j        j        j        |         
                                }t          |d          r t          |d          |           |                     d          rd S t          j                            d          }|D ] }d|j        v r|                    |           !d S )Nr"   Ton_start_testsr   zneed --runslow option to run)reasonslow)r!   r"   r#   r$   _dispatchable_is_testingr'   backend_priorityalgos
generatorsloadhasattrgetattrr   pytestmarkskipkeywords
add_marker)r'   itemsbackend_namer!   	skip_slowitems         r   pytest_collection_modifyitemsrA   L   s	    ~ 
: ~:%%@DHN#1=6B^HO,2;G.HO,7n-6|DIIKKGw 011 :2!1225999$$   (F GGI ' 'T]""OOI&&&' 'r   T)autousec                  N   t          j        dt          d           t          j        dt          d           t          j        dt          d           t          j        dt          d           t          j        dt          d           t          j        dt          d           t          j        dt          d	           t          j        dt          d
           t          j        dt          d           t          j        dt          d           t          j        dt          d           t          j        dt          d           t          j        dt          d           t          j        dt          d           t          j        dt          d           d S )Nignorez$

single_target_shortest_path_length)categorymessagez

shortest_pathz

The `normalized`z

all_tripletsz

random_triadminimal_d_separatord_separatedz

k_corez	

k_shellz	

k_crustz


k_coronaz

total_spanning_tree_weightz\n\nThe 'create=matrix'z

`compute_v_structureszKeyword argument 'link')r   filterwarningsFutureWarningDeprecationWarningr   r   r   set_warningsrL   e   s%   8   
 #   
 -7M    -7I    -7I    -7L    -}    H/A<XXXX-}    -}    -~    -7W    -7Q    -7R    -7P     r   c                     t           | d<   d S )Nnx)r"   )doctest_namespaces    r   add_nxrP      s    &dr   F).algorithms/approximation/traveling_salesman.pyz/algorithms/centrality/current_flow_closeness.py"algorithms/centrality/laplacian.py!algorithms/node_classification.pyzalgorithms/non_randomness.pyalgorithms/polynomials.pyz"algorithms/shortest_paths/dense.pyalgorithms/tree/mst.pyzdrawing/nx_latex.pygenerators/expanders.pylinalg/bethehessianmatrix.pylinalg/laplacianmatrix.pyzutils/misc.py)#rQ   z'algorithms/assortativity/correlation.pyz"algorithms/assortativity/mixing.pyz!algorithms/assortativity/pairs.pyzalgorithms/bipartite/matrix.pyz algorithms/bipartite/spectral.pyz1algorithms/centrality/current_flow_betweenness.pyz8algorithms/centrality/current_flow_betweenness_subset.pyz$algorithms/centrality/eigenvector.pyzalgorithms/centrality/katz.pyrR   z%algorithms/centrality/second_order.pyz%algorithms/centrality/subgraph_alg.pyz!algorithms/communicability_alg.pyz algorithms/community/divisive.pyzalgorithms/distance_measures.pyz$algorithms/link_analysis/hits_alg.pyz(algorithms/link_analysis/pagerank_alg.pyrS   zalgorithms/similarity.pyrU   zalgorithms/walks.pyconvert_matrix.pyzdrawing/layout.pydrawing/nx_pylab.pyz"generators/spectral_graph_forge.pyrV   zlinalg/algebraicconnectivity.pyzlinalg/attrmatrix.pyrW   zlinalg/graphmatrix.pyrX   zlinalg/modularitymatrix.pyzlinalg/spectrum.pyzutils/rcm.pyrZ   zgenerators/classic.pyrY   zdrawing/nx_agraph.pyzdrawing/nx_pydot.pyrT   )%__doc__r   sysr   importlib.metadatar   r8   r"   r   r+   rA   fixturerL   rP   numpy	has_numpyImportErrorscipy	has_scipy
matplotlibhas_matplotlibpandas
has_pandas
pygraphvizhas_pygraphvizpydot	has_pydotsympy	has_sympycollect_ignoreneeds_numpyneeds_scipyneeds_matplotlibneeds_pandasneeds_pygraphvizneeds_pydotneeds_sympyr   r   r   <module>rv      sQ    
			 



  + + + + + +    &> > >@' ' '2 / / /d ' ' 'LLLII   IIILLLII   IIINN   NNNMMMJJ   JJJNN   NNNLLLII   IIILLLII   III   $ $ $J *+BC #$*+ $%*+ "k!N "k!N '&&N #l"N '&&N "k!N "k!NNN" "s~   A" "A,+A,0A7 7B BB BBB! !B+*B+/B6 6C ?C C CCC   C*)C*