Ë
    D^(hÉ+  ã                   ó  — d dl Z d dlZd dlZej                  j                  dej                  ej                  f«      d„ «       Z G d„ d«      Z	 G d„ d«      Z
 G d„ d	«      Z G d
„ d«      Z G d„ d«      Z G d„ d«      Z G d„ d«      Zy)é    NÚfc                 ó°   — t        j                  «       }t        j                  t         j                  d¬«      5   | |«       d d d «       y # 1 sw Y   y xY w)NzConnectivity is undefined)Úmatch)ÚnxÚGraphÚpytestÚraisesÚNetworkXPointlessConcept)r   ÚGs     úb/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_euler.pyÚtest_empty_graph_raisesr      s>   € ä
�‰‹
€AÜ	�‰”r×2Ñ2Ð:UÔ	Vñ Ù	ˆ!Œ÷÷ ñ ús   º	AÁAc                   ó   — e Zd Zd„ Zd„ Zy)ÚTestIsEulerianc                 óJ  — t        j                  t        j                  d«      «      sJ ‚t        j                  t        j                  d«      «      sJ ‚t        j                  t        j                  d«      «      sJ ‚t        j                  t        j                  d«      «      sJ ‚t        j                  t        j                  d«      «      rJ ‚t        j                  t        j                  d«      «      rJ ‚t        j                  t        j                  d«      «      rJ ‚t        j                  t        j                  d«      «      rJ ‚t        j                  t        j                  «       «      rJ ‚t        j                  t        j
                  d«      «      rJ ‚y )Né   é   é   é   é   )r   Úis_eulerianÚcomplete_graphÚhypercube_graphÚpetersen_graphÚ
path_graph©Úselfs    r   Útest_is_eulerianzTestIsEulerian.test_is_eulerian   s#  € Ü�~‰~œb×/Ñ/°Ó2Ô3Ð3Ð3Ü�~‰~œb×/Ñ/°Ó2Ô3Ð3Ð3Ü�~‰~œb×0Ñ0°Ó3Ô4Ð4Ð4Ü�~‰~œb×0Ñ0°Ó3Ô4Ð4Ð4ä—>‘>¤"×"3Ñ"3°AÓ"6Ô7Ð7Ð7Ü—>‘>¤"×"3Ñ"3°AÓ"6Ô7Ð7Ð7Ü—>‘>¤"×"4Ñ"4°QÓ"7Ô8Ð8Ð8Ü—>‘>¤"×"4Ñ"4°QÓ"7Ô8Ð8Ð8ä—>‘>¤"×"3Ñ"3Ó"5Ô6Ð6Ð6Ü—>‘>¤"§-¡-°Ó"2Ô3Ð3Ð3Ð3ó    c                 óâ  — t        j                  «       }|j                  g d¢«       t        j                  |«      rJ ‚t        j                  «       }|j                  g d¢«       t        j                  |«      rJ ‚t        j
                  «       }|j                  dd«       |j                  dd«       |j                  dd«       |j                  dd«       t        j                  |«      rJ ‚y )N)é   é   r   r    r!   r   )r   r   Úadd_nodes_fromr   ÚDiGraphÚMultiDiGraphÚadd_edge©r   r   s     r   Útest_is_eulerian2z 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__r   r'   © r   r   r   r      s   „ ò4ó%r   r   c                   ó*   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚTestEulerianCircuitc                 ó¸  — t        j                  d«      }t        t        j                  |d¬«      «      }|D ��cg c]  \  }}|‘Œ	 }}}|g d¢k(  sJ ‚|g d¢k(  sJ ‚t        t        j                  |d¬«      «      }|D ��cg c]  \  }}|‘Œ	 }}}|g d¢k(  sJ ‚|g d¢k(  sJ ‚t        j                  d	«      }t        t        j                  |d¬«      «      }|D ��cg c]  \  }}|‘Œ	 }}}|g d
¢k(  sJ ‚|g d¢k(  sJ ‚t        t        j                  |d¬«      «      }|D ��cg c]  \  }}|‘Œ	 }}}|g d¢k(  sJ ‚|g d¢k(  sJ ‚y c c}}w c c}}w c c}}w c c}}w )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!   r3   r4   )r    r!   r   )r7   ©r!   r   r:   )r   Úcycle_graphÚlistÚeulerian_circuitr   ©r   r   ÚedgesÚuÚvÚnodess         r   Útest_eulerian_circuit_cyclez/TestEulerianCircuit.test_eulerian_circuit_cycle0   s`  € Ü�N‰N˜1Óˆä”R×(Ñ(¨°1Ô5Ó6ˆØ$×%‘t�q˜!’Ð%ˆÑ%ØšÒ$Ð$Ð$ØÒ8Ò8Ð8Ð8ä”R×(Ñ(¨°1Ô5Ó6ˆØ$×%‘t�q˜!’Ð%ˆÑ%ØšÒ$Ð$Ð$ØÒ8Ò8Ð8Ð8ä×Ñ˜aÓ ˆä”R×(Ñ(¨°1Ô5Ó6ˆØ$×%‘t�q˜!’Ð%ˆÑ%Øš	Ò!Ð!Ð!ØÒ0Ò0Ð0Ð0ä”R×(Ñ(¨°1Ô5Ó6ˆØ$×%‘t�q˜!’Ð%ˆÑ%Øš	Ò!Ð!Ð!ØÒ0Ò0Ð0Ñ0ùó' &ùó
 &ùó &ùó
 &s   »EÂE
ÃEÄ"Ec                 óŒ  — t        j                  «       }t        j                  |g d¢«       t        t        j                  |d¬«      «      }|D ��cg c]  \  }}|‘Œ	 }}}|g d¢k(  sJ ‚|g d¢k(  sJ ‚t        t        j                  |d¬«      «      }|D ��cg c]  \  }}|‘Œ	 }}}|g d¢k(  sJ ‚|g d¢k(  sJ ‚y c c}}w c c}}w )N©r   r    r!   r   r   r/   )r:   r7   r8   r9   r    r5   r6   )r   r#   Ú	add_cycler>   r?   r@   s         r   Útest_eulerian_circuit_digraphz1TestEulerianCircuit.test_eulerian_circuit_digraphI   s»   € Ü�J‰J‹LˆÜ
�‰�QšÔ%ä”R×(Ñ(¨°1Ô5Ó6ˆØ$×%‘t�q˜!’Ð%ˆÑ%ØšÒ$Ð$Ð$ØÒ8Ò8Ð8Ð8ä”R×(Ñ(¨°1Ô5Ó6ˆØ$×%‘t�q˜!’Ð%ˆÑ%ØšÒ$Ð$Ð$ØÒ8Ò8Ð8Ñ8ùó &ùó
 &s   ÁB:ÂC c                 ó<  — t        j                  «       }t        j                  |g d¢«       |j                  dd«       |j                  dd«       t	        t        j
                  |d¬«      «      }|D ��cg c]  \  }}|‘Œ	 }}}|g d¢k(  sJ ‚|g d¢k(  sJ ‚y c c}}w )NrG   r    r!   r   r/   ©r   r   r!   r    r!   r    )r1   r2   r3   r7   r3   r4   )r   Ú
MultiGraphrH   r%   r>   r?   r@   s         r   Útest_multigraphz#TestEulerianCircuit.test_multigraphW   sˆ   € Ü�M‰M‹OˆÜ
�‰�QšÔ%Ø	�
‰
�1�aÔØ	�
‰
�1�aÔÜ”R×(Ñ(¨°1Ô5Ó6ˆØ$×%‘t�q˜!’Ð%ˆÑ%ØÒ*Ò*Ð*Ð*ØÒHÒHÐHÑHùó &s   Á6Bc                 óÆ  — t        j                  «       }t        j                  |g d¢«       |j                  dd«       |j                  dd«       t	        t        j
                  |dd¬«      «      }|D ���cg c]  \  }}}|‘Œ
 }}}}|g d¢k(  sJ ‚|d d dd	gk(  sJ ‚t        j                  |dd
 «      t        j                  g d¢«      k(  sJ ‚|d
d  dgk(  sJ ‚y c c}}}w )NrG   r    r!   r   T)r0   ÚkeysrK   )r   r   r   )r   r!   r   r   ))r!   r    r   )r    r!   r    )r!   r    r!   ©r    r   r   )r   rL   rH   r%   r>   r?   ÚcollectionsÚCounter)r   r   rA   rB   rC   ÚkrD   s          r   Útest_multigraph_with_keysz-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                 óÖ   — t        j                  t        j                  «      5  t	        t        j
                  t        j                  d«      «      «      }d d d «       y # 1 sw Y   y xY w©Nr   )r   r	   r   ÚNetworkXErrorr>   r?   r   )r   r   s     r   Útest_not_eulerianz%TestEulerianCircuit.test_not_euleriano   sM   € Ü�]‰]œ2×+Ñ+Ó,ñ 	@Ü”R×(Ñ(¬×):Ñ):¸1Ó)=Ó>Ó?ˆA÷	@÷ 	@ñ 	@ús   ¤2AÁA(N)r(   r)   r*   rE   rI   rM   rT   rX   r+   r   r   r-   r-   /   s   „ ò1ò29òIò(ó@r   r-   c                   ó   — e Zd Zd„ Zy)ÚTestIsSemiEulerianc                 ó   — t        j                  t        j                  d«      «      sJ ‚t        j                  dt         j                  ¬«      }t        j                  |«      sJ ‚t        j                  t        j                  d«      «      rJ ‚t        j                  t        j                  d«      «      rJ ‚t        j                  t        j
                  d«      «      rJ ‚t        j                  t        j
                  d«      «      rJ ‚y )Nr   r   ©Úcreate_usingr   r   )r   Úis_semieulerianr   r#   r   r   r&   s     r   Útest_is_semieulerianz'TestIsSemiEulerian.test_is_semieulerianu   sÈ   € ä×!Ñ!¤"§-¡-°Ó"2Ô3Ð3Ð3Ü�M‰M˜!¬"¯*©*Ô5ˆÜ×!Ñ! !Ô$Ð$Ð$ô ×%Ñ%¤b×&7Ñ&7¸Ó&:Ô;Ð;Ð;Ü×%Ñ%¤b×&7Ñ&7¸Ó&:Ô;Ð;Ð;Ü×%Ñ%¤b×&8Ñ&8¸Ó&;Ô<Ð<Ð<Ü×%Ñ%¤b×&8Ñ&8¸Ó&;Ô<Ð<Ð<Ð<r   N)r(   r)   r*   r_   r+   r   r   rZ   rZ   t   s   „ ó
=r   rZ   c                   ó&  — e Zd Zd„ Zd„ Zd„ Zej                  j                  d e	j                  «        e	j                  «       f«      d„ «       Zej                  j                  d e	j                  «        e	j                  «       f«      d„ «       Zy)ÚTestHasEulerianPathc                 óT  — t        j                  t        j                  d«      «      sJ ‚t        j                  t        j                  d«      «      sJ ‚t        j                  t        j                  d«      «      sJ ‚t        j                  t        j                  d«      «      sJ ‚y )Nr   r   r   r   )r   Úhas_eulerian_pathr   r   r   s    r   Útest_has_eulerian_path_cyclicz1TestHasEulerianPath.test_has_eulerian_path_cyclicƒ   s~   € ä×#Ñ#¤B×$5Ñ$5°aÓ$8Ô9Ð9Ð9Ü×#Ñ#¤B×$5Ñ$5°aÓ$8Ô9Ð9Ð9Ü×#Ñ#¤B×$6Ñ$6°qÓ$9Ô:Ð:Ð:Ü×#Ñ#¤B×$6Ñ$6°qÓ$9Ô:Ð:Ñ:r   c                 óÐ   — t        j                  t        j                  d«      «      sJ ‚t        j                  dt         j                  ¬«      }t        j                  |«      sJ ‚y )Nr   r   r\   )r   rc   r   r#   r&   s     r   Ú!test_has_eulerian_path_non_cyclicz5TestHasEulerianPath.test_has_eulerian_path_non_cyclicŠ   sG   € ä×#Ñ#¤B§M¡M°!Ó$4Ô5Ð5Ð5Ü�M‰M˜!¬"¯*©*Ô5ˆÜ×#Ñ# AÔ&Ð&Ñ&r   c                 óL  — t        j                  «       }|j                  g d¢«       t        j                  |«      rJ ‚t        j                  «       }|j                  g d¢«       t        j                  |«      sJ ‚|j	                  d«       t        j                  |«      rJ ‚y )N)r:   r7   r;   )r:   r7   r<   r   )r   r#   Úadd_edges_fromrc   Úadd_noder&   s     r   Ú%test_has_eulerian_path_directed_graphz9TestHasEulerianPath.test_has_eulerian_path_directed_graph�   s„   € ä�J‰J‹LˆØ	×ÑÒ1Ô2Ü×'Ñ'¨Ô*Ð*Ð*ô �J‰J‹LˆØ	×ÑÒ1Ô2Ü×#Ñ# AÔ&Ð&Ð&ð 	
�
‰
�1ŒÜ×'Ñ'¨Ô*Ð*Ð*Ð*r   r   c                 óX   — |j                  g d¢«       t        j                  |«      rJ ‚y )N)r:   r8   r2   ©rh   r   rc   r&   s     r   Ú+test_has_eulerian_path_not_weakly_connectedz?TestHasEulerianPath.test_has_eulerian_path_not_weakly_connectedŸ   s(   € à	×ÑÒ1Ô2Ü×'Ñ'¨Ô*Ð*Ð*Ð*r   c                 óX   — |j                  ddg«       t        j                  |«      rJ ‚y ©Nr:   r8   rl   r&   s     r   Ú2test_has_eulerian_path_unbalancedins_more_than_onezFTestHasEulerianPath.test_has_eulerian_path_unbalancedins_more_than_one¤   s,   € à	×Ñ˜& &Ð)Ô*Ü×'Ñ'¨Ô*Ð*Ð*Ð*r   N)r(   r)   r*   rd   rf   rj   r   ÚmarkÚparametrizer   r   r#   rm   rp   r+   r   r   ra   ra   ‚   s…   „ ò;ò'ò+ð ‡[�[×Ñ˜S 8 2§8¡8£:¨z¨r¯z©z«|Ð"<Ó=ñ+ó >ð+ð ‡[�[×Ñ˜S 8 2§8¡8£:¨z¨r¯z©z«|Ð"<Ó=ñ+ó >ñ+r   ra   c                   ó   — e Zd Zd„ Zy)ÚTestFindPathStartc                 ó:  — t         j                  j                  j                  }t        j                  dt         j
                  ¬«      } ||«      dk(  sJ ‚g d¢} |t        j
                  |«      «      dk(  sJ ‚g d¢} |t        j
                  |«      «      �J ‚y )Nr   r\   r   )r:   r7   r<   ©r   r   r   )r:   r7   r8   )r!   r   )r   Ú
algorithmsÚeulerÚ_find_path_startr   r#   )r   Úfind_path_startr   rA   s       r   Útestfind_path_startz%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   N)r(   r)   r*   r{   r+   r   r   rt   rt   ª   s   „ ó
:r   rt   c                   ó°   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Ze	j                  j                  dej                  dd	gfej                  dd
gff«      d„ «       Zy)ÚTestEulerianPathc                 óŽ   — g d¢}t        |t        j                  t        j                  |«      «      «      D ]  \  }}||k(  rŒJ ‚ y )N)rv   r:   r7   r<   )Úzipr   Úeulerian_pathr#   )r   ÚxÚe1Úe2s       r   Útest_eulerian_pathz#TestEulerianPath.test_eulerian_path¹   s?   € Ú,ˆÜ˜!œR×-Ñ-¬b¯j©j¸«mÓ<Ó=ò 	‰FˆB�Ø˜“8ˆO�8ñ	r   c                 óö  — t        j                  «       }g d¢}|j                  |«       |t        t        j                  |«      «      k(  sJ ‚|t        t        j                  |d¬«      «      k(  sJ ‚t        j                  t         j                  «      5  t        t        j                  |d¬«      «       d d d «       t        j                  t         j                  «      5  t        t        j                  |d¬«      «       d d d «       t        j                  t         j                  «      5  t        t        j                  |d¬«      «       d d d «       y # 1 sw Y   Œ¢xY w# 1 sw Y   ŒbxY w# 1 sw Y   y xY w)N©r7   r8   ©r   r   )r   r   r    r/   r   r   r   )r   r#   rh   r>   r€   r   r	   rW   ©r   r   Úresults      r   Ú test_eulerian_path_straight_linkz1TestEulerianPath.test_eulerian_path_straight_link¾   s  € Ü�J‰J‹LˆÚ1ˆØ	×Ñ˜Ô Øœœb×.Ñ.¨qÓ1Ó2Ò2Ð2Ð2Øœœb×.Ñ.¨q¸Ô;Ó<Ò<Ð<Ð<Ü�]‰]œ2×+Ñ+Ó,ñ 	0Ü”×!Ñ! !¨AÔ.Ô/÷	0ä�]‰]œ2×+Ñ+Ó,ñ 	0Ü”×!Ñ! !¨AÔ.Ô/÷	0ä�]‰]œ2×+Ñ+Ó,ñ 	0Ü”×!Ñ! !¨AÔ.Ô/÷	0ð 	0÷		0ð 	0ú÷	0ð 	0ú÷	0ð 	0ús$   Â!EÃ!!E#Ä-!E/ÅE Å#E,Å/E8c                 óF  — t        j                  «       }g d¢}|j                  |«       |t        t        j                  |«      «      k(  sJ ‚|t        t        j                  |d¬«      «      k(  sJ ‚t        j                  t         j                  «      5  t        t        j                  |d¬«      «       d d d «       t        j                  t         j                  «      5  t        t        j                  |d¬«      «       d d d «       y # 1 sw Y   ŒVxY w# 1 sw Y   y xY w)N)r3   r7   r3   r7   r8   r‡   ©r   r   r!   r/   r   r   )r   r$   rh   r>   r€   r   r	   rW   rˆ   s      r   Útest_eulerian_path_multigraphz.TestEulerianPath.test_eulerian_path_multigraphË   sÜ   € Ü�O‰OÓˆÚIˆØ	×Ñ˜Ô Øœœb×.Ñ.¨qÓ1Ó2Ò2Ð2Ð2Øœœb×.Ñ.¨q¸Ô;Ó<Ò<Ð<Ð<Ü�]‰]œ2×+Ñ+Ó,ñ 	0Ü”×!Ñ! !¨AÔ.Ô/÷	0ä�]‰]œ2×+Ñ+Ó,ñ 	0Ü”×!Ñ! !¨AÔ.Ô/÷	0ð 	0÷	0ð 	0ú÷	0ð 	0úó   Â!DÃ!!DÄDÄD c                 óŠ  — t        j                  «       }g d¢}g d¢}g d¢}|j                  |«       |t        t        j                  |«      «      k(  sJ ‚|t        t        j                  |d¬«      «      k(  sJ ‚|t        t        j                  |d¬«      «      k(  sJ ‚|t        t        j                  |d¬«      «      k(  sJ ‚y )N)r7   r8   r‡   ©r   r    )r8   r‡   r�   r7   )r‡   r�   r7   r8   r    r/   r!   r   )r   r#   rh   r>   r€   )r   r   r‰   Úresult2Úresult3s        r   Ú#test_eulerian_path_eulerian_circuitz4TestEulerianPath.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                 óš  — t        j                  «       }g d¢}g d¢}|j                  |«       t        t        j                  |«      «      ||fv sJ ‚|t        t        j                  |d¬«      «      k(  sJ ‚|t        t        j                  |d¬«      «      k(  sJ ‚t        j                  t         j                  «      5  t        t        j                  |d¬«      «       d d d «       t        j                  t         j                  «      5  t        t        j                  |d¬«      «       d d d «       y # 1 sw Y   ŒVxY w# 1 sw Y   y xY w)Nr†   ))r   r   rŒ   r2   r3   r    r/   r   r   r!   )r   r   rh   r>   r€   r   r	   rW   )r   r   r‰   r‘   s       r   Útest_eulerian_path_undirectedz.TestEulerianPath.test_eulerian_path_undirectedá   s  € Ü�H‰H‹JˆÚ1ˆÚ2ˆØ	×Ñ˜Ô Ü”B×$Ñ$ QÓ'Ó(¨V°WÐ,=Ñ=Ð=Ð=Øœœb×.Ñ.¨q¸Ô;Ó<Ò<Ð<Ð<Øœ$œr×/Ñ/°¸!Ô<Ó=Ò=Ð=Ð=Ü�]‰]œ2×+Ñ+Ó,ñ 	0Ü”×!Ñ! !¨AÔ.Ô/÷	0ä�]‰]œ2×+Ñ+Ó,ñ 	0Ü”×!Ñ! !¨AÔ.Ô/÷	0ð 	0÷	0ð 	0ú÷	0ð 	0ús   Â?!D5Ä!EÄ5D>ÅE
c                 óF  — t        j                  «       }g d¢}|j                  |«       |t        t        j                  |«      «      k(  sJ ‚|t        t        j                  |d¬«      «      k(  sJ ‚t        j                  t         j                  «      5  t        t        j                  |d¬«      «       d d d «       t        j                  t         j                  «      5  t        t        j                  |d¬«      «       d d d «       y # 1 sw Y   ŒVxY w# 1 sw Y   y xY w)N)r3   r7   r3   r7   r8   r‡   r!   r/   r   r    )r   rL   rh   r>   r€   r   r	   rW   rˆ   s      r   Ú(test_eulerian_path_multigraph_undirectedz9TestEulerianPath.test_eulerian_path_multigraph_undirectedî   sÛ   € Ü�M‰M‹OˆÚAˆØ	×Ñ˜Ô Øœœb×.Ñ.¨qÓ1Ó2Ò2Ð2Ð2Øœœb×.Ñ.¨q¸Ô;Ó<Ò<Ð<Ð<Ü�]‰]œ2×+Ñ+Ó,ñ 	0Ü”×!Ñ! !¨AÔ.Ô/÷	0ä�]‰]œ2×+Ñ+Ó,ñ 	0Ü”×!Ñ! !¨AÔ.Ô/÷	0ð 	0÷	0ð 	0ú÷	0ð 	0úrŽ   )Ú
graph_typer‰   )r   r    r   )r    r   r    rP   c                 óf   —  |ddg«      }t        j                  |d¬«      }t        |«      |k(  sJ ‚y )Nr:   r4   T)rO   )r   r€   r>   )r   r˜   r‰   r   Úanswers        r   Útest_eulerian_with_keysz(TestEulerianPath.test_eulerian_with_keysù   s7   € ñ ˜ Ð'Ó(ˆÜ×!Ñ! !¨$Ô/ˆÜ�F‹|˜vÒ%Ð%Ñ%r   N)r(   r)   r*   r„   rŠ   r�   r“   r•   r—   r   rq   rr   r   rL   r$   r›   r+   r   r   r}   r}   ¸   sm   „ òò
0ò	0ò	>ò0ò	0ð ‡[�[×ÑØ à�]‰]˜Y¨	Ð2Ð3Ø�_‰_˜y¨)Ð4Ð5ð	
óñ&óñ&r   r}   c                   ó<   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
y	)
ÚTestEulerizec                 óÌ   — t        j                  t        j                  «      5  t        j                  ddg«      }t        j
                  |«       d d d «       y # 1 sw Y   y xY wro   )r   r	   r   rW   Úfrom_edgelistÚeulerizer&   s     r   Útest_disconnectedzTestEulerize.test_disconnected  sI   € Ü�]‰]œ2×+Ñ+Ó,ñ 	Ü× Ñ  &¨&Ð!1Ó2ˆAÜ�K‰K˜ŒN÷	÷ 	ñ 	ús   ¤-AÁA#c                 óÂ   — t        j                  t        j                  «      5  t        j                  t        j
                  «       «       d d d «       y # 1 sw Y   y xY w©N)r   r	   r   r
   r    r   r   s    r   Útest_null_graphzTestEulerize.test_null_graph  s;   € Ü�]‰]œ2×6Ñ6Ó7ñ 	$Ü�K‰KœŸ™›
Ô#÷	$÷ 	$ñ 	$úó   ¤(AÁAc                 óÂ   — t        j                  t        j                  «      5  t        j                  t        j
                  «       «       d d d «       y # 1 sw Y   y xY wr£   )r   r	   r   r
   r    rL   r   s    r   Útest_null_multigraphz!TestEulerize.test_null_multigraph  s;   € Ü�]‰]œ2×6Ñ6Ó7ñ 	)Ü�K‰KœŸ™›Ô(÷	)÷ 	)ñ 	)úr¥   c                 óÄ   — t        j                  t        j                  «      5  t        j                  t        j
                  d«      «       d d d «       y # 1 sw Y   y xY w©Nr   )r   r	   r   rW   r    Úempty_graphr   s    r   Útest_on_empty_graphz TestEulerize.test_on_empty_graph  s>   € Ü�]‰]œ2×+Ñ+Ó,ñ 	+Ü�K‰KœŸ™ qÓ)Ô*÷	+÷ 	+ñ 	+ús   ¤)AÁAc                 óˆ   — t        j                  d«      }t        j                  |«      }t        j                  ||«      sJ ‚y r©   )r   r=   r    Úis_isomorphic©r   r   ÚHs      r   Útest_on_eulerianzTestEulerize.test_on_eulerian  s3   € Ü�N‰N˜1ÓˆÜ�K‰K˜‹NˆÜ×Ñ  1Ô%Ð%Ñ%r   c                 óÐ   — t        j                  t        j                  d«      «      }|j                  dd«       t        j                  |«      }t        j
                  |«      sJ ‚y )Nr   r   r    )r   rL   r=   r%   r    r   r®   s      r   Útest_on_eulerian_multigraphz(TestEulerize.test_on_eulerian_multigraph  sF   € Ü�M‰Mœ"Ÿ.™.¨Ó+Ó,ˆØ	�
‰
�1�aÔÜ�K‰K˜‹NˆÜ�~‰~˜aÔ Ð Ñ r   c                 óü   — t        j                  d«      }t        j                  t        j                  |«      «      sJ ‚t        j                  t        j                  t        j                  |«      «      «      sJ ‚y rV   )r   r   r   r    rL   r&   s     r   Útest_on_complete_graphz#TestEulerize.test_on_complete_graph#  sP   € Ü×Ñ˜aÓ ˆÜ�~‰~œbŸk™k¨!›nÔ-Ð-Ð-Ü�~‰~œbŸk™k¬"¯-©-¸Ó*:Ó;Ô<Ð<Ñ<r   c                 ó¼  — t        j                  d«      }|j                  dd«       |j                  dd«       |j                  dd«       |j                  dd«       |j                  dd«       |j                  dd«       |j                  dd	«       |j                  d	d
«       |j                  d
d«       |j                  dd«       |j                  dd«       |j                  dd«       |j                  dd«       t        j                  |«      rJ ‚t        j                  |«      }t        j                  |«      sJ ‚t        j
                  |«      dk(  sJ ‚y )Né   r   é   é   r   é   é   é   é   é   é   é   é   é   é   é'   )r   r=   r%   r   r    Únumber_of_edgesr&   s     r   Útest_on_non_eulerian_graphz'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   N)r(   r)   r*   r¡   r¤   r§   r«   r°   r²   r´   rÅ   r+   r   r   r�   r�     s*   „ òò
$ò)ò+ò&ò
!ò=ó
+r   r�   )rQ   r   Únetworkxr   rq   rr   r   r^   r   r   r-   rZ   ra   rt   r}   r�   r+   r   r   ú<module>rÇ      s“   ðÛ ã ã ð ‡�×Ñ˜˜rŸ~™~¨r×/AÑ/AÐBÓCñó Dð÷%ñ %÷@B@ñ B@÷J=ñ =÷%+ñ %+÷P:ñ :÷K&ñ K&÷\4+ò 4+r   