ó
    ™“,jÉ+  ã                   ó  • S SK r S SKrS SKr\R                  R                  S\R                  \R                  45      S 5       r " S S5      r	 " S S5      r
 " S S	5      r " S
 S5      r " S S5      r " S S5      r " S S5      rg)é    NÚfc                 ó¸   • [         R                  " 5       n[        R                  " [         R                  SS9   U " U5        S S S 5        g ! , (       d  f       g = f)NzConnectivity is undefined)Úmatch)ÚnxÚGraphÚpytestÚraisesÚNetworkXPointlessConcept)r   ÚGs     Ú²C:\Users\johnn\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\site-packages\networkx/algorithms/tests/test_euler.pyÚtest_empty_graph_raisesr      s6   € ä
�Š‹
€AÜ	�Š”r×2Ñ2Ð:UÓ	VÙ	ˆ!Œ÷ 
W×	VÖ	Vús   ¹	AÁ
Ac                   ó    • \ rS rSrS rS rSrg)ÚTestIsEuleriané   c                 óÖ  • [         R                  " [         R                  " S5      5      (       d   e[         R                  " [         R                  " S5      5      (       d   e[         R                  " [         R                  " S5      5      (       d   e[         R                  " [         R                  " S5      5      (       d   e[         R                  " [         R                  " S5      5      (       a   e[         R                  " [         R                  " S5      5      (       a   e[         R                  " [         R                  " S5      5      (       a   e[         R                  " [         R                  " S5      5      (       a   e[         R                  " [         R                  " 5       5      (       a   e[         R                  " [         R
                  " S5      5      (       a   eg )Né   é   é   é   é   )r   Úis_eulerianÚcomplete_graphÚhypercube_graphÚpetersen_graphÚ
path_graph©Úselfs    r   Útest_is_eulerianÚTestIsEulerian.test_is_eulerian   sA  € Ü�~Š~œb×/Ò/°Ó2×3Ñ3Ð3Ð3Ü�~Š~œb×/Ò/°Ó2×3Ñ3Ð3Ð3Ü�~Š~œb×0Ò0°Ó3×4Ñ4Ð4Ð4Ü�~Š~œb×0Ò0°Ó3×4Ñ4Ð4Ð4ä—>’>¤"×"3Ò"3°AÓ"6×7Ñ7Ð7Ð7Ü—>’>¤"×"3Ò"3°AÓ"6×7Ñ7Ð7Ð7Ü—>’>¤"×"4Ò"4°QÓ"7×8Ñ8Ð8Ð8Ü—>’>¤"×"4Ò"4°QÓ"7×8Ñ8Ð8Ð8ä—>’>¤"×"3Ò"3Ó"5×6Ñ6Ð6Ð6Ü—>’>¤"§-¢-°Ó"2×3Ñ3Ð3Ð3Ð3ó    c                 ó  • [         R                  " 5       nUR                  / SQ5        [         R                  " U5      (       a   e[         R                  " 5       nUR                  / SQ5        [         R                  " U5      (       a   e[         R
                  " 5       nUR                  SS5        UR                  SS5        UR                  SS5        UR                  SS5        [         R                  " U5      (       a   eg )N)é   é   r   r"   r#   r   )r   r   Úadd_nodes_fromr   ÚDiGraphÚMultiDiGraphÚadd_edge©r   r   s     r   Útest_is_eulerian2Ú TestIsEulerian.test_is_eulerian2   sº   € ä�HŠH‹JˆØ	×ÑšÔ#Ü—>’> !×$Ñ$Ð$Ð$ä�JŠJ‹LˆØ	×ÑšÔ#Ü—>’> !×$Ñ$Ð$Ð$Ü�OŠOÓˆØ	�
‰
�1�aÔØ	�
‰
�1�aÔØ	�
‰
�1�aÔØ	�
‰
�1�aÔÜ—>’> !×$Ñ$Ð$Ð$Ð$r    © N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   r)   Ú__static_attributes__r+   r    r   r   r      s   † ò4õ%r    r   c                   ó2   • \ rS rSrS rS rS rS rS rSr	g)	ÚTestEulerianCircuité/   c                 óÌ  • [         R                  " S5      n[        [         R                  " USS95      nU VVs/ s H  u  p4UPM	     nnnU/ SQ:X  d   eU/ SQ:X  d   e[        [         R                  " USS95      nU VVs/ s H  u  p4UPM	     nnnU/ SQ:X  d   eU/ SQ:X  d   e[         R                  " S	5      n[        [         R                  " USS95      nU VVs/ s H  u  p4UPM	     nnnU/ S
Q:X  d   eU/ SQ:X  d   e[        [         R                  " USS95      nU VVs/ s H  u  p4UPM	     nnnU/ SQ:X  d   eU/ SQ:X  d   eg s  snnf s  snnf s  snnf s  snnf )Nr   r   ©Úsource)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"   )©r   r#   r9   r:   )r"   r#   r   )r=   ©r#   r   r@   )r   Úcycle_graphÚlistÚeulerian_circuitr   ©r   r   ÚedgesÚuÚvÚnodess         r   Útest_eulerian_circuit_cycleÚ/TestEulerianCircuit.test_eulerian_circuit_cycle0   s\  € Ü�NŠN˜1Óˆä”R×(Ò(¨°1Ñ5Ó6ˆÙ$Ô%šu‘t�q“™uˆÑ%ØšÓ$Ð$Ð$ØÒ8Ó8Ð8Ð8ä”R×(Ò(¨°1Ñ5Ó6ˆÙ$Ô%šu‘t�q“™uˆÑ%ØšÓ$Ð$Ð$ØÒ8Ó8Ð8Ð8ä×Ò˜aÓ ˆä”R×(Ò(¨°1Ñ5Ó6ˆÙ$Ô%šu‘t�q“™uˆÑ%Øš	Ó!Ð!Ð!ØÒ0Ó0Ð0Ð0ä”R×(Ò(¨°1Ñ5Ó6ˆÙ$Ô%šu‘t�q“™uˆÑ%Øš	Ó!Ð!Ð!ØÒ0Ó0Ð0Ñ0ùó' &ùó
 &ùó &ùó
 &s   ºEÂEÃ EÄ(E c                 ó˜  • [         R                  " 5       n[         R                  " U/ SQ5        [        [         R                  " USS95      nU VVs/ s H  u  p4UPM	     nnnU/ SQ:X  d   eU/ SQ:X  d   e[        [         R                  " USS95      nU VVs/ s H  u  p4UPM	     nnnU/ SQ:X  d   eU/ SQ:X  d   eg s  snnf s  snnf )N©r   r"   r#   r   r   r5   )r@   r=   r>   r?   r"   r;   r<   )r   r%   Ú	add_cyclerD   rE   rF   s         r   Útest_eulerian_circuit_digraphÚ1TestEulerianCircuit.test_eulerian_circuit_digraphI   s¹   € Ü�JŠJ‹LˆÜ
�Š�QšÔ%ä”R×(Ò(¨°1Ñ5Ó6ˆÙ$Ô%šu‘t�q“™uˆÑ%ØšÓ$Ð$Ð$ØÒ8Ó8Ð8Ð8ä”R×(Ò(¨°1Ñ5Ó6ˆÙ$Ô%šu‘t�q“™uˆÑ%ØšÓ$Ð$Ð$ØÒ8Ó8Ð8Ñ8ùó &ùó
 &s   ÁC ÂCc                 óD  • [         R                  " 5       n[         R                  " U/ SQ5        UR                  SS5        UR                  SS5        [	        [         R
                  " USS95      nU VVs/ s H  u  p4UPM	     nnnU/ SQ:X  d   eU/ SQ:X  d   eg s  snnf )NrN   r"   r#   r   r5   ©r   r   r#   r"   r#   r"   )r7   r8   r9   r=   r9   r:   )r   Ú
MultiGraphrO   r'   rD   rE   rF   s         r   Útest_multigraphÚ#TestEulerianCircuit.test_multigraphW   s‡   € Ü�MŠM‹OˆÜ
�Š�QšÔ%Ø	�
‰
�1�aÔØ	�
‰
�1�aÔÜ”R×(Ò(¨°1Ñ5Ó6ˆÙ$Ô%šu‘t�q“™uˆÑ%ØÒ*Ó*Ð*Ð*ØÒHÓHÐHÑHùó &s   Á6Bc                 óÔ  • [         R                  " 5       n[         R                  " U/ SQ5        UR                  SS5        UR                  SS5        [	        [         R
                  " USSS95      nU VVVs/ s H  u  p4oSPM	     nnnnU/ SQ:X  d   eUS S SS	/:X  d   e[        R                  " USS
 5      [        R                  " / SQ5      :X  d   eUS
S  S/:X  d   eg s  snnnf )NrN   r"   r#   r   T)r6   ÚkeysrS   )r   r   r   )r   r#   r   r   ))r#   r"   r   )r"   r#   r"   )r#   r"   r#   ©r"   r   r   )r   rT   rO   r'   rD   rE   ÚcollectionsÚCounter)r   r   rG   rH   rI   ÚkrJ   s          r   Útest_multigraph_with_keysÚ-TestEulerianCircuit.test_multigraph_with_keysa   sà   € Ü�MŠM‹OˆÜ
�Š�QšÔ%Ø	�
‰
�1�aÔØ	�
‰
�1�aÔÜ”R×(Ò(¨°1¸4Ñ@ÓAˆÙ"'Õ(¢%‘w�q˜Q’¡%ˆÒ(ØÒ*Ó*Ð*Ð*Ø�R�aˆy˜Y¨	Ð2Ó2Ð2Ð2Ü×"Ò" 5¨¨1 :Ó.´+×2EÒ2EÚ-ó3
ó 
ð 	
ð 
ð �Q�Rˆy˜Y˜KÓ'Ð'Ñ'ùô )s   Á8C#c                 óæ   • [         R                  " [        R                  5         [	        [        R
                  " [        R                  " S5      5      5      nS S S 5        g ! , (       d  f       g = f©Nr   )r   r	   r   ÚNetworkXErrorrD   rE   r   )r   r   s     r   Útest_not_eulerianÚ%TestEulerianCircuit.test_not_euleriano   s@   € Ü�]Š]œ2×+Ñ+Õ,Ü”R×(Ò(¬×):Ò):¸1Ó)=Ó>Ó?ˆA÷ -×,Ö,ús   ¥4A"Á"
A0r+   N)
r,   r-   r.   r/   rK   rP   rU   r]   rb   r0   r+   r    r   r2   r2   /   s   † ò1ò29òIò(õ@r    r2   c                   ó   • \ rS rSrS rSrg)ÚTestIsSemiEulerianét   c                 ón  • [         R                  " [         R                  " S5      5      (       d   e[         R                  " S[         R                  S9n[         R                  " U5      (       d   e[         R                  " [         R                  " S5      5      (       a   e[         R                  " [         R                  " S5      5      (       a   e[         R                  " [         R
                  " S5      5      (       a   e[         R                  " [         R
                  " S5      5      (       a   eg )Nr   r   ©Úcreate_usingr   r   )r   Úis_semieulerianr   r%   r   r   r(   s     r   Útest_is_semieulerianÚ'TestIsSemiEulerian.test_is_semieulerianu   sÚ   € ä×!Ò!¤"§-¢-°Ó"2×3Ñ3Ð3Ð3Ü�MŠM˜!¬"¯*©*Ñ5ˆÜ×!Ò! !×$Ñ$Ð$Ð$ô ×%Ò%¤b×&7Ò&7¸Ó&:×;Ñ;Ð;Ð;Ü×%Ò%¤b×&7Ò&7¸Ó&:×;Ñ;Ð;Ð;Ü×%Ò%¤b×&8Ò&8¸Ó&;×<Ñ<Ð<Ð<Ü×%Ò%¤b×&8Ò&8¸Ó&;×<Ñ<Ð<Ð<Ð<r    r+   N)r,   r-   r.   r/   rk   r0   r+   r    r   re   re   t   s   † õ
=r    re   c                   ó.  • \ rS rSrS rS rS r\R                  R                  S\
R                  " 5       \
R                  " 5       45      S 5       r\R                  R                  S\
R                  " 5       \
R                  " 5       45      S 5       rSrg	)
ÚTestHasEulerianPathé‚   c                 óŒ  • [         R                  " [         R                  " S5      5      (       d   e[         R                  " [         R                  " S5      5      (       d   e[         R                  " [         R                  " S5      5      (       d   e[         R                  " [         R                  " S5      5      (       d   eg )Nr   r   r   r   )r   Úhas_eulerian_pathr   r   r   s    r   Útest_has_eulerian_path_cyclicÚ1TestHasEulerianPath.test_has_eulerian_path_cyclicƒ   sŠ   € ä×#Ò#¤B×$5Ò$5°aÓ$8×9Ñ9Ð9Ð9Ü×#Ò#¤B×$5Ò$5°aÓ$8×9Ñ9Ð9Ð9Ü×#Ò#¤B×$6Ò$6°qÓ$9×:Ñ:Ð:Ð:Ü×#Ò#¤B×$6Ò$6°qÓ$9×:Ñ:Ð:Ñ:r    c                 óæ   • [         R                  " [         R                  " S5      5      (       d   e[         R                  " S[         R                  S9n[         R                  " U5      (       d   eg )Nr   r   rh   )r   rq   r   r%   r(   s     r   Ú!test_has_eulerian_path_non_cyclicÚ5TestHasEulerianPath.test_has_eulerian_path_non_cyclicŠ   sM   € ä×#Ò#¤B§M¢M°!Ó$4×5Ñ5Ð5Ð5Ü�MŠM˜!¬"¯*©*Ñ5ˆÜ×#Ò# A×&Ñ&Ð&Ñ&r    c                 ót  • [         R                  " 5       nUR                  / SQ5        [         R                  " U5      (       a   e[         R                  " 5       nUR                  / SQ5        [         R                  " U5      (       d   eUR	                  S5        [         R                  " U5      (       a   eg )N)r@   r=   rA   )r@   r=   rB   r   )r   r%   Úadd_edges_fromrq   Úadd_noder(   s     r   Ú%test_has_eulerian_path_directed_graphÚ9TestHasEulerianPath.test_has_eulerian_path_directed_graph�   s�   € ä�JŠJ‹LˆØ	×ÑÒ1Ô2Ü×'Ò'¨×*Ñ*Ð*Ð*ô �JŠJ‹LˆØ	×ÑÒ1Ô2Ü×#Ò# A×&Ñ&Ð&Ð&ð 	
�
‰
�1ŒÜ×'Ò'¨×*Ñ*Ð*Ð*Ð*r    r   c                 ód   • UR                  / SQ5        [        R                  " U5      (       a   eg )N)r@   r>   r8   ©rx   r   rq   r(   s     r   Ú+test_has_eulerian_path_not_weakly_connectedÚ?TestHasEulerianPath.test_has_eulerian_path_not_weakly_connectedŸ   s+   € à	×ÑÒ1Ô2Ü×'Ò'¨×*Ñ*Ð*Ð*Ð*r    c                 ód   • UR                  SS/5        [        R                  " U5      (       a   eg ©Nr@   r>   r}   r(   s     r   Ú2test_has_eulerian_path_unbalancedins_more_than_oneÚFTestHasEulerianPath.test_has_eulerian_path_unbalancedins_more_than_one¤   s/   € à	×Ñ˜& &Ð)Ô*Ü×'Ò'¨×*Ñ*Ð*Ð*Ð*r    r+   N)r,   r-   r.   r/   rr   ru   rz   r   ÚmarkÚparametrizer   r   r%   r~   r‚   r0   r+   r    r   rn   rn   ‚   s}   † ò;ò'ò+ð ‡[�[×Ñ˜S 2§8¢8£:¨r¯zªz«|Ð"<Ó=ñ+ó >ð+ð ‡[�[×Ñ˜S 2§8¢8£:¨r¯zªz«|Ð"<Ó=ñ+ó >ó+r    rn   c                   ó   • \ rS rSrS rSrg)ÚTestFindPathStartéª   c                 ó@  • [         R                  R                  R                  n[         R                  " S[         R
                  S9nU" U5      S:X  d   e/ SQnU" [         R
                  " U5      5      S:X  d   e/ SQnU" [         R
                  " U5      5      b   eg )Nr   rh   r   )r@   r=   rB   ©r   r   r   )r@   r=   r>   )r#   r   )r   Ú
algorithmsÚeulerÚ_find_path_startr   r%   )r   Úfind_path_startr   rG   s       r   Útestfind_path_startÚ%TestFindPathStart.testfind_path_start«   s€   € ÜŸ-™-×-Ñ-×>Ñ>ˆä�MŠM˜!¬"¯*©*Ñ5ˆÙ˜qÓ! QÓ&Ð&Ð&Ú0ˆÙœrŸzšz¨%Ó0Ó1°QÓ6Ð6Ð6ò 1ˆÙœrŸzšz¨%Ó0Ó1Ñ9Ð9Ñ9r    r+   N)r,   r-   r.   r/   r�   r0   r+   r    r   r‡   r‡   ª   s   † õ
:r    r‡   c                   ó¸   • \ rS rSrS rS rS rS rS rS r	\
R                  R                  S\R                  S	S
/4\R                  S	S/445      S 5       rSrg)ÚTestEulerianPathé¸   c                 ó”   • / SQn[        U[        R                  " [        R                  " U5      5      5       H  u  p#X#:X  a  M   e   g )N)rŠ   r@   r=   rB   )Úzipr   Úeulerian_pathr%   )r   ÚxÚe1Úe2s       r   Útest_eulerian_pathÚ#TestEulerianPath.test_eulerian_path¹   s6   € Ú,ˆÜ˜!œR×-Ò-¬b¯jªj¸«mÓ<Ö=‰FˆBØ•8ˆO�8ò >r    c                 ó  • [         R                  " 5       n/ SQnUR                  U5        U[        [         R                  " U5      5      :X  d   eU[        [         R                  " USS95      :X  d   e[
        R                  " [         R                  5         [        [         R                  " USS95        S S S 5        [
        R                  " [         R                  5         [        [         R                  " USS95        S S S 5        [
        R                  " [         R                  5         [        [         R                  " USS95        S S S 5        g ! , (       d  f       N¥= f! , (       d  f       Nk= f! , (       d  f       g = f)N©r=   r>   ©r   r   )r   r   r"   r5   r   r   r   )r   r%   rx   rD   r–   r   r	   ra   ©r   r   Úresults      r   Ú test_eulerian_path_straight_linkÚ1TestEulerianPath.test_eulerian_path_straight_link¾   sü   € Ü�JŠJ‹LˆÚ1ˆØ	×Ñ˜Ô Øœœb×.Ò.¨qÓ1Ó2Ó2Ð2Ð2Øœœb×.Ò.¨q¸Ñ;Ó<Ó<Ð<Ð<Ü�]Š]œ2×+Ñ+Õ,Ü”×!Ò! !¨AÑ.Ô/÷ -ä�]Š]œ2×+Ñ+Õ,Ü”×!Ò! !¨AÑ.Ô/÷ -ä�]Š]œ2×+Ñ+Õ,Ü”×!Ò! !¨AÑ.Ô/÷ -Ð,÷	 -Õ,úç,Õ,úç,Õ,ús$   ÂEÃ#E'Ä.E8Å
E$Å'
E5Å8
Fc                 óZ  • [         R                  " 5       n/ SQnUR                  U5        U[        [         R                  " U5      5      :X  d   eU[        [         R                  " USS95      :X  d   e[
        R                  " [         R                  5         [        [         R                  " USS95        S S S 5        [
        R                  " [         R                  5         [        [         R                  " USS95        S S S 5        g ! , (       d  f       NZ= f! , (       d  f       g = f)N)r9   r=   r9   r=   r>   rž   ©r   r   r#   r5   r   r   )r   r&   rx   rD   r–   r   r	   ra   rŸ   s      r   Útest_eulerian_path_multigraphÚ.TestEulerianPath.test_eulerian_path_multigraphË   sÊ   € Ü�OŠOÓˆÚIˆØ	×Ñ˜Ô Øœœb×.Ò.¨qÓ1Ó2Ó2Ð2Ð2Øœœb×.Ò.¨q¸Ñ;Ó<Ó<Ð<Ð<Ü�]Š]œ2×+Ñ+Õ,Ü”×!Ò! !¨AÑ.Ô/÷ -ä�]Š]œ2×+Ñ+Õ,Ü”×!Ò! !¨AÑ.Ô/÷ -Ð,÷ -Õ,úç,Õ,úó   ÂDÃ#DÄ
DÄ
D*c                 óŠ  • [         R                  " 5       n/ SQn/ SQn/ SQnUR                  U5        U[        [         R                  " U5      5      :X  d   eU[        [         R                  " USS95      :X  d   eU[        [         R                  " USS95      :X  d   eU[        [         R                  " USS95      :X  d   eg )N)r=   r>   rž   ©r   r"   )r>   rž   r©   r=   )rž   r©   r=   r>   r"   r5   r#   r   )r   r%   rx   rD   r–   )r   r   r    Úresult2Úresult3s        r   Ú#test_eulerian_path_eulerian_circuitÚ4TestEulerianPath.test_eulerian_path_eulerian_circuitÖ   s¨   € Ü�JŠJ‹LˆÚ1ˆÚ2ˆÚ2ˆØ	×Ñ˜Ô Øœœb×.Ò.¨qÓ1Ó2Ó2Ð2Ð2Øœœb×.Ò.¨q¸Ñ;Ó<Ó<Ð<Ð<Øœ$œr×/Ò/°¸!Ñ<Ó=Ó=Ð=Ð=Øœ$œr×/Ò/°¸!Ñ<Ó=Ó=Ð=Ñ=r    c                 ó¬  • [         R                  " 5       n/ SQn/ SQnUR                  U5        [        [         R                  " U5      5      X#4;   d   eU[        [         R                  " USS95      :X  d   eU[        [         R                  " USS95      :X  d   e[
        R                  " [         R                  5         [        [         R                  " USS95        S S S 5        [
        R                  " [         R                  5         [        [         R                  " USS95        S S S 5        g ! , (       d  f       NZ= f! , (       d  f       g = f)Nr�   ))r   r   r¤   r8   r9   r"   r5   r   r   r#   )r   r   rx   rD   r–   r   r	   ra   )r   r   r    rª   s       r   Útest_eulerian_path_undirectedÚ.TestEulerianPath.test_eulerian_path_undirectedá   sñ   € Ü�HŠH‹JˆÚ1ˆÚ2ˆØ	×Ñ˜Ô Ü”B×$Ò$ QÓ'Ó(¨VÐ,=Ó=Ð=Ð=Øœœb×.Ò.¨q¸Ñ;Ó<Ó<Ð<Ð<Øœ$œr×/Ò/°¸!Ñ<Ó=Ó=Ð=Ð=Ü�]Š]œ2×+Ñ+Õ,Ü”×!Ò! !¨AÑ.Ô/÷ -ä�]Š]œ2×+Ñ+Õ,Ü”×!Ò! !¨AÑ.Ô/÷ -Ð,÷ -Õ,úç,Õ,ús   ÃD4ÄEÄ4
EÅ
Ec                 óZ  • [         R                  " 5       n/ SQnUR                  U5        U[        [         R                  " U5      5      :X  d   eU[        [         R                  " USS95      :X  d   e[
        R                  " [         R                  5         [        [         R                  " USS95        S S S 5        [
        R                  " [         R                  5         [        [         R                  " USS95        S S S 5        g ! , (       d  f       NZ= f! , (       d  f       g = f)N)r9   r=   r9   r=   r>   rž   r#   r5   r   r"   )r   rT   rx   rD   r–   r   r	   ra   rŸ   s      r   Ú(test_eulerian_path_multigraph_undirectedÚ9TestEulerianPath.test_eulerian_path_multigraph_undirectedî   sÉ   € Ü�MŠM‹OˆÚAˆØ	×Ñ˜Ô Øœœb×.Ò.¨qÓ1Ó2Ó2Ð2Ð2Øœœb×.Ò.¨q¸Ñ;Ó<Ó<Ð<Ð<Ü�]Š]œ2×+Ñ+Õ,Ü”×!Ò! !¨AÑ.Ô/÷ -ä�]Š]œ2×+Ñ+Õ,Ü”×!Ò! !¨AÑ.Ô/÷ -Ð,÷ -Õ,úç,Õ,úr§   )Ú
graph_typer    )r   r"   r   )r"   r   r"   rY   c                 ód   • U" SS/5      n[         R                  " USS9n[        U5      U:X  d   eg )Nr@   r:   T)rX   )r   r–   rD   )r   r´   r    r   Úanswers        r   Útest_eulerian_with_keysÚ(TestEulerianPath.test_eulerian_with_keysù   s7   € ñ ˜ Ð'Ó(ˆÜ×!Ò! !¨$Ñ/ˆÜ�F‹|˜vÓ%Ð%Ñ%r    r+   N)r,   r-   r.   r/   rš   r¡   r¥   r¬   r¯   r²   r   r„   r…   r   rT   r&   r·   r0   r+   r    r   r’   r’   ¸   sm   † òò
0ò	0ò	>ò0ò	0ð ‡[�[×ÑØ à�]‰]˜Y¨	Ð2Ð3Ø�_‰_˜y¨)Ð4Ð5ð	
óñ&óó&r    r’   c                   óD   • \ rS rSrS rS rS rS rS rS r	S r
S	 rS
rg)ÚTestEulerizei  c                 óÜ   • [         R                  " [        R                  5         [        R                  " SS/5      n[        R
                  " U5        S S S 5        g ! , (       d  f       g = fr�   )r   r	   r   ra   Úfrom_edgelistÚeulerizer(   s     r   Útest_disconnectedÚTestEulerize.test_disconnected  s@   € Ü�]Š]œ2×+Ñ+Õ,Ü× Ò  &¨&Ð!1Ó2ˆAÜ�KŠK˜ŒN÷ -×,Ö,ús   ¥/AÁ
A+c                 óÒ   • [         R                  " [        R                  5         [        R                  " [        R
                  " 5       5        S S S 5        g ! , (       d  f       g = f©N)r   r	   r   r
   r½   r   r   s    r   Útest_null_graphÚTestEulerize.test_null_graph  s2   € Ü�]Š]œ2×6Ñ6Õ7Ü�KŠKœŸš›
Ô#÷ 8×7Ö7úó   ¥*AÁ
A&c                 óÒ   • [         R                  " [        R                  5         [        R                  " [        R
                  " 5       5        S S S 5        g ! , (       d  f       g = frÁ   )r   r	   r   r
   r½   rT   r   s    r   Útest_null_multigraphÚ!TestEulerize.test_null_multigraph  s2   € Ü�]Š]œ2×6Ñ6Õ7Ü�KŠKœŸš›Ô(÷ 8×7Ö7úrÄ   c                 óÔ   • [         R                  " [        R                  5         [        R                  " [        R
                  " S5      5        S S S 5        g ! , (       d  f       g = f©Nr   )r   r	   r   ra   r½   Úempty_graphr   s    r   Útest_on_empty_graphÚ TestEulerize.test_on_empty_graph  s5   € Ü�]Š]œ2×+Ñ+Õ,Ü�KŠKœŸš qÓ)Ô*÷ -×,Ö,ús   ¥+AÁ
A'c                 ó–   • [         R                  " S5      n[         R                  " U5      n[         R                  " X5      (       d   eg rÉ   )r   rC   r½   Úis_isomorphic©r   r   ÚHs      r   Útest_on_eulerianÚTestEulerize.test_on_eulerian  s4   € Ü�NŠN˜1ÓˆÜ�KŠK˜‹NˆÜ×Ò ×%Ñ%Ð%Ñ%r    c                 óâ   • [         R                  " [         R                  " S5      5      nUR                  SS5        [         R                  " U5      n[         R
                  " U5      (       d   eg )Nr   r   r"   )r   rT   rC   r'   r½   r   rÏ   s      r   Útest_on_eulerian_multigraphÚ(TestEulerize.test_on_eulerian_multigraph  sI   € Ü�MŠMœ"Ÿ.š.¨Ó+Ó,ˆØ	�
‰
�1�aÔÜ�KŠK˜‹NˆÜ�~Š~˜a× Ñ Ð Ñ r    c                 ó  • [         R                  " S5      n[         R                  " [         R                  " U5      5      (       d   e[         R                  " [         R                  " [         R                  " U5      5      5      (       d   eg r`   )r   r   r   r½   rT   r(   s     r   Útest_on_complete_graphÚ#TestEulerize.test_on_complete_graph#  sV   € Ü×Ò˜aÓ ˆÜ�~Š~œbŸkšk¨!›n×-Ñ-Ð-Ð-Ü�~Š~œbŸkšk¬"¯-ª-¸Ó*:Ó;×<Ñ<Ð<Ñ<r    c                 óÜ  • [         R                  " S5      nUR                  SS5        UR                  SS5        UR                  SS5        UR                  SS5        UR                  SS5        UR                  SS5        UR                  SS	5        UR                  S	S
5        UR                  S
S5        UR                  SS5        UR                  SS5        UR                  SS5        UR                  SS5        [         R                  " U5      (       a   e[         R                  " U5      n[         R                  " U5      (       d   e[         R
                  " U5      S:X  d   eg )Né   r   é   é   r   é   é   é   é   é   é   é   é   é   é   é'   )r   rC   r'   r   r½   Únumber_of_edgesr(   s     r   Útest_on_non_eulerian_graphÚ'TestEulerize.test_on_non_eulerian_graph(  s  € Ü�NŠN˜2ÓˆØ	�
‰
�1�bÔØ	�
‰
�2�rÔØ	�
‰
�2�rÔØ	�
‰
�1�bÔØ	�
‰
�2�rÔØ	�
‰
�2�rÔØ	�
‰
�2�rÔØ	�
‰
�2�rÔØ	�
‰
�2�rÔØ	�
‰
�2�rÔØ	�
‰
�2�rÔØ	�
‰
�2�rÔØ	�
‰
�2�rÔÜ—>’> !×$Ñ$Ð$Ð$Ü�KŠK˜‹NˆÜ�~Š~˜a× Ñ Ð Ð Ü×!Ò! !Ó$¨Ó*Ð*Ñ*r    r+   N)r,   r-   r.   r/   r¾   rÂ   rÆ   rË   rÑ   rÔ   r×   ré   r0   r+   r    r   rº   rº     s*   † òò
$ò)ò+ò&ò
!ò=õ
+r    rº   )rZ   r   Únetworkxr   r„   r…   r   rj   r   r   r2   re   rn   r‡   r’   rº   r+   r    r   Ú<module>rì      s“   ðÛ ã ã ð ‡�×Ñ˜˜rŸ~™~¨r×/AÑ/AÐBÓCñó Dð÷%ñ %÷@B@ñ B@÷J=ñ =÷%+ñ %+÷P:ñ :÷K&ñ K&÷\4+ò 4+r    