
    _MhQ                     .   d dl Z d dlZd dlZd dlmZmZ d dlmZm	Z	m
Z
 ddlmZ ee	gZe j        d             Zej                            de           G d d	                      Zej                            de           G d
 d                      ZdS )    N)assert_allcloseassert_equal)	csr_array	dok_arraySparseEfficiencyWarning   )toarrayc              #      K   dV  t          | d          r| j        sdS | j                                        }d| _        |                                  t          || j        d           dS )zDChecks that sorted indices property is retained through an operationNhas_sorted_indicesFz'Expected sorted indices, found unsorted)hasattrr   indicescopysort_indicesr   )Xr   s     b/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/scipy/sparse/tests/test_indexing1d.pycheck_remains_sortedr      sw       
EEE1*++ 13G innG ANN!)%NOOOOO    	spcreatorc                   &    e Zd Zd Zd Zd Zd ZdS )TestGetSet1Dc                    t          j        g d          } ||          }|j        d         }t          | |          D ]}t	          ||d f                                         ||d f                    t	          |d |f                                         |d |f                    t	          |d d |f                                         |d d |f                    d S )N      r   r   )nparrayshaperanger   r	   )selfr   DANjs         r   test_None_indexzTestGetSet1D.test_None_index   s    HYYYIaLLGAJr1 	G 	GA1d7++--qDz:::47++--qqz:::4q=)1133QtT1}5EFFFF	G 	Gr   c                     |t          j        d                              dd                    }|d         j        dk    sJ |dddf         j        dk    sJ |d dddf         j        d	k    sJ |d
         j        dk    sJ |d         j        d	k    sJ |d         j        dk    sJ |d         j        dk    sJ |d dd d f         j        dk    sJ |dd d d f         j        dk    sJ |dd d d f         j        dk    sJ t          j        t          d          5  |d          d d d            n# 1 swxY w Y   t          j        t          d          5  |d ddd df          d d d            n# 1 swxY w Y   t          j        t          d          5  |dddd d f          d d d            n# 1 swxY w Y   t          j        t          d          5  |dd dd d f          d d d            d S # 1 swxY w Y   d S )N   r   r   )r      r   r   r'   r   )r   r   )Nr   r'   )Nr   r'   N)Nr   )r   r   )r   N)r   r   zOnly 1D or 2D arraysmatch)Nr'   r   NN)r   arangereshapendimr   pytestraises
IndexErrorr   r   r!   s      r   test_getitem_shapezTestGetSet1D.test_getitem_shape%   s]   Ibi&&..q!4455w|q    AaCy$&&&&q!A#$....}"d****!"(F2222 z6))))z6))))q!!!}"f,,,,D!!!}"f,,,,AAAt}"f,,,,]:-CDDD 	& 	&$%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&]:-CDDD 	" 	"dAaCq !!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"]:-CDDD 	 	ac122tm	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]:-CDDD 	! 	!abb!T4  	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!sH   #	D88D<?D<E99E= E=F;;F?F?!G==HHc                 
   t          j        g d          } ||          }|j        d         }t          | |          D ]}t	          ||         ||                    dD ]J}t          j        t          d          5  |                    |           d d d            n# 1 swxY w Y   K|d         dk    sJ t          j        t          d          5  |                    d           d d d            d S # 1 swxY w Y   d S )	Nr   r   )r   z index (.*) out of (range|bounds)r)   )r   r   r   )	r   r   r   r   r   r.   r/   r0   __getitem__)r   r   r    r!   r"   r#   ijs          r   test_getelementzTestGetSet1D.test_getelement=   s   HYYYIaLLGAJr1 	% 	%A1qt$$$$ 	" 	"Bz1STTT " "b!!!" " " " " " " " " " " " " " " w!||||]:-OPPP 	  	 MM$	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 s$   >B  B$	'B$	C88C<?C<c                 ,   t           j        } |d|          }t           j                                        5 }|                    t
          d            |d          |d<    |d          |d<    |d          |d<    |d	          |d
<   d|d<    |d          |d<    |d          |d<   dD ]K}t          j        t          d          5  |	                    |d           d d d            n# 1 swxY w Y   L	 d d d            d S # 1 swxY w Y   d S )Nr&   dtype2Changing the sparsity structure of .* is expensiver   r   r   g      "@      	      )ir(   )   rC   )   zout of (range|bounds)r)        ^@)
r   float64testingsuppress_warningsfilterr   r.   r/   r0   __setitem__)r   r   r<   r!   supr7   s         r   test_setelementzTestGetSet1D.test_setelementO   s   
Ie5)))Z))++ 	-sJJ'D   588AaD588AaD5::AaDE!HHAbEAaDU1XXAcFE!HHAbE- - -]:5LMMM - -MM"e,,,- - - - - - - - - - - - - - --	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-s6   BD	C/#D	/C33D	6C37D		DDN)__name__
__module____qualname__r$   r2   r8   rN    r   r   r   r      sS        G G G! ! !0     $- - - - -r   r   c                       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d Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd ZdS )TestSlicingAndFancy1Dc                 >   t          j        g d          } ||          }t          |d                                         |d                    dD ]J}t	          j        t          d          5  |                    |           d d d            n# 1 swxY w Y   Kd S )Nr   rR   )r   r   r   z"out of (range|bounds)|many indicesr)   )r   r   r   r	   r.   r/   r0   r6   )r   r   r    r!   r7   s        r   test_get_array_indexz*TestSlicingAndFancy1D.test_get_array_indexj   s    HYYYIaLLQrU]]__ae,,,  	" 	"Bz1UVVV " "b!!!" " " " " " " " " " " " " " "	" 	"s   /BB	B	c                    t           j        } |d|          }t           j                                        5 }|                    t
          d            |d          |t          j        d          <    |d          |t          j        d          <   t          |                                g d           dD ]K}t          j
        t          d	
          5  |                    |d           d d d            n# 1 swxY w Y   Lddg dt          j        g d          fD ]M}d}t          j
        t          |
          5  |                    d|           d d d            n# 1 swxY w Y   N	 d d d            d S # 1 swxY w Y   d S )Nr:   r;   r=   g      @   g       @)r   r   r   r   r   r   r'   r   r   r   r   r   )rE   )rD   zindex .* out of (range|bounds)r)   rG   rR   rV   )r   r'   r   &Trying to assign a sequence to an itemr   )r   rH   rI   rJ   rK   r   r   r   r	   r.   r/   r0   rL   
ValueError)r   r   r<   r!   rM   r7   vmsgs           r   test_set_array_indexz*TestSlicingAndFancy1D.test_set_array_indexs   sE   
Ie5)))Z))++ 	(sJJ'D   #U3ZZAbhqkkN"U3ZZAbhqkkN&J&J&JKKK% - -]:5UVVV - -MM"e,,,- - - - - - - - - - - - - - - &)))RXiii-@-@A ( (>]:S999 ( (MM!Q'''( ( ( ( ( ( ( ( ( ( ( ( ( ( ((	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	(sZ   BE>C:.E>:C>>E>C>?E>E$E>$E((E>+E(,E>>FFc                 p   t           |dt          j                  dd         j        t          j                   t           |dt          j                  ddd         j        t          j                   t           |dt          j                  d d          j        t          j                   d S )N
   r;   r   rB   )rZ   r   r'   )r   r   int16r<   int32int64)r   r   s     r   test_dtype_preservationz-TestSlicingAndFancy1D.test_dtype_preservation   s    YYuBH555ac:@"(KKKYYt28444QqU;A28LLLYYt28444QQQ7=rxHHHHHr   c                    t          j        d          } ||          }t          |d d          |d d                                                     t          |dd         |dd                                                    t          j        g d          } ||          }t          |dd         |dd                                                    t          j        g d          } ||          }t          |dd         |dd                                                    t          |dd          |dd                                                     t          |d d          |d d                                                     t          |t          d                    |t          d                                                               d S )	Ng      I@r'   rB   )	r   r   rZ   r   r   r   r   r   r   r   r   )r   r   r   r   r   r@   )r   r+   r   r	   r   slice)r   r   Br!   Cr    EFs           r   test_get_1d_slicez'TestSlicingAndFancy1D.test_get_1d_slice   s   IcNNIaLLQqqqT1QQQ4<<>>***QqsVQqsV^^--...H00011IaLLQqsVQqsV^^--... H___%%IaLLQqsVQqsV^^--...QrssVQrssV^^--...QqqqT1QQQ4<<>>***QuT{{^QuT{{^%;%;%=%=>>>>>r   c                 v   t          j        d          } ||          }t          |d         |d                    t          |d         |d                    t          |t          j        d                   |d                    t          |d d                                          |d d                     t          |dd                                         |dd                    t          |ddd                                         |ddd                    t          t          j        d          t          j        d          d           }t          ||                                         |dd                    t           j        }|d d         |d	d         |dd          |dd d         |d
d         |dd         |ddd         |dd d         |d dd         dd	|d d          |d	d         dddt          j        d          t          j        d          g}t          |          D ]\  }}||         }	||         }
|
j	        dk    rt          |	|
t          |                     ?|	j        dk    r|
j        dk    rVt          |	                                |
t          |                     d S )N2   r'   r@   rB   r&   r   r   r         r>   r   rR   )r   r+   r   r   r	   rh   int8s_	enumerater   reprsize)r   r   ri   r!   srv   slicesr#   axys              r   test_slicing_idx_slicez,TestSlicingAndFancy1D.test_slicing_idx_slice   s|   IbMMIaLL 	QqT1Q4   QrUAbE"""Qrx||_ae,,, 	QqqqT\\^^QqqqT***QqtW__&&!B$000QqAvY&&((!AbF)444 "'!**bgajj$//QqT\\^^QqsV,,, URaR&"QqS'2abb62add8RU)R!WQqV*bBiEQrEQ111r!A#wB(2,,	- f%% 		: 		:DAq!A!Aw"}}Q477++++6Q;;16Q;; aa9999		: 		:r   c                     t          j        d          } ||          }t          |d                                         |d                    t          |d                                         |d                    d S )Nro   .).)r   r+   r   r	   r   r   ri   r!   s       r   test_ellipsis_1d_slicingz.TestSlicingAndFancy1D.test_ellipsis_1d_slicing   sf    IbMMIaLLQsV^^%%qv...QtW__&&$00000r   c                     |d          }t          j        d          }t           j                                        5 }|                    t
          d           ||fD ]&}d|dd<   d|dd<   d|dd<   d|dd <   d|dd d	<   '	 d d d            n# 1 swxY w Y   t          |                                |           d S )
NrB   r=   r   r   r   r'   rA   r   rp   )r   zerosrI   rJ   rK   r   r   r	   )r   r   r!   ri   rM   rj   s         r   test_slice_scalar_assignz.TestSlicingAndFancy1D.test_slice_scalar_assign   s   IdOOHTNNZ))++ 
	sJJ'D   V  !A#!A#!A#!""!%R%
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 
	 	QYY[[!$$$$$s   ABBBc                    d}t          d          t          d dd          t          dd          fD ]} ||          }t          j                                        5 }|                    t
          d           d||<   d d d            n# 1 swxY w Y   t          j        |          }d||<   d	|}t          |                                ||
           d S )Nra   r   rb   r   rB   r@   r=   r   zidx=)err_msg)	rh   r   rI   rJ   rK   r   r   r   r	   )r   r   r   idxr!   rM   ri   r^   s           r   test_slice_assign_2z)TestSlicingAndFancy1D.test_slice_assign_2   s    !HHeD"a00%2,,? 	9 	9C	%  A--// 3

+H   #               AAcF ..CAIIKKC88888	9 	9s   !B

B	B	c                     |d          }t           j                                        5 }|                    t          d           d|d<   d|d<   d|d<   d|d<   |dz  }|d d          |d d <   t          |d d                                          |d d                                                     |dz  }|d d         |d d <   t          t          j        d          |d         z   |                                           |dz  }|dd          |d d<   t          |dd                                          |d d                                                    d d d            d S # 1 swxY w Y   d S )	Nr   r=   r'   r   r   r   rb   rp   )r   rI   rJ   rK   r   r   r	   r   )r   r   ri   rM   r!   s        r   test_self_self_assignmentz/TestSlicingAndFancy1D.test_self_self_assignment   s   IdOOZ))++ 	<sJJ'D   AaDAaDAaDAaDBAQQQ4AaaaD111111888BARaR5AaaaD$!A$.		<<<BAqrrUAcrcF122!CRC&..*:*:;;;)	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	<s   D1E((E,/E,c                     |d          }t          j        g d          }ddg}t           j                                        5 }|                    t
          d           d|d<   d|d<   ||z   |d d <   t          |                                |           t          |          |d d<   t          |                                d d         |           d d d            d S # 1 swxY w Y   d S )	Nr5   )rb   r   rF   r   r'   r   r=   rB   r   r?   )	r   r   rI   rJ   rK   r   r   r	   r   )r   r   ri   expectedblockrM   s         r   test_slice_assignmentz+TestSlicingAndFancy1D.test_slice_assignment	  s.   IdOO8NNN++AZ))++ 	1sJJ'D   AaDAaDq5AaaaDh///e$$AbqbERaR%000	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1s   BC!!C%(C%c                     |d          }t          j        dt                    }t           j        }|d d         |dd         |dd          |dd d         |ddd         |dd d	         |d dd         d
d|d d          |dd         dd	dt          j        d          t          j        d          g}t           j                                        5 }|                    t          d           t          |          D ]?\  }}|||<   |||<   t          |                                |t          |                     @t          ddd          |ddd<   t          ddd          |ddd<   t          |                                |           d d d            n# 1 swxY w Y   t          t          d                    }	t!          j        t$          d          5  |                    d
|	           d d d            n# 1 swxY w Y   t!          j        t$          d          5  |                    t)          d           |	           d d d            d S # 1 swxY w Y   d S )Nr   rB   r'   r   r   r>   rp   r   r@   r   rs   rt   r=   rb   d   r[   r)   zcould not be broadcast together)r   r   floatrv   r   ru   rI   rJ   rK   r   rw   r   r	   rx   r   listr.   r/   r\   rL   rh   )
r   r   r!   ri   rv   r{   rM   r#   r|   toobigs
             r   test_set_slicez$TestSlicingAndFancy1D.test_set_slice  s   IdOOHQURaR&"QqS'2abb62add8QqV*bBiEQrEQ111r!A#wB(2,,-
 Z))++ 	)sJJ'D   "&)) 6 61!!QYY[[!T!WW5555aAAa1fIaAAa1fIa(((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) eCjj!!]:-UVVV 	% 	%MM!V$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%]:-NOOO 	/ 	/MM%++v...	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/s7   B;FF FG>>HH$$IIIc                      |t          j        d                    } |d          }||d d<   t          |                                g d           d S )Nr   r'   r'   )r   r   r   )r   onesr   r	   )r   r   r!   ri   s       r   test_assign_emptyz'TestSlicingAndFancy1D.test_assign_empty9  sU    Ibgajj!!IdOO"1"QYY[[))),,,,,r   c                      |dt           j                  }t          |ddg         j        t           j                   t          |g          j        t           j                   d S )Nr   r;   F)r   rc   r   r<   r1   s      r   #test_dtype_preservation_empty_indexz9TestSlicingAndFancy1D.test_dtype_preservation_empty_indexB  sT    Id"(+++Qu~&,bh777QrU["(+++++r   c                     |t          j        d                    }t          j        t          t
          t          fd          5  |                    d           d d d            n# 1 swxY w Y   t          j        t          t
          t          fd          5  |                    d           d d d            d S # 1 swxY w Y   d S )NrB   ,Index dimension must be 1 or 2|only integersr)   foo&tuple index out of range|only integers)r'   r   )r   r   r.   r/   r0   r\   	TypeErrorr6   r1   s      r   test_bad_indexz$TestSlicingAndFancy1D.test_bad_indexG  sD   Ibhqkk""]Y/@
 
 
 	! 	! MM%   		! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!
 ]Y/:
 
 
 	& 	& MM*%%%		& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&s$   A((A,/A,B>>CCc           
         t          j        d                              d          } ||          }t          |ddg                                         |ddg                    t          |dddgf                                         |dddgf                    t          |dddgf                                         |dddgf                    t          |t          j        d          ddgf                                         |dddgf                    t          |dt          j        ddg          f                                         |dddgf                    t          |t          j        d          t          j        ddg          f                                         |dddgf                    t          |d d g df                                         |d d g df                    t          |dd	d
gf                                         |dd	d
gf                    t          |dd	ddgf                                         |dd	ddgf                    t          |dd	t          j        ddg          f                                         |dd	ddgf                    t          |ddgdf                                         |ddgdf                    t          |ddgdf                                         |ddgdf                    t          |t          j        ddg          df                                         |ddgdf                    t          |ddgt          j        d          f                                         |ddgdf                    t          |t          j        ddg          t          j        d          f                                         |ddgdf                    t          |ddgd d f                                         |ddgd d f                    t          |ddgddf                                         |ddgddf                    t          |t          j        ddg          ddf                                         |ddgddf                    t          t	          |ddgdd	gf                   |ddgdd	gf                    t          t	          |ddgddgf                   |ddgddgf                    t          t	          |t          j        ddg          ddgf                   |ddgddgf                    t          t	          |ddgt          j        ddg          f                   |ddgddgf                    t          t	          |t          j        ddg          t          j        ddg          f                   |ddgddgf                    t          |dgdggdd	gf                                         |dgdggdd	gf                    t          |dgdgdggddgf                                         |dgdgdggddgf                    t          |t          j        dgdgdgg          ddgf                                         |dgdgdggddgf                    t          |dgdgdggt          j        ddg          f                                         |dgdgdggddgf                    t          |t          j        dgdgdgg          t          j        ddg          f                                         |dgdgdggddgf                    t          |ddg                                         |ddg                    t          |ddg                                         |ddg                    t          |t          j        ddg                                                   |ddg                    t          |ddgd d f         d d dd	gf                                         |ddgd d f         d d dd	gf                    t          |ddgd d f         d d ddgf                                         |ddgd d f         d d ddgf                    t          |t          j        ddg          d d f         d d t          j        ddg          f                                         |ddgd d f         d d ddgf                    t          |d d ddgf         dd	gd d f                                         |d d ddgf         dd	gd d f                    t          |d d ddgf         ddgd d f                                         |d d ddgf         ddgd d f                    t          |d d t          j        ddg          f         t          j        ddg          d d f                                         |d d ddgf         ddgd d f                    d S )Nro   )rB   rb   r   r   rp   r'   rs   )r'   r>   r   rp   r   rA   r4   r>   rt   r@   )r   r+   r,   r   r	   r   r   s       r   test_fancy_indexing_2darrayz1TestSlicingAndFancy1D.test_fancy_indexing_2darrayT  s    IbMM!!'**IaLL 	Q1vY&&((!QF)444 	Qq1a&y\))++Qq1a&y\:::QrAr7{^++--qaW~>>>Qrx||aW,-557722w;HHHQr28QG,,,-557722w;HHHQrx||RXq"g%6%667??AA1R!R[>RRR 	Qqqq---'(0022Aaaa6F4GHHHQqsQCx[((**AacA3hK888QqsRH}%--//1Q3R=1ABBBQqsBHb"X.../77991QqS2r(];KLLL 	Q1vqy\))++Q1vqy\:::Q2w{^++--q!R"~>>>QrxB((",-5577Ar7B;HHHQ2w,-5577Ar7B;HHHQrxB(("(2,,67??AA1aWb[>RRR 	Q1vqqqy\))++Q1vqqqy\:::Q2w"}%--//Ar7AbD=1ABBBQrxB((!B$./77991aWad];KLLL 	WQ1v1v~.//Aq6Aq6>1BCCCWQBx!R0122Ar2hB6G4HIIIAbhBx((1b'1233QBx!R7H5I	
 	
 	
 	Ar2h!R 1 11233QBx!R7H5I	
 	
 	
 	AbhBx(("(Ar7*;*;;<==q"bAr7AR?S	
 	
 	

 	QaSzAq6)*2244a!qc
QF8J6KLLLtbTB4 1b')*2244tbTB4 1b')*	
 	
 	
 	bhrdRD)**QG34<<>>tbTB4 1b')*	
 	
 	
 	tbTB4 "(Ar7"3"334<<>>tbTB4 1b')*	
 	
 	
 	bhrdRD)**BHaW,=,==>FFHHtbTB4 1b')*	
 	
 	
 	Q1vY&&((!QF)444QBx[((**Ar2hK888QrxR))*2244aRkBBB 	q!faaaiLQF#++--q!Q|AAA1vI/F	
 	
 	
 	r2hkN111q"g:&..00!RHaaaK.QG2L	
 	
 	
 	bhBx  !!!#$QQQ!R(9(9%9:BBDDr2hkN111q"g:&	
 	
 	
 	aaa!QiL!Q#++--qQF|QFAAAI/F	
 	
 	
 	aaa"bkNAr7AAA:&..00!AAABxK.!R!!!2L	
 	
 	
 	aaa2r(###$RXq"g%6%6%9:BBDDaaa"bkNAr7AAA:&	
 	
 	
 	
 	
r   c                 D   t          j        d          } ||          }t          |dg                                         |dg                    t          |ddg                                         |ddg                    t          |ddg                                         |ddg                    t          |t          j        d                   |d                    t          |t          j        ddg                                                   |ddg                    t          |t          j        d                   |t          j        d                              t          j        dgdgg          }t          ||                                         ||                    t          j        dgdgd	gg          }t          ||                                         ||                    t          |ddg                                         |ddg                    t          |ddg                                         |ddg                    t          |t          j        ddg                                                   |ddg                    t          |g d
         ddg                                         |g d
         ddg                    t          |g d         ddg                                         |g d         ddg                    d S )Nro   r   r   r'   rs   rp   rB   rt   r@   )r   rB   r'   r>   )rp   rs   r'   r>   r4   )r   r+   r   r	   r   )r   r   ri   r!   inds        r   test_fancy_indexingz)TestSlicingAndFancy1D.test_fancy_indexing  s   IbMMIaLL 	QsV^^%%q!v... 	Q1vY&&((!QF)444Q2wZ''))1aW:666Qrx||_ae,,,QrxQ(()1133QAwZ@@@Qrx{{^Qrx{{^444 haSz""QsV^^%%qv...hrdRD)**QsV^^%%qv... 	Q1vY&&((!QF)444QBx[((**Ar2hK888QrxR))*2244aRkBBB 	Q|||_aV,4466|||_aV,	. 	. 	.Q~~~&2w/7799~~~&2w/	1 	1 	1 	1 	1r   c                    t           j                            d           t          j        d          } ||          }t          j        t           j                            ddd          t                    }t          t          ||                   ||                    t          t          ||dk                       ||dk                        t          j	        dt                    }t          j	        dt                    }d	|d
<   t          j	        dt                    }d	|d<   d}t          j        t          |          5  |                    |           d d d            n# 1 swxY w Y   t          j        t          |          5  |                    |           d d d            n# 1 swxY w Y   t          j        t          |          5  |                    |           d d d            d S # 1 swxY w Y   d S )N  ro   r   r'   ry   r;   rA   3   Trp   z3bool index .* has shape|boolean index did not matchr)   )r   randomseedr+   r   randintboolr   r	   r   r.   r/   r0   r6   )	r   r   ri   r!   IZ1Z2Z3r^   s	            r   test_fancy_indexing_booleanz1TestSlicingAndFancy1D.test_fancy_indexing_boolean  sw   
	tIbMMIaLLHRY&&q!"&55TBBBWQqT]]AaD)))WQq1uX&&!a%111Xb%%%Xb%%%2Xb%%%1C]:S111 	 	MM"	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]:S111 	 	MM"	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]:S111 	 	MM"	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s6   E..E25E2F66F:=F:G??HHc                    t           j                            d           t          j        d          } ||          }t          j        t           j                            ddd          t                    }t          |          }t          t          ||                   ||                    t          t          ||dk                       ||dk                        t          j        t           j                            ddd          t                    }t          |          }t          j        t          d	
          5  |                    |           d d d            n# 1 swxY w Y   t          j        t          d
          5  |                    |df           d d d            d S # 1 swxY w Y   d S )Nr   rr   r   r'   r   r;   rA   <   z%bool index .* has shape|only integersr)   r   r   )r   r   r   r+   r   r   r   r   r   r	   r.   r/   r0   r6   )r   r   ri   r!   r   XspYYsps           r   "test_fancy_indexing_sparse_booleanz8TestSlicingAndFancy1D.test_fancy_indexing_sparse_boolean  s   
	tIbMMIaLLHRY&&q!"&55TBBBllWQsV__ad+++WQq1uX&&!a%111HRY&&q!"&55TBBBll]:-TUUU 	 	MM#	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]:-UVVV 	$ 	$MM3(###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$s$   E**E.1E.F55F9<F9c                      |t          j        ddg                    }t          j        t          d          5  |                    dt          j        ddg                     d d d            d S # 1 swxY w Y   d S )Nr   r   r[   r)   r'   )r   r   r.   r/   r\   rL   )r   r   mats      r   test_fancy_indexing_seq_assignz4TestSlicingAndFancy1D.test_fancy_indexing_seq_assign  s    i!Q(())]:-UVVV 	1 	1OOArxA//000	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1s   +A33A7:A7c                    t          j        d          }d|dd<   d|d<    ||          }t          j        dgdz            }t          t	          ||                   ||                    t          j        g t
                    }t          t	          ||                   ||                    t          j        g dt
                    }t          t	          ||                   ||                    d S )	Nro   r   r   rA      Fr;   )r   r   r'   r   r   r   r+   r   r   r	   int)r   r   ri   r!   KJs         r   test_fancy_indexing_emptyz/TestSlicingAndFancy1D.test_fancy_indexing_empty  s    IbMM!A#"IaLLHeWr\""WQqT]]AaD)))HRs###WQqT]]AaD)))H___C000WQqT]]AaD)))))r   c                      |t          j        d                    }d}t          j        t          t
          t          f|          5  |                    dd           d d d            d S # 1 swxY w Y   d S )NrB   r   r)   r   r'   )r   r   r.   r/   r0   r\   r   rL   )r   r   r!   r^   s       r   test_bad_index_assignz+TestSlicingAndFancy1D.test_bad_index_assign  s    Ibhqkk""<]J
I>cJJJ 	$ 	$MM%###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$s   A,,A03A0c                 "   d}g dt          d dd          t          j        d          t          dd          t          dd          fD ]} ||          }t          j        |          }t          j                                        5 }|                    t          d	           d
||<   t          |          5  d
||<   d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t          |
                                |           d S )Nr   )r'   r   r   rb   r   r   rB   r@   r'   r=   r   )rh   r   r+   r   rI   rJ   rK   r   r   r   r	   )r   r   Mr#   r!   ri   rM   s          r   test_fancy_indexing_setz-TestSlicingAndFancy1D.test_fancy_indexing_set  s    ))U4Q//11b\\5A;;0 	, 	,A	!AA--// 3

+H   !)!,,  AaD                             AIIKK++++	, 	,s6   0C!8C
>C!
CC!CC!!C%	(C%	c                 Z    |d          } |d          }g d}d}t          j        |          }t           j                                        5 }|                    t
          d           t          |          5  ||         ||<   d}t          j        t          |          5  |
                    |           d d d            n# 1 swxY w Y   ||         ||<   d d d            n# 1 swxY w Y   t          |d d                                         |                                           |j        dk    sJ  |d          }t          |          5  dd	g|d
d<   d d d            n# 1 swxY w Y   t          |                                g d            |d          }t          j        d          }t          |          5  ||fD ]}	g d|	g d<   	 d d d            n# 1 swxY w Y   t          |                                |           d d d            d S # 1 swxY w Y   d S )Nr5   rW   )r   r   r'   r=   z3too many indices for array|tuple index out of ranger)   r   rb   rr   r   )r   rb   rr   r   r   )r   rB   rZ   )r   r   rI   rJ   rK   r   r   r.   r/   r0   r6   r   r	   r   r   )
r   r   r!   ri   i0i1i2rM   r^   rj   s
             r   test_sequence_assignmentz.TestSlicingAndFancy1D.test_sequence_assignment+  sd   IdOOIdOOYYXb\\Z))++ 	)sJJ'D   &a((  ""K]:S999 & &MM"%%%& & & & & & & & & & & & & & &""               2A2!))++6667d???? 	$A%a(( " "b!A#" " " " " " " " " " " " " " "nnn555 	$AA%a(( - -Q - -A#,99AiiiLL-- - - - - - - - - - - - - - - a(((5	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)s   +H :)C'#C9C'C		C'C	C'H 'C+	+H .C+	/A&H 
E+H +E/	/H 2E/	3AH G&H &G*	*H -G*	.%H  H$'H$c                 ^   t          j        d          }d|d<   d|ddg<    ||          }t          j        dgdz            }d||<   t          |                                |           t          j        g t
                    }d||<   t          |                                |           d S )	Nro   r   r'   r   rZ   F*   r;   r   )r   r   ri   r!   r   s        r   test_fancy_assign_emptyz-TestSlicingAndFancy1D.test_fancy_assign_emptyO  s    IbMM!1a&	IaLLHeWr\""!QYY[[!$$$HRs###!QYY[[!$$$$$r   N)rO   rP   rQ   rX   r_   rf   rm   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rR   r   r   rT   rT   e   s       
" " "( ( (0I I I
? ? ?$#: #: #:J1 1 1% % % 9 9 9 < < <21 1 1$/ / /<- - -, , ,
& & &[
 [
 [
z1 1 1>  2$ $ $*1 1 1
* * * $ $ $, , ,$") ") ")H% % % % %r   rT   )
contextlibr.   numpyr   numpy.testingr   r   scipy.sparser   r   r   test_arithmetic1dr	   formats_for_index1dcontextmanagerr   markparametrizer   rT   rR   r   r   <module>r      sJ            7 7 7 7 7 7 7 7 F F F F F F F F F F & & & & & & !),  P P P &9::H- H- H- H- H- H- H- ;:H-V &9::u% u% u% u% u% u% u% ;:u% u% u%r   