+
    �°³j³  ã                   óˆ   € R t ^ RIHt ^ RIt^ RIt ! R R4      tR tR tR t	R t
R	 tR
 tR tR tR tR tR tR tR tR# )z;Unit tests for the :mod:`networkx.algorithms.walks` module.)ÚisliceNc                   óŒ   a € ] tR t^
t o ]P
                  ! R4       ]P
                  ! R4       R tR tR tR t	R t
R tR	tV tR
# )ÚTestNumberOfWalksÚnumpyÚscipyc                ó¨   € \         P                  ! . RO4      p\         P                  ! V^4      p^ ^ ^^^ ^^ /^^ ^ ^^^^ /^^ ^ ^^ ^^//pW#8X  g   Q hR# )é    N)©r   é   ©r
   é   )r   r   ©ÚnxÚDiGraphÚnumber_of_walks©ÚselfÚGÚ	num_walksÚexpecteds   &   Úe/home/luca/screen-checking/.venv/lib/python3.14/site-packages/networkx/algorithms/tests/test_walks.pyÚtest_directedÚTestNumberOfWalks.test_directed   sj   € Ü�JŠJÒ/Ó0ˆÜ×&Ò& q¨!Ó,ˆ	Ø˜˜1˜a  A qÐ)¨1¨q°!°Q¸¸1¸aÐ.@À!ÀaÈÈAÈqÐRSÐUVÐEWÐXˆØÔ$Ð$Ò$ó    c                ó¤   € \         P                  ! ^4      p\         P                  ! V^4      p^ ^ ^^^^^/^^ ^^^^^/^^ ^^^^^//pW#8X  g   Q hR# ©é   N©r   Úcycle_graphr   r   s   &   r   Útest_undirectedÚ!TestNumberOfWalks.test_undirected   ói   € Ü�NŠN˜1ÓˆÜ×&Ò& q¨!Ó,ˆ	Ø˜˜1˜a  A qÐ)¨1¨q°!°Q¸¸1¸aÐ.@À!ÀaÈÈAÈqÐRSÐUVÐEWÐXˆØÔ$Ð$Ò$r   c                ó¨   € \         P                  ! . RO4      p\         P                  ! V^4      pR R ^ R^ R^/RR ^R^ R^ /RR ^ R^R^ //pW#8X  g   Q hR# )ÚAÚBÚCN))r#   r$   )r$   r%   )r%   r#   r   r   s   &   r   Útest_non_integer_nodesÚ(TestNumberOfWalks.test_non_integer_nodes   sn   € Ü�JŠJÒ;Ó<ˆÜ×&Ò& q¨!Ó,ˆ	à�#�q˜#˜q # qÐ)Ø�#�q˜#˜q # qÐ)Ø�#�q˜#˜q # qÐ)ð
ˆð
 Ô$Ð$Ò$r   c                ó¤   € \         P                  ! ^4      p\         P                  ! V^ 4      p^ ^ ^^^ ^^ /^^ ^ ^^^^ /^^ ^ ^^ ^^//pW#8X  g   Q hR# r   r   r   s   &   r   Útest_zero_lengthÚ"TestNumberOfWalks.test_zero_length$   r!   r   c                óÞ   € \         P                  ! ^4      p\        P                  ! \        4      ;_uu_ 4        \         P
                  ! VR4       RRR4       R#   + '       g   i     R# ; i)r   Néÿÿÿÿ)r   r   ÚpytestÚraisesÚ
ValueErrorr   )r   r   s   & r   Útest_negative_length_exceptionÚ0TestNumberOfWalks.test_negative_length_exception*   s>   € Ü�NŠN˜1ÓˆÜ�]Š]œ:×&Õ&Ü×Ò˜q "Ô%÷ '×&×&Ò&úó   ¹AÁA,	c                óÌ   € \         P                  ! ^4      pVP                  ^^^R7       \         P                  ! V^4      p^ ^ ^^^^^/^^ ^^^^^/^^ ^^^^^//pW#8X  g   Q hR# )r   ©ÚweightN)r   r   Úadd_edger   r   s   &   r   Útest_hidden_weight_attrÚ)TestNumberOfWalks.test_hidden_weight_attr/   s{   € Ü�NŠN˜1ÓˆØ	�
‰
�1�a ˆ
Ô"Ü×&Ò& q¨!Ó,ˆ	Ø˜˜1˜a  A qÐ)¨1¨q°!°Q¸¸1¸aÐ.@À!ÀaÈÈAÈqÐRSÐUVÐEWÐXˆØÔ$Ð$Ò$r   © N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r-   Úimportorskipr   r   r&   r)   r0   r7   Ú__static_attributes__Ú__classdictcell__)Ú__classdict__s   @r   r   r   
   sD   ø‡ € Ø
×Ò˜Ô Ø
×Ò˜Ô ò%ò%ò%ò%ò&÷
%ð %r   r   c                 óô   € \         P                  ! ^4      p \        \         P                  ! V ^ ^R7      ^4      p\        \         P                  ! V ^ ^R7      ^4      p\	        V4      \	        V4      8X  g   Q hR# )zFTwo runs with the same seed should produce identical unweighted walks.©ÚstartÚseedN)r   r   r   Úrandom_walkÚlist©r   Úwalk_aÚwalk_bs      r   Ú(test_random_walk_unweighted_reproduciblerK   7   sX   € ä
�Š�qÓ€AÜ”B—N’N 1¨A°AÔ6¸Ó:€FÜ”B—N’N 1¨A°AÔ6¸Ó:€FÜ�‹<œ4 ›<Ô'Ð'Ò'r   c                 óŒ   € \         P                  ! . RO4      p \         P                  ! V ^R7      p\        V4      ^.8X  g   Q hR# )z:Unweighted walk should yield start and stop at a dead end.©rD   N)r	   r   )r   r   )r   r   rF   rG   ©r   Úwalks     r   Ú$test_random_walk_unweighted_dead_endrP   ?   s5   € ä
�
Š
Ò+Ó,€AÜ�>Š>˜! 1Ô%€DÜ�‹:˜!˜ÔÐÒr   c                 ó¤   € \         P                  ! . RO4      p \        \         P                  ! V ^ ^ R7      ^4      p\	        V4      . RO8X  g   Q hR# )z:Unweighted walk on a DiGraph should follow edge direction.rC   N)r	   r   )r   r   )r   r
   r   r   )r   r   r   rF   rG   rN   s     r   Ú$test_random_walk_unweighted_directedrR   F   s<   € ä
�
Š
Ò+Ó,€AÜ”"—.’. ¨!°!Ô4°aÓ8€DÜ�‹:šÔ%Ð%Ò%r   c                 óÜ   € \         P                  ! ^4      p \        P                  ! \        4      ;_uu_ 4        \         P
                  ! V 4       RRR4       R#   + '       g   i     R# ; i)z&Omitting start should raise TypeError.N)r   r   r-   r.   Ú	TypeErrorrF   ©r   s    r   Ú/test_random_walk_omitted_start_raises_typeerrorrV   M   s:   € ä
�Š�qÓ€AÜ	�Š”y×	!Õ	!Ü
�Š�qÔ÷ 
"×	!×	!Ò	!ús   ¹AÁA+	c                  óÞ   € \         P                  ! ^4      p \        P                  ! \        4      ;_uu_ 4        \         P
                  ! V ^ 4       RRR4       R#   + '       g   i     R# ; i)r   N)r   Ú
path_graphr-   r.   rT   rF   rU   s    r   Ú&test_random_walk_start_must_be_keywordrY   T   s<   € Ü
�Š�aÓ€AÜ	�Š”y×	!Õ	!Ü
�Š�q˜!Ô÷ 
"×	!×	!Ò	!úr2   c            	     ó  € \         P                  ! ^4      p \        P                  ! \         P                  4      ;_uu_ 4        \        \         P                  ! V ^R7      4       RRR4       R#   + '       g   i     R# ; i)z@Starting from a node not in the graph should raise NodeNotFound.rM   N)r   rX   r-   r.   ÚNodeNotFoundrG   rF   rU   s    r   Ú7test_random_walk_missing_start_node_raises_nodenotfoundr\   Z   sE   € ä
�Š�aÓ€AÜ	�Š”r—‘×	'Õ	'ÜŒR�^Š^˜A QÔ'Ô(÷ 
(×	'×	'Ò	'ús   Á"A/Á/B 	c                  óú   € \         P                  ! RR.4      p \        P                  ! \         P                  4      ;_uu_ 4        \         P
                  ! V ^ ^ R7       RRR4       R#   + '       g   i     R# ; i)r   rC   Nr	   )r   Ú
MultiGraphr-   r.   ÚNetworkXNotImplementedrF   rU   s    r   Ú+test_random_walk_multigraph_not_implementedr`   a   sI   € Ü
�Š�v˜vÐ&Ó'€AÜ	�Š”r×0Ñ0×	1Õ	1Ü
�Š�q ¨Õ*÷ 
2×	1×	1Ò	1ús   ÁA)Á)A:	c            	     óF  € \         P                  ! 4       p V P                  ^ ^^R7       V P                  ^^^R7       \        \         P                  ! V ^ R^ R7      ^4      p\        \         P                  ! V ^ R^ R7      ^4      p\        V4      \        V4      8X  g   Q hR# )zDUsing the same integer seed should reproduce the same weighted walk.r4   r5   ©rD   r5   rE   N©r   ÚGraphr6   r   rF   rG   rH   s      r   Ú&test_random_walk_weighted_reproduciblere   g   s}   € ä
�Š‹
€AØ‡J�Jˆq�!˜A€JÔØ‡J�Jˆq�!˜A€JÔÜ”B—N’N 1¨A°hÀQÔGÈÓK€FÜ”B—N’N 1¨A°hÀQÔGÈÓK€FÜ�‹<œ4 ›<Ô'Ð'Ò'r   c            
     óÚ  € \         P                  ! R4      p \        P                  ! 4       pVP	                  ^ ^^R7       VP	                  ^ ^^R7       ^p\        \        P                  ! V^ RV P                  P                  V4      R7      ^4      p\        \        P                  ! V^ RV P                  P                  V4      R7      ^4      p\        V4      \        V4      8X  g   Q hR# )zLUsing the same NumPy Generator seed should reproduce the same weighted walk.r   r4   r5   rb   N)
r-   r>   r   rd   r6   r   rF   ÚrandomÚdefault_rngrG   )Únpr   rE   rI   rJ   s        r   Ú-test_random_walk_weighted_with_generator_seedrj   q   s¼   € ä	×	Ò	˜WÓ	%€Bä
�Š‹
€AØ‡J�Jˆq�!˜A€JÔØ‡J�Jˆq�!˜A€JÔØ€DÜÜ
�Š�q ¨(¸¿¹×9NÑ9NÈtÓ9TÔUØ	ó€Fô Ü
�Š�q ¨(¸¿¹×9NÑ9NÈtÓ9TÔUØ	ó€Fô �‹<œ4 ›<Ô'Ð'Ò'r   c            	     ór  € \         P                  ! ^4      p \         P                  ! 4       pVP                  ^ ^^R7       VP                  ^^^R7       \	        \         P
                  ! V ^ R^R7      ^4      p\	        \         P
                  ! V^ R^R7      ^4      p\        V4      \        V4      8X  g   Q hR# )z5Missing weight attributes should default to weight 1.r4   r5   rb   N)r   rX   rd   r6   r   rF   rG   )r   ÚHrO   Úwalk_with_attrss       r   Ú(test_random_walk_weighted_default_weightrn   „   s�   € ä
�Š�aÓ€AÜ
�Š‹
€AØ‡J�Jˆq�!˜A€JÔØ‡J�Jˆq�!˜A€JÔÜ”"—.’. ¨!°HÀ1ÔEÀqÓI€DÜœRŸ^š^¨A°Q¸xÈaÔPÐRSÓT€OÜ�‹:œ˜oÓ.Ô.Ð.Ò.r   c                 ó²   € \         P                  ! 4       p V P                  ^ ^^ R7       \         P                  ! V ^ R^ R7      p\	        V4      ^ .8X  g   Q hR# )zEZero-weight edges should halt the walk after yielding the start node.r4   r5   rb   N)r   r   r6   rF   rG   rN   s     r   Ú+test_random_walk_weighted_zero_weight_stopsrp   �   sG   € ä
�
Š
‹€AØ‡J�Jˆq�!˜A€JÔÜ�>Š>˜! 1¨X¸AÔ>€DÜ�‹:˜!˜ÔÐÒr   c                 ó0  € \         P                  ! 4       p V P                  ^ ^RR7       \        P                  ! \
        4      ;_uu_ 4        \        \        \         P                  ! V ^ R^ R7      ^4      4       RRR4       R#   + '       g   i     R# ; i)z)Negative weights should raise ValueError.r4   r5   rb   Néþÿÿÿ)	r   rd   r6   r-   r.   r/   rG   r   rF   rU   s    r   Ú0test_random_walk_weighted_negative_weight_raisesrs   —   s[   € ä
�Š‹
€AØ‡J�Jˆq�!˜B€JÔÜ	�Š”z×	"Õ	"ÜŒV”B—N’N 1¨A°hÀQÔGÈÓKÔL÷ 
#×	"×	"Ò	"ús   Á.BÂB	c                 óÆ   € \         P                  ! 4       p V P                  ^ ^RR7       \        \         P                  ! V ^ ^ R7      ^4      p\        V4      ^ ^.8X  g   Q hR# )zINegative weight attributes are ignored when no weight parameter is given.r4   rC   Néûÿÿÿrc   rN   s     r   Ú5test_random_walk_unweighted_with_negative_weight_attrrv   Ÿ   sN   € ä
�Š‹
€AØ‡J�Jˆq�!˜B€JÔä”"—.’. ¨!°!Ô4°aÓ8€DÜ�‹:˜!˜Q˜ÔÐÒr   )Ú__doc__Ú	itertoolsr   r-   Únetworkxr   r   rK   rP   rR   rV   rY   r\   r`   re   rj   rn   rp   rs   rv   r9   r   r   Ú<module>rz      s^   ðÙ Aå ã ã ÷*%ñ *%òZ(òò&òòò)ò+ò(ò(ò&/òòMô r   