Ë
    pPêjU'  ã                  óŠ   — d Z ddlmZ ddlmZmZmZ ddlmZm	Z	m
Z
mZ ddlmZmZ ddlmZ ddlmZmZmZmZ  G d„ d	e«      Zy
)z<Test cases for the constraint solver used in type inference.é    )Úannotations)Ú
SUBTYPE_OFÚSUPERTYPE_OFÚ
Constraint)ÚBoundsÚGraphÚsolve_constraintsÚtransitive_closure)ÚSuiteÚassert_equal)ÚTypeFixture)ÚTypeÚ	TypeVarIdÚTypeVarLikeTypeÚTypeVarTypec                  ó  — e Zd Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Z	dd„Z
dd	„Zdd
„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Zdd„Z	 	 d	 	 	 	 	 	 	 	 	 	 	 dd„Z	 	 	 	 	 	 	 	 	 	 	 	 d d„Zd!d„Zd!d„Zy)"Ú
SolveSuitec                ó"   — t        «       | _        y ©N)r   Úfx©Úselfs    úX/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/mypy/test/testsolve.pyÚsetUpzSolveSuite.setUp   s   € Ü“-ˆ�ó    c                ó*   — | j                  g g g «       y r   )Úassert_solver   s    r   Útest_empty_inputzSolveSuite.test_empty_input   s   € Ø×Ñ˜"˜b "Õ%r   c                óN  — | j                  | j                  j                  g| j                  | j                  j                  | j                  j                  «      g| j                  j                  g«       | j                  | j                  j                  g| j                  | j                  j                  | j                  j                  «      | j                  | j                  j                  | j                  j
                  «      g| j                  j                  g«       y r   )r   r   ÚtÚsupcÚaÚbr   s    r   Ú!test_simple_supertype_constraintsz,SolveSuite.test_simple_supertype_constraints   ó¬   € Ø×Ñ˜4Ÿ7™7Ÿ9™9˜+¨¯	©	°$·'±'·)±)¸T¿W¹W¿Y¹YÓ(GÐ'HÈ4Ï7É7Ï9É9È+ÔVØ×ÑØ�W‰W�Y‰YˆKØ�Y‰Y�t—w‘w—y‘y $§'¡'§)¡)Ó,¨d¯i©i¸¿¹¿	¹	À4Ç7Á7Ç9Á9Ó.MÐNØ�W‰W�Y‰YˆKõ	
r   c                óN  — | j                  | j                  j                  g| j                  | j                  j                  | j                  j                  «      g| j                  j                  g«       | j                  | j                  j                  g| j                  | j                  j                  | j                  j                  «      | j                  | j                  j                  | j                  j
                  «      g| j                  j
                  g«       y r   )r   r   r    Úsubcr"   r#   r   s    r   Útest_simple_subtype_constraintsz*SolveSuite.test_simple_subtype_constraints   r%   r   c                ób  — | j                  | j                  j                  g| j                  | j                  j                  | j                  j                  «      | j                  | j                  j                  | j                  j                  «      g| j                  j                  g«       y r   )r   r   r    r!   r#   r'   r"   r   s    r   Útest_both_kinds_of_constraintsz)SolveSuite.test_both_kinds_of_constraints#   óh   € Ø×ÑØ�W‰W�Y‰YˆKØ�Y‰Y�t—w‘w—y‘y $§'¡'§)¡)Ó,¨d¯i©i¸¿¹¿	¹	À4Ç7Á7Ç9Á9Ó.MÐNØ�W‰W�Y‰YˆKõ	
r   c                ó:  — | j                  | j                  j                  g| j                  | j                  j                  | j                  j                  «      | j                  | j                  j                  | j                  j                  «      gd g«       y r   )r   r   r    r!   r"   r'   r#   r   s    r   Útest_unsatisfiable_constraintsz)SolveSuite.test_unsatisfiable_constraints*   se   € à×ÑØ�W‰W�Y‰YˆK˜$Ÿ)™) D§G¡G§I¡I¨t¯w©w¯y©yÓ9¸4¿9¹9ÀTÇWÁWÇYÁYÐPT×PWÑPW×PYÑPYÓ;ZÐ[Ð^bÐ]cõ	
r   c                ób  — | j                  | j                  j                  g| j                  | j                  j                  | j                  j                  «      | j                  | j                  j                  | j                  j                  «      g| j                  j                  g«       y r   )r   r   r    r!   r#   r'   r   s    r   Útest_exactly_specified_resultz(SolveSuite.test_exactly_specified_result0   r+   r   c           	     ó(  — | j                  | j                  j                  | j                  j                  g| j	                  | j                  j                  | j                  j
                  «      | j	                  | j                  j                  | j                  j                  «      | j                  | j                  j                  | j                  j                  «      g| j                  j
                  | j                  j                  g«       y r   )	r   r   r    Úsr!   r#   Úcr'   r"   r   s    r   Útest_multiple_variablesz"SolveSuite.test_multiple_variables7   s¡   € Ø×ÑØ�W‰W�Y‰Y˜Ÿ™Ÿ	™	Ð"à—	‘	˜$Ÿ'™'Ÿ)™) T§W¡W§Y¡YÓ/Ø—	‘	˜$Ÿ'™'Ÿ)™) T§W¡W§Y¡YÓ/Ø—	‘	˜$Ÿ'™'Ÿ)™) T§W¡W§Y¡YÓ/ðð
 �W‰W�Y‰Y˜Ÿ™Ÿ	™	Ð"õ	
r   c                óŒ  — | j                  | j                  j                  gg | j                  j                  g«       | j                  | j                  j                  | j                  j                  gg | j                  j                  | j                  j                  g«       | j                  | j                  j                  | j                  j                  g| j                  | j                  j                  | j                  j                  «      g| j                  j                  | j                  j                  g«       y r   )r   r   r    Úa_uninhabitedr1   r!   r"   r   s    r   Útest_no_constraints_for_varz&SolveSuite.test_no_constraints_for_varB   sÑ   € Ø×Ñ˜4Ÿ7™7Ÿ9™9˜+ r¨D¯G©G×,AÑ,AÐ+BÔCØ×ÑØ�W‰W�Y‰Y˜Ÿ™Ÿ	™	Ð" B¨¯©×)>Ñ)>ÀÇÁ×@UÑ@UÐ(Vô	
ð 	×ÑØ�W‰W�Y‰Y˜Ÿ™Ÿ	™	Ð"Ø�Y‰Y�t—w‘w—y‘y $§'¡'§)¡)Ó,Ð-Ø�W‰W×"Ñ" D§G¡G§I¡IÐ.õ	
r   c                óö  — | j                  | j                  j                  g| j                  | j                  j                  | j                  j                  «      g| j                  j                  g«       | j                  | j                  j                  g| j                  | j                  j                  | j                  j                  «      | j                  | j                  j                  | j                  j                  «      g| j                  j                  g«       | j                  | j                  j                  g| j                  | j                  j                  | j                  j                  «      | j                  | j                  j                  | j                  j
                  «      g| j                  j                  g«       | j                  | j                  j                  g| j                  | j                  j                  | j                  j                  «      g| j                  j                  g«       | j                  | j                  j                  g| j                  | j                  j                  | j                  j                  «      | j                  | j                  j                  | j                  j                  «      g| j                  j                  g«       y r   )r   r   r    r!   Úanytr"   r'   r   s    r   Ú)test_simple_constraints_with_dynamic_typez4SolveSuite.test_simple_constraints_with_dynamic_typeM   sÀ  € Ø×Ñ˜4Ÿ7™7Ÿ9™9˜+¨¯	©	°$·'±'·)±)¸T¿W¹W¿\¹\Ó(JÐ'KÈdÏgÉgÏlÉlÈ^Ô\Ø×ÑØ�W‰W�Y‰YˆKØ�Y‰Y�t—w‘w—y‘y $§'¡'§,¡,Ó/°·±¸4¿7¹7¿9¹9ÀdÇgÁgÇlÁlÓ1SÐTØ�W‰W�\‰\ˆNô	
ð
 	×ÑØ�W‰W�Y‰YˆKØ�Y‰Y�t—w‘w—y‘y $§'¡'§,¡,Ó/°·±¸4¿7¹7¿9¹9ÀdÇgÁgÇiÁiÓ1PÐQØ�W‰W�\‰\ˆNô	
ð 	×Ñ˜4Ÿ7™7Ÿ9™9˜+¨¯	©	°$·'±'·)±)¸T¿W¹W¿\¹\Ó(JÐ'KÈdÏgÉgÏlÉlÈ^Ô\Ø×ÑØ�W‰W�Y‰YˆKØ�Y‰Y�t—w‘w—y‘y $§'¡'§,¡,Ó/°·±¸4¿7¹7¿9¹9ÀdÇgÁgÇlÁlÓ1SÐTØ�W‰W�\‰\ˆNõ	
r   c                óÀ  — | j                  | j                  j                  g| j                  | j                  j                  | j                  j                  «      | j                  | j                  j                  | j                  j                  «      g| j                  j                  g«       | j                  | j                  j                  g| j                  | j                  j                  | j                  j                  «      | j                  | j                  j                  | j                  j                  «      g| j                  j                  g«       y r   )r   r   r    r!   r"   r'   r8   r   s    r   Ú)test_both_normal_and_any_types_in_resultsz4SolveSuite.test_both_normal_and_any_types_in_resultsf   sÒ   € ð 	×ÑØ�W‰W�Y‰YˆKØ�Y‰Y�t—w‘w—y‘y $§'¡'§)¡)Ó,¨d¯i©i¸¿¹¿	¹	À4Ç7Á7Ç<Á<Ó.PÐQØ�W‰W�\‰\ˆNô	
ð 	×ÑØ�W‰W�Y‰YˆKØ�Y‰Y�t—w‘w—y‘y $§'¡'§,¡,Ó/°·±¸4¿7¹7¿9¹9ÀdÇgÁgÇiÁiÓ1PÐQØ�W‰W�\‰\ˆNõ	
r   c                óÖ   — | j                  | j                  j                  | j                  j                  gg | j                  j                  | j                  j                  gd¬«       y ©NT©Úallow_polymorphic)r   r   r    Úur5   r   s    r   Útest_poly_no_constraintsz#SolveSuite.test_poly_no_constraintsu   sO   € Ø×ÑØ�W‰W�Y‰Y˜Ÿ™Ÿ	™	Ð"ØØ�W‰W×"Ñ" D§G¡G×$9Ñ$9Ð:Ø"ð	 	õ 	
r   c                ót  — | j                  | j                  j                  | j                  j                  g| j	                  | j                  j                  | j                  j
                  «      g| j                  j
                  | j                  j                  g| j                  j                  gd¬«       y r=   )r   r   r    r@   r'   r"   r   s    r   Útest_poly_trivial_freez!SolveSuite.test_poly_trivial_free}   óv   € Ø×ÑØ�W‰W�Y‰Y˜Ÿ™Ÿ	™	Ð"Ø�Y‰Y�t—w‘w—y‘y $§'¡'§)¡)Ó,Ð-Ø�W‰W�Y‰Y˜Ÿ™Ÿ	™	Ð"Ø�W‰W�Y‰YˆKØ"ð 	õ 	
r   c                ót  — | j                  | j                  j                  | j                  j                  g| j	                  | j                  j                  | j                  j                  «      g| j                  j                  | j                  j                  g| j                  j                  gd¬«       y r=   )r   r   r    r@   r'   r   s    r   Útest_poly_free_pairzSolveSuite.test_poly_free_pair†   rD   r   c                óp  — | j                   j                  j                  | j                   j                  ¬«      }| j	                  | j                   j                  | j                   j
                  g| j                  | j                   j                  | j                   j
                  «      g||g|gd¬«       y )N)Úupper_boundTr>   )r   r    Úcopy_modifiedr#   r   Úubr'   )r   Út_primes     r   Útest_poly_free_pair_with_boundsz*SolveSuite.test_poly_free_pair_with_bounds�   s�   € Ø—'‘'—)‘)×)Ñ)°d·g±g·i±iÐ)Ó@ˆØ×ÑØ�W‰W�Y‰Y˜Ÿ™Ÿ
™
Ð#Ø�Y‰Y�t—w‘w—y‘y $§'¡'§*¡*Ó-Ð.Ø�gÐØˆIØ"ð 	õ 	
r   c                óJ  — | j                  | j                  j                  | j                  j                  g| j	                  | j                  j                  | j                  j                  «      g| j                  j
                  | j                  j
                  gg d¬«       y r=   )r   r   rJ   Úucr'   r5   r   s    r   Ú+test_poly_free_pair_with_bounds_uninhabitedz6SolveSuite.test_poly_free_pair_with_bounds_uninhabited™   sp   € Ø×ÑØ�W‰W�Z‰Z˜Ÿ™Ÿ™Ð$Ø�Y‰Y�t—w‘w—z‘z 4§7¡7§:¡:Ó.Ð/Ø�W‰W×"Ñ" D§G¡G×$9Ñ$9Ð:ØØ"ð 	õ 	
r   c           
     óò  — | j                  | j                  j                  | j                  j                  | j                  j                  g| j                  | j                  j                  | j                  j                  «      | j                  | j                  j                  | j                  j                  «      | j                  | j                  j                  | j                  j                  «      | j                  | j                  j                  | j                  j                  «      g| j                  j                  | j                  j                  | j                  j                  gd¬«       y r=   )	r   r   r    r@   r1   r!   r#   r'   r"   r   s    r   Útest_poly_bounded_chainz"SolveSuite.test_poly_bounded_chain¢   sÛ   € à×ÑØ�W‰W�Y‰Y˜Ÿ™Ÿ	™	 4§7¡7§9¡9Ð-à—	‘	˜$Ÿ'™'Ÿ)™) T§W¡W§Y¡YÓ/Ø—	‘	˜$Ÿ'™'Ÿ)™) T§W¡W§Y¡YÓ/Ø—	‘	˜$Ÿ'™'Ÿ)™) T§W¡W§Y¡YÓ/Ø—	‘	˜$Ÿ'™'Ÿ)™) T§W¡W§Y¡YÓ/ð	ð �W‰W�Y‰Y˜Ÿ™Ÿ	™	 4§7¡7§9¡9Ð-Ø"ð 	õ 
	
r   c           	     ó,  — | j                  | j                  j                  | j                  j                  g| j	                  | j                  j                  | j                  j                  «      | j	                  | j                  j                  | j                  j
                  «      | j                  | j                  j                  | j                  j                  «      g| j                  j
                  | j                  j
                  gd¬«       y r=   )r   r   r    r1   r'   r"   r!   r#   r   s    r   Ú#test_poly_reverse_overlapping_chainz.SolveSuite.test_poly_reverse_overlapping_chain°   ó©   € à×ÑØ�W‰W�Y‰Y˜Ÿ™Ÿ	™	Ð"à—	‘	˜$Ÿ'™'Ÿ)™) T§W¡W§Y¡YÓ/Ø—	‘	˜$Ÿ'™'Ÿ)™) T§W¡W§Y¡YÓ/Ø—	‘	˜$Ÿ'™'Ÿ)™) T§W¡W§Y¡YÓ/ðð
 �W‰W�Y‰Y˜Ÿ™Ÿ	™	Ð"Ø"ð 	õ 		
r   c           	     ó,  — | j                  | j                  j                  | j                  j                  g| j	                  | j                  j                  | j                  j                  «      | j	                  | j                  j                  | j                  j
                  «      | j                  | j                  j                  | j                  j                  «      g| j                  j
                  | j                  j                  gd¬«       y r=   )r   r   r    r1   r'   r#   r!   r"   r   s    r   Útest_poly_reverse_split_chainz(SolveSuite.test_poly_reverse_split_chain½   rT   r   c           
     óx  — | j                  | j                  j                  | j                  j                  | j                  j                  g| j                  | j                  j                  | j                  j                  «      | j                  | j                  j                  | j                  j                  «      | j                  | j                  j                  | j                  j                  «      | j                  | j                  j                  | j                  j                  «      gg d¢d¬«       y )N)NNNTr>   )	r   r   r    r@   r1   r!   r"   r'   r#   r   s    r   Útest_poly_unsolvable_chainz%SolveSuite.test_poly_unsolvable_chainÊ   s¼   € à×ÑØ�W‰W�Y‰Y˜Ÿ™Ÿ	™	 4§7¡7§9¡9Ð-à—	‘	˜$Ÿ'™'Ÿ)™) T§W¡W§Y¡YÓ/Ø—	‘	˜$Ÿ'™'Ÿ)™) T§W¡W§Y¡YÓ/Ø—	‘	˜$Ÿ'™'Ÿ)™) T§W¡W§Y¡YÓ/Ø—	‘	˜$Ÿ'™'Ÿ)™) T§W¡W§Y¡YÓ/ð	ò Ø"ð 	õ 
	
r   c           
     ó&  — | j                  | j                  j                  j                  | j                  j                  j                  g| j                  | j                  j                  | j                  j                  «      | j                  | j                  j                  | j                  j                  «      | j                  | j                  j                  | j                  j                  «      g| j                  j                  j                  | j                  j                  j                  fh| j                  j                  j                  | j                  j                  h| j                  j                  j                  | j                  j                  hi| j                  j                  j                  | j                  j                  h| j                  j                  j                  | j                  j                  hi«       y r   )	Úassert_transitive_closurer   r    Úidr1   r!   r#   r'   r"   r   s    r   Útest_simple_chain_closurez$SolveSuite.test_simple_chain_closureØ   s$  € Ø×&Ñ&Ø�W‰W�Y‰Y�\‰\˜4Ÿ7™7Ÿ9™9Ÿ<™<Ð(à—	‘	˜$Ÿ'™'Ÿ)™) T§W¡W§Y¡YÓ/Ø—	‘	˜$Ÿ'™'Ÿ)™) T§W¡W§Y¡YÓ/Ø—	‘	˜$Ÿ'™'Ÿ)™) T§W¡W§Y¡YÓ/ðð
 �g‰g�i‰i�l‰l˜DŸG™GŸI™IŸL™LÐ)Ð*Ø�W‰W�Y‰Y�\‰\˜DŸG™GŸI™I˜;¨¯©¯	©	¯©°t·w±w·y±y°kÐBØ�W‰W�Y‰Y�\‰\˜DŸG™GŸI™I˜;¨¯©¯	©	¯©°t·w±w·y±y°kÐBõ
	
r   c                óò  — | j                  | j                  j                  j                  | j                  j                  j                  g| j                  | j                  j                  | j                  j                  «      | j                  | j                  j                  | j                  j                  «      | j                  | j                  j                  | j                  j                  «      g| j                  j                  j                  | j                  j                  j                  fh| j                  j                  j                  t        «       | j                  j                  j                  | j                  j                  hi| j                  j                  j                  | j                  j                  h| j                  j                  j                  t        «       i«       y r   )
rZ   r   r    r[   r1   r'   r"   r!   r#   Úsetr   s    r   Útest_reverse_chain_closurez%SolveSuite.test_reverse_chain_closureå   s  € Ø×&Ñ&Ø�W‰W�Y‰Y�\‰\˜4Ÿ7™7Ÿ9™9Ÿ<™<Ð(à—	‘	˜$Ÿ'™'Ÿ)™) T§W¡W§Y¡YÓ/Ø—	‘	˜$Ÿ'™'Ÿ)™) T§W¡W§Y¡YÓ/Ø—	‘	˜$Ÿ'™'Ÿ)™) T§W¡W§Y¡YÓ/ðð
 �g‰g�i‰i�l‰l˜DŸG™GŸI™IŸL™LÐ)Ð*Ø�W‰W�Y‰Y�\‰\œ3›5 $§'¡'§)¡)§,¡,°·±·±°Ð<Ø�W‰W�Y‰Y�\‰\˜DŸG™GŸI™I˜;¨¯©¯	©	¯©´c³eÐ<õ
	
r   c           
     ó,  — | j                  | j                  j                  j                  | j                  j                  j                  g| j                  | j                  j                  | j                  j                  «      | j                  | j                  j                  | j                  j                  «      gt        «       | j                  j                  j                  t        «       | j                  j                  j                  | j                  j                  hi| j                  j                  j                  | j                  j                  h| j                  j                  j                  | j                  j                  hi«       y r   )rZ   r   r    r[   r1   r!   Úgtr'   Úgar^   r"   r   s    r   Ú!test_secondary_constraint_closurez,SolveSuite.test_secondary_constraint_closureò   sÛ   € Ø×&Ñ&Ø�W‰W�Y‰Y�\‰\˜4Ÿ7™7Ÿ9™9Ÿ<™<Ð(Ø�Y‰Y�t—w‘w—y‘y $§'¡'§*¡*Ó-¨t¯y©y¸¿¹¿¹ÀDÇGÁGÇJÁJÓ/OÐPÜ‹EØ�W‰W�Y‰Y�\‰\œ3›5 $§'¡'§)¡)§,¡,°·±·±°Ð=Ø�W‰W�Y‰Y�\‰\˜DŸG™GŸI™I˜;¨¯©¯	©	¯©°t·w±w·z±z°lÐCõ	
r   Nc                ó^   — |€g }t        |||¬«      \  }}t        ||«       t        ||«       y )Nr>   )r	   r   )r   ÚvarsÚconstraintsÚresultsÚ	free_varsr?   ÚactualÚactual_frees           r   r   zSolveSuite.assert_solveû   s<   € ð ÐØˆIÜ/Ø�+Ð1Bô
Ñˆ�ô 	�V˜WÔ%Ü�[ )Õ,r   c                óÄ   — t        ||«      \  }}}|D ]  }	|j                  |	|	f«       Œ t        ||«       t        t        |«      |«       t        t        |«      |«       y r   )r
   Úaddr   Údict)
r   re   rf   ÚgraphÚlowersÚuppersÚactual_graphÚactual_lowersÚactual_uppersÚvs
             r   rZ   z$SolveSuite.assert_transitive_closure  s_   € ô 6HÈÈkÓ5ZÑ2ˆ�m ]àò 	ˆAØ�I‰I�q˜!�fÕð	ä�\ 5Ô)Ü”T˜-Ó(¨&Ô1Ü”T˜-Ó(¨&Õ1r   c                ó$   — t        |t        |«      S r   )r   r   ©r   Útype_varÚbounds      r   r!   zSolveSuite.supc  s   € Ü˜(¤L°%Ó8Ð8r   c                ó$   — t        |t        |«      S r   )r   r   rv   s      r   r'   zSolveSuite.subc  s   € Ü˜(¤J°Ó6Ð6r   )ÚreturnÚNone)NF)re   zlist[TypeVarLikeType]rf   úlist[Constraint]rg   zlist[None | Type]rh   zlist[TypeVarLikeType] | Noner?   Úboolrz   r{   )re   zlist[TypeVarId]rf   r|   rn   r   ro   r   rp   r   rz   r{   )rw   r   rx   r   rz   r   )Ú__name__Ú
__module__Ú__qualname__r   r   r$   r(   r*   r-   r/   r3   r6   r9   r;   rA   rC   rF   rL   rO   rQ   rS   rV   rX   r\   r_   rc   r   rZ   r!   r'   © r   r   r   r      s  „ ó ó&ó
ó
ó
ó
ó
ó	
ó	
ó
ó2
ó
ó
ó
ó
ó
ó
ó
ó
ó
ó
ó
ó
ð 37Ø"'ð-à#ð-ð &ð-ð #ð	-ð
 0ð-ð  ð-ð 
ó-ð 2àð2ð &ð2ð ð	2ð
 ð2ð ð2ð 
ó2ó 9ô7r   r   N)Ú__doc__Ú
__future__r   Úmypy.constraintsr   r   r   Ú
mypy.solver   r   r	   r
   Úmypy.test.helpersr   r   Úmypy.test.typefixturer   Ú
mypy.typesr   r   r   r   r   r�   r   r   ú<module>r‰      s1   ðÙ Bå "ç AÑ Aß KÓ Kß 1Ý -ß DÓ DôS7�õ S7r   