
    sh4                        S SK r S SKrS SKrS SKJr  S SKJr  \" S5       " S S\ R                  5      5       r	\" S5       " S S\ R                  5      5       r
\" S5       " S	 S
\ R                  5      5       r\" S5       " S S\ R                  5      5       r\" S5       " S S\ R                  5      5       r\S:X  a  \ R                  " 5         gg)    N)Array)skip_on_cudasimz/Tests internals of the CUDA driver device arrayc                   V    \ 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Srg)TestSlicing   c                     SnU Ht  nUR                   U   UR                   U   :w  d  M%  UR                  S:X  a  UR                  S:X  a  MG  U R                  SUR                   < SUR                   < 35        Mv     g )N)C_CONTIGUOUSF_CONTIGUOUSr   zcontiguous flag mismatch:
got=z
expect=)flagssizefail)selfarrnparrattrsattrs        {/Users/tiagomarins/Projetos/claudeai/copy_bank/venv/lib/python3.13/site-packages/numba/cuda/tests/nocuda/test_dummyarray.pyassertSameContigTestSlicing.assertSameContig   sb    .Dyy%++d"3388q=UZZ1_ II"yy%++7 8     c                    [         R                  " S5      n[        R                  " SUR                  UR
                  UR                  R                  5      nU R                  X!5        SnU Hh  nXS  nX$S  nU R                  Xe5        U R                  UR                  UR                  5        U R                  UR
                  UR
                  5        Mj     g N   r   )r         
npemptyr   	from_descshapestridesdtypeitemsizer   assertEqualr   r   r   xxxexpectgots          r   test_slice0_1dTestSlicing.test_slice0_1d   s    ooaemm#kk224c)A2YFb'C!!#.SYY5S[[&..9 r   c                    [         R                  " S5      n[        R                  " SUR                  UR
                  UR                  R                  5      nSnU Hj  nUS U nUS U nU R                  Xe5        U R                  UR                  UR                  5        U R                  UR
                  UR
                  5        Ml     g r   r   r'   s          r   test_slice1_1dTestSlicing.test_slice1_1d&   s    ooaemm#kk224A2AYFbq'C!!#.SYY5S[[&..9 r   c                    [         R                  " S5      n[        R                  " SUR                  UR
                  UR                  R                  5      nSn[        R                  " X35       Hj  u  pEXU nX$U nU R                  Xv5        U R                  UR                  UR                  5        U R                  UR
                  UR
                  5        Ml     g r   r   r    r   r!   r"   r#   r$   r%   	itertoolsproductr   r&   )r   r   r   r(   r)   yr*   r+   s           r   test_slice2_1dTestSlicing.test_slice2_1d2   s    ooaemm#kk224%%b-DAQZF(C!!#.SYY5S[[&..9 .r   c                    [         R                  " S5      n[        R                  " SUR                  UR
                  UR                  R                  5      nSnU Hh  nXS  nX$S  nU R                  Xe5        U R                  UR                  UR                  5        U R                  UR
                  UR
                  5        Mj     [        R                  " X35       Hv  u  pGXS 2US 24   nX$S 2US 24   nU R                  Xe5        U R                  UR                  UR                  5        U R                  UR
                  UR
                  5        Mx     g )Nr      r   )r   r   r   r   )r   r    r   r!   r"   r#   r$   r%   r   r&   r3   r4   r   r   r   r(   r)   r*   r+   r5   s           r   test_slice0_2dTestSlicing.test_slice0_2d@   s    ooaemm#kk224A2YFb'C!!#.SYY5S[[&..9  %%b-DA2qr6]Fb!"f+C!!#.SYY5S[[&..9 .r   c                    [         R                  " S5      n[        R                  " SUR                  UR
                  UR                  R                  5      nSnU Hj  nUS U nUS U nU R                  UR                  UR                  5        U R                  UR
                  UR
                  5        U R                  Xe5        Ml     [        R                  " X35       Hx  u  pGUS U2S U24   nUS U2S U24   nU R                  UR                  UR                  5        U R                  UR
                  UR
                  5        U R                  Xe5        Mz     g Nr9   r   )r   r   r   )r   r    r   r!   r"   r#   r$   r%   r&   r   r3   r4   r;   s           r   test_slice1_2dTestSlicing.test_slice1_2dS   s    ooaemm#kk224A2AYFbq'CSYY5S[[&..9!!#.  %%b-DA2A2rr6]Fbqb"1"f+CSYY5S[[&..9!!#. .r   c                    [         R                  " S5      n[        R                  " SUR                  UR
                  UR                  R                  5      nSn[        R                  " X3X35       Hu  u  pEpgXU2Xg24   nX$U2Xg24   n	U R                  X5        U R                  U	R                  UR                  5        U R                  U	R
                  UR
                  5        Mw     [        R                  " X35       Hv  u  pUWW2WW24   nX$U2Xg24   n	U R                  X5        U R                  U	R                  UR                  5        U R                  U	R
                  UR
                  5        Mx     g r?   r2   )r   r   r   r(   stuvr*   r+   r)   r5   s               r   test_slice2_2dTestSlicing.test_slice2_2df   s6    ooaemm#kk224#++BB;JA!Q38_Fc13h-C!!#.SYY5S[[&..9 < %%b-DA1Q3!8_Fc13h-C!!#.SYY5S[[&..9 .r   c                    [         R                  " S5      n[        R                  " SUR                  UR
                  UR                  R                  5      nSnU Hp  nUS S U2   nUS S U2   nU R                  Xe5        U R                  UR                  UR                  5        U R                  UR
                  UR
                  5        Mr     g )Nr   r   r   r   r   r   r   r'   s          r   test_strided_1dTestSlicing.test_strided_1d{   s    ooaemm#kk224A3Q3ZFcc(C!!#.SYY5S[[&..9 r   c                    [         R                  " S5      n[        R                  " SUR                  UR
                  UR                  R                  5      nSn[        R                  " X35       H|  u  pEUS S U2S S U24   nUS S U2S S U24   nU R                  Xv5        U R                  UR                  UR                  5        U R                  UR
                  UR
                  5        M~     g )Nr9   r   rJ   r2   )r   r   r   r(   abr*   r+   s           r   test_strided_2dTestSlicing.test_strided_2d   s     ooaemm#kk224%%b-DA3Q3!8_Fcc3Q3h-C!!#.SYY5S[[&..9 .r   c                    [         R                  " S5      n[        R                  " SUR                  UR
                  UR                  R                  5      nSn[        R                  " X3U5       H  u  pEnUS S U2S S U2S S U24   nUS S U2S S U2S S U24   nU R                  X5        U R                  UR                  UR                  5        U R                  UR
                  UR
                  5        M     g )N)r   r:      r   rJ   r2   )	r   r   r   r(   rN   rO   cr*   r+   s	            r   test_strided_3dTestSlicing.test_strided_3d   s    #ooaemm#kk224 ((4GA!3Q3!SqS=)Fcc3Q3!m$C!!#.SYY5S[[&..9 5r   c                 x   [         R                  " S5      n[         R                  " USS9n[        R                  " SUR
                  UR                  UR                  5      nU R                  UR                  S   UR                  S   5        U R                  UR                  S   UR                  S   5        g )N)r   r      )r   r   r   )axesr   r	   r
   )
r   r    	transposer   r!   r"   r#   r%   r&   r   )r   zr   s      r   test_issue_2766TestSlicing.test_issue_2766   s    HHYLL+ooa!))QZZ@0#))N2KL0#))N2KLr    N)__name__
__module____qualname____firstlineno__r   r,   r/   r6   r<   r@   rG   rK   rP   rU   r\   __static_attributes__r^   r   r   r   r      s:    
8:
:
::&/&:*
:
:
:Mr   r   c                   \    \ 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S rSrg)TestReshape   c                    [         R                  " S5      n[        R                  " SUR                  UR
                  UR                  R                  5      nUR                  SS5      nUR                  SS5      S   nU R                  UR                  UR                  5        U R                  UR
                  UR
                  5        g )Nr9   r   r:   r   
r   r    r   r!   r"   r#   r$   r%   reshaper&   r   r   r   r*   r+   s        r   test_reshape_2d2dTestReshape.test_reshape_2d2d   s     ooaemm#kk224q!$kk!Q"FLL1fnn5r   c                    [         R                  " S5      n[        R                  " SUR                  UR
                  UR                  R                  5      nUR                  S5      nUR                  S5      S   nU R                  UR                  UR                  5        U R                  UR
                  UR
                  5        g )Nr9   r      rh   rj   s        r   test_reshape_2d1dTestReshape.test_reshape_2d1d   s     ooaemm#kk224u%kk% #FLL1fnn5r   c                    [         R                  " S5      n[        R                  " SUR                  UR
                  UR                  R                  5      nUR                  SSS5      nUR                  SSS5      S   nU R                  UR                  UR                  5        U R                  UR
                  UR
                  5        g )NrX   r   r:   r   r:   rX   r   rh   rj   s        r   test_reshape_3d3dTestReshape.test_reshape_3d3d   s    #ooaemm#kk224q!Q'kk!Q"1%FLL1fnn5r   c                    [         R                  " S5      n[        R                  " SUR                  UR
                  UR                  R                  5      nUR                  SS5      nUR                  SS5      S   nU R                  UR                  UR                  5        U R                  UR
                  UR
                  5        g )Nrr   r      r:   rh   rj   s        r   test_reshape_3d2dTestReshape.test_reshape_3d2d   s    #ooaemm#kk224ua(kk%#A&FLL1fnn5r   c                    [         R                  " S5      n[        R                  " SUR                  UR
                  UR                  R                  5      nUR                  S5      nUR                  S5      S   nU R                  UR                  UR                  5        U R                  UR
                  UR
                  5        g )Nrr   r   <   rh   rj   s        r   test_reshape_3d1dTestReshape.test_reshape_3d1d   s    #ooaemm#kk224y)kk)$Q'FLL1fnn5r   c                    [         R                  " S5      n[        R                  " SUR                  UR
                  UR                  R                  5      nUR                  SS5      nUR                  SS5      S   nU R                  UR                  UR                  5        U R                  UR
                  UR
                  5        g )Nr9   r   r   r   rh   rj   s        r   test_reshape_infer2d2d"TestReshape.test_reshape_infer2d2d   s     ooaemm#kk224r1%kk"a #FLL1fnn5r   c                    [         R                  " S5      n[        R                  " SUR                  UR
                  UR                  R                  5      nUR                  S5      nUR                  S5      S   nU R                  UR                  UR                  5        U R                  UR
                  UR
                  5        g )Nr9   r   r   rh   rj   s        r   test_reshape_infer2d1d"TestReshape.test_reshape_infer2d1d   s     ooaemm#kk224r"kk"oa FLL1fnn5r   c                    [         R                  " S5      n[        R                  " SUR                  UR
                  UR                  R                  5      nUR                  SSS5      nUR                  SSS5      S   nU R                  UR                  UR                  5        U R                  UR
                  UR
                  5        g )Nrr   r   r:   r   r   rh   rj   s        r   test_reshape_infer3d3d"TestReshape.test_reshape_infer3d3d   s    #ooaemm#kk224q"a(kk!R#A&FLL1fnn5r   c                    [         R                  " S5      n[        R                  " SUR                  UR
                  UR                  R                  5      nUR                  SS5      nUR                  SS5      S   nU R                  UR                  UR                  5        U R                  UR
                  UR
                  5        g )Nrr   r   rX   r   rh   rj   s        r   test_reshape_infer3d2d"TestReshape.test_reshape_infer3d2d   s    #ooaemm#kk224q"%kk!R #FLL1fnn5r   c                    [         R                  " S5      n[        R                  " SUR                  UR
                  UR                  R                  5      nUR                  S5      nUR                  S5      S   nU R                  UR                  UR                  5        U R                  UR
                  UR
                  5        g )Nrr   r   r   rh   rj   s        r   test_reshape_infer3d1d"TestReshape.test_reshape_infer3d1d   s    #ooaemm#kk224r"kk"oa FLL1fnn5r   c                    [         R                  " S5      n[        R                  " SUR                  UR
                  UR                  R                  5      nU R                  [        5       nUR                  SSS5        S S S 5        U R                  S[        WR                  5      5        g ! , (       d  f       N4= f)Nrr   r   r   rX   z&can only specify one unknown dimensionr   r    r   r!   r"   r#   r$   r%   assertRaises
ValueErrorri   assertInstr	exception)r   r   r   raisess       r   test_reshape_infer_two_unknowns+TestReshape.test_reshape_infer_two_unknowns  s    #ooaemm#kk224 z*fKKB" +>&**+	- +*s   -B//
B=c                    [         R                  " S5      n[        R                  " SUR                  UR
                  UR                  R                  5      nU R                  [        5       nUR                  SS5        S S S 5        SnU R                  U[        WR                  5      5        g ! , (       d  f       N6= f)Nrr   r   r      z.cannot infer valid shape for unknown dimensionr   )r   r   r   r   expected_messages        r    test_reshape_infer_invalid_shape,TestReshape.test_reshape_infer_invalid_shape  s    #ooaemm#kk224 z*fKKA + L&F,<,<(=>	 +*s   -B00
B>r^   N)r_   r`   ra   rb   rk   ro   rs   rw   r{   r~   r   r   r   r   r   r   rc   r^   r   r   re   re      s>    6666666666-	?r   re   c                        \ rS rSrS rS rSrg)TestSqueezei  c                 ~  ^  [         R                  " S5      n[        R                  " SUR                  UR
                  UR                  R                  5      nU 4S jnU" X!5        U" UR                  5       S   UR                  5       5        S H)  nU" UR                  US9S   UR                  US95        M+     g )Nr   r   r   r   r   rX   r   c                    > TR                  U R                  UR                  5        TR                  U R                  UR                  5        g )N)r&   r"   r#   )arr1arr2r   s     r   _assert_equal_shape_strides=TestSqueeze.test_squeeze.<locals>._assert_equal_shape_strides!  s3    TZZ4T\\4<<8r   )r   r   r   )r   r   )r   r   )r   r   )r   r   r   axis)	r   r    r   r!   r"   r#   r$   r%   squeeze)r   r   r   r   r   s   `    r   test_squeezeTestSqueeze.test_squeeze  s    +,oou{{EMM5;;+?+?
	9 	$C/#CKKM!$4emmoF@D'&q)5==d=+C Ar   c                    [         R                  " S5      n[        R                  " SUR                  UR
                  UR                  R                  5      nU R                  [        5         UR                  SS9  S S S 5        U R                  [        5         UR                  SS9  S S S 5        g ! , (       d  f       N<= f! , (       d  f       g = f)Nr   r   r   r   )r   rX   )r   r    r   r!   r"   r#   r$   r%   r   r   r   )r   r   r   s      r   test_squeeze_invalid_axis%TestSqueeze.test_squeeze_invalid_axis+  s    +,oou{{EMM5;;+?+?
 z*KKQK +z*KKVK$ +* +***s   -B3C3
C
Cr^   N)r_   r`   ra   rb   r   r   rc   r^   r   r   r   r     s     %r   r   c                   ,    \ rS rSrS rS rS rS rSrg)
TestExtenti6  c                 8   [         R                  " S5      n[        R                  " SUR                  UR
                  UR                  R                  5      nUR                  u  p4U R                  XC-
  UR                  UR                  R                  -  5        g Nr   r   r   r    r   r!   r"   r#   r$   r%   extentr&   r   r   r   r   rC   es        r   test_extent_1dTestExtent.test_extent_1d8  sh    ooaemm#kk224zz

U[[-A-A ABr   c                 8   [         R                  " S5      n[        R                  " SUR                  UR
                  UR                  R                  5      nUR                  u  p4U R                  XC-
  UR                  UR                  R                  -  5        g )Nr9   r   r   r   s        r   test_extent_2dTestExtent.test_extent_2d?  si     ooaemm#kk224zz

U[[-A-A ABr   c                    [         R                  " S5      n[        R                  " SUR                  UR
                  UR                  R                  5      n[        UR                  5       5      u  nU R                  X2R                  5        g r   )r   r    r   r!   r"   r#   r$   r%   listiter_contiguous_extentr&   r   r   r   r   exts       r   test_extent_iter_1dTestExtent.test_extent_iter_1dF  s_    ooaemm#kk224S//12jj)r   c           
         [         R                  " S5      n[        R                  " SUR                  UR
                  UR                  R                  5      n[        UR                  5       5      u  nU R                  X2R                  5        U R                  [        [        US S S2   R                  5       5      5      S5        g )Nr9   r   r   )r   r    r   r!   r"   r#   r$   r%   r   r   r&   r   lenr   s       r   test_extent_iter_2dTestExtent.test_extent_iter_2dM  s     ooaemm#kk224S//12jj)T#cc("A"A"CDEqIr   r^   N)	r_   r`   ra   rb   r   r   r   r   rc   r^   r   r   r   r   6  s    CC*Jr   r   c                       \ rS rSrS rSrg)TestIterateiW  c                     Sn[         R                  " U5      n[        R                  " SUR                  UR
                  UR                  R                  5      nSnU H  nUnM     g )Nr:   r   )r   r    r   r!   r"   r#   r$   r%   )r   Nr   r   r)   vals         r   test_for_loopTestIterate.test_for_loopY  sS    ooaemm#kk224 CA r   r^   N)r_   r`   ra   rb   r   rc   r^   r   r   r   r   W  s    
r   r   __main__)unittestr3   numpyr   numba.cuda.cudadrv.dummyarrayr   numba.cuda.testingr   TestCaser   re   r   r   r   r_   mainr^   r   r   <module>r      s      / . BC[M(## [M D[M| BCn?(## n? Dn?b BC%(## % D%8 BCJ"" J DJ@ BC(##  D zMMO r   