
    e!h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                   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     j/var/www/html/diagnosisapp-backend/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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 t        j                  t        d      5  |d    d d d        t        j                  t        d      5  |d ddd df    d d d        t        j                  t        d      5  |dddd d f    d d d        t        j                  t        d      5  |dd dd d f    d d d        y # 1 sw Y   xY w# 1 sw Y   uxY w# 1 sw Y   QxY w# 1 sw Y   y xY w)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   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,,,]]:-CD 	&$%	&]]:-CD 	"dAaCq !	"]]:-CD 	ac12tm	]]:-CD 	!ab!T4 	! 	!	& 	&	" 	"	 		! 	!s0   'GG?G/G(GGG%(G1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)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    HHYaLGGAJr1 	%A1qt$	%  	"Bz1ST "b!" "	"
 w!||]]:-OP 	 MM$	  	 " "	  	 s   3C4CC	C$c                    t         j                  } |d|      }t         j                  j                         5 }|j	                  t
        d        |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&   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    

e5)ZZ))+ 	-sJJ'D 8AaD8AaD:AaD!HAbEAaD1XAcF!HAbE- -]]:5LM -MM"e,- --	- 	-- -	- 	-s$   A>C*7C

C*C'#C**C3N)__name__
__module____qualname__r#   r2   r8   rN    r$   r   r   r      s    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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   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   su    HHYaLQrU]]_ae,  	"Bz1UV "b!" "	"" "s    A==B	c                    t         j                  } |d|      }t         j                  j                         5 }|j	                  t
        d        |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)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   s6   

e5)ZZ))+ 	(sJJ'D #3ZAbhhqkN"3ZAbhhqkN&JK% -]]:5UV -MM"e,- -- &)RXXi-@A (>]]:S9 (MM!Q'( ((	( 	(- -
( (	( 	(s=   BE!E	AE!"E5
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
   r;   r   rB   )rZ   r   r'   )r   r   int16r<   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'   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   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'   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    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 )Nro   .).)r   r+   r   r	   r   r   ri   r    s       r   test_ellipsis_1d_slicingz.TestSlicingAndFancy1D.test_ellipsis_1d_slicing   sJ    IIbMaLQsV^^%qv.QtW__&$0r$   c                 P    |d      }t        j                  d      }t         j                  j                         5 }|j	                  t
        d       ||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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    dOHHTNZZ))+ 
	sJJ'D V !A!A!A!"!%R%
	 	QYY[!$
	 
	s   <BB%c                 z   d}t        d      t        d dd      t        dd      fD ]  } ||      }t        j                  j                         5 }|j	                  t
        d       d||<   d d d        t        j                  |      }d||<   d	|}t        |j                         ||
        y # 1 sw Y   GxY w)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    !HeD"a0%2,? 	9C% A--/ 3

+H # AAcF.CAIIKC8	9 s   B11B:	c                 :    |d      }t         j                  j                         5 }|j                  t        d       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   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   dOZZ))+ 	<sJJ'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                  j                         5 }|j	                  t
        d       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)	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    dO88N+AZZ))+ 	1sJJ'D AaDAaDq5AaDh/e$AbqERa%0	1 	1 	1s   A.B99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                  j                         5 }|j                  t        d       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   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   dOHHQUURa&"Qq'2ab62add8QqV*bBiEQrEQ1r!AwB((2,-
 ZZ))+ 	)sJJ'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%   0BG?G&5G2G#&G/2G;c                      |t        j                  d            } |d      }||d d t        |j                         g d       y )Nr   r'   r'   )r   r   r   )r   onesr   r	   )r   r   r    ri   s       r   test_assign_emptyz'TestSlicingAndFancy1D.test_assign_empty9  s8    bggaj!dO"1QYY[),r$   c                      |dt         j                        }t        |ddg   j                  t         j                         t        |g    j                  t         j                         y )Nr   r;   F)r   rc   r   r<   r1   s      r   #test_dtype_preservation_empty_indexz9TestSlicingAndFancy1D.test_dtype_preservation_empty_indexB  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)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  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 )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   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 )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&   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  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  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   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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   r[   r)   r'   )r   r   r.   r/   r\   rL   )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 )	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    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)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  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                  j                         5 }|j                  t        d	       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   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 AIIK+	,  s$   <'C"#C)C"CC""C+	c                     |d      } |d      }g d}d}t        j                  |      }t         j                  j                         5 }|j	                  t
        d       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)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+  s   dOdOXXb\ZZ))+ 	)sJJ'D &a( ""K]]:S9 &MM"%&"" 2A!))+677d?"? $A%a( "b!A"n5 $AA%a( -Q -A#,AiL-- a(5	) 	)& & " "- -/	) 	)sn   
"G,&F*F$F*4AGF6AGG3"GF'#F**F3	/G6F?	;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 )	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    IIbM!1a&	aLHHeWr\"!QYY[!$HHRs#!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
?$#:J1% 9 <21$/<-,
&[
z1>2$*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      s       7 F F & !),  P P &9:H- H- ;H-V &9:u% u% ;u%r$   