§
    µ³Ùg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     úX/granary/edev/quantum/lib/python3.11/site-packages/scipy/sparse/tests/test_indexing1d.pyÚcheck_remains_sortedr      sw   è è € ð 
€E€E€EÝ�1Ð*Ñ+Ô+ð °1Ô3Gð ØˆØŒi�nŠnÑÔ€GØ €AÔØ‡N‚NÑÔÐÝ�˜!œ)Ð%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á   € ÝŒH�Y�Y�YÑÔˆØˆI�a‰LŒLˆàŒG�AŒJˆÝ˜�r˜1‘”ð 	Gð 	GˆAÝ˜˜1˜d˜7œ×+Ò+Ñ-Ô-¨q°°D°¬zÑ:Ô:Ð:Ý˜˜4 ˜7œ×+Ò+Ñ-Ô-¨q°°q°¬zÑ:Ô:Ð:Ý˜˜4  q˜=Ô)×1Ò1Ñ3Ô3°Q°t¸TÀ1°}Ô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]  € ØˆI•b”i Ñ&Ô&×.Ò.¨q°!Ñ4Ô4Ñ5Ô5ˆØ�ŒwŒ|˜qÒ Ð Ð Ð Ø��A�a�C�ŒyŒ $Ò&Ð&Ð&Ð&Ø��q˜!˜A˜#�ŒÔ$¨Ò.Ð.Ð.Ð.Ø�Œ}Ô" dÒ*Ð*Ð*Ð*ØÐ!Ô"Ô(¨FÒ2Ð2Ð2Ð2ð �ŒzÔ 6Ò)Ð)Ð)Ð)Ø�ŒzÔ 6Ò)Ð)Ð)Ð)Ø��q˜!˜!˜!�Œ}Ô" fÒ,Ð,Ð,Ð,Ø��D˜!˜!˜!�Œ}Ô" fÒ,Ð,Ð,Ð,Ø��A�A�A�t�Œ}Ô" fÒ,Ð,Ð,Ð,åŒ]�:Ð-CÐDÑDÔDð 	&ð 	&ØÐ$Ô%Ð%ð	&ð 	&ð 	&ñ 	&ô 	&ð 	&ð 	&ð 	&ð 	&ð 	&ð 	&øøøð 	&ð 	&ð 	&ð 	&åŒ]�:Ð-CÐDÑDÔDð 	"ð 	"Øˆd�A�a�C˜˜qÐ Ô!Ð!ð	"ð 	"ð 	"ñ 	"ô 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"øøøð 	"ð 	"ð 	"ð 	"åŒ]�:Ð-CÐDÑDÔDð 	ð 	Øˆa�ˆc�1�2�2�tˆmÔÐð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	åŒ]�:Ð-CÐDÑDÔDð 	!ð 	!Øˆaˆbˆb�!�T˜4ÐÔ Ð ð	!ð 	!ð 	!ñ 	!ô 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!øøøð 	!ð 	!ð 	!ð 	!ð 	!ð 	!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�  € ÝŒH�Y�Y�YÑÔˆØˆI�a‰LŒLˆàŒG�AŒJˆÝ˜�r˜1‘”ð 	%ð 	%ˆAÝ˜˜1œ˜q œtÑ$Ô$Ð$Ð$àð 	"ð 	"ˆBÝ”�zÐ1SÐTÑTÔTð "ð "Ø—’˜bÑ!Ô!Ð!ð"ð "ð "ñ "ô "ð "ð "ð "ð "ð "ð "øøøð "ð "ð "ð "øð �Œw˜!Š|ˆ|ˆ|ˆ|åŒ]�:Ð-OÐPÑPÔPð 	 ð 	 Ø�MŠM˜$ÑÔÐð	 ð 	 ð 	 ñ 	 ô 	 ð 	 ð 	 ð 	 ð 	 ð 	 ð 	 ð 	 øøøð 	 ð 	 ð 	 ð 	 ð 	 ð 	 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&   ©Údtypeú2Changing the sparsity structure of .* is expensiver   r   r   g      "@é   é   éþÿÿÿé	   é   )i÷ÿÿÿr(   )é   éòÿÿÿ©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³  € Ý”
ˆØˆI�e 5Ð)Ñ)Ô)ˆÝŒZ×)Ò)Ñ+Ô+ð 	-¨sØ�JŠJÝ'ØDñô ð ð �5˜‘8”8ˆAˆa‰DØ�5˜‘8”8ˆAˆa‰DØ�5˜‘:”:ˆAˆa‰DØ�E˜!‘H”HˆAˆb‰EØˆAˆa‰Dà�U˜1‘X”XˆAˆc‰FØ�E˜!‘H”HˆAˆb‰Eà-ð -ð -�Ý”]¥:Ð5LÐMÑMÔMð -ð -Ø—M’M " 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Ù   € ÝŒH�Y�Y�YÑÔˆØˆI�a‰LŒLˆå�Q�r”U—]’]‘_”_ a¨¤eÑ,Ô,Ð,Ø ð 	"ð 	"ˆBÝ”�zÐ1UÐ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  € Ý”
ˆØˆI�e 5Ð)Ñ)Ô)ˆÝŒZ×)Ò)Ñ+Ô+ð 	(¨sØ�JŠJÝ'ØDñô ð ð #˜U 3™ZœZˆA�bŒh�q‰kŒk‰NØ"˜U 3™ZœZˆA�bŒh�q‰kŒk‰NÝ˜Ÿš™œÐ&JÐ&JÐ&JÑKÔKÐKà%ð -ð -�Ý”]¥:Ð5UÐVÑVÔVð -ð -Ø—M’M " eÑ,Ô,Ð,ð-ð -ð -ñ -ô -ð -ð -ð -ð -ð -ð -øøøð -ð -ð -ð -øð ˜& ) ) )­R¬X°i°i°iÑ-@Ô-@ÐAð (ð (�Ø>�Ý”]¥:°SÐ9Ñ9Ô9ð (ð (Ø—M’M ! 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—   € Ý�Y�Y˜u­B¬HÐ5Ñ5Ô5°a¸°cÔ:Ô@Å"Ä(ÑKÔKÐKÝ�Y�Y˜t­2¬8Ð4Ñ4Ô4°Q°q¸°UÔ;ÔAÅ2Ä8ÑLÔLÐLÝ�Y�Y˜t­2¬8Ð4Ñ4Ô4°Q°Q°QÔ7Ô=½r¼xÑ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�  € ÝŒI�c‰NŒNˆØˆI�a‰LŒLˆÝ�Q�q�q�q”T˜1˜Q˜Q˜Qœ4Ÿ<š<™>œ>Ñ*Ô*Ð*Ý�Q�q˜�s”V˜Q˜q ˜sœVŸ^š^Ñ-Ô-Ñ.Ô.Ð.åŒHÐ0Ð0Ð0Ñ1Ô1ˆØˆI�a‰LŒLˆÝ�Q�q˜�s”V˜Q˜q ˜sœVŸ^š^Ñ-Ô-Ñ.Ô.Ð.õ ŒH�_�_�_Ñ%Ô%ˆØˆI�a‰LŒLˆÝ�Q�q˜�s”V˜Q˜q ˜sœVŸ^š^Ñ-Ô-Ñ.Ô.Ð.Ý�Q�r�s�s”V˜Q˜r˜s˜sœVŸ^š^Ñ-Ô-Ñ.Ô.Ð.Ý�Q�q�q�q”T˜1˜Q˜Q˜Qœ4Ÿ<š<™>œ>Ñ*Ô*Ð*Ý�Q•u˜T‘{”{”^ Q¥u¨T¡{¤{¤^×%;Ò%;Ñ%=Ô%=Ñ>Ô>Ð>Ð>Ð>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 )Né2   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|  € ÝŒI�b‰MŒMˆØˆI�a‰LŒLˆõ 	�Q�q”T˜1˜Qœ4Ñ Ô Ð Ý�Q�r”U˜A˜bœEÑ"Ô"Ð"Ý�Q•r”x ‘|”|”_ a¨¤eÑ,Ô,Ð,õ 	�Q�q�q�q”T—\’\‘^”^ Q q q q¤TÑ*Ô*Ð*Ý�Q�q˜�t”W—_’_Ñ&Ô&¨¨!¨B¨$¬Ñ0Ô0Ð0Ý�Q�q˜˜A�v”Y×&Ò&Ñ(Ô(¨!¨A¨b°¨F¬)Ñ4Ô4Ð4õ •"”'˜!‘*”*�bœg a™jœj¨$Ñ/Ô/ˆÝ�Q�q”T—\’\‘^”^ Q q¨ s¤VÑ,Ô,Ð,õ ŒUˆØ�R�a�R”&˜"˜Q˜q˜Sœ' 2 a b b¤6¨2¨a¨d°¨d¬8Ø�R˜�U”)˜R  ! œWØ�Q�q˜�V”*˜b   B œi¨¨E¨Q¨r¨E¬Ø�Q˜˜1˜1˜1œ˜r ! A #œw¨¨B°Ý”(˜2‘,”,¥¤¨¡¤ð	-ˆõ ˜fÑ%Ô%ð 		:ð 		:‰DˆAˆqØ�!”ˆAØ�!”ˆAØŒw˜"Š}ˆ}Ý˜Q ¥4¨¡7¤7Ñ+Ô+Ð+Ð+à”6˜Q’;�; 1¤6¨Q¢; ;Øå  §¢¡¤¨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   € ÝŒI�b‰MŒMˆØˆI�a‰LŒLˆÝ�Q�s”V—^’^Ñ%Ô% q¨¤vÑ.Ô.Ð.Ý�Q�t”W—_’_Ñ&Ô&¨¨$¬Ñ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  € ØˆI�d‰OŒOˆÝŒH�T‰NŒNˆÝŒZ×)Ò)Ñ+Ô+ð 
	¨sØ�JŠJÝ'ØDñô ð ð ˜�Vð ð �Ø��!�A�#‘Ø��!�A�#‘Ø��!�A�#‘Ø��!�"�"‘Ø��!�%�R�%‘�ðð
	ð 
	ð 
	ñ 
	ô 
	ð 
	ð 
	ð 
	ð 
	ð 
	ð 
	øøøð 
	ð 
	ð 
	ð 
	õ 	�Q—Y’Y‘[”[ !Ñ$Ô$Ð$Ð$Ð$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   € Øˆå˜!‘H”H�e D¨"¨aÑ0Ô0µ%¸¸2±,´,Ð?ð 	9ð 	9ˆCØ�	˜%Ñ Ô ˆAÝ”×-Ò-Ñ/Ô/ð °3Ø—
’
Ý+ØHñô ð ð ��#‘ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ ”˜‘”ˆAØˆAˆc‰FØ ˜�.�.ˆCÝ˜AŸIšI™KœK¨°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«  € àˆI�d‰OŒOˆÝŒZ×)Ò)Ñ+Ô+ð 	<¨sØ�JŠJÝ'ØDñô ð ð ˆAˆa‰DØˆAˆa‰DØˆAˆa‰DØˆAˆa‰Dà�B‘ˆAØ�Q�Q�Q”4ˆAˆaˆaˆa‰DÝ˜˜1˜1˜1œŸš™œ¨¨1¨1¨1¬¯ª©¬Ñ8Ô8Ð8à�B‘ˆAØ�R�a�R”5ˆAˆaˆaˆa‰DÝ�œ $™œ¨!¨A¬$Ñ.°·	²	±´Ñ<Ô<Ð<à�B‘ˆAØ�q�r�r”UˆAˆcˆrˆc‰FÝ˜˜1˜2˜2œŸš™œ¨!¨C¨R¨C¬&¯.ª.Ñ*:Ô*:Ñ;Ô;Ð;ð)	<ð 	<ð 	<ñ 	<ô 	<ð 	<ð 	<ð 	<ð 	<ð 	<ð 	<ð 	<øøøð 	<ð 	<ð 	<ð 	<ð 	<ð 	<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.  € ØˆI�d‰OŒOˆÝ”8˜N˜N˜NÑ+Ô+ˆØ�A�ˆåŒZ×)Ò)Ñ+Ô+ð 	1¨sØ�JŠJÝ'ØDñô ð ð ˆAˆa‰DØˆAˆa‰DØ�q‘5ˆAˆaˆaˆa‰DÝ˜Ÿš™œ hÑ/Ô/Ð/å˜eÑ$Ô$ˆAˆbˆqˆb‰EÝ˜Ÿš™œ R a Rœ¨%Ñ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ú  € ØˆI�d‰OŒOˆÝŒH�Q�ÑÔˆÝŒUˆØ�R�a�R”&˜"˜Q˜q˜Sœ' 2 a b b¤6¨2¨a¨d°¨d¬8Ø�Q�q˜�V”*˜b   B œi¨¨E¨Q¨r¨E¬Ø�Q˜˜1˜1˜1œ˜r ! A #œw¨¨B°Ý”(˜2‘,”,¥¤¨¡¤ð-ˆõ
 ŒZ×)Ò)Ñ+Ô+ð 	)¨sØ�JŠJÝ'ØDñô ð õ " &Ñ)Ô)ð 6ð 6‘��1Ø��!‘Ø��!‘Ý˜QŸYšY™[œ[¨!­T°!©W¬WÑ5Ô5Ð5Ð5å˜a  A™œˆAˆa��1ˆf‰IÝ˜a  A™œˆAˆa��1ˆf‰IÝ˜Ÿš™œ aÑ(Ô(Ð(ð	)ð 	)ð 	)ñ 	)ô 	)ð 	)ð 	)ð 	)ð 	)ð 	)ð 	)øøøð 	)ð 	)ð 	)ð 	)õ •e˜C‘j”jÑ!Ô!ˆÝŒ]�:Ð-UÐVÑVÔVð 	%ð 	%Ø�MŠM˜!˜VÑ$Ô$Ð$ð	%ð 	%ð 	%ñ 	%ô 	%ð 	%ð 	%ð 	%ð 	%ð 	%ð 	%øøøð 	%ð 	%ð 	%ð 	%åŒ]�:Ð-NÐOÑOÔOð 	/ð 	/Ø�MŠM�% ™+œ+ 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   € ØˆI•b”g˜a‘j”jÑ!Ô!ˆØˆI�d‰OŒOˆØˆˆ"ˆ1ˆ"‰Ý�Q—Y’Y‘[”[ ) ) )Ñ,Ô,Ð,Ð,Ð,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   € ØˆI�d¥"¤(Ð+Ñ+Ô+ˆÝ�Q˜˜u�~Ô&Ô,­b¬hÑ7Ô7Ð7Ý�Q�r”U”[¥"¤(Ñ+Ô+Ð+Ð+Ð+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  € ØˆI•b”h˜q‘k”kÑ"Ô"ˆÝŒ]Ý�¥YÐ/Ø@ð
ñ 
ô 
ð 	!ð 	!ð �MŠM˜%Ñ Ô Ð ð		!ð 	!ð 	!ñ 	!ô 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!øøøð 	!ð 	!ð 	!ð 	!õ
 Œ]Ý�¥YÐ/Ø:ð
ñ 
ô 
ð 	&ð 	&ð �MŠM˜*Ñ%Ô%Ð%ð		&ð 	&ð 	&ñ 	&ô 	&ð 	&ð 	&ð 	&ð 	&ð 	&ð 	&ð 	&øøøð 	&ð 	&ð 	&ð 	&ð 	&ð 	&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   € ÝŒI�b‰MŒM×!Ò! 'Ñ*Ô*ˆØˆI�a‰LŒLˆõ 	�Q˜˜1�v”Y×&Ò&Ñ(Ô(¨!¨Q°¨F¬)Ñ4Ô4Ð4õ 	�Q�q˜1˜a˜&�y”\×)Ò)Ñ+Ô+¨Q¨q°1°a°&¨y¬\Ñ:Ô:Ð:Ý�Q�r˜A˜r˜7�{”^×+Ò+Ñ-Ô-¨q°°a¸°W°¬~Ñ>Ô>Ð>Ý�Q•r”x ‘|”| a¨ WÐ,Ô-×5Ò5Ñ7Ô7¸¸2ÀÀ2¸w¸;¼ÑHÔHÐHÝ�Q�r�2œ8 Q¨ GÑ,Ô,Ð,Ô-×5Ò5Ñ7Ô7¸¸2ÀÀ2¸w¸;¼ÑHÔHÐHÝ�Q•r”x ‘|”|¥R¤X¨q°"¨gÑ%6Ô%6Ð6Ô7×?Ò?ÑAÔAÀ1ÀRÈ!ÈRÈÀ[Ä>ÑRÔRÐRõ 	�Q�q�q�q˜-˜-˜-Ð'Ô(×0Ò0Ñ2Ô2°A°a°a°a¸¸¸Ð6FÔ4GÑHÔHÐHÝ�Q�q˜�s˜Q˜C�x”[×(Ò(Ñ*Ô*¨A¨a°¨c°A°3¨h¬KÑ8Ô8Ð8Ý�Q�q˜�s˜R ˜H�}Ô%×-Ò-Ñ/Ô/°°1°Q°3¸¸R¸°=Ô1AÑBÔBÐBÝ�Q�q˜�s�BœH b¨" XÑ.Ô.Ð.Ô/×7Ò7Ñ9Ô9¸1¸Q¸q¸SÀ2ÀrÀ(¸]Ô;KÑLÔLÐLõ 	�Q˜˜1�v˜q�y”\×)Ò)Ñ+Ô+¨Q°°1¨v°q¨y¬\Ñ:Ô:Ð:Ý�Q˜˜2�w �{”^×+Ò+Ñ-Ô-¨q°!°R°¸"°¬~Ñ>Ô>Ð>Ý�Q•r”x  B Ñ(Ô(¨"Ð,Ô-×5Ò5Ñ7Ô7¸¸A¸r¸7ÀB¸;¼ÑHÔHÐHÝ�Q˜˜2�w¥¤¨¡¤Ð,Ô-×5Ò5Ñ7Ô7¸¸A¸r¸7ÀB¸;¼ÑHÔHÐHÝ�Q•r”x  B Ñ(Ô(­"¬(°2©,¬,Ð6Ô7×?Ò?ÑAÔAÀ1ÀaÈÀWÈbÀ[Ä>ÑRÔRÐRõ 	�Q˜˜1�v˜q˜q˜q�y”\×)Ò)Ñ+Ô+¨Q°°1¨v°q°q°q¨y¬\Ñ:Ô:Ð:Ý�Q˜˜2�w  " �}Ô%×-Ò-Ñ/Ô/°°A°r°7¸A¸b¸D°=Ô1AÑBÔBÐBÝ�Q•r”x  B Ñ(Ô(¨!¨B¨$Ð.Ô/×7Ò7Ñ9Ô9¸1¸aÀ¸WÀaÈÀd¸]Ô;KÑLÔLÐLõ 	•W˜Q  1˜v¨¨1 v˜~Ô.Ñ/Ô/°°A°q°6¸A¸q¸6°>Ô1BÑCÔCÐCÝ•W˜Q  B˜x¨!¨R¨Ð0Ô1Ñ2Ô2°A°r¸2°hÀÀBÀÐ6GÔ4HÑIÔIÐIÝÝ�A•b”h  B˜xÑ(Ô(¨1¨b¨'Ð1Ô2Ñ3Ô3°Q¸¸B°xÀ!ÀRÀÐ7HÔ5Iñ	
ô 	
ð 	
õ 	Ý�A�r˜2�h¥¤¨!¨R¨Ñ 1Ô 1Ð1Ô2Ñ3Ô3°Q¸¸B°xÀ!ÀRÀÐ7HÔ5Iñ	
ô 	
ð 	
õ 	Ý�A•b”h  B˜xÑ(Ô(­"¬(°A°r°7Ñ*;Ô*;Ð;Ô<Ñ=Ô=¸qÀ"ÀbÀÈAÈrÈ7ÐARÔ?Sñ	
ô 	
ð 	
õ
 	�Q˜˜˜a˜S�z A q 6Ð)Ô*×2Ò2Ñ4Ô4°a¸!¸¸q¸c¸
ÀQÈÀFÐ8JÔ6KÑLÔLÐLÝØ�ˆt�b�T˜B˜4Ð  1 b 'Ð)Ô*×2Ò2Ñ4Ô4Ø�ˆt�b�T˜B˜4Ð  1 b 'Ð)Ô*ñ	
ô 	
ð 	
õ 	Ø�bŒh˜˜˜r˜d R DÐ)Ñ*Ô*¨Q°¨GÐ3Ô4×<Ò<Ñ>Ô>Ø�ˆt�b�T˜B˜4Ð  1 b 'Ð)Ô*ñ	
ô 	
ð 	
õ 	Ø�ˆt�b�T˜B˜4Ð ¥"¤(¨A¨r¨7Ñ"3Ô"3Ð3Ô4×<Ò<Ñ>Ô>Ø�ˆt�b�T˜B˜4Ð  1 b 'Ð)Ô*ñ	
ô 	
ð 	
õ 	Ø�bŒh˜˜˜r˜d R DÐ)Ñ*Ô*­B¬H°a¸°WÑ,=Ô,=Ð=Ô>×FÒFÑHÔHØ�ˆt�b�T˜B˜4Ð  1 b 'Ð)Ô*ñ	
ô 	
ð 	
õ 	�Q˜˜1�v”Y×&Ò&Ñ(Ô(¨!¨Q°¨F¬)Ñ4Ô4Ð4Ý�Q˜˜B�x”[×(Ò(Ñ*Ô*¨A¨r°2¨h¬KÑ8Ô8Ð8Ý�Q•r”x  R Ñ)Ô)Ô*×2Ò2Ñ4Ô4°a¸¸R¸´kÑBÔBÐBõ 	Øˆq�!ˆf�a�a�aˆiŒL˜˜˜˜Q ˜F˜Ô#×+Ò+Ñ-Ô-¨q°!°Q°¸¸¸°¬|¸A¸A¸AÀÀ1¸v¸IÔ/Fñ	
ô 	
ð 	
õ 	Øˆr�2ˆh˜˜˜ˆkŒN˜1˜1˜1˜q "˜g˜:Ô&×.Ò.Ñ0Ô0°!°R¸°H¸a¸a¸a°K´.ÀÀÀÀQÈÀGÀÔ2Lñ	
ô 	
ð 	
õ 	Ø�bŒh˜˜B�xÑ Ô  ! ! !Ð#Ô$ Q Q Q­¬°!°R°Ñ(9Ô(9Ð%9Ô:×BÒBÑDÔDØˆr�2ˆh˜˜˜ˆkŒN˜1˜1˜1˜q "˜g˜:Ô&ñ	
ô 	
ð 	
õ 	Øˆaˆaˆa�!�Q�ˆiŒL˜!˜Q˜   ˜Ô#×+Ò+Ñ-Ô-¨q°°°°Q¸°F°¬|¸QÀ¸FÀAÀAÀA¸IÔ/Fñ	
ô 	
ð 	
õ 	Øˆaˆaˆa�"�b�ˆkŒN˜A˜r˜7 A A A˜:Ô&×.Ò.Ñ0Ô0°!°A°A°A¸¸B°x°K´.À!ÀRÀÈ!È!È!ÀÔ2Lñ	
ô 	
ð 	
õ 	Øˆaˆaˆa•”˜2˜r˜(Ñ#Ô#Ð#Ô$¥R¤X¨q°"¨gÑ%6Ô%6¸¸¸Ð%9Ô:×BÒBÑDÔDØˆaˆaˆa�"�b�ˆkŒN˜A˜r˜7 A A A˜:Ô&ñ	
ô 	
ð 	
ð 	
ð 	
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¿  € ÝŒI�b‰MŒMˆØˆI�a‰LŒLˆõ 	�Q˜�s”V—^’^Ñ%Ô% q¨!¨¤vÑ.Ô.Ð.õ 	�Q˜˜1�v”Y×&Ò&Ñ(Ô(¨!¨Q°¨F¬)Ñ4Ô4Ð4Ý�Q˜˜2�w”Z×'Ò'Ñ)Ô)¨1¨a°¨W¬:Ñ6Ô6Ð6Ý�Q•r”x ‘|”|”_ a¨¤eÑ,Ô,Ð,Ý�Q•r”x  Q Ñ(Ô(Ô)×1Ò1Ñ3Ô3°Q¸¸A°w´ZÑ@Ô@Ð@Ý�Q•r”x ‘{”{”^ Q¥r¤x°¡{¤{¤^Ñ4Ô4Ð4õ Œh˜˜˜a˜S�zÑ"Ô"ˆÝ�Q�s”V—^’^Ñ%Ô% q¨¤vÑ.Ô.Ð.ÝŒh˜˜˜r˜d R DÐ)Ñ*Ô*ˆÝ�Q�s”V—^’^Ñ%Ô% q¨¤vÑ.Ô.Ð.õ 	�Q˜˜1�v”Y×&Ò&Ñ(Ô(¨!¨Q°¨F¬)Ñ4Ô4Ð4Ý�Q˜˜B�x”[×(Ò(Ñ*Ô*¨A¨r°2¨h¬KÑ8Ô8Ð8Ý�Q•r”x  R Ñ)Ô)Ô*×2Ò2Ñ4Ô4°a¸¸R¸´kÑBÔBÐBõ 	�Q�|�|�|”_ a¨ VÔ,×4Ò4Ñ6Ô6Ø�|�|�|”_ a¨ VÔ,ñ	.ô 	.ð 	.å�Q�~�~�~Ô&¨¨2 wÔ/×7Ò7Ñ9Ô9Ø�~�~�~Ô&¨¨2 wÔ/ñ	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ÑÔÐåŒI�b‰MŒMˆØˆI�a‰LŒLˆåŒH•R”Y×&Ò& q¨!°"Ð&Ñ5Ô5½TÐBÑBÔBˆå•W˜Q˜qœT‘]”] A a¤DÑ)Ô)Ð)Ý•W˜Q˜q 1šuœXÑ&Ô&¨¨!¨aª%¬Ñ1Ô1Ð1åŒX�b¥Ð%Ñ%Ô%ˆÝŒX�b¥Ð%Ñ%Ô%ˆØˆˆ2‰ÝŒX�b¥Ð%Ñ%Ô%ˆØˆˆ1‰àCˆÝŒ]�:¨SÐ1Ñ1Ô1ð 	ð 	Ø�MŠM˜"ÑÔÐð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	åŒ]�:¨SÐ1Ñ1Ô1ð 	ð 	Ø�MŠM˜"ÑÔÐð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	åŒ]�:¨SÐ1Ñ1Ô1ð 	ð 	Ø�MŠM˜"ÑÔÐð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	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ÑÔÐåŒI�b‰MŒMˆØˆI�a‰LŒLˆåŒH•R”Y×&Ò& q¨!°"Ð&Ñ5Ô5½TÐBÑBÔBˆÝ˜‰lŒlˆå•W˜Q˜sœV‘_”_ a¨¤dÑ+Ô+Ð+Ý•W˜Q˜q 1šuœXÑ&Ô&¨¨!¨aª%¬Ñ1Ô1Ð1åŒH•R”Y×&Ò& q¨!°"Ð&Ñ5Ô5½TÐBÑBÔBˆå˜‰lŒlˆåŒ]�:Ð-TÐUÑUÔUð 	ð 	Ø�MŠM˜#ÑÔÐð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	åŒ]�:Ð-UÐVÑVÔVð 	$ð 	$Ø�MŠM˜3 ˜(Ñ#Ô#Ð#ð	$ð 	$ð 	$ñ 	$ô 	$ð 	$ð 	$ð 	$ð 	$ð 	$ð 	$ð 	$øøøð 	$ð 	$ð 	$ð 	$ð 	$ð 	$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Ø�OŠO˜A�rœx¨¨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Ó   € ÝŒI�b‰MŒMˆØˆˆ!ˆAˆ#‰Øˆˆ"‰ØˆI�a‰LŒLˆåŒH�e�W˜r‘\Ñ"Ô"ˆÝ•W˜Q˜qœT‘]”] A a¤DÑ)Ô)Ð)ÝŒH�R�sÐ#Ñ#Ô#ˆÝ•W˜Q˜qœT‘]”] A a¤DÑ)Ô)Ð)ÝŒH�_�_�_­CÐ0Ñ0Ô0ˆÝ•W˜Q˜qœT‘]”] A a¤DÑ)Ô)Ð)Ð)Ð)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²   € ØˆI•b”h˜q‘k”kÑ"Ô"ˆØ<ˆÝŒ]�J­
µIÐ>ÀcÐJÑJÔJð 	$ð 	$Ø�MŠM˜% Ñ#Ô#Ð#ð	$ð 	$ð 	$ñ 	$ô 	$ð 	$ð 	$ð 	$ð 	$ð 	$ð 	$ð 	$øøøð 	$ð 	$ð 	$ð 	$ð 	$ð 	$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ˆ  € Øˆð �)�)�U 4¨¨QÑ/Ô/µ´¸1±´Ý˜1˜b‘\”\¥5¨¨A¡;¤;ð0ð 	,ð 	,ˆAà�	˜!‘”ˆAÝ”˜‘”ˆAÝ”×-Ò-Ñ/Ô/ð °3Ø—
’
Ý+ØHñô ð ð ��!‘Ý)¨!Ñ,Ô,ð ð Ø�A�a‘Dðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ ˜AŸIšI™KœK¨Ñ+Ô+Ð+Ð+ð	,ð 	,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  € ØˆI�d‰OŒOˆØˆI�d‰OŒOˆàˆYˆYˆØˆÝŒX�b‰\Œ\ˆåŒZ×)Ò)Ñ+Ô+ð 	)¨sØ�JŠJÝ'ØDñô ð õ & aÑ(Ô(ð ð Ø˜"œ��"‘ØK�Ý”]¥:°SÐ9Ñ9Ô9ð &ð &Ø—M’M "Ñ%Ô%Ð%ð&ð &ð &ñ &ô &ð &ð &ð &ð &ð &ð &øøøð &ð &ð &ð &à˜"œ��"‘ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ ˜˜2˜A˜2œŸš™œ¨!¯)ª)©+¬+Ñ6Ô6Ð6Ø”7˜d’?�?�?�?ð �	˜$‘”ˆAÝ% aÑ(Ô(ð "ð "Ø˜b˜��!�A�#‘ð"ð "ð "ñ "ô "ð "ð "ð "ð "ð "ð "øøøð "ð "ð "ð "å˜Ÿš™œ n n nÑ5Ô5Ð5ð �	˜$‘”ˆAÝ”˜‘”ˆAÝ% aÑ(Ô(ð -ð -Ø˜Q˜ð -ð -�AØ#, 9 9�A�i�i�i‘L�Lð-ð-ð -ð -ñ -ô -ð -ð -ð -ð -ð -ð -øøøð -ð -ð -ð -õ ˜Ÿš™œ 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£   € ÝŒI�b‰MŒMˆØˆˆ!‰Øˆˆ1ˆaˆ&‰	ØˆI�a‰LŒLˆåŒH�e�W˜r‘\Ñ"Ô"ˆØˆˆ!‰Ý�Q—Y’Y‘[”[ !Ñ$Ô$Ð$åŒH�R�sÐ#Ñ#Ô#ˆØˆˆ!‰Ý�Q—Y’Y‘[”[ !Ñ$Ô$Ð$Ð$Ð$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   