
    Pi6                        d dl Z d dlmZ d dlZd dlZd dlmZmZmZm	Z	m
Z
mZmZmZmZmZmZmZmZ d dlmZmZ dZh dZddd	h d
ddgfddddddddgZej                            ddg dgddgg          ej                            deeeg          d                         Zd Zd Z G d d          Zd Zd  Z d! Z!d" Z"d# Z#d$ Z$ej                            d%e%dfe&dfe'd&fe(dff          d'             Z)ej                            d(d)  e*d	          D              e+g d*          f          d+             Z,ej                            d,g d-          ej                            d.ej-        ej.        ej/        g          ej                            d/ej0        ej1        g          d0                                     Z2ej                            d,g d-          ej                            d.ej-        ej.        ej/        g          ej                            d/ej3        ej4        g          d1                                     Z5ej                            d,g d-          ej                            d.ej-        ej.        ej/        g          ej                            d2g d*          d3                                     Z6d4 Z7d5 Z8d6 Z9d7 Z:dS )8    N)copy)PythonRandomInterfacePythonRandomViaNumpyBitsarbitrary_elementcreate_py_random_statecreate_random_statedict_to_numpy_arraydiscrete_sequenceedges_equalflattengroupsmake_list_of_intspairwisepowerlaw_sequence)_dict_to_numpy_array1_dict_to_numpy_array2)      )      ))      )   )   )	   
      )                           >   r   r   r   r   r   r   )r   r   r!   )r"   r#   r$   r%   r   r   r   r   r   r&   r'   r   r   r   >   r   r   r   r   r   r   foobarbaz)r   r   )r   r   qweasd)r    r#   )r$   )r%   19r'   resultexisting	existing1	existing2nestedc                 V   |&t          | |          }t          |          dk    sJ n\t          |          }t          |          }t          | |          }t          |          t          |          cxk    r	d|z   k    sn J t          t	          |          t
                    sJ d S )Nr'   )r   lenr   
issubclasstypetuple)r6   r2   val_result	nexistings        r/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/networkx/utils/tests/test_misc.pytest_flattenr@   0   s     ~ff%%3xx2~~~~~v,,LL	fg&&3xx3w<<99992	>999999d3ii'''''''    c                  N   g d} t          |           | u sJ t          |           | k    sJ t          t          |           d         t                    sJ t          j        t
          j        t           g d           t          j        t
          j        t           g d           d S )N)r   r   g      @*   r   )r   r   r   kermit)r   r   g@)r   
isinstanceintpytestraisesnxNetworkXError)mylists    r?   test_make_list_of_intsrM   ?   s       FV$$....V$$....'//2C88888
M""$57J7J7JKKK
M""$5{{{CCCCCrA   c                  N    t          dd          } t          dg d          } d S )Nr'   g      @)exponent)r   r   r   r   r   r   r   r   r   r   r   )distribution)r   r
   )zs    r?   test_random_number_distributionrR   H   s1    "s+++A"+L+L+LMMMAAArA   c                   B    e Zd Zed             Zd Zd Zd Zd Zd Z	dS )TestNumpyArrayc                 .    t          j        d          ad S )Nnumpy)rH   importorskipnp)clss    r?   setup_classzTestNumpyArray.setup_classO   s      ))rA   c                    t                               g dt           j                  }t                               g d          }t                               g d          }t          t	          |          t
                    sJ t	          |          t          |          k    sJ t	          |          }t          |d         t                    sJ t          j        t          j
        t          |           d S )Nr   r   r   )dtype)g      ?r   r   )g?r   r   r   )rX   arrayint64rF   r   listrG   rH   rI   rJ   rK   )selfabcBs        r?   test_numpy_to_list_of_intsz)TestNumpyArray.test_numpy_to_list_of_intsT   s    HHYYYbhH//HH[[[!!HH[[[!!+A..55555 ##tAww....a  !A$$$$$$b&(91=====rA   c                    ddd}t          |ddd          }t          j                            |t                              ddg                     t          |ddd          }t          j                            |t                              ddg                     t          |          }t          j                            |                                d           d S )Nr   r   rb   rc   r   mapping)rc   rb   r   )r   rX   testingassert_allcloser^   sum)ra   drb   s      r?   test__dict_to_numpy_array1z)TestNumpyArray.test__dict_to_numpy_array1^   s    !!!11-=-=>>>

""1bhh1v&6&6777!!11-=-=>>>

""1bhh1v&6&6777!!$$

""15577A.....rA   c                 F   ddddddd}ddd}t          ||          }t          j                            |t                              ddgddgg                     t          |          }t          j                            |                                d           d S 	Nr   r   rh   r   r'   r   ri   !   )r   rX   rk   rl   r^   rm   ra   rn   rj   rb   s       r?   test__dict_to_numpy_array2z)TestNumpyArray.test__dict_to_numpy_array2h   s    ""r););<<""!!W555

""1bhhR1a&/A&B&BCCC!!$$

""15577B/////rA   c                    ddddddd}ddd}t          ||          }t          j                            |t                              ddgddgg                     ddd}t          ||          }t          j                            |t                              ddgddgg                     t          |          }t          j                            |                                d           d S rq   )r	   rX   rk   rl   r^   r   rm   rs   s       r?   test_dict_to_numpy_array_az)TestNumpyArray.test_dict_to_numpy_array_ar   s    ""r););<<""7333

""1bhhAR/A&B&BCCC""7333

""1bhhR1a&/A&B&BCCC!!$$

""15577B/////rA   c                 2   ddd}ddd}t          ||          }t          j                            |t                              ddg                     t          |          }t          j                            |                                d           d S )Nr   r   rh   r   ri   r   )r	   rX   rk   rl   r^   r   rm   rs   s       r?   test_dict_to_numpy_array_bz)TestNumpyArray.test_dict_to_numpy_array_b   s    !""7333

""1bhh1v&6&6777!!$$

""15577A.....rA   N)
__name__
__module____qualname__classmethodrZ   rf   ro   rt   rv   rx    rA   r?   rT   rT   N   sx        * * [*> > >/ / /0 0 00 0 0/ / / / /rA   rT   c                     t          d          } g d}|dgz   }t          t          |                     |k    sJ t          t          t          |                               |k    sJ t          t          | d                    |k    sJ t          d          }t          t          |                    g k    sJ t          d          }t          t          |d                    g k    sJ d S )Nr   )r   r   r   r   )r   r   )r   r   T)cyclicr}   )ranger`   r   iter)nodes
node_pairsnode_pairs_cycle
empty_iters       r?   test_pairwiser      s    !HHE)))J!VH,  J....e%%&&*4444t,,,--1AAAAAbJ$$%%++++bJD11122b888888rA   c                      t          t          dg d                    } t          |           }ddhddhdhd}||k    sJ i t          i           k    sJ d S )	Nabcde)r   r   r   r   r   rb   rc   rd   rn   e)r   r   r   )dictzipr   )many_to_oneactualexpecteds      r?   test_groupsr      sq    s7OOO4455KK  F:3*#77HXrA   c                     t          j        d          } | j        j        }t	          t          d          |          sJ t	          t          d           |          sJ t	          t          | j                  |          sJ t	          t           |d                    |          sJ | j                                        }t	          t          |          | j        j                  sJ t          j        t          t
          d           | 
                     |d                              d          t          d                              d          k              sJ d S )NrV   r   rb   r   )rH   rW   randomRandomStaterF   r   default_rng	GeneratorrI   
ValueErrorallrand)rX   rsrngs      r?   test_create_random_stater      s:   		W	%	%B		B)!,,b11111)$//44444)")44b99999)""Q%%00"55555
)


!
!C)#..	0CDDDDD
M*1377766""Q%%**R..$7$:$:$?$?$C$CCDDDDDDDrA   c                     t           j        } t          t          d          |           sJ t          t          d           |           sJ t          t           | d                    |           sJ t	          j        t          t          d           t	          j        d          }|j         j        }|j         	                    d          }|j         
                    |j                                                   }t          }t          }t          t          |j                   |          sJ t          t           |d                    |          sJ t          t          |          |          sJ t          t          |          |          sJ  |            } |            }t          ||          sJ t          ||          sJ t          |          |k    sJ t          |          |k    sJ d}	| |d          fD ]C}
t          |
          }|                    d|	dz              |                    d|	dz              Dd S )Nr   rb   rV   i  l    r   r   )r   RandomrF   r   rH   rI   r   rW   r   r   r   SFC64r   r   	randrangerandint)pyrsrX   r   r   rng_explicitold_nprsnprsold_nprs_instancenprs_instanceint64maxrprss               r?   test_create_py_random_stater      sG   =D,Q//66666,T22D99999,TT!WW55t<<<<<
M*4c:::		W	%	%B		B
)


%
%C9&&ry'8'899L$H#D,RY77>>>>>,RRUU33X>>>>>,S11488888,\::DAAAAA 

DFFM'22222mT*****!"3448IIIII!-00MAAAA #H22a55\ % %$Q''aA&&&Ax!|$$$$% %rA   c                  <   t          j        d          } d}| j        j        }t	           ||                     ||                              dd                              dd          k    sJ                     d                              dd          k    sJ                     dd                              dd          k    sJ                     g d	                              g d	          k    sJ 	                    dd          
                    dd          k    sJ                     d
                              d          k    sJ                     d                              d          k    sJ |                                         g d	                              g d	          k              sJ |                                         g d	d                              g d	dd          k              sJ |                     fdt%          d          D             fdt%          d          D             k              sJ                                                                 k    sJ d S )NrV   rC   r   r   r   r   r   r   r\         ?UUUUUU?r   Freplacec                 <    g | ]}                     d d          S r   r   r   .0_r   s     r?   
<listcomp>z:test_PythonRandomInterface_RandomState.<locals>.<listcomp>   '    ///qQ		///rA   d   c                 <    g | ]}                     d d          S r   r   r   )r   r   rs42s     r?   r   z:test_PythonRandomInterface_RandomState.<locals>.<listcomp>   s'    3331DLLA333rA   )rH   rW   r   r   r   r   r   uniformchoicegaussnormalexpovariateexponentialparetovariateparetor   shufflesampler   random_sample)rX   seedr   r   r   s      @@r?   &test_PythonRandomInterface_RandomStater      s   		W	%	%BD		B
4
)
)C2d88D ==A$,,q!"4"44444==t||Aq111111;;q"a!4!44444::iii  DKK			$:$:::::99Q??dkk!Q//////??34#3#3G#<#<<<<<Q4;;q>>111166#++iii((DLL,C,CCDDDDD66

999a  DKK			4K$O$OO     66////E#JJ///3333c

333	4     ::<<4--////////rA   c                  `   t          j        d          } d}| j                            |          t	          | j                            |                                        dd                              dd          k    sJ                     d                              dd          k    sJ                     dd                              dd          k    sJ                     g d	                              g d	          k    sJ 	                    dd          
                    dd          k    sJ                     d
                              d          k    sJ                     d                              d          k    sJ |                                         g d	                              g d	          k              sJ |                                         g d	d                              g d	dd          k              sJ |                     fdt%          d          D             fdt%          d          D             k              sJ                                                                 k    sJ d S )NrV   rC   r   r   r   r   r   r   r\   r   r   r   Fr   c                 <    g | ]}                     d d          S r   r   )r   r   pris     r?   r   z8test_PythonRandomInterface_Generator.<locals>.<listcomp>  r   rA   r   c                 <    g | ]}                     d d          S r   )integersr   s     r?   r   z8test_PythonRandomInterface_Generator.<locals>.<listcomp>  s'    3331CLLA333rA   )rH   rW   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )rX   r   r   r   s     @@r?   $test_PythonRandomInterface_Generatorr      s   		W	%	%BD
)


%
%C
	 5 5d ; ;
<
<C ==A#,,q!"4"44444==s||Aq111111;;q"Q!3!33333::iii  CJJyyy$9$9999999Q??cjjA......??33??7#;#;;;;;Q3::a==000066#++iii((CKK			,B,BBCCCCC66

999a  CJJyyy$J$N$NN     66////E#JJ///3333c

333	4     ::<<3::<<''''''rA   )iterable_typer   [c                 J     | g d          }t          |          |k    sJ d S )Nr\   )r   )r   r   iterables      r?   test_arbitrary_elementr     s6     }YYY''HX&&(222222rA   iteratorc              #      K   | ]}|V  d S Nr}   )r   is     r?   	<genexpr>r     s"      AarA   r\   c                     t          j        t          d          5  t          |            ddd           dS # 1 swxY w Y   dS )z0Value error is raised when input is an iterator.zfrom an iterator)matchN)rH   rI   r   r   )r   s    r?   test_arbitrary_element_raisesr     s     
z);	<	<	< $ $(###$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $s   9= =n)r   r   r'   gencreate_usingc                 J    || |          } || |          }t          |                                |                                |                                          sJ t          |                                |                                |                                          sJ |                    dd           t          |                                |                                |                                          sJ t          |                                |                                |                                          rJ t          |                                |                                |                                          rJ dS )zHTest whether edges_equal properly compares edges without attribute data.r   directedr   r   N)r   edgesis_directedremove_edge)r   r   r   GHs        r?   test_edges_equalr     sE   
 	AL)))AAL)))Aqwwyy!''))ammooFFFFFFqwwyy!''))ammooFFFFFFMM!Qqwwyy!''))ammooFFFFFF17799aggii!--//JJJJJJ17799aggii!--//JJJJJJJJrA   c                     || |          } || |          }t          |                                          }|                    |           |                    |           t          |                                |                                |                                          sJ |                    dd           t          |                                |                                |                                          sJ t          |                                |                                |                                          rJ dS )zDTest whether ``edges_equal`` properly compares edges in multigraphs.r   r   r   r   N)r`   r   add_edges_fromr   r   r   )r   r   r   r   r   G_edgess         r?   test_edges_equal_multiedger   *  s   
 	AL)))AAL)))A17799ooGWWqwwyy!''))ammooFFFFFFMM!Qqwwyy!''))ammooFFFFFF17799aggii!--//JJJJJJJJrA   weightc                 F    ||           } ||           }t          |                                          }|                    fd|D                        t          |                                |                                          sJ |                    fd|D                        t          |                                |                                          sJ t          |                    d          |                    d                    rJ dS )zFTest whether ``edges_equal`` properly compares edges with weight data.c              3   &   K   | ]}g |R V  d S r   r}   r   r   r   s     r?   r   z,test_edges_equal_weighted.<locals>.<genexpr>E  s-      <<qll6ll<<<<<<rA   c              3   ,   K   | ]}g |d z   R V  dS )r   Nr}   r   s     r?   r   z,test_edges_equal_weighted.<locals>.<genexpr>H  s5      @@1..6A:..@@@@@@rA   TdataN)r`   r   add_weighted_edges_fromr   )r   r   r   r   r   r   s     `   r?   test_edges_equal_weightedr   <  s   
 	AAAA17799ooG<<<<G<<<<<<qwwyy!'')),,,,,@@@@@@@@@@qwwyy!'')),,,,,1777--qwwDw/A/ABBBBBBBrA   c                     t          j        d          } t          j        d          }t          j        dt           j                  }dddddid}t          j        | |           t	          |                     d	          |                     d	                    sJ t	          |                     d	          |                                           rJ t          j        ||           t	          |                                 |                                          sJ t	          |                     d	          |                    d	                    sJ d
|d         d         d<   t	          |                                 |                                          sJ t	          |                     d	          |                    d	                    rJ dS )zQTest whether ``edges_equal`` properly compares edges with attribute dictionaries.r   r   r'   nothing)attr1attr2r   )r   r   Tr   	somethingr   r   N)rJ   
path_graph
MultiGraphset_edge_attributesr   r   )r   r   Iattrss       r?   test_edges_equal_datar  M  s   
aA
aA
abm444A!I66!MME1e$$$qwwDw))1777+=+=>>>>>1777--qwwyy999991e$$$qwwyy!'')),,,,,qwwDw))1777+=+=>>>>>"AaDGGqwwyy!'')),,,,,1777--qwwDw/A/ABBBBBBBrA   c                     t          j        dt           j                  } t          j        dt           j                  }|                     dddd           |                     dddd	           |                    dddd           |                    dddd	           t	          |                     d
          |                     d
                    sJ t	          |                                 |                                          rJ t	          |                     d
          |                    d
                    rJ t	          |                     d
          |                    d
                    rJ t	          |                     d
d
          |                    d
d
                    rJ dS )zdTest whether ``edges_equal`` properly compares edges with attribute dictionaries in ``MultiGraphs``.r   r   r   r   bluer   r   greenr   Tr   )keys)r  r   N)rJ   r   r   add_edger   r   r   r   s     r?    test_edges_equal_multigraph_datar  a  s   
abm444A
abm444AJJq!QfJ%%%JJq!QgJ&&&JJq!QfJ%%%JJq!QgJ&&&qwwDw))1777+=+=>>>>>17799aggii000001777--qwwDw/A/ABBBBB1777--qwwDw/A/ABBBBB1774788!''tRV':W:WXXXXXXXrA   c                  :   t          j        dg          } t          j        dg          }t          |                                 |                                d          sJ t          |                                 |                                d          rJ dS )z>Test whether ``edges_equal`` properly compares directed edges.r   )r   r   Fr   TN)rJ   DiGraphr   r   r
  s     r?   test_edges_equal_directedr  q  s    

F8A

F8Aqwwyy!''))e<<<<<<17799aggii$????????rA   c                     t          j                    } t          j                    }|                     ddd           |                    ddd           t          |                     d          |                     d          d          sJ |                    ddd	
           t          |                     d          |                    d          d          rJ |                     ddd	
           t          |                     d          |                    d          d          sJ |                     dd           |                     ddd	
           t          |                     d          |                    d          d          sJ t          |                     d          |                    d          d          rJ dS )zZTest whether ``edges_equal`` properly compares directed edges with attribute dictionaries.r   r   r  r  Tr   r   r   r  r  FN)rJ   r  r	  r   r   r   r
  s     r?   test_edges_equal_directed_datar  z  s   

A

AJJq!6J"""JJq!6J"""qwwDw))1777+=+=MMMMMMJJq!7J###1777--qwwDw/A/ADQQQQQQJJq!7J###qwwDw))1777+=+=MMMMMMMM!QJJq!7J###qwwDw))1777+=+=NNNNNN1777--qwwDw/A/ADQQQQQQQQrA   );r   r   rH   networkxrJ   networkx.utilsr   r   r   r   r   r	   r
   r   r   r   r   r   r   networkx.utils.miscr   r   nested_depth
nested_setnested_mixedmarkparametrizer@   rM   rR   rT   r   r   r   r   r   r   r`   r;   strsetr   r   r   r   complete_graphr   cycle_graphGraphr  r   r   MultiDiGraphr   r   r  r  r  r  r}   rA   r?   <module>r     s                                            M L L L L L L L  
 >>>Aq6"	EU++%   D"zl[+<V#WXXL,
#KLL
( 
( ML YX
(D D DN N N:/ :/ :/ :/ :/ :/ :/ :/z
9 
9 
9  E E E  %  %  %F0 0 06( ( (4 !T1IqzC:Qx#P 3 3 3
 qDDOO, $ $	 $ kkk**!2BM2> RSS"(BJ)?@@
K 
K A@ TS +*
K kkk**!2BM2> RSS"-)IJJK K KJ TS +*K kkk**!2BM2> RSS999--C C .- TS +*CC C C(Y Y Y @ @ @R R R R RrA   