
    >ie                    X   d dl mZ d dlZd dlZej        j        Zd dlm	Z
 d dlmZ  ej        d          Zej                            dg d          ej                            dg d          d	                         Zej                            dg d          ej                            dg d          d
                         Zej                            dg d          d             Zej                            d          ej                            dg d          d                         Zej                            dddg          d             Zej                            dddg          d             Zej                            dg d          d             Zd ZdS )    )annotationsN)	assert_eqcupy
idx_chunks)N         x_chunks))r      )r   r   )r	   r   )r	   r	   c                   t                               g dg dg dg          }t                               g d          }t                               g dg dg dg          }t          j        ||           }|t          j        ||          }t	          |d d |f         |           t	          |j        |d d f         |j                   d S 	N)
         (   2   )<   F   P   Z   d   )n   x            )r   r   r	   )r   r   r   )r   r   r   )r   r   r   chunks)r   arrayda
from_arrayr   T)r
   r   xidxexpects        Blib/python3.11/site-packages/dask/array/tests/test_cupy_slicing.pytest_index_with_int_dask_arrayr'      s     	

			4446O6O6OP	 	A **YYY

CZZ|||___EFFF
a)))AmC
333a3i   ac#qqq&k68$$$$$    c                   t                               g dg dg dg          }t          j        g d          }t                               g dg dg dg          }| t          j        ||           }|t          j        ||          }n|}t          |d d |f         |           t          |j        |d d f         |j                   t                               |          }|t          j        ||          }n|}t          |d d |f         |           t          |j        |d d f         |j                   d S r   )r   r   npr    r!   r   r"   )r
   r   r#   orig_idxr%   r$   s         r&   $test_index_with_int_dask_array_nep35r,   #   s[    	

			4446O6O6OP	 	A x			""HZZ|||___EFFFM!H---mHZ888a3i   ac#qqq&k68$$$ zz(##HmHZ888a3i   ac#qqq&k68$$$$$r(   r   )r	   r   r   c                   t          j        t                              g dg dg          |           }t          j        dd          }t	          ||d d f         |dd d f                    t	          |d d |f         |d d df                    t          j        t                              d          d          }t	          ||d d f         |dd d f                    t	          |d d |f         |d d df                    d S )N)r   r   r   )r   r   r   r   r	   )r    r!   r   r   r   )r   r#   idx0s      r&   !test_index_with_int_dask_array_0dr/   E   s    	djj,,,!=>>vNNNA=1%%%Daaaaj!AqqqD'"""a4j!AAAqD'""" =Aq111Daaaaj!AqqqD'"""a4j!AAAqD'"""""r(   z9dask.Array.nonzero() doesn't support non-NumPy arrays yet)r	   r   r      r   c                   t          j        t                              dd          |           }t	          ||                                         t                              g d                     t          j        t                              d          d|           }t	          ||                                         t                              g                      d S )Nr   r   )r2   r	   r    r   )shaper   )r    r!   r   aranger   nonzeror   
zeros_like)r   as     r&   (test_index_with_int_dask_array_nanchunksr:   S   s     	dkk"a((888Aa		ndjj88999
djjnnAf===Aa		ndjjnn-----r(   r   r0   c                   t          j        d| t                              d                    }t          j        ddgd          }t          ||         t                              dd	g                     t          j        t                              ddg          d          }t          ||         t                              dd	g                     d S )
Nr0   r4   r   liker3   r	   r   r   r   )r    r6   r   r   r!   r   r   r9   r$   s      r&   'test_index_with_int_dask_array_negindexr@   ^   s    
	!FB888A
-R
+
+
+Cafdjj!Q(())) -

B8,,Q
7
7
7Cafdjj!Q(()))))r(   c                   t          j        d| t                              d                    }t          j        dgd          }t          j        t                    5  ||                                          d d d            n# 1 swxY w Y   t          j        dgd          }t          j        t                    5  ||                                          d d d            n# 1 swxY w Y   t          j        t                              dg          d          }t          j        t                    5  ||                                          d d d            n# 1 swxY w Y   t          j        t                              dg          d          }t          j        t                    5  ||                                          d d d            d S # 1 swxY w Y   d S )Nr0   r4   r<   r	   r   )	r    r6   r   r   r!   pytestraises
IndexErrorcomputer?   s      r&   )test_index_with_int_dask_array_indexerrorrG   i   s   
	!FB888A
-A
&
&
&C	z	"	"  	#              
-Q
'
'
'C	z	"	"  	#               -

A3
2
2
2C	z	"	"  	#              
-

B4((
3
3
3C	z	"	"  	#                 sH    BBBC))C-0C-<E##E'*E'6GG"%G"dtype)int8int16int32int64uint8uint16uint32uint64c                &   t          j        t                              g d          d          }t          j        t	          j        ddg                              |           d          }t          ||         t                              ddg                     t          j        t                              ddg                              |           d          }t          ||         t                              ddg                     d S )N)r   r   r   r   r3   r   r	   r   r   r   )r    r!   r   r   r*   astyper   )rH   r9   r$   s      r&   %test_index_with_int_dask_array_dtypesrS   |   s     	djj!1!1!1222>>>A
-!Q((//66q
A
A
ACafdjj"b**+++ -

Aq6**11%88
C
C
CCafdjj"b**+++++r(   c                 P   d } t          j        ddt                              d                    }t          j        d| fiddt
          j        	          }||         }t          j        t                    5  |
                                 d
d
d
           d
S # 1 swxY w Y   d
S )zWTest that when the indices are a dask array
    they are not accidentally computed
    c                     t                      )N)NotImplementedErrorr4   r(   r&   crashz7test_index_with_int_dask_array_nocompute.<locals>.crash   s    !###r(   r   r3   r4   r<   )r#   r   r#   ))r   )namer   rH   N)r    r6   r   r   Arrayr*   rL   rC   rD   rV   rF   )rW   r#   r$   results       r&   (test_index_with_int_dask_array_nocomputer[      s    
$ $ $ 		!BTZZ^^444A
(Huh'c'
R
R
RCsVF	*	+	+                   s   9BB"B)
__future__r   numpyr*   rC   markgpu
pytestmark
dask.arrayr   r    dask.array.utilsr   importorskipr   parametrizer'   r,   r/   skipr:   r@   rG   rS   r[   r4   r(   r&   <module>rf      sT   " " " " " "     [_
       & & & & & &v6"" 77%E%E%EFF% % GF 87%& 77%E%E%EFF% % GF 87%@ 999--
# 
# .-
# MNN???33. . 43 ON. Aq6*** * +** Aq6**  +*$ WWW , , ,    r(   