
    biR                     $   d dl Z 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"                  j%                  de       G d d	             Zej"                  j%                  de       G d
 d             Zy)    N)assert_allcloseassert_equal)	csr_array	dok_arraySparseEfficiencyWarning   )toarrayc              #      K   d t        | d      r| j                  sy| j                  j                         }d| _        | j	                          t        || j                  d       yw)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     ]/home/cdr/jupyterlab/.venv/lib/python3.12/site-packages/scipy/sparse/tests/test_indexing1d.pycheck_remains_sortedr      sT      
1*+13G3GiinnG ANN!))%NOs   A'A)	spcreatorc                       e Zd Zd Zd Zd Zej                  j                  dd e	j                  d gg d      d	        Zy
)TestGetSet1Dc                 `   t        j                  g d      } ||      }|j                  d   }t        | |      D ]p  }t	        ||d f   j                         ||d f          t	        |d |f   j                         |d |f          t	        |d d |f   j                         |d d |f          r y )N      r   r   )nparrayshaperanger   r	   )selfr   DANjs         r   test_None_indexzTestGetSet1D.test_None_index   s    HHYaLGGAJr1 	GA1d7++-qDz:47++-qqz:4q=)113QtT1}5EF	G    c                      |t        j                  d      j                  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 |j
                  dk(  rd|d   j                  dk(  sJ |d ddd df   j                  dk(  sJ |dddd d f   j                  dk(  sJ |dd dd d f   j                  dk(  sJ y y )N   r   r   )r      r   r   r'   r   )r   r   )Nr   r'   )Nr   r'   N)Nr   )r   r   )r   N)r   r   coo)Nr'   r   NN)r   r   r   )r   r'   r   )r   r   r   )r   r   r   )r   arangereshapendimr   formatr   r   r    s      r   test_getitem_shapezTestGetSet1D.test_getitem_shape'   s   bii&..q!45w||q   AaCy$&&&q!A#$$...}""d***!"((F222 z6)))z6)))q!}""f,,,D!}""f,,,At}""f,,, 88u+,22i???T1Q3a'(..'999QqS!"d]#))W444QRD$&'--888	 r$   c                    t        j                  g d      } ||      }|j                  d   }t        | |      D ]  }t	        ||   ||           dD ]7  }t        j                  t        d      5  |j                  |       d d d        9 |d   dk(  sJ t        j                  t        d      5  |j                  d       d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)	Nr   r   )r   z index (.*) out of (range|bounds)match)r   r   r   )	r   r   r   r   r   pytestraises
IndexError__getitem__)r   r   r   r    r!   r"   ijs          r   test_getelementzTestGetSet1D.test_getelement=   s    HHYaLGGAJr1 	%A1qt$	%  	"Bz1ST "b!" "	"
 w!||]]:-OP 	 MM$	  	 " "	  	 s   3C4CC	C$scalar_containerc                 B    t        t        j                  | gg            S N)r   r   r   xs    r   <lambda>zTestGetSet1D.<lambda>Q   s    9RXXse_- r$   c                     | S r=    r>   s    r   r@   zTestGetSet1D.<lambda>Q   s    1 r$   )sparsedensescalar)idsc                 6   t         j                  } |d|      }t        j                         5  t        j                  ddt
                | |d            |d<    | |d            |d<    | |d            |d	<    | |d
            |d<    |d      |d<    | |d	            |d<    | |d            |d<   dD ]8  }t        j                  t        d      5  |j                  |d       d d d        : 	 d d d        y # 1 sw Y   NxY w# 1 sw Y   y xY w)Nr&   dtypeignore2Changing the sparsity structure of .* is expensiver   r   r   g      "@      	      )ir(   )   rR   )   zout of (range|bounds)r2        ^@)
r   float64warningscatch_warningsfilterwarningsr   r5   r6   r7   __setitem__)r   r   r;   rJ   r    r9   s         r   test_setelementzTestGetSet1D.test_setelementO   s    

e5)$$& 	-##D'
 $E!H-AaD#E!H-AaD#E#J/AaD$U1X.AbE#A&AaD%eAh/AcF$U1X.AbE- -]]:5LM -MM"e,- --	- 	- - -!	- 	-s$   B-DD/
DDDDN)__name__
__module____qualname__r#   r/   r:   r5   markparametrizer   r   r\   rB   r$   r   r   r      sN    G9, $ [[	-rxxE)  
-
-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y)TestSlicingAndFancy1Dc                    t        j                  g d      } ||      }t        |d   j                         |d          dD ]7  }t	        j
                  t        d      5  |j                  |       d d d        9 y # 1 sw Y   DxY w)Nr   rB   )r   r   r   z"out of (range|bounds)|many indicesr2   )r   r   r   r	   r5   r6   r7   r8   )r   r   r   r    r9   s        r   test_get_array_indexz*TestSlicingAndFancy1D.test_get_array_indexp   su    HHYaLQrU]]_ae,  	"Bz1UV "b!" "	"" "s    A==B	c                    t         j                  } |d|      }t        j                         5  t        j                  ddt
                |d      |t        j                  d      <    |d      |t        j                  d      <   t        |j                         g d       d	D ]8  }t        j                  t        d
      5  |j                  |d       d d d        : ddg dt        j                  g d      fD ]:  }d}t        j                  t        |      5  |j                  d|       d d d        < 	 d d d        y # 1 sw Y   xY w# 1 sw Y   \xY w# 1 sw Y   y xY w)NrH   rI   rK   rL   g      @   g       @)r   r   r   r   r   r   r'   r   r   r   r   r   )rT   )rS   zindex .* out of (range|bounds)r2   rV   rB   re   )r   r'   r   &Trying to assign a sequence to an itemr   )r   rW   rX   rY   rZ   r   r   r   r	   r5   r6   r7   r[   
ValueError)r   r   rJ   r    r9   vmsgs          r   test_set_array_indexz*TestSlicingAndFancy1D.test_set_array_indexy   s5   

e5)$$& 	(##D'
 #3ZAbhhqkN"3ZAbhhqkN&JK% -]]:5UV -MM"e,- -- &)RXXi-@A (>]]:S9 (MM!Q'( ((	( 	(- -
( (!	( 	(s=   BEEAEE0
EE	EEEE%c                 x   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
                         y )N
   rI   r   rQ   )ri   r   r'   )r   r   int16rJ   int32int64)r   r   s     r   test_dtype_preservationz-TestSlicingAndFancy1D.test_dtype_preservation   sv    YuBHH5a:@@"((KYt2884QqU;AA288LYt2884Q7==rxxHr$   c                    t        j                  d      } ||      }t        |d d  |d d  j                                t        |dd |dd j                                t        j                  g d      } ||      }t        |dd |dd j                                t        j                  g d      } ||      }t        |dd |dd j                                t        |dd  |dd  j                                t        |d d  |d d  j                                t        |t        d          |t        d          j                                y )	Ng      I@r'   rQ   )	r   r   ri   r   r   r   r   r   r   r   r   )r   r   r   r   r   rO   )r   r*   r   r	   r   slice)r   r   Br    Cr   EFs           r   test_get_1d_slicez'TestSlicingAndFancy1D.test_get_1d_slice   s   IIcNaLQqT1Q4<<>*QqVQqV^^-.HH01aLQqVQqV^^-. HH_%aLQqVQqV^^-.QrsVQrsV^^-.QqT1Q4<<>*QuT{^QuT{^%;%;%=>r$   c                 <   t        j                  d      } ||      }t        |d   |d          t        |d   |d          t        |t        j                  d         |d          t        |d d  j	                         |d d         t        |dd j	                         |dd        t        |ddd   j	                         |ddd          t        t        j                  d      t        j                  d      d       }t        ||   j	                         |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 ]x  \  }}||   }	||   }
|
j                  dk(  rt        |	|
t        |             6|	j                  dk(  r|
j                  dk(  rUt        |	j	                         |
t        |             z y )N2   r'   rO   rQ   r&   r   r   r         rM   r   rB   )r   r*   r   r   r	   rw   int8s_	enumerater   reprsize)r   r   rx   r    sr   slicesr"   ar?   ys              r   test_slicing_idx_slicez,TestSlicingAndFancy1D.test_slicing_idx_slice   s    IIbMaL 	QqT1Q4 QrUAbE"Qrxx|_ae, 	QqT\\^QqT*QqW__&!B0QqAvY&&(!AbF)4 "''!*bggaj$/QqT\\^QqV, UURa&"Qq'2ab62add8R)R!WQqV*bBiEQrEQ1r!AwB((2,	- f% 		:DAq!A!Aww"}Q47+66Q;166Q; aa9		:r$   c                     t        j                  d      } ||      }t        |d   j                         |d          t        |d   j                         |d          y )Nr~   .).)r   r*   r   r	   r   r   rx   r    s       r   test_ellipsis_1d_slicingz.TestSlicingAndFancy1D.test_ellipsis_1d_slicing   sJ    IIbMaLQsV^^%qv.QtW__&$0r$   c                 F    |d      }t        j                  d      }t        j                         5  t        j                  ddt
               ||fD ]  }d|dd d|dd d|dd	 d|d	d  d|d	d d
<     	 d d d        t        |j                         |       y # 1 sw Y   $xY w)NrQ   rK   rL   r   r   r   r'   rP   r   r   )r   zerosrX   rY   rZ   r   r   r	   )r   r   r    rx   ry   s        r   test_slice_scalar_assignz.TestSlicingAndFancy1D.test_slice_scalar_assign   s    dOHHTN$$& 	##D'
 V !A!A!A!"!%R%	 	QYY[!$	 	s   ABB c                 p   d}t        d      t        d dd      t        dd      fD ]  } ||      }t        j                         5  t        j                  ddt               d	||<   d d d        t        j                  |      }d	||<   d
|}t        |j                         ||        y # 1 sw Y   GxY w)Nrp   r   rq   r   rQ   rO   rK   rL   r   zidx=)err_msg)	rw   rX   rY   rZ   r   r   r   r   r	   )r   r   r   idxr    rx   rm   s          r   test_slice_assign_2z)TestSlicingAndFancy1D.test_slice_assign_2   s    !HeD"a0%2,? 	9C% A((* ''H+
 # AAcF.CAIIKC8	9 s   !B,,B5	c                 0    |d      }t        j                         5  t        j                  ddt               d|d<   d|d<   d|d<   d|d<   |dz  }|d d  |d d  t	        |d d  j                         |d d  j                                |dz  }|d d |d d  t	        t        j                  d      |d   z   |j                                |dz  }|dd  |d d	 t	        |dd  j                         |d d	 j                                d d d        y # 1 sw Y   y xY w)
Nr   rK   rL   r'   r   r   r   rq   r   )rX   rY   rZ   r   r   r	   r   r   r   s       r   test_self_self_assignmentz/TestSlicingAndFancy1D.test_self_self_assignment   s   dO$$& 	<##D'
 AaDAaDAaDAaDBAQ4AaD118BARa5AaD$!A$.		<BAqrUAcrF12!CR&..*:;+	< 	< 	<s   C&DDc                     |d      }t        j                  g d      }ddg}t        j                         5  t        j                  ddt
               d|d<   d	|d<   ||z   |d d  t        |j                         |       t        |      |d d t        |j                         d d |       d d d        y # 1 sw Y   y xY w)
Nr4   )rq   r   rU   r   r'   r   rK   rL   rQ   r   rN   )	r   r   rX   rY   rZ   r   r   r	   r   )r   r   rx   expectedblocks        r   test_slice_assignmentz+TestSlicingAndFancy1D.test_slice_assignment  s    dO88N+A$$& 	1##D'
 AaDAaDq5AaDh/e$AbqERa%0	1 	1 	1s   A3B44B=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        j                  ddt               t        |      D ]3  \  }}|||<   |||<   t        |j                         |t        |             5 t        ddd      |ddd<   t        ddd      |ddd<   t        |j                         |       d d d        t        t        d            }t!        j"                  t$        d      5  |j'                  d
|       d d d        t!        j"                  t$        d      5  |j'                  t)        d       |       d d d        y # 1 sw Y   xY w# 1 sw Y   UxY w# 1 sw Y   y xY w)Nr   rQ   r'   r   r   rM   r   r   rO   r   r   r   rK   rL   rq   d   rj   r2   zcould not be broadcast together)r   r   floatr   r   r   rX   rY   rZ   r   r   r   r	   r   r   listr5   r6   rk   r[   rw   )	r   r   r    rx   r   r   r"   r   toobigs	            r   test_set_slicez$TestSlicingAndFancy1D.test_set_slice&  s   dOHHQUURa&"Qq'2ab62add8QqV*bBiEQrEQ1r!AwB((2,-
 $$& 	)##D'
 "&) 61!!QYY[!T!W56
 aAAa1fIaAAa1fIa(	)  eCj!]]:-UV 	%MM!V$	%]]:-NO 	/MM%+v.	/ 	/'	) 	)"	% 	%	/ 	/s%   &BG:G!0G-G!G*-G6c                      |t        j                  d            } |d      }||d d t        |j                         g d       y )Nr   r'   r'   )r   r   r   )r   onesr   r	   )r   r   r    rx   s       r   test_assign_emptyz'TestSlicingAndFancy1D.test_assign_emptyE  s8    bggaj!dO"1QYY[),r$   c                      |dt         j                        }t        |ddg   j                  t         j                         t        |g    j                  t         j                         y )Nr   rI   F)r   rr   r   rJ   r.   s      r   #test_dtype_preservation_empty_indexz9TestSlicingAndFancy1D.test_dtype_preservation_empty_indexN  sE    d"((+Qu~&,,bhh7QrU[["((+r$   c                 j    |t        j                  d            }t        j                  t        t
        t        fd      5  |j                  d       d d d        t        j                  t        t
        t        fd      5  |j                  d       d d d        y # 1 sw Y   JxY w# 1 sw Y   y xY w)NrQ   ,Index dimension must be 1 or 2|only integersr2   foo&tuple index out of range|only integers)r'   r   )r   r   r5   r6   r7   rk   	TypeErrorr8   r.   s      r   test_bad_indexz$TestSlicingAndFancy1D.test_bad_indexS  s    bhhqk"]]Y/@
 	! MM% 		!
 ]]Y/:
 	& MM*%		& 	&	! 	!
	& 	&s   BB)B&)B2c           
         t        j                  d      j                  d      } ||      }t        |ddg   j	                         |ddg          t        |dddgf   j	                         |dddgf          t        |dddgf   j	                         |dddgf          t        |t        j
                  d      ddgf   j	                         |dddgf          t        |dt        j
                  ddg      f   j	                         |dddgf          t        |t        j
                  d      t        j
                  ddg      f   j	                         |dddgf          t        |d d g df   j	                         |d d g df          t        |dd	d
gf   j	                         |dd	d
gf          t        |dd	ddgf   j	                         |dd	ddgf          t        |dd	t        j
                  ddg      f   j	                         |dd	ddgf          t        |ddgdf   j	                         |ddgdf          t        |ddgdf   j	                         |ddgdf          t        |t        j
                  ddg      df   j	                         |ddgdf          t        |ddgt        j
                  d      f   j	                         |ddgdf          t        |t        j
                  ddg      t        j
                  d      f   j	                         |ddgdf          t        |ddgd d f   j	                         |ddgd d f          t        |ddgddf   j	                         |ddgddf          t        |t        j
                  ddg      ddf   j	                         |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   j	                         |dgdggdd	gf          t        |dgdgdggddgf   j	                         |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   j	                         |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   j	                         |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   j	                         |dgdgdggddgf          t        |ddg   j	                         |ddg          t        |ddg   j	                         |ddg          t        |t        j
                  ddg         j	                         |ddg          t        |ddgd d f   d d dd	gf   j	                         |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   j	                         |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   j	                         |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   j	                         |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   j	                         |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   j	                         |d d ddgf   ddgd d f          y )Nr~   )rQ   rq   r   r   r   r'   r   )r'   rM   r   r   r   rP   r1   rM   r   rO   )r   r*   r+   r   r	   r   r   s       r   test_fancy_indexing_2darrayz1TestSlicingAndFancy1D.test_fancy_indexing_2darray`  s   IIbM!!'*aL 	Q1vY&&(!QF)4 	Qq1a&y\))+Qq1a&y\:QrAr7{^++-qaW~>Qrxx|aW,-55722w;HQr288QG,,-55722w;HQrxx|RXXq"g%667??A1R!R[>R 	Qq-'(002Aa6F4GHQqsQCx[((*AacA3hK8QqsRH}%--/1Q3R=1ABQqsBHHb"X../7791QqS2r(];KL 	Q1vqy\))+Q1vqy\:Q2w{^++-q!R"~>QrxxB(",-557Ar7B;HQ2w,-557Ar7B;HQrxxB("((2,67??A1aWb[>R 	Q1vqy\))+Q1vqy\:Q2w"}%--/Ar7AbD=1ABQrxxB(!B$./7791aWad];KL 	WQ1v1v~./Aq6Aq6>1BCWQBx!R012Ar2hB6G4HIAbhhBx(1b'123QBx!R7H5I	
 	Ar2h!R 1123QBx!R7H5I	
 	AbhhBx("((Ar7*;;<=q"bAr7AR?S	

 	QaSzAq6)*224a!qc
QF8J6KLtbTB4 1b')*224tbTB4 1b')*	
 	bhhrdRD)*QG34<<>tbTB4 1b')*	
 	tbTB4 "((Ar7"334<<>tbTB4 1b')*	
 	bhhrdRD)*BHHaW,==>FFHtbTB4 1b')*	
 	Q1vY&&(!QF)4QBx[((*Ar2hK8QrxxR)*224aRkB 	q!faiLQF#++-q!Q|A1vI/F	
 	r2hkN1q"g:&..0!RHaK.QG2L	
 	bhhBx !#$Q!R(9%9:BBDr2hkN1q"g:&	
 	a!QiL!Q#++-qQF|QFAI/F	
 	a"bkNAr7A:&..0!ABxK.!R!2L	
 	a2r(##$RXXq"g%6%9:BBDa"bkNAr7A:&	
r$   c                    t        j                  d      } ||      }t        |dg   j                         |dg          t        |ddg   j                         |ddg          t        |ddg   j                         |ddg          t        |t        j                  d         |d          t        |t        j                  ddg         j                         |ddg          t        |t        j                  d         |t        j                  d                t        j                  dgdgg      }t        ||   j                         ||          t        j                  dgdgd	gg      }t        ||   j                         ||          t        |ddg   j                         |ddg          t        |ddg   j                         |ddg          t        |t        j                  ddg         j                         |ddg          t        |g d
   ddg   j                         |g d
   ddg          t        |g d   ddg   j                         |g d   ddg          y )Nr~   r   r   r'   r   r   rQ   r   rO   )r   rQ   r'   rM   )r   r   r'   rM   r1   )r   r*   r   r	   r   )r   r   rx   r    inds        r   test_fancy_indexingz)TestSlicingAndFancy1D.test_fancy_indexing  s&   IIbMaL 	QsV^^%q!v. 	Q1vY&&(!QF)4Q2wZ'')1aW:6Qrxx|_ae,QrxxQ()113QAwZ@Qrxx{^Qrxx{^4 hhaSz"QsV^^%qv.hhrdRD)*QsV^^%qv. 	Q1vY&&(!QF)4QBx[((*Ar2hK8QrxxR)*224aRkB 	Q|_aV,446|_aV,	.Q~&2w/779~&2w/	1r$   c                    t         j                  j                  d       t        j                  d      } ||      }t        j                  t         j                  j                  ddd      t              }t        t        ||         ||          t        t        ||dkD           ||dkD            t        j                  dt              }t        j                  dt              }d	|d
<   t        j                  dt              }d	|d<   d}t        j                  t        |      5  |j                  |       d d d        t        j                  t        |      5  |j                  |       d d d        t        j                  t        |      5  |j                  |       d d d        y # 1 sw Y   txY w# 1 sw Y   KxY w# 1 sw Y   y xY w)N  r~   r   r'   r   rI   rP   3   Tr   z3bool index .* has shape|boolean index did not matchr2   )r   randomseedr*   r   randintboolr   r	   r   r5   r6   r7   r8   )	r   r   rx   r    IZ1Z2Z3rm   s	            r   test_fancy_indexing_booleanz1TestSlicingAndFancy1D.test_fancy_indexing_boolean  s\   
		tIIbMaLHHRYY&&q!"&5TBWQqT]AaD)WQq1uX&!a%1XXb%XXb%2XXb%1C]]:S1 	MM"	]]:S1 	MM"	]]:S1 	MM"	 			 		 		 	s$   ,F1!F=G	1F:=G	Gc                    t         j                  j                  d       t        j                  d      } ||      }t        j                  t         j                  j                  ddd      t              }t        |      }t        t        ||         ||          t        t        ||dkD           ||dkD            t        j                  t         j                  j                  ddd      t              }t        |      }t        j                  t        d	
      5  |j                  |       d d d        t        j                  t        d
      5  |j                  |df       d d d        y # 1 sw Y   AxY w# 1 sw Y   y xY w)Nr   r   r   r'   r   rI   rP   <   z%bool index .* has shape|only integersr2   r   r   )r   r   r   r*   r   r   r   r   r   r	   r5   r6   r7   r8   )r   r   rx   r    r   XspYYsps           r   "test_fancy_indexing_sparse_booleanz8TestSlicingAndFancy1D.test_fancy_indexing_sparse_boolean  s$   
		tIIbMaLHHRYY&&q!"&5TBlWQsV_ad+WQq1uX&!a%1HHRYY&&q!"&5TBl]]:-TU 	MM#	]]:-UV 	$MM3(#	$ 	$	 		$ 	$s    E2E>2E;>Fc                      |t        j                  ddg            }t        j                  t        d      5  |j                  dt        j                  ddg             d d d        y # 1 sw Y   y xY w)Nr   r   rj   r2   r'   )r   r   r5   r6   rk   r[   )r   r   mats      r   test_fancy_indexing_seq_assignz4TestSlicingAndFancy1D.test_fancy_indexing_seq_assign
  sX    !Q()]]:-UV 	1OOArxxA/0	1 	1 	1s   (A**A3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	        ||         ||          y )	Nr~   r   r   rP      FrI   )r   r   r'   r   r   r   r*   r   r   r	   int)r   r   rx   r    KJs         r   test_fancy_indexing_emptyz/TestSlicingAndFancy1D.test_fancy_indexing_empty  s    IIbM!A"aLHHeWr\"WQqT]AaD)HHRs#WQqT]AaD)HH_C0WQqT]AaD)r$   c                      |t        j                  d            }d}t        j                  t        t
        t        f|      5  |j                  dd       d d d        y # 1 sw Y   y xY w)NrQ   r   r2   r   r'   )r   r   r5   r6   r7   rk   r   r[   )r   r   r    rm   s       r   test_bad_index_assignz+TestSlicingAndFancy1D.test_bad_index_assign  sQ    bhhqk"<]]J
I>cJ 	$MM%#	$ 	$ 	$s   A  A)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	        j                  d	d
t               d||<   t        |      5  d||<   d d d        d d d        t        |j                         |        y # 1 sw Y   .xY w# 1 sw Y   2xY w)Nr   )r'   r   r   rq   r   r   rQ   rO   r'   rK   rL   r   )rw   r   r*   r   rX   rY   rZ   r   r   r   r	   )r   r   Mr"   r    rx   s         r   test_fancy_indexing_setz-TestSlicingAndFancy1D.test_fancy_indexing_set%  s     U4Q/11b\5A;0 	,A!AA((* ''H+
 !)!, AaD AIIK+	,  s$   2,CC$CCCC&	c                     |d      } |d      }g d}d}t        j                  |      }t        j                         5  t        j                  ddt
               t        |      5  ||   ||<   d}t        j                  t        |      5  |j                  |       d d d        ||   ||<   d d d        t        |d d j                         |j                                |j                  dk(  sJ  |d      }t        |      5  d	d
g|dd d d d        t        |j                         g d        |d      }t        j                  d      }t        |      5  ||fD ]  }g d|g d<    	 d d d        t        |j                         |       d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   PxY w# 1 sw Y   y xY w)Nr4   rf   )r   r   r'   rK   rL   z3Too many indices for array|tuple index out of ranger2   r   rq   r   r   )r   rq   r   r   r   )r   rQ   ri   )r   r   rX   rY   rZ   r   r   r5   r6   r7   r8   r   r	   r   r   )	r   r   r    rx   i0i1i2rm   ry   s	            r   test_sequence_assignmentz.TestSlicingAndFancy1D.test_sequence_assignment8  s   dOdOXXb\$$& 	)##D'
 &a( ""K]]:S9 &MM"%&"" 2A!))+677d?"? $A%a( "b!A"n5 $AA%a( -Q -A#,AiL-- a(7	) 	)& & " "- -1	) 	)sn    'G	'&F%FF%/AG	F1AG	F=."G	F"F%%F.	*G	1F:	6G	=G	G		Gc                 :   t        j                  d      }d|d<   d|ddg<    ||      }t        j                  dgdz        }d||<   t        |j	                         |       t        j                  g t
              }d||<   t        |j	                         |       y )	Nr~   r   r'   r   ri   F*   rI   r   )r   r   rx   r    r   s        r   test_fancy_assign_emptyz-TestSlicingAndFancy1D.test_fancy_assign_empty]  s    IIbM!1a&	aLHHeWr\"!QYY[!$HHRs#!QYY[!$r$   N)r]   r^   r_   rg   rn   ru   r|   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rB   r$   r   rc   rc   k   s    
"(2I
?$#:J1%"9"<41&/>-,
&[
z1>2$*1
* $,&#)J%r$   rc   )
contextlibrX   r5   numpyr   numpy.testingr   r   scipy.sparser   r   r   test_arithmetic1dr	   formats_for_index1dcontextmanagerr   r`   ra   r   rc   rB   r$   r   <module>r      s        7 F F & !),  P P &9:L- L- ;L-^ &9:}% }% ;}%r$   