Ë
    D^(hê#  ã                   ó<   — d dl Z d dlZ G d„ d«      Z G d„ d«      Zy)é    Nc                   óB   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zy
)ÚTestImmediateDominatorsc                 óà  — t        j                  «       }|j                  d«       t        j                  t         j
                  t         j                  |d«       t        j                  |«      }t        j                  t         j
                  t         j                  |d«       t        j                  ddgg«      }t        j                  t         j                  t         j                  |d«       y ©Nr   é   )
ÚnxÚGraphÚadd_nodeÚpytestÚraisesÚNetworkXNotImplementedÚimmediate_dominatorsÚ
MultiGraphÚDiGraphÚNetworkXError©ÚselfÚGs     úf/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_dominance.pyÚtest_exceptionsz'TestImmediateDominators.test_exceptions   s”   € Ü�H‰H‹JˆØ	�
‰
�1ŒÜ�‰”b×/Ñ/´×1HÑ1HÈ!ÈQÔOÜ�M‰M˜!ÓˆÜ�‰”b×/Ñ/´×1HÑ1HÈ!ÈQÔOÜ�J‰J˜˜A˜�xÓ ˆÜ�‰”b×&Ñ&¬×(?Ñ(?ÀÀAÕFó    c                 óæ   — t        j                  «       }|j                  d«       t        j                  |d«      ddik(  sJ ‚|j	                  dd«       t        j                  |d«      ddik(  sJ ‚y ©Nr   )r   r   r
   r   Úadd_edger   s     r   Útest_singletonz&TestImmediateDominators.test_singleton   sd   € Ü�J‰J‹LˆØ	�
‰
�1ŒÜ×&Ñ& q¨!Ó,°°A°Ò6Ð6Ð6Ø	�
‰
�1�aÔÜ×&Ñ& q¨!Ó,°°A°Ò6Ð6Ñ6r   c           	      óä   — d}t        j                  |t        j                  «       ¬«      }t        j                  |d«      t	        |«      D �ci c]  }|t        |dz
  d«      “Œ c}k(  sJ ‚y c c}w ©Né   ©Úcreate_usingr   r   ©r   Ú
path_graphr   r   ÚrangeÚmax©r   Únr   Úis       r   Ú	test_pathz!TestImmediateDominators.test_path   sZ   € ØˆÜ�M‰M˜!¬"¯*©*«,Ô7ˆÜ×&Ñ& q¨!Ó,Ì5ÐQRË8Ö0TÀa°´C¸¸A¹¸q³MÑ1AÒ0TÒTÐTÑTùÒ0Tó   ÁA-c           	      óä   — d}t        j                  |t        j                  «       ¬«      }t        j                  |d«      t	        |«      D �ci c]  }|t        |dz
  d«      “Œ c}k(  sJ ‚y c c}w r   )r   Úcycle_graphr   r   r#   r$   r%   s       r   Ú
test_cyclez"TestImmediateDominators.test_cycle   sZ   € ØˆÜ�N‰N˜1¬2¯:©:«<Ô8ˆÜ×&Ñ& q¨!Ó,Ì5ÐQRË8Ö0TÀa°´C¸¸A¹¸q³MÑ1AÒ0TÒTÐTÑTùÒ0Tr)   c           
      ó  — d}|dkD  sJ ‚t        j                  |t        j                  «       ¬«      }t        j                  ||dz  «      t	        |dz  |«      D �ci c]  }|t        |dz
  |dz  «      “Œ c}k(  sJ ‚y c c}w ©Nr   r   r   é   r!   r%   s       r   Útest_unreachablez(TestImmediateDominators.test_unreachable!   s‚   € ØˆØ�1ŠuˆˆuÜ�M‰M˜!¬"¯*©*«,Ô7ˆÜ×&Ñ& q¨!¨q©&Ó1Ü+0°°a±¸Ó+;ö6
Ø&'ˆAŒs�1�q‘5˜!˜q™&Ó!Ñ!ò6
ò 
ð 	
ñ 
ùò 6
s   ÁA>c                 ó¨   — g d¢}t        j                  |«      }t        j                  |d«      t        dd«      D �ci c]  }|d“Œ c}k(  sJ ‚yc c}w )ú†
        Graph taken from figure 2 of "A simple, fast dominance algorithm." (2006).
        https://hdl.handle.net/1911/96345
        ©©r   r/   ©r/   r   ©é   r/   )é   r   )r   r7   )r   r8   r   r   é   N©r   r   r   r#   )r   Úedgesr   r'   s       r   Útest_irreducible1z)TestImmediateDominators.test_irreducible1)   sK   € ò
 AˆÜ�J‰J�uÓˆÜ×&Ñ& q¨!Ó,¼uÀQÈ»{Ö0K¸!°°A±Ò0KÒKÐKÑKùÒ0Ks   ½
Ac                 ó¬   — g d¢}t        j                  |«      }t        j                  |d«      }|t        dd«      D �ci c]  }|d“Œ c}k(  sJ ‚yc c}w )ú†
        Graph taken from figure 4 of "A simple, fast dominance algorithm." (2006).
        https://hdl.handle.net/1911/96345
        ©	r4   r5   ©r/   r7   r6   )r8   r/   )r8   r7   )r   r   ©r9   r8   )r9   r   r9   r   é   Nr:   )r   r;   r   Úresultr'   s        r   Útest_irreducible2z)TestImmediateDominators.test_irreducible22   sP   € ò YˆÜ�J‰J�uÓˆÜ×(Ñ(¨¨AÓ.ˆØ¬¨a°«Ö4 1˜!˜Q™$Ò4Ò4Ð4Ñ4ùÒ4s   ¿
Ac                 óæ   — g d¢}t        j                  |«      }t        j                  |d«      }|dddddddœk(  sJ ‚t        j                  |j                  d¬«      d«      }|dddddddœk(  sJ ‚y )	N©r4   r@   )r/   r8   )r/   r9   )r7   r   ©r8   r   )r   r/   r   r/   ©r   r/   r7   r8   r   r9   F©Úcopyr9   r   ©r   r   r   Úreverse©r   r;   r   rC   s       r   Útest_domrel_pngz'TestImmediateDominators.test_domrel_png=   sz   € âHˆÜ�J‰J�uÓˆÜ×(Ñ(¨¨AÓ.ˆØ˜Q 1¨¨q°Q¸1Ñ=Ò=Ð=Ð=ä×(Ñ(¨¯©¸¨Ó)>ÀÓBˆØ˜Q 1¨¨q°Q¸1Ñ=Ò=Ð=Ñ=r   c           
      óî   — g d¢}t        j                  |«      }t        j                  |d«      }|dddddddddœk(  sJ ‚t        j                  |j                  d¬«      d	«      }|dd	d	dd
d	dd	dœk(  sJ ‚y )N©	)r   r   r4   )r   r7   )r/   rB   )r7   r8   rG   )r8   r9   )r   rB   rA   r   r   r7   r8   ©r   r   r/   r7   r8   r   r9   rB   FrI   rB   r   rK   rM   s       r   Útest_boost_examplez*TestImmediateDominators.test_boost_exampleG   s…   € ò YˆÜ�J‰J�uÓˆÜ×(Ñ(¨¨AÓ.ˆØ˜Q 1¨¨q°Q¸1ÀÀqÑIÒIÐIÐIä×(Ñ(¨¯©¸¨Ó)>ÀÓBˆØ˜Q 1¨¨q°Q¸1ÀÀqÑIÒIÐIÑIr   N)Ú__name__Ú
__module__Ú__qualname__r   r   r(   r,   r0   r<   rD   rN   rR   © r   r   r   r      s4   „ òGò7òUò
Uò

òLò	5ò>ó	Jr   r   c                   óZ   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zy)ÚTestDominanceFrontiersc                 óà  — t        j                  «       }|j                  d«       t        j                  t         j
                  t         j                  |d«       t        j                  |«      }t        j                  t         j
                  t         j                  |d«       t        j                  ddgg«      }t        j                  t         j                  t         j                  |d«       y r   )
r   r	   r
   r   r   r   Údominance_frontiersr   r   r   r   s     r   r   z&TestDominanceFrontiers.test_exceptionsT   s”   € Ü�H‰H‹JˆØ	�
‰
�1ŒÜ�‰”b×/Ñ/´×1GÑ1GÈÈAÔNÜ�M‰M˜!ÓˆÜ�‰”b×/Ñ/´×1GÑ1GÈÈAÔNÜ�J‰J˜˜A˜�xÓ ˆÜ�‰”b×&Ñ&¬×(>Ñ(>ÀÀ1ÕEr   c                 ó  — t        j                  «       }|j                  d«       t        j                  |d«      dt	        «       ik(  sJ ‚|j                  dd«       t        j                  |d«      dt	        «       ik(  sJ ‚y r   )r   r   r
   rZ   Úsetr   r   s     r   r   z%TestDominanceFrontiers.test_singleton]   sh   € Ü�J‰J‹LˆØ	�
‰
�1ŒÜ×%Ñ% a¨Ó+°´3³5¨zÒ9Ð9Ð9Ø	�
‰
�1�aÔÜ×%Ñ% a¨Ó+°´3³5¨zÒ9Ð9Ñ9r   c                 óÚ   — d}t        j                  |t        j                  «       ¬«      }t        j                  |d«      t	        |«      D �ci c]  }|t        «       “Œ c}k(  sJ ‚y c c}w ©Nr   r   r   ©r   r"   r   rZ   r#   r\   r%   s       r   r(   z TestDominanceFrontiers.test_pathd   sP   € ØˆÜ�M‰M˜!¬"¯*©*«,Ô7ˆÜ×%Ñ% a¨Ó+Ä%ÈÃ(Ö/K¸Q°´3³5±Ò/KÒKÐKÑKùÒ/Kó   ÁA(c                 óÚ   — d}t        j                  |t        j                  «       ¬«      }t        j                  |d«      t	        |«      D �ci c]  }|t        «       “Œ c}k(  sJ ‚y c c}w r^   )r   r+   r   rZ   r#   r\   r%   s       r   r,   z!TestDominanceFrontiers.test_cyclei   sP   € ØˆÜ�N‰N˜1¬2¯:©:«<Ô8ˆÜ×%Ñ% a¨Ó+Ä%ÈÃ(Ö/K¸Q°´3³5±Ò/KÒKÐKÑKùÒ/Kr`   c                 óö   — d}|dkD  sJ ‚t        j                  |t        j                  «       ¬«      }t        j                  ||dz  «      t	        |dz  |«      D �ci c]  }|t        «       “Œ c}k(  sJ ‚y c c}w r.   r_   r%   s       r   r0   z'TestDominanceFrontiers.test_unreachablen   sh   € ØˆØ�1ŠuˆˆuÜ�M‰M˜!¬"¯*©*«,Ô7ˆÜ×%Ñ% a¨¨a©Ó0ÄuÈQÐRSÉVÐUVÓGWÖ4XÀ!°Q¼»±XÒ4XÒXÐXÑXùÒ4Xs   ÁA6c                 ó¾   — g d¢}t        j                  |«      }t        t        j                  |d«      j	                  «       «      dhdhdhdht        «       dœk(  sJ ‚y)r2   r3   r   r/   r   )r   r/   r7   r8   r   N)r   r   ÚdictrZ   Úitemsr\   ©r   r;   r   s      r   r<   z(TestDominanceFrontiers.test_irreducible1t   sc   € ò
 AˆÜ�J‰J�uÓˆÜ”B×*Ñ*¨1¨aÓ0×6Ñ6Ó8Ó9ØˆsØˆsØˆsØˆsÜ‹uñ>
ò 
ð 	
ñ 
r   c                 ó˜   — g d¢}t        j                  |«      }t        j                  |d«      dhddhdhddhdht        «       dœk(  sJ ‚y)r>   r?   r9   r/   r   r7   rH   N)r   r   rZ   r\   rf   s      r   rD   z(TestDominanceFrontiers.test_irreducible2ƒ   s^   € ò
 YˆÜ�J‰J�uÓˆÜ×%Ñ% a¨Ó+ØˆsØ�1ˆvØˆsØ�1ˆvØˆsÜ‹uñ0
ò 
ð 	
ñ 
r   c                 ó2  — g d¢}t        j                  |«      }t        j                  |d«      t        «       dhdhdhdht        «       dœk(  sJ ‚t        j                  |j	                  d¬«      d«      }|t        «       dhdhdhdht        «       dœk(  sJ ‚y )	NrF   r   r/   r   rH   FrI   r9   ©r   r   rZ   r\   rL   rM   s       r   rN   z&TestDominanceFrontiers.test_domrel_png“   s�   € âHˆÜ�J‰J�uÓˆÜ×%Ñ% a¨Ó+Ü‹uØˆsØˆsØˆsØˆsÜ‹uñ0
ò 
ð 	
ð 
ô ×'Ñ'¨¯	©	°u¨	Ó(=¸qÓAˆØœS›U¨ s°¨s¸°sÀ¸sÄsÃuÑMÒMÐMÑMr   c           
      óf  — g d¢}t        j                  |«      }t        j                  |d«      t        «       t        «       dhdhddhdhdht        «       dœk(  sJ ‚t        j                  |j	                  d¬«      d«      }t        «       t        «       dhdhddhdhdht        «       dœ}||k(  sJ ‚y )	NrP   r   rB   r8   rQ   FrI   r   ri   )r   r;   r   rC   Úexpecteds        r   rR   z)TestDominanceFrontiers.test_boost_example£   sÆ   € ò YˆÜ�J‰J�uÓˆÜ×%Ñ% a¨Ó+Ü‹uÜ‹uØˆsØˆsØ�1ˆvØˆsØˆsÜ‹uñ	0
ò 	
ð 		
ð 	
ô ×'Ñ'¨¯	©	°u¨	Ó(=¸qÓAˆä‹uÜ‹uØˆsØˆsØ�1ˆvØˆsØˆsÜ‹uñ	
ˆð ˜Ò!Ð!Ñ!r   c                 óÎ   — t        j                  «       }|j                  g d¢«       t        j                  |d«      }|t	        «       dhdhdht	        «       dhdhdhdhdœ	k(  sJ ‚y )N))Úb0Úb1©rn   Úb2©rp   Úb3)rr   rn   )rn   Úb5)rs   Úb6)rs   Úb8)rt   Úb7)ru   rv   )rv   rr   )rr   Úb4rm   rr   rv   rn   )	rw   rs   rt   rv   rm   rn   rp   rr   ru   ©r   r   Úadd_edges_fromrZ   r\   ©r   ÚgÚdfs      r   Útest_discard_issuez)TestDominanceFrontiers.test_discard_issueÀ   sx   € ä�J‰J‹LˆØ	×Ñòô	
ô ×#Ñ# A tÓ,ˆØÜ“%Ø�&Ø�&Ø�&Ü“%Ø�&Ø�&Ø�&Ø�&ñ

ò 

ð 
	
ñ 

r   c                 óÄ   — t        j                  «       }|j                  g d¢«       t        j                  |d«      }|t	        «       t	        «       t	        «       dœk(  sJ ‚y )N))ÚaÚb)r€   Úc)r€   r   r   )r   r€   r�   rx   rz   s      r   Ú	test_loopz TestDominanceFrontiers.test_loopß   sI   € Ü�J‰J‹LˆØ	×ÑÒ=Ô>Ü×#Ñ# A sÓ+ˆØœ3›5¤s£u´3³5Ñ9Ò9Ð9Ñ9r   c                 ó‚   — t        j                  «       }g d¢}|j                  |«       t        j                  |d«       y )N))Úentry_1rn   ro   rq   )rr   Úexit)Úentry_2rr   r„   )r   r   ry   rZ   )r   r{   r;   s      r   Útest_missing_immediate_domsz2TestDominanceFrontiers.test_missing_immediate_domså   s6   € ä�J‰J‹Lˆò
ˆð$ 	
×Ñ˜Ôô 	×Ñ˜q )Õ,r   c           	      ó  — t        j                  «       }g d¢}|j                  |«       t        j                  |d«      }t	        «       dhddhh d£h d£h d£ddht	        «       dœ}|D ]!  }t	        ||   «      t	        ||   «      k(  rŒ!J ‚ y )N))Úentryr…   )r‰   Ú1)rŠ   Ú2)r‹   Ú3)rŒ   Ú4)r�   Ú5)rŽ   Ú6)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…   rx   )r   r{   r;   r|   Úanswerr&   s         r   Útest_loops_largerz(TestDominanceFrontiers.test_loops_largerÿ   s”   € ô �J‰J‹Lˆò
ˆð 	
×Ñ˜ÔÜ×#Ñ# A wÓ/ˆä“UØ�Ø˜#�Ú#Ú(Ú#Ø˜#�Ü“Eñ	
ˆð ò 	0ˆAÜ�r˜!‘u“:¤ V¨A¡Y£Ó/Ð/Ð/ñ	0r   N)rS   rT   rU   r   r   r(   r,   r0   r<   rD   rN   rR   r}   r‚   r‡   r‘   rV   r   r   rX   rX   S   sH   „ òFò:òLò
Lò
Yò
ò
ò Nò "ò:
ò>:ò-ó40r   rX   )r   Únetworkxr   r   rX   rV   r   r   ú<module>r“      s&   ðÛ ã ÷JJñ JJ÷ZK0ò K0r   