ó
    „ñ:i!  ã                   óì   • S SK Jr  S SKrS SKJrJrJr  S SKrS SKrS SK	J
r
JrJrJrJr  S SKJrJr  S SKJrJr  S SKJr  S SKrS rS	 rS
 rS r " S S\\5      r\S:X  a  \R<                  " 5         gg)é    )ÚpartialN)ÚchainÚproductÚstarmap)ÚjitÚ	literallyÚnjitÚtypeofÚTypingError)ÚutilsÚtypes)ÚTestCaseÚMemoryLeakMixin)Ú_header_leadc                 óH   • U R                   U R                  U R                  4$ ©N)ÚstartÚstopÚstep)Úsls    ÚZ/srv/projetos/modelo_ml_acdoc/venv/lib/python3.13/site-packages/numba/tests/test_slices.pyÚslice_passingr      s   € Ø�8‰8�R—W‘W˜bŸg™gÐ%Ð%ó    c                  óX   • [        U 6 nUR                  UR                  UR                  4$ r   )Úslicer   r   r   )Úargsr   s     r   Úslice_constructorr      s$   € Ü	�ˆ€BØ�8‰8�R—W‘W˜bŸg™gÐ%Ð%r   c                 ó   • [        U 6 nX   $ r   )r   )r   Úlr   s      r   Úslice_construct_and_user       s   € Ü	�ˆ€BØ‰5€Lr   c                 ó    • U R                   " U6 $ r   )Úindices)ÚsÚindargss     r   Úslice_indicesr%      s   € Ø�9Š9�gÐÐr   c                   óP   • \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rSrg)Ú
TestSlicesé   c           	      óú  ^ ^• UU 4S jn[         R                  nU* S-
  n[        SS9" [        5      m/ SQnSU4SS/nS	S
/n[        R
                  " UUU5       H  u  u  pxu  pšu  p¼U" XyX¸X¬5        M     SU4SS/nSU4SS/nSS/n[        R
                  " UUU5       H  u  u  pxu  pšu  p¼U" XyX¸X¬5        M     T R                  [        5         T" [        SSS5      5        SSS5        g! , (       d  f       g= f)z3
Check passing a slice object to a Numba function.
c                 óT   >• [        XU5      nT" U5      nT	R                  XsXE45        g r   )r   ÚassertPreciseEqual)
ÚaÚbÚcÚdÚeÚfr   ÚgotÚcfuncÚselfs
           €€r   ÚcheckÚ,TestSlices.test_slice_passing.<locals>.check$   s)   ø€ Ü�q˜Q“ˆBÙ˜“)ˆCØ×#Ñ# C¨Q¨Õ3r   é   T©Únopython))Nr   ©é*   r;   ©éÿÿÿÿr=   N)é	   r>   )éõÿÿÿr?   ©Nr7   )é   rA   r:   r<   )éôÿÿÿrB   g      ø?)	ÚsysÚmaxsizer   r   Ú	itertoolsr   ÚassertRaisesÚ	TypeErrorr   )r4   r5   Ú	maxposintÚ	maxnegintÚstart_casesÚ
stop_casesÚ
step_casesr,   r/   r-   r0   r.   r1   r3   s   `            @r   Útest_slice_passingÚTestSlices.test_slice_passing   s  ù€ ö
	4ô
 —K‘Kˆ	Ø�J ‘Nˆ	Ü˜TÒ"¤=Ó1ˆò 6ˆØ˜YÐ'¨°Ð<ˆ
Ø Ð*ˆ
Ü&/×&7Ò&7¸Ø8BØ8Bö'DÑ"‰FˆQ‘F�Q™F˜Qñ �!˜˜aÖ#ñ'Dð ˜iÐ(¨(°HÐ=ˆØ˜YÐ'¨°Ð<ˆ
Ø 
Ð+ˆ
Ü&/×&7Ò&7¸Ø8BØ8Bö'DÑ"‰FˆQ‘F�Q™F˜Qñ �!˜˜aÖ#ñ'Dð ×ÑœyÕ)Ù”%˜˜Q Ó"Ô#÷ *×)Ö)ús   ÃC,Ã,
C:c                 óœ  • [         R                  nU* S-
  n[        R                  " S5      n[	        SS9" [
        5      n[	        SS9" [        5      nSSUS44SSSUS44S	SUS44S
SSSUS44SSSUS44SSXS44SSUS44SUSS44S4 H?  u  pgU" U6 nU R                  X‡5        [        Xc5      n	U" Xc5      n
U R                  Xš5        MA     g)zA
Test the 'happy path' for slice() constructor in nopython mode.
r7   é
   Tr8   r   r   ))é   )r   rQ   r7   )NN)r7   N))Né   )r   rR   r7   ))r7   rR   )r7   rR   r7   )NNé   rS   ))NrR   rS   )r   rR   rS   )r7   NrS   )©r7   rR   rS   rT   )NNr=   r=   )rP   Nr=   )NrQ   r=   rQ   )©rP   rQ   r=   rU   N)rC   rD   ÚnpÚaranger   r   r    r+   )r4   rH   rI   r,   r3   Ú	cfunc_user   Úexpectedr2   ÚusageÚcusages              r   Útest_slice_constructorÚ!TestSlices.test_slice_constructorC   s  € ô —K‘Kˆ	Ø�J ‘Nˆ	Ü�IŠI�b‹MˆÜ˜TÒ"Ô#4Ó5ˆÜ Ò&Ô'>Ó?ˆ	à�q˜) QÐ'Ð(ØØ˜A˜y¨!Ð,Ð-Ø˜˜I qÐ)Ð*Ø"ØØ˜q )¨QÐ/Ð0Ø%Ø˜A˜y¨!Ð,Ð-Ø"Ø 	°bÐ9Ð:Ø˜b )¨RÐ0Ð1Ø˜Y¨¨2Ð.Ð/Ø&ó
‰NˆDñ  ˜�,ˆCØ×#Ñ# CÔ2Ü+¨DÓ4ˆEÙ˜tÓ'ˆFØ×#Ñ# EÖ2ò)
r   c                 óø  ^
• Sm
[         R                  " U
4S j[        S5       5       5      n[        R                  " S5      n[        SS9" [        5      nU R                  5         U H&  n [        XB5      nU R                  XS" XB5      5        M(     g! [         aÝ  n[        U5      nU R                  [        U5      SR                  U5      5        U R                  [        5       nU" XB5        SSS5        O! , (       d  f       O= fU R!                  ["        [        WR$                  5      5        U R!                  S	R'                  S
 U 5       5      [        UR$                  5      5         SnAGM  SnAf[(         aw  n	U R                  [+        U	5      5       nU" XB5        SSS5        O! , (       d  f       O= fU R!                  [        U	5      [        WR$                  5      5         Sn	A	GMŒ  Sn	A	ff = f)zG
Test that slice constructor behaves same in python and compiled code.
)Nr=   r   r7   c              3   ó8   >#   • U  H  n[        TUS 9v •  M     g7f))ÚrepeatN)r   )Ú.0ÚnÚoptionss     €r   Ú	<genexpr>Ú:TestSlices.test_slice_constructor_cases.<locals>.<genexpr>g   s   øé € ð (
Ú08¨1ŒG�G AÖ&²ùs   ƒrQ   rP   Tr8   z7slice expected at (most|least) (3|1) arguments?, got {}Nz, c              3   óJ   #   • U  H  n[        [        U5      5      v •  M     g 7fr   )Ústrr
   )ra   Úargs     r   rd   re   ‚   s   é € Ð?º$°3œc¤&¨£+×.Ð.º$ùs   ‚!#)r   Úfrom_iterableÚrangerV   rW   r   r    Údisable_leak_checkr+   rG   ÚlenÚassertRegexrg   ÚformatrF   r   ÚassertInr   Ú	exceptionÚjoinÚ	ExceptionÚtype)r4   Ú	arg_casesÚarrayr3   r   rY   Ú	py_type_eÚn_argsÚnumba_eÚpy_erc   s             @r   Útest_slice_constructor_casesÚ'TestSlices.test_slice_constructor_casesb   s”  ø€ ð #ˆÜ×'Ò'ô (
Ü05°a´ó(
ó 
ˆ	ô —	’	˜"“ˆä˜TÒ"Ô#:Ó;ˆà×ÑÔ!ÛˆDðFÜ2°4Ó?�ð8 ×'Ñ'¨°%¸Ó2DÖEò= øô ó ô ˜T›�Ø× Ñ Ü˜	“NØNß‘V˜F“^ôð
 ×&Ñ&¤{Ô3°wÙ˜$Ô&÷ 4×3Ö3úà—‘Ü Ü˜×)Ñ)Ó*ôð —‘Ø—I‘IÑ?¹$Ó?Ó?Ü˜×)Ñ)Ó*÷ó ûô ó Ø×&Ñ&¤t¨D£zÔ2°gÙ˜$Ô&÷ 3×2Ö2úà—‘Ü˜“IÜ˜×)Ñ)Ó*÷ó ûðúsV   Á,BÂ
G9ÂA
E5Ã'	C9Ã0	E5Ã9
DÄA+E5Å5G9ÆG4Æ	F.Æ%	G4Æ.
F<Æ85G4Ç4G9c                 ód  • [        [        [        [        [	        SS5      S5      [        [	        SS5      S5      [        [	        SS5      S5      5      5      n[	        SS5      n[        SS9" [        5      n[        X5       H(  u  pE [        XE5      nU R                  Xc" XE5      5        M*     g! [         av  nU R                  [        U5      5       nU" XE5        SSS5        O! , (       d  f       O= fU R                  [        U5      [        WR                  5      5         SnAM¨  SnAff = f)	zITest that a numba slice returns same result for .indices as a python one.éûÿÿÿrQ   r   éþÿÿÿrS   Tr8   N)r   r   r   r   rj   r   r%   r+   rr   rF   rs   ro   rg   rp   )	r4   ÚslicesÚlengthsr3   r#   r   rY   ry   rx   s	            r   Útest_slice_indicesÚTestSlices.test_slice_indices�   sø   € äÜÜÜ”e˜B “l GÓ,Ü”e˜B “l GÓ,Ü”e˜B “l GÓ,óó
ˆô ˜˜A“,ˆä˜TÒ"¤=Ó1ˆä˜FÖ,‰DˆAð
?Ü(¨Ó.�ð ×'Ñ'¨°%¸³+Ö>ò -øô ó Ø×&Ñ&¤t¨D£zÔ2°gÙ˜!”K÷ 3×2Ö2úà—‘Ü˜“IÜ˜×)Ñ)Ó*÷ò ûðús0   ÂB/Â/
D/Â9D*Ã	C%Ã	D*Ã%
C3Ã/5D*Ä*D/c                 óâ  • [        SS9" [        5      nU R                  [        5       nU" [	        S5      SSS5        SSS5        U R                  S[        WR                  5      5        U R                  [        5       nU" [	        SSS5      S	5        SSS5        U R                  S
[        S	5      -  [        UR                  5      5        g! , (       d  f       N—= f! , (       d  f       NQ= f)zTests for specific error cases.Tr8   Nr7   rR   rS   z.indices() takes exactly one argument (3 given)r   g333333ó?z/'%s' object cannot be interpreted as an integer)	r   r%   rF   r   r   ro   rg   rp   r
   )r4   Úcslice_indicesr0   s      r   Útest_slice_indices_examplesÚ&TestSlices.test_slice_indices_examplesª   s³   € ä dÒ+¬MÓ:ˆà×Ñœ{Ô+¨qÙœ5 ›;¨¨1¨aÔ0÷ ,à�‰Ø=Ü�—‘Óô	
ð
 ×Ñœ{Ô+¨qÙœ5  t¨QÓ/°Ô5÷ ,à�‰Ø=ÄÀsÃÑKÜ�—‘Óõ	
÷ ,Õ+ú÷ ,Õ+ús   ©CÂ C Ã
CÃ 
C.c                 óÖ   ^^• Sm[         R                  " / SQ/ SQ/ SQ5       HC  m[        T6 m[        SS9UU4S j5       nU R	                  U" 5       UR                  5       5        ME     g )N)r7   rR   rS   é   )Nr7   rR   rS   )Nr7   rR   r=   r~   Tr8   c                  ó   >• T T   $ r   © )Ú
test_tupleÚtss   €€r   Útest_fnÚ4TestSlices.test_slice_from_constant.<locals>.test_fnÄ   s   ø€ à! "‘~Ð%r   )rE   r   r   r   ÚassertEqualÚpy_func)r4   r�   r‹   rŒ   s     @@r   Útest_slice_from_constantÚ#TestSlices.test_slice_from_constant¼   sb   ù€ Ø!ˆ
ä×#Ò#Úš_Ò.Bö
ˆBô ˜�ˆBä˜$Ñõ&ó  ð&ð ×Ñ™W›Y¨¯©Ó(9Ö:ò
r   c                 óD  • [         R                  R                  [        SS S 5      5      n[         R                  R                  [        S S S 5      5      n[         R                  R                  [        SS S 5      5      nU R	                  X5        U R                  X5        g r@   )r   ÚmiscÚSliceLiteralr   ÚassertNotEqualr�   )r4   Úsl1Úsl2Úsl3s       r   Útest_literal_slice_distinctÚ&TestSlices.test_literal_slice_distinctÊ   su   € Ü�j‰j×%Ñ%¤e¨A¨t°TÓ&:Ó;ˆÜ�j‰j×%Ñ%¤e¨D°$¸Ó&=Ó>ˆÜ�j‰j×%Ñ%¤e¨A¨t°TÓ&:Ó;ˆà×Ñ˜CÔ%Ø×Ñ˜Õ"r   c                 ó  • [         S 5       n[        SSS5      [        SS5      [        S5      [        S SS5      [        SS S5      [        S S S5      [        S 5      [        S S S 5      4nU H  nU R                  X1" U5      5        M     g )Nc                 ó   • [        U 5      $ r   ©r   )Úxs    r   r1   Ú/TestSlices.test_literal_slice_boxing.<locals>.fÕ   ó   € ä˜Q“<Ðr   r7   rˆ   rR   )r	   r   r�   )r4   r1   r   r   s       r   Útest_literal_slice_boxingÚ$TestSlices.test_literal_slice_boxingÒ   s‘   € ô 
ñ	 ó 
ð	 ô �!�Q˜‹NÜ�!�Q‹KÜ�!‹HÜ�$˜˜1ÓÜ�!�T˜1ÓÜ�$˜˜aÓ Ü�$‹KÜ�$˜˜dÓ#ð	
ˆó ˆBØ×Ñ˜R  2£Ö'ò r   c                 ól   ^• [        SSS5      m[        U4S j5       nU R                  TU" 5       5        g )Nr7   rR   rS   c                  ó   >• T $ r   rŠ   ©Úzs   €r   ÚfooÚ2TestSlices.test_literal_slice_freevar.<locals>.fooë   s   ø€ àˆHr   )r   r	   r�   )r4   r¨   r§   s     @r   Útest_literal_slice_freevarÚ%TestSlices.test_literal_slice_freevarç   s8   ø€ ô �!�Q˜‹NˆÜ	ô	ó 
ð	ð 	×Ñ˜™C›EÕ"r   c           	      ó  • [        5       S 5       n[        S5      nU R                  [        5       nU" [	        S S U* S-
  5      5        S S S 5        U R                  S[        WR                  5      5        g ! , (       d  f       N4= f)Nc                 ó   • [        U 5      $ r   rž   r¦   s    r   r¨   Ú1TestSlices.test_literal_slice_maxint.<locals>.fooõ   r¡   r   l            r7   zInt value is too large)r	   ÚintrF   Ú
ValueErrorr   ro   rg   rp   )r4   r¨   Úmaxvalr0   s       r   Útest_literal_slice_maxintÚ$TestSlices.test_literal_slice_maxintñ   ss   € ô 
‹ñ	 ó 
ð	 ô �U“ˆØ×ÑœzÔ*¨aÙ”�d˜D 6 '¨!¡)Ó,Ô-÷ +à�‰Ø$Ü�—‘Óõ	
÷ +Õ*ús   ±A7Á7
BrŠ   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__rM   r\   rz   r�   r…   r‘   rš   r¢   rª   r²   Ú__static_attributes__rŠ   r   r   r'   r'      s7   † ò"$òH3ò>+FòZ?ò6
ò$;ò#ò(ò*#õ
r   r'   Ú__main__)Ú	functoolsr   rE   r   r   r   rC   ÚnumpyrV   Únumbar   r   r	   r
   r   Ú
numba.corer   r   Únumba.tests.supportr   r   Únumba.core.types.functionsr   Úunittestr   r   r    r%   r'   r´   ÚmainrŠ   r   r   Ú<module>rÂ      sf   ðÝ Û ß -Ñ -Û 
ã ç ;Õ ;ß #ß 9Ý 3Û ò&ò&òòôb
� (ô b
ðJ ˆzÓØ‡M‚M…Oð r   