§
    µ³Ùg!–  ã                   óâ   — d Z ddlZddlmZ ddlmZmZmZmZ ddl	Z	ddl	m
Z ddlmZ ddlmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ ddl m!Z" g d	¢Z#dd„Z$dd„Z% G d„ d¦  «        Z&d„ Z'dS )z)test sparse matrix construction functionsé    N)Úarray)Úassert_equalÚassert_Úassert_array_equalÚassert_array_almost_equal_nulp)Úraises)Úcheck_free_memory)Ú
csr_matrixÚ
coo_matrixÚ	csr_arrayÚ	coo_arrayÚ	csc_arrayÚ	bsr_arrayÚ	dia_arrayÚ	dok_arrayÚ	lil_arrayÚ
csc_matrixÚ
bsr_matrixÚ
dia_matrixÚ
lil_matrixÚsparrayÚspmatrixÚ
_construct)Úrand)ÚcsrÚcscÚcooÚbsrÚdiaÚlilÚdokç{®Gáz„?r   c           	      ó‚   — t           j                             |¦  «        }|j        }t	          j        | ||||||¦  «        S ©N)ÚnpÚrandomÚdefault_rngÚstandard_normalÚ	construct)ÚmÚnÚdensityÚformatÚdtypeÚrngÚdata_rvss          úW/granary/edev/quantum/lib/python3.11/site-packages/scipy/sparse/tests/test_construct.pyÚ_sprandnr2      s<   € å
Œ)×
Ò
 Ñ
$Ô
$€CØÔ"€HÝÔ˜A˜q '¨6°5¸#¸xÑHÔHÐHó    c                 ó†   — t           j                             |¦  «        }|j        }t	          j        | |f|||||¬¦  «        S )N)r,   r-   r.   r/   Údata_sampler)r%   r&   r'   r(   r)   Úrandom_array)r*   r+   r,   r-   r.   r/   r5   s          r1   Ú_sprandn_arrayr7   !   sO   € å
Œ)×
Ò
 Ñ
$Ô
$€CØÔ&€LÝÔ! 1 a &°'À&ÐPUØ&)¸ðFñ Fô Fð Fr3   c            
       ó  — e Zd Zej                             deeee	e
eeg¦  «        d„ ¦   «         Zej                             deeeeeeg¦  «        d„ ¦   «         Zd„ Zd„ Zd„ Zd„ Zd„ Zd	„ Zd
„ Zd„ Zd„ Zej                             dej        ej         g¦  «        d„ ¦   «         Z!ej                             dej"        ej         g¦  «        d„ ¦   «         Z#ej                             dej"        ej         g¦  «        d„ ¦   «         Z$d„ Z%d„ Z&d„ Z'd„ Z(d„ Z)d„ Z*ej                             deeg¦  «        d„ ¦   «         Z+d„ Z,d„ Z-d„ Z.ej                             deeg¦  «        d„ ¦   «         Z/d„ Z0ej                             dej1        ej2        f¦  «        d „ ¦   «         Z3d!„ Z4d"„ Z5ej        j6        ej        j7        ej         8                    d#¦  «        d$„ ¦   «         ¦   «         ¦   «         Z9d%„ Z:d&„ Z;d'„ Z<d(„ Z=d)„ Z>d*„ Z?d+„ Z@ej                             d,d-d.eAjB         C                    d.¦  «        g¦  «        d/„ ¦   «         ZDej                             d,d-d.eAjB         C                    d.¦  «        g¦  «        d0„ ¦   «         ZEd1„ ZFd2„ ZGd3„ ZHd4„ ZId-S )5ÚTestConstructUtilsÚclsc                 ó„   — t          j        t          d¬¦  «        5   |d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NzEscipy sparse array classes do not support instantiation from a scalar©Úmatchr   )Úpytestr   Ú
ValueError©Úselfr:   s     r1   Ú test_singleton_array_constructorz3TestConstructUtils.test_singleton_array_constructor+   s–   € õ
 Œ]Ýð.ð
ñ 
ô 
ð 	ð 	ð ˆC�‰FŒFˆFð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   œ5µ9¼9c                 ó2   —  |d¦  «        j         dk    sJ ‚dS )a1  
        This test is for backwards compatibility post scipy 1.13.
        The behavior observed here is what is to be expected
        with the older matrix classes. This test comes with the
        exception of dok_matrix, which was not working pre scipy1.12
        (unlike the rest of these).
        r   ©é   rE   N©Úshaper@   s     r1   Ú!test_singleton_matrix_constructorz4TestConstructUtils.test_singleton_matrix_constructor9   s%   € ð ˆs�1‰vŒvŒ|˜vÒ%Ð%Ð%Ð%Ð%Ð%r3   c                 óp  — t          g d¢g¦  «        }t          g d¢g d¢g¦  «        }t          g d¢g d¢g d¢g¦  «        }g }|                     |ddddggf¦  «         |                     |dgdddggf¦  «         |                     |dgdddgdggf¦  «         |                     |dgddddggf¦  «         |                     |dgddddggf¦  «         |                     |dgddddggf¦  «         |                     |dgddddgddggf¦  «         |                     |dgddddgddggf¦  «         |                     |dgddddgddggf¦  «         |                     |dgdd	g d
¢g d¢g d¢gf¦  «         |                     |dgdd	g d¢g d¢g d¢gf¦  «         |                     |dgddg d¢g d¢g d¢gf¦  «         |                     |ddgddg d¢g d¢g d¢gf¦  «         |                     |ddgdd	g d¢g d¢g d¢gf¦  «         |                     |ddgddg d¢g d¢g d¢g d¢g d¢g d¢gf¦  «         |                     |g d ¢ddg d!¢g d"¢g d#¢g d$¢g d%¢g d¢gf¦  «         |                     |g d&¢ddg d'¢g d(¢g d)¢g d*¢g d+¢g d,¢gf¦  «         |                     |g d-¢t          |d         ¦  «        t          |d         ¦  «        g d.¢g d/¢g d0¢g d1¢g d¢gf¦  «         |D ]Ë\  }}}}}	t          |d         ¦  «        |k    r;||k    r5t          t	          j        ||¦  «                             ¦   «         |	¦  «         t          t	          j        ||||¦  «                             ¦   «         |	¦  «         t          t	          j        ||||f¦  «                             ¦   «         |	¦  «         ŒÌd S )2N©rE   é   é   é   é   ©é   é   é   é	   é
   ©é   é   é   é   é   r   rE   rK   éÿÿÿÿrL   rM   ©rE   r   r   r   ©r   rK   r   r   ©r   r   rL   r   )r   r   r   rM   rN   ©r   r   rL   r   r   )r   r   r   rM   r   )r   r   r   r   rN   )rE   r   rR   ©r   rK   r   ©r   r   rL   ©rP   r   r   r   ©rE   rQ   r   r   ©r   rK   rR   r   éýÿÿÿrP   )r   r   rL   r   r   r   )r   r   r   rM   r   r   )r   r   r   r   rN   r   )rP   r   r   r   r   r   ©r   rQ   r   r   r   r   ©r   r   rR   r   r   r   ©r[   r   rE   )rP   rW   r   r   r   r   )rE   rQ   rX   r   r   r   )r   rK   rR   rY   r   r   )r   r   rL   rS   rZ   r   )r   r   r   rM   rT   r   ©éüÿÿÿrK   r[   )r   r   rR   r   r   )rV   r   r   rS   r   )r   rW   r   r   rT   ©r   r   rX   r   r   ©rE   r   r   rY   r   ©r   rK   r   r   rZ   )r[   rE   rK   )r   rQ   rX   r   r   )rE   r   rR   rY   r   )r   rK   r   rS   rZ   )r   r   rL   r   rT   )r   ÚappendÚlenr   r)   ÚspdiagsÚtoarray)
rA   Údiags1Údiags2Údiags3ÚcasesÚdÚor*   r+   Úresults
             r1   Útest_spdiagszTestConstructUtils.test_spdiagsG   s  € Ý˜˜˜Ð(Ñ)Ô)ˆÝ˜˜˜Ø(˜˜ð*ñ +ô +ˆå˜˜˜Ø(˜˜Ø)Ð)Ð)ð+ñ ,ô ,ˆð ˆØ�Š�f˜a  A¨¨ uÐ-Ñ.Ô.Ð.Ø�Š�f˜q˜c 1 a¨1¨#¨Ð/Ñ0Ô0Ð0Ø�Š�f˜q˜c 1 a¨1¨#¨q¨c¨Ð3Ñ4Ô4Ð4Ø�Š�f˜q˜c 1 a¨1¨Q¨%¨Ð1Ñ2Ô2Ð2Ø�Š�f˜q˜c 1 a¨1¨Q¨%¨Ð1Ñ2Ô2Ð2Ø�Š�f˜b˜T 1 a¨1¨Q¨%¨Ð1Ñ2Ô2Ð2Ø�Š�f˜q˜c 1 a¨1¨Q¨%°°1°¨Ð7Ñ8Ô8Ð8Ø�Š�f˜b˜T 1 a¨1¨Q¨%°°1°¨Ð7Ñ8Ô8Ð8Ø�Š�f˜q˜c 1 a¨1¨Q¨%°°1°¨Ð7Ñ8Ô8Ð8Ø�Š�f˜q˜c 1 a¨)¨)¨)°I°I°I¸i¸i¸iÐ)HÐIÑJÔJÐJØ�Š�f˜q˜c 1 a¨)¨)¨)°I°I°I¸i¸i¸iÐ)HÐIÑJÔJÐJØ�Š�f˜q˜c 1 a¨+¨+¨+°k°k°kÀ+À+À+Ð)NÐOÑPÔPÐPà�Š�f˜q ˜e Q¨¨G¨G¨G°G°G°G¸G¸G¸GÐ+DÐEÑFÔFÐFØ�Š�f˜r !˜f a¨¨Y¨Y¨Y°y°y°yÀÀÀÐ,KÐLÑMÔMÐMØ�Š�f˜q ˜f a¨¨]¨]¨]Ø.;¨m¨mØ.;¨m¨mØ.;¨m¨mØ.;¨m¨mØ.;¨m¨mð-=ð >ñ 	?ô 	?ð 	?ð 	�Š�f˜h˜h˜h¨¨1Ð/AÐ/AÐ/AØ0BÐ0BÐ0BØ0BÐ0BÐ0BØ0BÐ0BÐ0BØ0BÐ0BÐ0BØ0BÐ0BÐ0Bð/Dð Eñ 	Fô 	Fð 	Fð 	�Š�f˜i˜i˜i¨¨A°°°Ø1AÐ1AÐ1AØ1@°°Ø1@°°Ø1@°°Ø1@°°ð0Bð Cñ 	Dô 	Dð 	Dð 	�Š�f˜j˜j˜j­#¨f°Q¬i©.¬.½#¸fÀQ¼i¹.¼.Ø'Ð'Ð'Ø'Ð'Ð'Ø'Ð'Ð'Ø'Ð'Ð'Ø&��ð	(ð)ñ 	*ô 	*ð 	*ð #(ð 	Lð 	LÑˆAˆq�!�Q˜Ý�1�Q”4‰yŒy˜AŠ~ˆ~ ! q¢& &Ý�YÔ.¨q°!Ñ4Ô4×<Ò<Ñ>Ô>ÀÑGÔGÐGÝ�Ô*¨1¨a°°AÑ6Ô6×>Ò>Ñ@Ô@À&ÑIÔIÐIÝ�Ô*¨1¨a°!°Q°Ñ8Ô8×@Ò@ÑBÔBÀFÑKÔKÐKÐKð		Lð 	Lr3   c                 ó´  — t          g d¢¦  «        }t          g d¢¦  «        }t          g d¢¦  «        }g }|                     |d d…         dddggf¦  «         |                     |d d…         gdgddggf¦  «         |                     |d d…         gdgddgdggf¦  «         |                     |d d…         gdgdddggf¦  «         |                     |d d…         gdgdddggf¦  «         |                     |d d	…         gdgd
ddgdd	ggf¦  «         |                     |d d…         gdgd
ddgddggf¦  «         |                     |d d…         gdgdg d¢g d¢g d¢gf¦  «         |                     |d d…         gdgdg d¢g d¢g d¢gf¦  «         |                     |d d…         gdgdg d¢g d¢g d¢gf¦  «         |                     |d d	…         gdgdg d¢g d¢g d¢gf¦  «         |                     |d d…         gdgdg d¢g d¢g d¢gf¦  «         |                     |d d…         gdgdg d¢g d¢g d¢gf¦  «         |                     |d d…         gd	gdg d¢g d¢g d¢gf¦  «         |                     |d d	…         gdgdg d ¢g d!¢g d¢gf¦  «         |                     |d d…         gd"gdg d#¢g d¢g d¢gf¦  «         |                     |d d…         gd$gd%g d&¢g d&¢g d&¢g d&¢g d'¢gf¦  «         |                     |d d	…         gd(gd%g d&¢g d&¢g d&¢g d'¢g d)¢gf¦  «         |                     |d d…         gdgd%g d&¢g d&¢g d'¢g d)¢g d*¢gf¦  «         |                     |d d…         gdgd%g d&¢g d'¢g d)¢g d*¢g d&¢gf¦  «         |                     |d d…         gdgd%g d'¢g d)¢g d*¢g d&¢g d&¢gf¦  «         |                     |d d	…         gdgd%g d+¢g d,¢g d&¢g d&¢g d&¢gf¦  «         |                     |d d…         gd	gd%g d-¢g d&¢g d&¢g d&¢g d&¢gf¦  «         |                     |d d…         |d d…         gdd	gd.g d/¢g d)¢g d*¢gf¦  «         |                     |d d	…         |d d…         gddgdg d0¢g d1¢g d2¢gf¦  «         |                     |d d"…         |d d…         gd	d(gd3g d4¢g d5¢g d6¢g d7¢g d8¢g d9¢gf¦  «         |                     |d d"…         ||d d"…         gg d:¢d;g d<¢g d=¢g d>¢g d?¢g d@¢gf¦  «         |                     |d d	…         |d d…         |gg dA¢dBg dC¢g dD¢g dE¢g dF¢g dG¢g dH¢gf¦  «         |                     |gdgddggf¦  «         |                     |d d…         |gdd	gd.g d/¢g d)¢g d*¢gf¦  «         |                     t          j         g dI¢g dJ¢g¦  «        ddgd.g d'¢g dK¢g dL¢gf¦  «         |                     g dM¢g dN¢d.g dO¢g dM¢g dP¢gf¦  «         |D ]Ó\  }}}}|›dQ|›dQ|›dQ|›�}	t          t	          j        |||¬R¦  «                             ¦   «         ||	¬S¦  «         |d         |d         k    rtt          |d         dT¦  «        r^t          |d         ¦  «        t          |¦  «        k    r8t          t	          j        ||¬U¦  «                             ¦   «         ||	¬S¦  «         ŒÔd S )VNrJ   rO   rU   rE   r   rD   ©rK   rE   ©rE   rK   rK   ©rK   rK   r[   rL   )rL   rM   r\   r]   r^   )r   rE   r   r   )r   r   rK   r   )r   r   r   rL   éþÿÿÿ©rL   rN   )r   r   r   r   r   )rE   r   r   r   r   )r   rK   r   r   r   r_   )r   rE   r   r   r   )r   r   rK   r   r   )r   r   r   rL   r   )r   r   rE   r   r   )r   r   r   rK   r   )r   r   r   r   rL   )r   r   r   rE   r   )r   r   r   r   rK   rM   )r   r   r   r   rE   rj   )rN   rL   ©r   r   r   ©rE   r   r   re   r`   ra   ©r   rE   r   )r   r   rK   ©r   r   rE   ©rL   rL   )rE   r   rP   rb   rc   rd   )rP   rP   )r   r   rE   r   r   r   )r   r   r   rK   r   r   )r   r   r   r   rL   r   )rP   r   r   r   r   rM   rf   rg   rh   ©rN   rN   )rP   rV   r   r   r   )rE   rQ   rW   r   r   )r   rK   rR   rX   r   )r   r   rL   rS   rY   )r   r   r   rM   rT   ri   ©rP   rN   )r   r   rP   r   r   )rV   r   r   rQ   r   )r   rW   r   r   rR   rk   rl   rm   ©rE   rK   rL   )rM   rN   rP   )rM   rK   r   )r   rN   rL   )rE   r~   rE   )rE   r   r[   )r~   rE   r   )r   rE   r~   ú ©ÚoffsetsrG   )Úerr_msgÚ__len__©rŠ   )
r   rn   r%   r   r)   Údiagsrq   Úhasattrro   Úmax)
rA   ÚaÚbÚcru   rv   rw   rG   rx   r‹   s
             r1   Ú
test_diagszTestConstructUtils.test_diags   sK	  € Ý�/�/�/Ñ"Ô"ˆÝÐ"Ð"Ð"Ñ#Ô#ˆÝÐ&Ð&Ð&Ñ'Ô'ˆàˆØ�Š�a˜˜˜”e˜Q ¨!¨¨Ð.Ñ/Ô/Ð/Ø�Š�q˜˜!˜”u�g ˜s F¨a¨S¨EÐ2Ñ3Ô3Ð3Ø�Š�q˜˜!˜”u�g ˜s F¨a¨S°!°¨IÐ6Ñ7Ô7Ð7Ø�Š�q˜˜!˜”u�g ˜s F¨a°¨U¨GÐ4Ñ5Ô5Ð5Ø�Š�q˜˜!˜”u�g ˜s F¨a°¨U¨GÐ4Ñ5Ô5Ð5Ø�Š�q˜˜!˜”u�g ˜s F¨a°¨U°A°a°5¨MÐ:Ñ;Ô;Ð;Ø�Š�q˜˜!˜”u�g˜r˜d F¨a°¨U°A°a°5¨MÐ:Ñ;Ô;Ð;Ø�Š�q˜˜!˜”u�g ˜s F¨Y¨Y¨Y°y°y°yÀÀÀÐ,KÐLÑMÔMÐMØ�Š�q˜˜!˜”u�g ˜s F¨Y¨Y¨Y°y°y°yÀÀÀÐ,KÐLÑMÔMÐMØ�Š�q˜˜!˜”u�g ˜t V¨k¨k¨k¸+¸+¸+ÀkÀkÀkÐ-RÐSÑTÔTÐTØ�Š�q˜˜!˜”u�g ˜t V¨k¨k¨k¸+¸+¸+ÀkÀkÀkÐ-RÐSÑTÔTÐTØ�Š�q˜˜!˜”u�g ˜s F¨[¨[¨[¸¸¸À[À[À[Ð,QÐRÑSÔSÐSØ�Š�q˜˜!˜”u�g ˜s F¨[¨[¨[¸¸¸À[À[À[Ð,QÐRÑSÔSÐSØ�Š�q˜˜!˜”u�g ˜s F¨[¨[¨[¸¸¸À[À[À[Ð,QÐRÑSÔSÐSØ�Š�q˜˜!˜”u�g ˜s F¨[¨[¨[¸¸¸À[À[À[Ð,QÐRÑSÔSÐSØ�Š�q˜˜!˜”u�g ˜s F¨[¨[¨[¸¸¸À[À[À[Ð,QÐRÑSÔSÐSØ�Š�q˜˜!˜”u�g ˜t V¨g¨g¨g°g°g°g¸g¸g¸gÀgÀgÀgÈgÈgÈgÐ-VÐWÑXÔXÐXØ�Š�q˜˜!˜”u�g ˜t V¨g¨g¨g°g°g°g¸g¸g¸gÀgÀgÀgÈgÈgÈgÐ-VÐWÑXÔXÐXØ�Š�q˜˜!˜”u�g ˜t V¨g¨g¨g°g°g°g¸g¸g¸gÀgÀgÀgÈgÈgÈgÐ-VÐWÑXÔXÐXØ�Š�q˜˜!˜”u�g ˜t V¨g¨g¨g°g°g°g¸g¸g¸gÀgÀgÀgÈgÈgÈgÐ-VÐWÑXÔXÐXØ�Š�q˜˜!˜”u�g ˜s F¨W¨W¨W°W°W°W¸W¸W¸WÀWÀWÀWÈWÈWÈWÐ,UÐVÑWÔWÐWØ�Š�q˜˜!˜”u�g ˜s F¨W¨W¨W°W°W°W¸W¸W¸WÀWÀWÀWÈWÈWÈWÐ,UÐVÑWÔWÐWØ�Š�q˜˜!˜”u�g ˜s F¨W¨W¨W°W°W°W¸W¸W¸WÀWÀWÀWÈWÈWÈWÐ,UÐVÑWÔWÐWà�Š�q˜˜!˜”u˜Q˜r ˜rœU�m a¨ U¨F°W°W°W¸W¸W¸WÀWÀWÀWÐ4MÐNÑOÔOÐOØ�Š�q˜˜!˜”u˜Q˜r ˜rœU�m b¨ V¨V°i°i°iÀ	À	À	È)È)È)Ð5TÐUÑVÔVÐVØ�Š�q˜˜!˜”u˜Q˜r ˜rœU�m a¨ V¨V°m°m°mØ5B°]°]Ø5B°]°]Ø5B°]°]Ø5B°]°]Ø5B°]°]ð6Dð Eñ 	Fô 	Fð 	Fð 	�Š�q˜˜!˜”u˜Q˜q  ! œu�o x x x°¸/¸/¸/Ø<K¸O¸OØ<K¸O¸OØ<K¸O¸OØ<K¸O¸Oð	:Mð Nñ 	Oô 	Oð 	Oð
 	�Š�q˜˜!˜”u˜Q˜r ˜rœU 1�o y y y°&¸?¸?¸?Ø:JÐ:JÐ:JØ:I¸/¸/Ø:I¸/¸/Ø:I¸/¸/Ø:I¸/¸/ð;Kð Lñ 	Mô 	Mð 	Mð 	�Š�q�c˜A˜3 ¨!¨¨Ð.Ñ/Ô/Ð/Ø�Š�q˜˜!˜”u˜Q�i ! A ¨°°°¸I¸I¸IÀyÀyÀyÐ0QÐRÑSÔSÐSØ�ŠÝŒH�i�i�i   Ð+Ñ,Ô,ØˆrˆFØØˆYˆY˜	˜	˜	 9 9 9Ð-ð	
ñ 	ô 	ð 	ð 	�Š�h�h�h   ¨&°:°:°:Ø4>°J°JØ4>°J°Jð3@ð Añ 	Bô 	Bð 	Bð $)ð 
	.ð 
	.ÑˆAˆq�%˜ØÐ9Ð9˜qÐ9Ð9 UÐ9Ð9¨vÐ9Ð9ˆGÝ�œ¨°A¸UÐCÑCÔC×KÒKÑMÔMØ¨ð2ñ 2ô 2ð 2ð �a”˜E !œHÒ$Ð$Ý˜A˜aœD )Ñ,Ô,ð %å˜˜!œ‘I”I¥ U¡¤Ò+Ð+å�Yœ_¨Q¸Ð:Ñ:Ô:×BÒBÑDÔDÀfØ%,ð.ñ .ô .ð .øð
	.ð 
	.r3   c                 ó´   — t          g d¢¦  «        }t          t          j        |¦  «                             ¦   «         t          j        |¦  «        ¦  «         d S )NrJ   )r   r   r)   rŽ   rq   r%   Údiag©rA   r‘   s     r1   Útest_diags_defaultz%TestConstructUtils.test_diags_defaultÍ   sG   € Ý�/�/�/Ñ"Ô"ˆÝ•Y”_ QÑ'Ô'×/Ò/Ñ1Ô1µ2´7¸1±:´:Ñ>Ô>Ð>Ð>Ð>r3   c                 óp   — t          g d¢g d¢g¦  «        }t          t          t          j        |¦  «         d S )NrJ   )rK   rL   rM   rN   rP   )r   Úassert_raisesr?   r)   rŽ   r—   s     r1   Útest_diags_default_badz)TestConstructUtils.test_diags_default_badÑ   s6   € Ý�?�?�? O O OÐ4Ñ5Ô5ˆÝ•j¥)¤/°1Ñ5Ô5Ð5Ð5Ð5r3   c                 óü  — t          g d¢¦  «        }t          g d¢¦  «        }t          g d¢¦  «        }g }|                     |d d…         gddf¦  «         |                     |d d…         ||d d…         gg d¢d	f¦  «         |                     |d d
…         ||d d…         gg d¢df¦  «         |                     |d d
…         ||d d…         gg d¢d f¦  «         |                     g g d¢d f¦  «         |                     dgdgdf¦  «         |                     |gdd f¦  «         |D ])\  }}}t          t          t          j        |||¬¦  «         Œ*t          t          t          j        d ggdg¬¦  «         d S )NrJ   rO   rU   r   rD   rM   rL   rh   r…   rK   ri   r†   rE   éûÿÿÿ©rM   rM   r‰   r�   )r   rn   rš   r?   r)   rŽ   Ú	TypeError)rA   r‘   r’   r“   ru   rv   rw   rG   s           r1   Útest_diags_badz!TestConstructUtils.test_diags_badÕ   sª  € Ý�/�/�/Ñ"Ô"ˆÝÐ"Ð"Ð"Ñ#Ô#ˆÝÐ&Ð&Ð&Ñ'Ô'ˆàˆØ�Š�q˜˜!˜”u�g˜q &Ð)Ñ*Ô*Ð*Ø�Š�q˜˜!˜”u˜Q˜q  ! œu�o x x x°Ð8Ñ9Ô9Ð9Ø�Š�q˜˜!˜”u˜Q˜q  ! œu�o y y y°&Ð9Ñ:Ô:Ð:Ø�Š�q˜˜!˜”u˜Q˜q  ! œu�o y y y°$Ð7Ñ8Ô8Ð8Ø�Š�b˜)˜)˜) TÐ*Ñ+Ô+Ð+Ø�Š�q�c˜B˜4 Ð(Ñ)Ô)Ð)Ø�Š�q�c˜1˜d�^Ñ$Ô$Ð$à ð 	Rð 	R‰KˆAˆq�%Ý�*¥i¤o°qÀ!È5ÐQÑQÔQÐQÐQå•i¥¤°D°6°(ÀQÀCÐHÑHÔHÐHÐHÐHr3   c                 óÖ  ‡‡— t           j                             d¦  «        ŠdD �]C}d|dz  z   ‰                     dd¦  «        z   Št          j        ‰ dz   ‰dz
  ¦  «        }‰                     |¦  «         |d |…         }ˆˆfd„|D ¦   «         }t          j        ||¬¦  «        }t          d	„ t          ||¦  «        D ¦   «         ¦  «        }t          |                     ¦   «         |¦  «         t          |¦  «        dk    ret          j        |d         |d         ¬¦  «        }t          j        |d         |d         ¦  «        }t          |                     ¦   «         |¦  «         �ŒEd S )
NiÒ  )rE   rK   rL   rM   rN   rT   rE   rK   r   rT   c                 óZ   •— g | ]'}‰                      ‰t          |¦  «        z
  ¦  «        ‘Œ(S © )r   Úabs)Ú.0Úqr+   r/   s     €€r1   ú
<listcomp>z9TestConstructUtils.test_diags_vs_diag.<locals>.<listcomp>÷   s/   ø€ Ð?Ð?Ð?°!˜Ÿš !¥c¨!¡f¤f¡*Ñ-Ô-Ð?Ð?Ð?r3   r�   c                 ó>   — g | ]\  }}t          j        ||¦  «        ‘ŒS r£   )r%   r–   )r¥   ÚxÚjs      r1   r§   z9TestConstructUtils.test_diags_vs_diag.<locals>.<listcomp>ú   s&   € ÐOÐOÐO©t¨q°!�RœW Q¨™]œ]ÐOÐOÐOr3   )r%   r&   ÚRandomStateÚrandintÚarangeÚshuffler)   rŽ   ÚsumÚzipr   rq   ro   r–   )rA   Ún_diagsrŠ   Ú	diagonalsÚmatÚ	dense_matr+   r/   s         @@r1   Útest_diags_vs_diagz%TestConstructUtils.test_diags_vs_diagè   s`  øø€ õ Œi×#Ò# DÑ)Ô)ˆà*ð 	Iñ 	IˆGØ�G˜Q‘J‘ §¢¨Q°Ñ!3Ô!3Ñ3ˆAå”i   1¡ a¨¡cÑ*Ô*ˆGØ�KŠK˜Ñ Ô Ð Ø˜h˜w˜hÔ'ˆGà?Ð?Ð?Ð?Ð?°wÐ?Ñ?Ô?ˆIå”/ )°WÐ=Ñ=Ô=ˆCÝÐOÐOµs¸9ÀgÑ7NÔ7NÐOÑOÔOÑPÔPˆIå*¨3¯;ª;©=¬=¸)ÑDÔDÐDå�7‰|Œ|˜qÒ Ð Ý”o i°¤l¸GÀA¼JÐGÑGÔG�ÝœG I¨a¤L°'¸!´*Ñ=Ô=�	Ý.¨s¯{ª{©}¬}¸iÑHÔHÐHùð#	Ið 	Ir3   c                 óÈ   — t          j        dgdgdt          ¬¦  «        }t          |j        t          ¦  «         t          |                     ¦   «         ddgddgg¦  «         d S )Ngš™™™™™@r   r}   )rŠ   rG   r.   rK   )r)   rŽ   Úintr   r.   rq   ©rA   r©   s     r1   Útest_diags_dtypez#TestConstructUtils.test_diags_dtype  s[   € ÝŒO˜S˜E¨A¨3°fÅCÐHÑHÔHˆÝ�Q”W�cÑ"Ô"Ð"Ý�Q—Y’Y‘[”[ A q 6¨A¨q¨6Ð"2Ñ3Ô3Ð3Ð3Ð3r3   c                 ó   — t          t          d¦  «        ¦  «        }t          dd¦  «        D ]`}t          t          j        ||¬¦  «                             ¦   «         t          j        |g|g¬¦  «                             ¦   «         ¦  «         Œad S )NrN   r�   rP   r�   )ÚlistÚranger   r)   rŽ   rq   )rA   rv   Úks      r1   Útest_diags_one_diagonalz*TestConstructUtils.test_diags_one_diagonal  s’   € Ý•�q‘”‰NŒNˆÝ�r˜1‘”ð 	Fð 	FˆAÝ�œ¨°AÐ6Ñ6Ô6×>Ò>Ñ@Ô@Ý"œ¨!¨°q°cÐ:Ñ:Ô:×BÒBÑDÔDñFô Fð Fð Fð	Fð 	Fr3   c                 óX   — t          j        g ¦  «        }t          |j        d¦  «         d S )N©r   r   )r)   rŽ   r   rG   r¸   s     r1   Útest_diags_emptyz#TestConstructUtils.test_diags_empty  s)   € ÝŒO˜BÑÔˆÝ�Q”W˜fÑ%Ô%Ð%Ð%Ð%r3   Úidentityc                 ó  — t           |d¦  «                             ¦   «         dgg¦  «         t           |d¦  «                             ¦   «         ddgddgg¦  «          |ddd¬¦  «        }t          |j        t          j        d¦  «        ¦  «         t          |j        d¦  «         t
          D ]O} |d|¬¦  «        }t          |j        |¦  «         t          |                     ¦   «         g d	¢g d
¢g d¢g¦  «         ŒPd S ©NrE   rK   r   rL   Úint8r   )r.   r-   ©r-   r�   r‚   rƒ   ©r   rq   r.   r%   r-   Úsparse_formats)rA   rÂ   ÚIÚfmts       r1   Útest_identityz TestConstructUtils.test_identity  s  € å�X�X˜a‘[”[×(Ò(Ñ*Ô*¨a¨S¨EÑ2Ô2Ð2Ý�X�X˜a‘[”[×(Ò(Ñ*Ô*¨a°¨U°A°a°5¨MÑ:Ô:Ð:àˆH�Q˜f¨UÐ3Ñ3Ô3ˆÝ�Q”W�bœh vÑ.Ô.Ñ/Ô/Ð/Ý�Q”X˜uÑ%Ô%Ð%å!ð 	Að 	AˆCØ�˜ 3Ð'Ñ'Ô'ˆAÝ˜œ 3Ñ'Ô'Ð'Ý˜Ÿš™œ w w w¨w¨w¨w°w°w°wÐ&?Ñ@Ô@Ð@Ð@ð	Að 	Ar3   Úeyec                 ó&  — t           |dd¦  «                             ¦   «         dgg¦  «         t           |dd¦  «                             ¦   «         g d¢g d¢g¦  «         t           |dd¦  «                             ¦   «         ddgddgddgg¦  «         t           |dd¦  «                             ¦   «         g d¢g d¢g d¢g¦  «         t           |ddd¬	¦  «        j        t          j        d¦  «        ¦  «         d
D �]}d
D �]}t	          dd¦  «        D ]ô}|dk    r||k    s|dk     rUt          |¦  «        |k    rBt          j        t          d¬¦  «        5   ||||¬¦  «         d d d ¦  «         n# 1 swxY w Y   Œit           ||||¬¦  «                             ¦   «         t          j	        |||¬¦  «        ¦  «         ||k    rBt           |||¬¦  «                             ¦   «         t          j	        |||¬¦  «        ¦  «         Œõ�Œ
�Œd S )NrE   rK   rL   r�   r‚   r   rƒ   Úint16©r.   r   r�   rP   zOffset.*out of boundsr<   ©r½   )
r   rq   r.   r%   r¼   r¤   r>   r   r?   rÌ   )rA   rÌ   r*   r+   r½   s        r1   Útest_eyezTestConstructUtils.test_eye   s‹  € å�S�S˜˜1‘X”X×%Ò%Ñ'Ô'¨1¨#¨Ñ/Ô/Ð/Ý�S�S˜˜1‘X”X×%Ò%Ñ'Ô'¨'¨'¨'°'°'°'Ð):Ñ;Ô;Ð;Ý�S�S˜˜1‘X”X×%Ò%Ñ'Ô'¨1¨Q¨%°°1°°q¸°eÐ)<Ñ=Ô=Ð=Ý�S�S˜˜1‘X”X×%Ò%Ñ'Ô'¨'¨'¨'°'°'°'¸'¸'¸'Ð)BÑCÔCÐCå�S�S˜˜1 7Ð+Ñ+Ô+Ô1µ2´8¸GÑ3DÔ3DÑEÔEÐEàð 	ñ 	ˆAØð ñ �Ý˜r !™œð ð �Að ˜Aš˜ ! a¢% %¨Q°ªU¨Uµs¸1±v´vÀ²z°zÝ#œ]Ý&Ð.Eðñ ô ð +ð +ð  ˜C  1¨˜N™NœN˜Nð+ð +ð +ñ +ô +ð +ð +ð +ð +ð +ð +øøøð +ð +ð +ð +øõ %Ø˜C  1¨˜N™NœN×2Ò2Ñ4Ô4ÝœF 1 a¨1Ð-Ñ-Ô-ñô ð ð  š6˜6Ý(Ø #  A¨ ¡¤× 3Ò 3Ñ 5Ô 5Ý "¤ q¨!¨qÐ 1Ñ 1Ô 1ñô ð øñ)ñð	ð 	s   ÅE5	Å5E9Å<E9c                 ó  — t           |d¦  «                             ¦   «         dgg¦  «         t           |d¦  «                             ¦   «         ddgddgg¦  «          |ddd¬¦  «        }t          |j        t          j        d¦  «        ¦  «         t          |j        d¦  «         t
          D ]O} |d|¬¦  «        }t          |j        |¦  «         t          |                     ¦   «         g d	¢g d
¢g d¢g¦  «         ŒPd S rÄ   rÇ   )rA   rÌ   rÉ   rÊ   s       r1   Útest_eye_onezTestConstructUtils.test_eye_oneD  s  € å�S�S˜‘V”V—^’^Ñ%Ô%¨¨ uÑ-Ô-Ð-Ý�S�S˜‘V”V—^’^Ñ%Ô%¨¨1¨¨q°¨e }Ñ5Ô5Ð5àˆC�˜¨Ð.Ñ.Ô.ˆÝ�Q”W�bœh vÑ.Ô.Ñ/Ô/Ð/Ý�Q”X˜uÑ%Ô%Ð%å!ð 	Að 	AˆCØ��A˜cÐ"Ñ"Ô"ˆAÝ˜œ 3Ñ'Ô'Ð'Ý˜Ÿš™œ w w w¨w¨w¨w°w°w°wÐ&?Ñ@Ô@Ð@Ð@ð	Að 	Ar3   c                 óª   — t          t          j        d¦  «        t          ¦  «        sJ ‚t          t          j        d¦  «        t          ¦  «        rJ ‚d S )NrL   )Ú
isinstancer)   Ú	eye_arrayr   rÌ   ©rA   s    r1   Útest_eye_array_vs_matrixz+TestConstructUtils.test_eye_array_vs_matrixR  sI   € Ý�)Ô-¨aÑ0Ô0µ'Ñ:Ô:Ð:Ð:Ð:Ý�iœm¨AÑ.Ô.µÑ8Ô8Ð8Ð8Ð8Ð8Ð8r3   c                 óÀ  — g }|                      t          dgg¦  «        ¦  «         |                      t          dgg¦  «        ¦  «         |                      t          dgg¦  «        ¦  «         |                      t          dgg¦  «        ¦  «         |                      t          dgdgg¦  «        ¦  «         |                      t          ddgg¦  «        ¦  «         |                      t          ddgddgg¦  «        ¦  «         |                      t          ddgddgg¦  «        ¦  «         |                      t          g d	¢g d
¢g¦  «        ¦  «         |                      t          ddgddgddgg¦  «        ¦  «         |                      t          g d¢g d¢g d¢g¦  «        ¦  «         |                      t          g d¢g¦  «        ¦  «         |                      t          g d¢g d¢g¦  «        ¦  «         |D ]±}t          |¦  «        }|D ]�}t          |¦  «        }t          j        ||¦  «        }t
          dd…         D ]g}t          j        |||¬¦  «        }t          |j        |¦  «         t          | 
                    ¦   «         |¦  «         t          |t          ¦  «        sJ ‚ŒhŒžŒ²|d         }|d         }t          |¦  «        }t          |¦  «        }t          j        ||¦  «        }t
          D ]g}t          j        |||¬¦  «        }t          |j        |¦  «         t          | 
                    ¦   «         |¦  «         t          |t          ¦  «        sJ ‚Œht          j        t          |¦  «        t          |¦  «        |¬¦  «        }t          |j        |¦  «         t          | 
                    ¦   «         |¦  «         t          |t          ¦  «        sJ ‚d S )Nr   r[   rM   rT   rE   rK   rL   rN   ©r   rK   iúÿÿÿ©rR   r   rY   rP   )rN   rM   rM   r�   )rP   r   rR   )r   rE   r   rK   r   rN   rR   )ç      à?g      À?r   g      
@)r   g      @r   r   rÆ   re   )rn   r   r   r%   ÚkronrÈ   r)   r   r-   r   rq   rÕ   r   r
   r   )	rA   ru   r‘   Úcar’   ÚcbÚexpectedrÊ   rx   s	            r1   Ú	test_kronzTestConstructUtils.test_kronV  s   € Øˆà�Š•U˜Q˜C˜5‘\”\Ñ"Ô"Ð"Ø�Š•U˜R˜D˜6‘]”]Ñ#Ô#Ð#Ø�Š•U˜Q˜C˜5‘\”\Ñ"Ô"Ð"Ø�Š•U˜R˜D˜6‘]”]Ñ#Ô#Ð#Ø�Š•U˜Q˜C  ˜9Ñ%Ô%Ñ&Ô&Ð&Ø�Š•U˜Q˜q˜E˜7‘^”^Ñ$Ô$Ð$Ø�Š•U˜Q˜q˜E 1 Q %˜=Ñ)Ô)Ñ*Ô*Ð*Ø�Š•U˜Q˜q˜E 1 Q %˜=Ñ)Ô)Ñ*Ô*Ð*Ø�Š•U˜H˜H˜H X X XÐ.Ñ/Ô/Ñ0Ô0Ð0Ø�Š•U˜Q˜q˜E 1 Q %¨¨1¨Ð.Ñ/Ô/Ñ0Ô0Ð0Ø�Š•U˜G˜G˜G G G G¨G¨G¨GÐ4Ñ5Ô5Ñ6Ô6Ð6Ø�Š•U˜O˜O˜OÐ,Ñ-Ô-Ñ.Ô.Ð.Ø�Š•UÐ.Ð.Ð.¨{¨{¨{Ð;Ñ<Ô<Ñ=Ô=Ð=ð ð 		7ð 		7ˆAÝ˜1‘”ˆBØð 7ð 7�Ý˜q‘\”\�Ýœ7 1 a™=œ=�Ý)¨!¨A¨#Ô.ð 7ð 7�CÝ&œ^¨B°¸3Ð?Ñ?Ô?�FÝ  ¤°Ñ4Ô4Ð4Ý& v§~¢~Ñ'7Ô'7¸ÑBÔBÐBÝ% f­gÑ6Ô6Ð6Ð6Ð6Ð6ð	7ð7ð �"ŒIˆØ�"ŒIˆÝ�q‰\Œ\ˆÝ�q‰\Œ\ˆå”7˜1˜a‘=”=ˆÝ!ð 	/ð 	/ˆCÝ”^ B¨°3Ð7Ñ7Ô7ˆFÝ˜œ¨Ñ,Ô,Ð,Ý˜vŸ~š~Ñ/Ô/°Ñ:Ô:Ð:Ý˜f¥gÑ.Ô.Ð.Ð.Ð.Ð.õ ”¥
¨1¡¤­z¸!©}¬}ÀSÐIÑIÔIˆÝ�V”] CÑ(Ô(Ð(Ý˜6Ÿ>š>Ñ+Ô+¨XÑ6Ô6Ð6Ý˜&¥(Ñ+Ô+Ð+Ð+Ð+Ð+Ð+r3   c                 ó¨  — t          j        t          d¬¦  «        5  t          j        dgdggt          ddg¦  «        ¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  t          j        t          ddg¦  «        dgdgg¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        dgdggddg¦  «         d S )Núrequires 2D inputr<   r   rE   )r>   r   r?   r)   rÝ   r   r×   s    r1   Útest_kron_ndim_exceptionsz,TestConstructUtils.test_kron_ndim_exceptions†  sJ  € ÝŒ]�:Ð-@ÐAÑAÔAð 	:ð 	:ÝŒN˜Q˜C ! ˜:¥y°!°Q°Ñ'8Ô'8Ñ9Ô9Ð9ð	:ð 	:ð 	:ñ 	:ô 	:ð 	:ð 	:ð 	:ð 	:ð 	:ð 	:øøøð 	:ð 	:ð 	:ð 	:åŒ]�:Ð-@ÐAÑAÔAð 	:ð 	:ÝŒN�9 a¨ VÑ,Ô,°¨s°Q°C¨jÑ9Ô9Ð9ð	:ð 	:ð 	:ñ 	:ô 	:ð 	:ð 	:ð 	:ð 	:ð 	:ð 	:øøøð 	:ð 	:ð 	:ð 	:õ 	Œ˜˜˜a˜S�z A q 6Ñ*Ô*Ð*Ð*Ð*ó#   œ)AÁAÁAÁ7)B,Â,B0Â3B0c                 óÒ   — d}t          j        dgd|f|dz
  ¬¦  «        }t          j        dg|dfd|z
  ¬¦  «        }t          j        ||¦  «         t          j        ||¦  «         d S )Ni   rE   )rG   rŠ   )r)   Údiags_arrayrÝ   )rA   r+   r‘   r’   s       r1   Útest_kron_largez"TestConstructUtils.test_kron_largeŽ  ss   € ØˆÝÔ! 1 #¨a°¨V¸Q¸q¹SÐAÑAÔAˆÝÔ! 1 #¨a°¨V¸Q¸q¹SÐAÑAÔAˆåŒ�q˜!ÑÔÐÝŒ�q˜!ÑÔÐÐÐr3   c           
      ó˜  — g }|                      t          dgg¦  «        ¦  «         |                      t          dgg¦  «        ¦  «         |                      t          dgg¦  «        ¦  «         |                      t          dgg¦  «        ¦  «         |                      t          ddgddgg¦  «        ¦  «         |                      t          ddgddgg¦  «        ¦  «         |                      t          g d	¢g d
¢g d¢g¦  «        ¦  «         |                      t          g d¢g d¢g d¢g¦  «        ¦  «         |D ]½}|D ]¸}t          j        t	          |¦  «        t	          |¦  «        ¦  «                             ¦   «         }t          j        t          j        |j	        d         ¦  «        |¦  «        t          j        |t          j        |j	        d         ¦  «        ¦  «        z   }t          ||¦  «         Œ¹Œ¾t          j        t          |¦  «        t          |¦  «        ¦  «                             ¦   «         }t          ||¦  «         d S )Nr   r[   rM   rT   rE   rK   rL   rN   rÚ   rÛ   )r   rL   r   r�   )r   rN   r[   )rM   r~   rR   )rn   r   r)   Úkronsumr   rq   r%   rÝ   rÌ   rG   r   r
   )rA   ru   r‘   r’   rx   rà   s         r1   Útest_kronsumzTestConstructUtils.test_kronsum–  s  € Øˆà�Š•U˜Q˜C˜5‘\”\Ñ"Ô"Ð"Ø�Š•U˜R˜D˜6‘]”]Ñ#Ô#Ð#Ø�Š•U˜Q˜C˜5‘\”\Ñ"Ô"Ð"Ø�Š•U˜R˜D˜6‘]”]Ñ#Ô#Ð#Ø�Š•U˜Q˜q˜E 1 Q %˜=Ñ)Ô)Ñ*Ô*Ð*Ø�Š•U˜Q˜q˜E 1 Q %˜=Ñ)Ô)Ñ*Ô*Ð*Ø�Š•U˜H˜H˜H X X X¨g¨g¨gÐ6Ñ7Ô7Ñ8Ô8Ð8Ø�Š•U˜G˜G˜G H H H¨X¨X¨XÐ6Ñ7Ô7Ñ8Ô8Ð8ð ð 	5ð 	5ˆAØð 5ð 5�Ý"Ô*­9°Q©<¬<½À1¹¼ÑFÔF×NÒNÑPÔP�ÝœG¥B¤F¨1¬7°1¬:Ñ$6Ô$6¸Ñ:Ô:Ý œg a­¬°´¸´
Ñ);Ô);Ñ<Ô<ñ=�å" 6¨8Ñ4Ô4Ð4Ð4ð	5õ Ô"¥:¨a¡=¤=µ*¸Q±-´-Ñ@Ô@×HÒHÑJÔJˆÝ˜6 8Ñ,Ô,Ð,Ð,Ð,r3   c                 óª  — t          j        t          d¬¦  «        5  t          j        dgdggt          ddg¦  «        ¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  t          j        t          ddg¦  «        dgdgg¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        ddgddggdg¦  «         d S )Nrã   r<   r   rE   rK   )r>   r   r?   r)   rê   r   r×   s    r1   Útest_kronsum_ndim_exceptionsz/TestConstructUtils.test_kronsum_ndim_exceptions®  sP  € ÝŒ]�:Ð-@ÐAÑAÔAð 	=ð 	=ÝÔ ˜s Q C˜j­)°Q¸°FÑ*;Ô*;Ñ<Ô<Ð<ð	=ð 	=ð 	=ñ 	=ô 	=ð 	=ð 	=ð 	=ð 	=ð 	=ð 	=øøøð 	=ð 	=ð 	=ð 	=åŒ]�:Ð-@ÐAÑAÔAð 	=ð 	=ÝÔ�i¨¨A¨Ñ/Ô/°1°#¸°s°Ñ<Ô<Ð<ð	=ð 	=ð 	=ñ 	=ô 	=ð 	=ð 	=ð 	=ð 	=ð 	=ð 	=øøøð 	=ð 	=ð 	=ð 	=õ 	Ô˜A˜q˜6 A q 6Ð*¨Q¨CÑ0Ô0Ð0Ð0Ð0rå   Úcoo_clsc                 ó2  —  |ddgddgg¦  «        } |ddgg¦  «        }t          ddgddgddgg¦  «        }t          t          j        ||g¦  «                             ¦   «         |¦  «         t          t          j        ||gt
          j        ¬¦  «        j        t
          j        ¦  «         t          t          j        |                     ¦   «         |                     ¦   «         g¦  «                             ¦   «         |¦  «         t          t          j        | 	                    ¦   «         | 	                    ¦   «         g¦  «                             ¦   «         |¦  «         t          j        | 	                    ¦   «         | 	                    ¦   «         gdt
          j        ¬	¦  «        }t          |j        t
          j        ¦  «         t          |j
        j        t
          j        ¦  «         t          |j        j        t
          j        ¦  «         t          t          j        |                     ¦   «         |                     ¦   «         g¦  «                             ¦   «         |¦  «         t          j        |                     ¦   «         |                     ¦   «         gd
t
          j        ¬	¦  «        }t          |j        t
          j        ¦  «         t          |j
        j        t
          j        ¦  «         t          |j        j        t
          j        ¦  «         d S )NrE   rK   rL   rM   rN   rP   rÏ   r   )r-   r.   r   )r   r   r)   Úvstackrq   r%   Úfloat32r.   ÚtodokÚtocsrÚindicesÚint32ÚindptrÚtocsc)rA   rî   ÚAÚBrà   rx   s         r1   Útest_vstackzTestConstructUtils.test_vstack¶  sw  € àˆG�a˜�U˜A˜a˜5�MÑ"Ô"ˆØˆG�a˜�U�GÑÔˆå˜1˜a˜&Ø˜a˜&Ø˜a˜&ð"ñ #ô #ˆõ 	•YÔ% q¨! fÑ-Ô-×5Ò5Ñ7Ô7¸ÑBÔBÐBÝ•YÔ% q¨! fµB´JÐ?Ñ?Ô?ÔEÝ”Zñ	!ô 	!ð 	!õ 	•YÔ% q§w¢w¡y¤y°!·'²'±)´)Ð&<Ñ=Ô=×EÒEÑGÔGÈÑRÔRÐRå•YÔ% q§w¢w¡y¤y°!·'²'±)´)Ð&<Ñ=Ô=×EÒEÑGÔGØñ	ô 	ð 	åÔ! 1§7¢7¡9¤9¨a¯gªg©i¬iÐ"8Ø).µb´jðBñ Bô Bˆå�V”\¥2¤:Ñ.Ô.Ð.Ý�V”^Ô)­2¬8Ñ4Ô4Ð4Ý�V”]Ô(­"¬(Ñ3Ô3Ð3å•YÔ% q§w¢w¡y¤y°!·'²'±)´)Ð&<Ñ=Ô=×EÒEÑGÔGØñ	ô 	ð 	åÔ! 1§7¢7¡9¤9¨a¯gªg©i¬iÐ"8Ø).µb´jðBñ Bô Bˆå�V”\¥2¤:Ñ.Ô.Ð.Ý�V”^Ô)­2¬8Ñ4Ô4Ð4Ý�V”]Ô(­"¬(Ñ3Ô3Ð3Ð3Ð3r3   c                 ó|  — t          g d¢g d¢g d¢g¦  «        }|j                             t          j        ¦  «        |_        |j                             t          j        ¦  «        |_        t          j        ||g¦  «        j        j        t          j        k    sJ ‚t          j	        ||g¦  «        j        j        t          j        k    sJ ‚t          g d¢g d¢g d¢g¦  «        }|j                             t          j        ¦  «        |_        |j                             t          j        ¦  «        |_        t          j        ||g¦  «        j        j        t          j        k    sJ ‚t          j	        ||g¦  «        j        j        t          j        k    sJ ‚t          g d¢g d¢g d¢g¦  «        }t          d„ |j        D ¦   «         ¦  «        |_        t          j        ||g¦  «        j        d         j        t          j        k    sJ ‚t          j	        ||g¦  «        j        d         j        t          j        k    sJ ‚d S )Nr�   r‚   c              3   óT   K  — | ]#}|                      t          j        ¦  «        V — Œ$d S r$   ©Úastyper%   Úint64©r¥   Úcos     r1   ú	<genexpr>zITestConstructUtils.test_vstack_maintain64bit_idx_dtype.<locals>.<genexpr>ã  ó0   è è € Ð@Ð@°˜Ÿš¥2¤8Ñ,Ô,Ð@Ð@Ð@Ð@Ð@Ð@r3   r   )r   rö   rþ   r%   rÿ   rô   r)   rð   r.   Úhstackr   r   ÚtupleÚcoords©rA   ÚXs     r1   Ú#test_vstack_maintain64bit_idx_dtypez6TestConstructUtils.test_vstack_maintain64bit_idx_dtypeÔ  sâ  € å�y�y�y ) ) )¨Y¨Y¨YÐ7Ñ8Ô8ˆØ”8—?’?¥2¤8Ñ,Ô,ˆŒØ”I×$Ò$¥R¤XÑ.Ô.ˆŒ	ÝÔ  A Ñ'Ô'Ô.Ô4½¼Ò@Ð@Ð@Ð@ÝÔ  A Ñ'Ô'Ô.Ô4½¼Ò@Ð@Ð@Ð@å�y�y�y ) ) )¨Y¨Y¨YÐ7Ñ8Ô8ˆØ”8—?’?¥2¤8Ñ,Ô,ˆŒØ”I×$Ò$¥R¤XÑ.Ô.ˆŒ	ÝÔ  A Ñ'Ô'Ô.Ô4½¼Ò@Ð@Ð@Ð@ÝÔ  A Ñ'Ô'Ô.Ô4½¼Ò@Ð@Ð@Ð@å�y�y�y ) ) )¨Y¨Y¨YÐ7Ñ8Ô8ˆÝÐ@Ð@°q´xÐ@Ñ@Ô@Ñ@Ô@ˆŒÝÔ  A Ñ'Ô'Ô.¨qÔ1Ô7½2¼8ÒCÐCÐCÐCÝÔ  A Ñ'Ô'Ô.¨qÔ1Ô7½2¼8ÒCÐCÐCÐCÐCÐCr3   c                 óH  — ddgddgg}ddgg}t          t          j        t          |¦  «        t          |¦  «        g¦  «        t          ¦  «        sJ ‚t          t          j        t          |¦  «        t          |¦  «        g¦  «        t          ¦  «        sJ ‚t          t          j        t          |¦  «        t          |¦  «        g¦  «        t          ¦  «        sJ ‚t          t          j        t          |¦  «        t          |¦  «        g¦  «        t          ¦  «        sJ ‚d S ©NrE   rK   rL   rM   rN   rP   )rÕ   r)   rð   r   r   r   r   ©rA   rø   rù   s      r1   Útest_vstack_matrix_or_arrayz.TestConstructUtils.test_vstack_matrix_or_arrayç  sì   € Ø�ˆU�A�a�5ˆMˆØ�ˆUˆGˆÝ�)Ô*­I°a©L¬L½)ÀA¹,¼,Ð+GÑHÔHÍ'ÑRÔRÐRÐRÐRÝ�)Ô*­I°a©L¬L½*ÀQ¹-¼-Ð+HÑIÔIÍ7ÑSÔSÐSÐSÐSÝ�)Ô*­J°q©M¬M½9ÀQ¹<¼<Ð+HÑIÔIÍ7ÑSÔSÐSÐSÐSÝ�)Ô*­J°q©M¬M½:Àa¹=¼=Ð+IÑJÔJÍHÑUÔUÐUÐUÐUÐUÐUr3   c                 óŒ  — t          g d¢g d¢g¦  «        }t          g d¢¦  «        }t          g d¢¦  «        }t          j        |t	          j        g d¢¦  «        g¦  «        j        dk    sJ ‚t          j        |t	          j        dgg¦  «        g¦  «        j        dk    sJ ‚t          j        ||g¦  «        j        dk    sJ ‚t          j        ||g¦  «        j        dk    sJ ‚t          j        ||g¦  «        j        d	k    sJ ‚t          j        ||g¦  «        j        dk    sJ ‚t          j        ||g¦  «        j        dk    sJ ‚t          j        ||g¦  «        j        dk    sJ ‚t          j        ||g¦  «        j        dk    sJ ‚t          j	        t          d
¬¦  «        5  t          j        |t	          j        ddg¦  «        g¦  «         d d d ¦  «         n# 1 swxY w Y   t          j	        t          d¬¦  «        5  t          j        |t	          j        ddg¦  «        g¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr�   r‚   r€   r„   r   )rE   rM   )rE   rP   )rK   rL   )rK   rP   zincompatible row dimensionsr<   zincompatible column dimensions)r   r   r)   rð   r%   r   rG   r  r>   r   r?   )rA   ÚarrÚarr1dÚarr1dcoos       r1   Útest_vstack_1d_with_2dz)TestConstructUtils.test_vstack_1d_with_2dï  sÆ  € å˜˜˜ I I IÐ.Ñ/Ô/ˆÝ˜)˜)˜)Ñ$Ô$ˆÝ˜Y˜Y˜YÑ'Ô'ˆÝÔ ¥b¤h¨y¨y¨yÑ&9Ô&9Ð :Ñ;Ô;ÔAÀVÒKÐKÐKÐKÝÔ ­¬°1°#°©¬Ð 8Ñ9Ô9Ô?À6ÒIÐIÐIÐIÝÔ ¨ Ñ/Ô/Ô5¸Ò?Ð?Ð?Ð?ÝÔ ¨ Ñ/Ô/Ô5¸Ò?Ð?Ð?Ð?õ Ô  c 
Ñ+Ô+Ô1°VÒ;Ð;Ð;Ð;ÝÔ ¨ Ñ/Ô/Ô5¸Ò?Ð?Ð?Ð?åÔ ¨Ð 1Ñ2Ô2Ô8¸FÒBÐBÐBÐBÝÔ  h Ñ0Ô0Ô6¸&Ò@Ð@Ð@Ð@ÝÔ ¨Ð 1Ñ2Ô2Ô8¸FÒBÐBÐBÐBåŒ]�:Ð-JÐKÑKÔKð 	6ð 	6ÝÔ˜c¥2¤8¨Q°¨FÑ#3Ô#3Ð4Ñ5Ô5Ð5ð	6ð 	6ð 	6ñ 	6ô 	6ð 	6ð 	6ð 	6ð 	6ð 	6ð 	6øøøð 	6ð 	6ð 	6ð 	6åŒ]�:Ð-MÐNÑNÔNð 	6ð 	6ÝÔ˜c¥2¤8¨Q°¨FÑ#3Ô#3Ð4Ñ5Ô5Ð5ð	6ð 	6ð 	6ñ 	6ô 	6ð 	6ð 	6ð 	6ð 	6ð 	6ð 	6ð 	6øøøð 	6ð 	6ð 	6ð 	6ð 	6ð 	6s$   Æ$+GÇGÇ"GÈ+H9È9H=É H=c                 ó  —  |ddgddgg¦  «        } |dgdgg¦  «        }t          g d¢g d¢g¦  «        }t          t          j        ||g¦  «                             ¦   «         |¦  «         t          t          j        ||gt
          j        ¬	¦  «        j        t
          j        ¦  «         t          t          j        |                     ¦   «         |                     ¦   «         g¦  «                             ¦   «         |¦  «         t          t          j        | 	                    ¦   «         | 	                    ¦   «         g¦  «                             ¦   «         |¦  «         t          t          j        | 	                    ¦   «         | 	                    ¦   «         gt
          j        ¬	¦  «        j        t
          j        ¦  «         t          t          j        | 
                    ¦   «         | 
                    ¦   «         g¦  «                             ¦   «         |¦  «         t          t          j        | 
                    ¦   «         | 
                    ¦   «         gt
          j        ¬	¦  «        j        t
          j        ¦  «         d S )
NrE   rK   rL   rM   rN   rP   ©rE   rK   rN   ©rL   rM   rP   rÏ   )r   r   r)   r  rq   r%   rñ   r.   rò   r÷   ró   )rA   rî   rø   rù   rà   s        r1   Útest_hstackzTestConstructUtils.test_hstack  s  € àˆG�a˜�U˜A˜a˜5�MÑ"Ô"ˆØˆG�a�S˜!˜�IÑÔˆå˜)˜)˜)Ø#˜)˜)ð%ñ &ô &ˆå•YÔ% q¨! fÑ-Ô-×5Ò5Ñ7Ô7¸ÑBÔBÐBÝ•YÔ% q¨! fµB´JÐ?Ñ?Ô?ÔEÝ”Zñ	!ô 	!ð 	!õ 	•YÔ% q§w¢w¡y¤y°!·'²'±)´)Ð&<Ñ=Ô=×EÒEÑGÔGÈÑRÔRÐRå•YÔ% q§w¢w¡y¤y°!·'²'±)´)Ð&<Ñ=Ô=×EÒEÑGÔGØñ	ô 	ð 	å•YÔ% q§w¢w¡y¤y°!·'²'±)´)Ð&<Ý,.¬Jð8ñ 8ô 8Ü8=Ý”Zñ	!ô 	!ð 	!õ 	•YÔ% q§w¢w¡y¤y°!·'²'±)´)Ð&<Ñ=Ô=×EÒEÑGÔGØñ	ô 	ð 	å•YÔ% q§w¢w¡y¤y°!·'²'±)´)Ð&<Ý,.¬Jð8ñ 8ô 8Ü8=Ý”Zñ	!ô 	!ð 	!ð 	!ð 	!r3   c                 óJ  — ddgddgg}dgdgg}t          t          j        t          |¦  «        t          |¦  «        g¦  «        t          ¦  «        sJ ‚t          t          j        t          |¦  «        t          |¦  «        g¦  «        t          ¦  «        sJ ‚t          t          j        t          |¦  «        t          |¦  «        g¦  «        t          ¦  «        sJ ‚t          t          j        t          |¦  «        t          |¦  «        g¦  «        t          ¦  «        sJ ‚d S r  )rÕ   r)   r  r   r   r   r   r  s      r1   Útest_hstack_matrix_or_arrayz.TestConstructUtils.test_hstack_matrix_or_array  sî   € Ø�ˆU�A�a�5ˆMˆØˆS�!�ˆIˆÝ�)Ô*­I°a©L¬L½)ÀA¹,¼,Ð+GÑHÔHÍ'ÑRÔRÐRÐRÐRÝ�)Ô*­I°a©L¬L½*ÀQ¹-¼-Ð+HÑIÔIÍ7ÑSÔSÐSÐSÐSÝ�)Ô*­J°q©M¬M½9ÀQ¹<¼<Ð+HÑIÔIÍ7ÑSÔSÐSÐSÐSÝ�)Ô*­J°q©M¬M½:Àa¹=¼=Ð+IÑJÔJÍHÑUÔUÐUÐUÐUÐUÐUr3   Úblock_arrayc                 ód  — t          ddgddgg¦  «        }t          dgdgg¦  «        }t          dgg¦  «        }t          d¦  «        }t          g d	¢g d
¢g d¢g¦  «        }t           |||gd |gg¦  «                             ¦   «         |¦  «         t	          dt
          j        ¬¦  «        }t           ||                     ¦   «         |                     ¦   «         g||                     ¦   «         gg¦  «                             ¦   «         |¦  «         t           ||                     ¦   «         |                     ¦   «         g|                     ¦   «         |                     ¦   «         gg¦  «                             ¦   «         |¦  «         t          g d¢g d¢g d¢g¦  «        }t           ||d gd |gg¦  «                             ¦   «         |¦  «         t           ||                     ¦   «         |j	                             ¦   «         g||                     ¦   «         gg¦  «                             ¦   «         |¦  «         t           ||                     ¦   «         |j	                             ¦   «         g|                     ¦   «         |                     ¦   «         gg¦  «                             ¦   «         |¦  «         t	          dt
          j        ¬¦  «        }t          ddgddgddgg¦  «        }t           |d |g|d gg¦  «                             ¦   «         |¦  «         t           ||j	                             ¦   «         |                     ¦   «         g|                     ¦   «         |gg¦  «                             ¦   «         |¦  «         t           ||j	                             ¦   «         |                     ¦   «         g|                     ¦   «         |                     ¦   «         gg¦  «                             ¦   «         |¦  «         t          j
        d¦  «        }t           |d d gg¦  «                             ¦   «         |¦  «         t           |d |g|d gg¦  «                             ¦   «         |¦  «         t          dgg¦  «        }t           |d |g|d gg¦  «                             ¦   «         |¦  «         t          t          ¦  «        5 }	 ||g|gg¦  «         d d d ¦  «         n# 1 swxY w Y   |	                     d¦  «         t          t          ¦  «        5 }	 ||                     ¦   «         g|                     ¦   «         gg¦  «         d d d ¦  «         n# 1 swxY w Y   |	                     d¦  «         t          t          ¦  «        5 }	 ||                     ¦   «         g|                     ¦   «         gg¦  «         d d d ¦  «         n# 1 swxY w Y   |	                     d¦  «         t          t          ¦  «        5 }	 |||gg¦  «         d d d ¦  «         n# 1 swxY w Y   |	                     d¦  «         t          t          ¦  «        5 }	 ||                     ¦   «         |                     ¦   «         gg¦  «         d d d ¦  «         n# 1 swxY w Y   |	                     d¦  «         t          t          ¦  «        5 }	 ||                     ¦   «         |                     ¦   «         gg¦  «         d d d ¦  «         n# 1 swxY w Y   |	                     d¦  «         d S )NrE   rK   rL   rM   rN   rP   rQ   rÀ   r  r  )r   r   rQ   r|   rÏ   )rE   rK   r   )rL   rM   r   rD   r   z.Got blocks\[1,0\]\.shape\[1\] == 1, expected 2z"incompatible dimensions for axis 1z4Mismatching dimensions along axis 1: ({1, 2}|{2, 1})z.Got blocks\[0,1\]\.shape\[0\] == 1, expected 2z4Mismatching dimensions along axis 0: ({1, 2}|{2, 1})z"incompatible dimensions for axis 0)r   r   r   rq   r   r%   rõ   ró   r÷   ÚTÚemptyrš   r?   r=   )
rA   r  rø   rù   ÚCÚDrà   ÚEÚZÚexcinfos
             r1   Útest_block_creationz&TestConstructUtils.test_block_creation&  s  € õ ˜˜1�v  1˜vÐ&Ñ'Ô'ˆÝ˜�s˜A˜3�iÑ Ô ˆÝ˜�s�eÑÔˆÝ�fÑÔˆå˜)˜)˜)Ø#˜)˜)Ø#˜)˜)ð%ñ &ô &ˆõ 	�[�[ 1 a &¨4°¨)Ð!4Ñ5Ô5×=Ò=Ñ?Ô?ÀÑJÔJÐJÝ�f¥B¤HÐ-Ñ-Ô-ˆÝ�[�[ 1§7¢7¡9¤9¨a¯gªg©i¬iÐ"8Ø#$ a§g¢g¡i¤i .ð"2ñ 3ô 3ß3:²7±9´9Øñ	ô 	ð 	õ 	�[�[ 1§7¢7¡9¤9¨a¯gªg©i¬iÐ"8Ø#$§7¢7¡9¤9¨a¯gªg©i¬iÐ"8ð":ñ ;ô ;ß;Bº7¹9¼9Øñ	ô 	ð 	õ ˜)˜)˜)Ø#˜)˜)Ø#˜)˜)ð%ñ &ô &ˆõ 	�[�[ 1 d )¨d°A¨YÐ!7Ñ8Ô8×@Ò@ÑBÔBÀHÑMÔMÐMÝ�[�[ 1§7¢7¡9¤9¨a¬c¯iªi©k¬kÐ":Ø#$ a§g¢g¡i¤i .ð"2ñ 3ô 3ß3:²7±9´9Øñ	ô 	ð 	õ 	�[�[ 1§7¢7¡9¤9¨a¬c¯iªi©k¬kÐ":Ø#$§7¢7¡9¤9¨a¯gªg©i¬iÐ"8ð":ñ ;ô ;ß;Bº7¹9¼9Øñ	ô 	ð 	õ �f¥B¤HÐ-Ñ-Ô-ˆÝ˜1˜a˜&Ø˜a˜&Ø˜a˜&ð"ñ #ô #ˆõ 	�[�[ 4¨ )¨a°¨YÐ!7Ñ8Ô8×@Ò@ÑBÔBÀHÑMÔMÐMÝ�[�[ 1¤3§9¢9¡;¤;°·²±	´	Ð":Ø#$§7¢7¡9¤9¨a .ð"2ñ 3ô 3ß3:²7±9´9Øñ	ô 	ð 	õ 	�[�[ 1¤3§9¢9¡;¤;°·²±	´	Ð":Ø#$§7¢7¡9¤9¨a¯gªg©i¬iÐ"8ð":ñ ;ô ;ß;Bº7¹9¼9Øñ	ô 	ð 	õ ”8˜FÑ#Ô#ˆÝ�[�[ 4¨ , Ñ0Ô0×8Ò8Ñ:Ô:¸HÑEÔEÐEÝ�[�[ 4¨ )¨a°¨YÐ!7Ñ8Ô8×@Ò@ÑBÔBØñ	ô 	ð 	õ ˜1˜#˜‘<”<ˆÝ�[�[ 4¨ )¨a°¨YÐ!7Ñ8Ô8×@Ò@ÑBÔBØñ	ô 	ð 	õ �:Ñ&Ô&ð 	$¨'ØˆK˜!˜˜q˜c˜
Ñ#Ô#Ð#ð	$ð 	$ð 	$ñ 	$ô 	$ð 	$ð 	$ð 	$ð 	$ð 	$ð 	$øøøð 	$ð 	$ð 	$ð 	$à�ŠÐGÑHÔHÐHå�:Ñ&Ô&ð 	4¨'ØˆK˜!Ÿ'š'™)œ)˜ q§w¢w¡y¤y kÐ2Ñ3Ô3Ð3ð	4ð 	4ð 	4ñ 	4ô 	4ð 	4ð 	4ð 	4ð 	4ð 	4ð 	4øøøð 	4ð 	4ð 	4ð 	4à�ŠÐ;Ñ<Ô<Ð<å�:Ñ&Ô&ð 	4¨'ØˆK˜!Ÿ'š'™)œ)˜ q§w¢w¡y¤y kÐ2Ñ3Ô3Ð3ð	4ð 	4ð 	4ñ 	4ô 	4ð 	4ð 	4ð 	4ð 	4ð 	4ð 	4øøøð 	4ð 	4ð 	4ð 	4à�ŠÐMÑNÔNÐNå�:Ñ&Ô&ð 	"¨'ØˆK˜!˜Q˜˜Ñ!Ô!Ð!ð	"ð 	"ð 	"ñ 	"ô 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"øøøð 	"ð 	"ð 	"ð 	"à�ŠÐGÑHÔHÐHå�:Ñ&Ô&ð 	2¨'ØˆK˜!Ÿ'š'™)œ) Q§W¢W¡Y¤YÐ/Ð0Ñ1Ô1Ð1ð	2ð 	2ð 	2ñ 	2ô 	2ð 	2ð 	2ð 	2ð 	2ð 	2ð 	2øøøð 	2ð 	2ð 	2ð 	2à�ŠÐMÑNÔNÐNå�:Ñ&Ô&ð 	2¨'ØˆK˜!Ÿ'š'™)œ) Q§W¢W¡Y¤YÐ/Ð0Ñ1Ô1Ð1ð	2ð 	2ð 	2ñ 	2ô 	2ð 	2ð 	2ð 	2ð 	2ð 	2ð 	2øøøð 	2ð 	2ð 	2ð 	2à�ŠÐ;Ñ<Ô<Ð<Ð<Ð<sl   ÓS3Ó3S7Ó:S7Ô'4U'Õ'U+Õ.U+Ö4W×W×"WØX*Ø*X.Ø1X.Ù3ZÚZ!Ú$Z!Û3\Ü\Ü\c                 ó`  — t           j        }ddgddggdgdgg}}t          |¦  «        t          |¦  «        }}t           |d |g|d ggd¬¦  «        t          ¦  «        sJ ‚t           |d |g|d ggd¬¦  «        t          ¦  «        sJ ‚t           |||ggd¬¦  «        t          ¦  «        sJ ‚d S )	NrE   rK   rL   rM   rQ   rN   r   rÆ   )r)   r  r
   rÕ   r   )rA   ÚblockÚFlÚGlÚFmÚGms         r1   Útest_block_return_typez)TestConstructUtils.test_block_return_typet  sÓ   € ÝÔ%ˆð
 �a�&˜!˜Q˜� A 3¨¨ *ˆBˆÝ˜B‘”¥¨B¡¤ˆBˆÝ˜%˜% $¨ ¨b°$¨ZÐ 8ÀÐGÑGÔGÍÑQÔQÐQÐQÐQÝ˜%˜% $¨ ¨b°$¨ZÐ 8ÀÐGÑGÔGÍÑQÔQÐQÐQÐQÝ˜%˜% " b  
°5Ð9Ñ9Ô9½7ÑCÔCÐCÐCÐCÐCÐCr3   c                 óú  — t           j        }ddgddggdgdgg}}t          |¦  «        t          |¦  «        }}t          |¦  «        t          |¦  «        }}t	           |||ggd¬¦  «        t
          ¦  «        sJ ‚t	           |||ggd¬¦  «        t          ¦  «        sJ ‚t	           |d	|g|d	ggd¬¦  «        t
          ¦  «        sJ ‚t	           |d	|g|d	ggd¬¦  «        t
          ¦  «        sJ ‚t	           |d	|g|d	ggd¬¦  «        t          ¦  «        sJ ‚t	           |d	|g|d	ggd¬¦  «        t          ¦  «        sJ ‚t	           |||ggd¬¦  «        t
          ¦  «        sJ ‚t	           |||ggd¬¦  «        t
          ¦  «        sJ ‚t	           |||ggd¬¦  «        t
          ¦  «        sJ ‚t	           |||ggd¬¦  «        t          ¦  «        sJ ‚t	           |||ggd¬¦  «        t
          ¦  «        sJ ‚t	           |||ggd¬¦  «        t          ¦  «        sJ ‚t	           ||                     ¦   «         |                     ¦   «         ggd
¬¦  «        t
          ¦  «        sJ ‚t	           ||                     ¦   «         |                     ¦   «         ggd
¬¦  «        t          ¦  «        sJ ‚t	           ||                     ¦   «         |                     ¦   «         ggd¬¦  «        t
          ¦  «        sJ ‚t	           ||                     ¦   «         |                     ¦   «         ggd¬¦  «        t          ¦  «        sJ ‚t	           |||ggd¬¦  «        t
          ¦  «        sJ ‚t	           ||                     ¦   «         |ggd¬¦  «        t
          ¦  «        sJ ‚t	           ||                     ¦   «         |ggd¬¦  «        t          ¦  «        sJ ‚t	           |||ggd
¬¦  «        t          ¦  «        sJ ‚d	S )z2This can be removed after sparse matrix is removedrE   rK   rL   rM   rQ   rN   r   rÆ   Nr   )r)   Úbmatr
   r   rÕ   r   r   r÷   )rA   r+  r%  r&  r'  r(  ÚFaÚGas           r1   Útest_bmat_return_typez(TestConstructUtils.test_bmat_return_type€  s0  € åŒ~ˆà�a�&˜!˜Q˜� A 3¨¨ *ˆBˆÝ˜B‘”¥¨B¡¤ˆBˆÝ˜2‘”¥	¨"¡¤ˆBˆÝ˜$˜$  R ˜z°%Ð8Ñ8Ô8½'ÑBÔBÐBÐBÐBÝ˜$˜$  R ˜z°%Ð8Ñ8Ô8½(ÑCÔCÐCÐCÐCÝ˜$˜$  r 
¨R°¨JÐ7ÀÐFÑFÔFÍÑPÔPÐPÐPÐPÝ˜$˜$  r 
¨R°¨JÐ7ÀÐFÑFÔFÍÑPÔPÐPÐPÐPÝ˜$˜$  r 
¨R°¨JÐ7ÀÐFÑFÔFÍÑQÔQÐQÐQÐQÝ˜$˜$  r 
¨R°¨JÐ7ÀÐFÑFÔFÍÑQÔQÐQÐQÐQõ ˜$˜$  R ˜z°%Ð8Ñ8Ô8½'ÑBÔBÐBÐBÐBÝ˜$˜$  R ˜z°%Ð8Ñ8Ô8½'ÑBÔBÐBÐBÐBÝ˜$˜$  R ˜z°%Ð8Ñ8Ô8½'ÑBÔBÐBÐBÐBÝ˜$˜$  R ˜z°%Ð8Ñ8Ô8½(ÑCÔCÐCÐCÐCå˜$˜$  R ˜z°%Ð8Ñ8Ô8½'ÑBÔBÐBÐBÐBÝ˜$˜$  R ˜z°%Ð8Ñ8Ô8½(ÑCÔCÐCÐCÐCõ ˜$˜$ §¢¡¤¨R¯XªX©Z¬ZÐ 8Ð9À%ÐHÑHÔHÍ'ÑRÔRÐRÐRÐRÝ˜$˜$ §¢¡¤¨R¯XªX©Z¬ZÐ 8Ð9À%ÐHÑHÔHÍ(ÑSÔSÐSÐSÐSå˜$˜$ §¢¡¤¨R¯XªX©Z¬ZÐ 8Ð9À%ÐHÑHÔHÍ'ÑRÔRÐRÐRÐRÝ˜$˜$ §¢¡¤¨R¯XªX©Z¬ZÐ 8Ð9À%ÐHÑHÔHÍ(ÑSÔSÐSÐSÐSõ ˜$˜$  R ˜z°%Ð8Ñ8Ô8½'ÑBÔBÐBÐBÐBÝ˜$˜$ §¢¡¤¨RÐ 0Ð1¸%Ð@Ñ@Ô@Å'ÑJÔJÐJÐJÐJÝ˜$˜$ §¢¡¤¨RÐ 0Ð1¸%Ð@Ñ@Ô@Å(ÑKÔKÐKÐKÐKÝ˜$˜$  R ˜z°%Ð8Ñ8Ô8½(ÑCÔCÐCÐCÐCÐCÐCr3   z!Can't create large array for testc           	      óü  — t          d¦  «         d}t          t          j        ||ft          ¬¦  «        ¦  «        }|                     ¦   «         }t          j        ||fdd¬¦  «        }t          t          j	        t          j
        t          j        |j        ¦  «        |¦  «        ¦  «        ¦  «         t          |j        j        t          j        ¦  «         t          |j        j        t          j        ¦  «         dS )z6 test for indptr overflow when concatenating matrices i0u  iè€  rÏ   r   F)ÚaxisÚreturn_spmatrixN)r	   r   r%   ÚonesÚboolÚcopyr)   Ú_compressed_sparse_stackr   ÚallÚequalÚdiffrö   r   rô   r.   rÿ   )rA   r+   rø   rù   r  s        r1   Útest_concatenate_int32_overflowz2TestConstructUtils.test_concatenate_int32_overflow¤  sÍ   € õ
 	˜%Ñ Ô Ð àˆÝ•b”g˜q !˜f­DÐ1Ñ1Ô1Ñ2Ô2ˆØ�FŠF‰HŒHˆÝÔ.°°1¨v¸AØ?DðFñ Fô Fˆõ 	•”•r”x¥¤¨¬Ñ 1Ô 1°1Ñ5Ô5Ñ6Ô6Ñ7Ô7Ð7Ý�Q”Y”_¥b¤hÑ/Ô/Ð/Ý�Q”X”^¥R¤XÑ.Ô.Ð.Ð.Ð.r3   c                 ój  — t          ddgddgg¦  «        }t          dgdgg¦  «        }t          dgg¦  «        }t          g d¢g d	¢g d
¢g d¢g d¢g¦  «        }t          j        |||f¦  «        }t	          |                     ¦   «         |¦  «         |j        d         j        t          j	        k    sJ ‚dS )z basic test for block_diag rE   rK   rL   rM   rN   rP   rQ   )rE   rK   r   r   )rL   rM   r   r   )r   r   rN   r   )r   r   rP   r   )r   r   r   rQ   r   N)
r   r   r)   Ú
block_diagr   rq   r  r.   r%   rõ   )rA   rø   rù   r  rà   ÚABCs         r1   Útest_block_diag_basicz(TestConstructUtils.test_block_diag_basicµ  sÉ   € å˜˜!�u˜a ˜U�mÑ$Ô$ˆÝ˜�s˜A˜3�iÑ Ô ˆÝ˜�s�eÑÔˆå˜,˜,˜,Ø&˜,˜,Ø&˜,˜,Ø&˜,˜,Ø&˜,˜,ð	(ñ )ô )ˆõ Ô" A q¨! 9Ñ-Ô-ˆÝ�S—[’[‘]”] HÑ-Ô-Ð-ØŒz˜!Œ}Ô"¥b¤hÒ.Ð.Ð.Ð.Ð.Ð.r3   c                 óè   — t          g d¢g d¢g d¢g¦  «        }t          d„ |j        D ¦   «         ¦  «        |_        t          j        ||g¦  «        j        d         j        t          j        k    sJ ‚d S )Nr�   r‚   c              3   óT   K  — | ]#}|                      t          j        ¦  «        V — Œ$d S r$   rý   r   s     r1   r  z?TestConstructUtils.test_block_diag_idx_dtype.<locals>.<genexpr>Ç  r  r3   r   )r   r  r  r)   r;  r.   r%   rÿ   r  s     r1   Útest_block_diag_idx_dtypez,TestConstructUtils.test_block_diag_idx_dtypeÅ  su   € Ý�y�y�y ) ) )¨Y¨Y¨YÐ7Ñ8Ô8ˆÝÐ@Ð@°q´xÐ@Ñ@Ô@Ñ@Ô@ˆŒÝÔ# Q¨ FÑ+Ô+Ô2°1Ô5Ô;½r¼xÒGÐGÐGÐGÐGÐGr3   c                 ó>  — t          t          j        ddgdg¦  «                             ¦   «         g d¢g d¢g¦  «         t	          g d¢¦  «        }t	          ddg¦  «        }t          t          j        ||g¦  «                             ¦   «         g d¢g d	¢g¦  «         d
S )z) block_diag with scalar and 1d arguments rK   rL   rM   )rK   rL   r   )r   r   rM   )rE   r   rL   r   )rE   r   rL   r   r   )r   r   r   r   rM   N)r   r)   r;  rq   r   r  s      r1   Útest_block_diag_scalar_1d_argsz1TestConstructUtils.test_block_diag_scalar_1d_argsÊ  s´   € õ 	�9Ô/°!°A°¸°
Ñ;Ô;×CÒCÑEÔEØ%˜I˜I y y yÐ1ñ	3ô 	3ð 	3õ �g�g�gÑÔˆÝ�q˜�eÑÔˆÝ�9Ô/°°A°Ñ7Ô7×?Ò?ÑAÔAØ+˜O˜O¨_¨_¨_Ð=ñ	?ô 	?ð 	?ð 	?ð 	?r3   c                 ó@  — t          t          j        ddgg¦  «                             ¦   «         t	          ddgg¦  «        ¦  «         t          t          j        ddggg¦  «                             ¦   «         t	          ddgg¦  «        ¦  «         t          t          j        dgdggg¦  «                             ¦   «         t	          dgdgg¦  «        ¦  «         t          t          j        dg¦  «                             ¦   «         t	          dgg¦  «        ¦  «         dS )z block_diag with one matrix rE   r   N)r   r)   r;  rq   r   r×   s    r1   Útest_block_diag_1z$TestConstructUtils.test_block_diag_1Õ  s  € å•YÔ)¨A¨q¨6¨(Ñ3Ô3×;Ò;Ñ=Ô=Ý˜Q ˜F˜8‘_”_ñ	&ô 	&ð 	&å•YÔ)¨Q°¨F¨8¨*Ñ5Ô5×=Ò=Ñ?Ô?Ý˜Q ˜F˜8‘_”_ñ	&ô 	&ð 	&å•YÔ)¨Q¨C°!°¨:¨,Ñ7Ô7×?Ò?ÑAÔAÝ˜Q˜C ! ˜:Ñ&Ô&ñ	(ô 	(ð 	(õ 	•YÔ)¨1¨#Ñ.Ô.×6Ò6Ñ8Ô8Ý˜Q˜C˜5‘\”\ñ	#ô 	#ð 	#ð 	#ð 	#r3   c                 óä  — t          g d¢gd¬¦  «        }t          ddggd¬¦  «        }t          t          j        ||g¦  «                             ¦   «         t          g d¢g d¢g¦  «        ¦  «         t          d	gd
gdggd¬¦  «        }t          dgdggd¬¦  «        }t          t          j        ||g¦  «                             ¦   «         t          d	dgd
dgddgddgddgg¦  «        ¦  «         dS )z block_diag with sparse arrays r‡   )rE   rL   rF   rM   rN   r|   )rE   rK   rL   r   r   )r   r   r   rM   rN   rE   rK   rL   )rL   rE   r{   r   N)r   r   r)   r;  rq   r   r  s      r1   Útest_block_diag_sparse_arraysz0TestConstructUtils.test_block_diag_sparse_arraysá  s   € õ �y�y�y�k¨Ð0Ñ0Ô0ˆÝ˜˜1�v�h fÐ-Ñ-Ô-ˆÝ•YÔ)¨1¨a¨&Ñ1Ô1×9Ò9Ñ;Ô;Ý˜O˜O˜O¨_¨_¨_Ð=Ñ>Ô>ñ	@ô 	@ð 	@õ ˜�s˜Q˜C ! �o¨VÐ4Ñ4Ô4ˆÝ˜�s˜Q˜C�j¨Ð/Ñ/Ô/ˆÝ•YÔ)¨1¨a¨&Ñ1Ô1×9Ò9Ñ;Ô;Ý˜Q ˜F Q¨ F¨Q°¨F°Q¸°F¸QÀ¸FÐCÑDÔDñ	Fô 	Fð 	Fð 	Fð 	Fr3   c                 ó¦  — t          g d¢g¦  «        t          g d¢g¦  «        }}t          t          j        ||g¦  «        t
          ¦  «        sJ ‚t          t          j        ||g¦  «        t
          ¦  «        sJ ‚t          t          j        ||g¦  «        t
          ¦  «        sJ ‚t          t          j        ||g¦  «        t          ¦  «        sJ ‚d S )Nr‡   )rK   rL   rM   )r   r   rÕ   r)   r;  r   r   r  s      r1   Útest_block_diag_return_typez.TestConstructUtils.test_block_diag_return_typeî  sÁ   € Ý˜)˜)˜)˜Ñ%Ô%¥z°9°9°9°+Ñ'>Ô'>ˆ1ˆÝ�)Ô.°°1¨vÑ6Ô6½Ñ@Ô@Ð@Ð@Ð@Ý�)Ô.°°1¨vÑ6Ô6½Ñ@Ô@Ð@Ð@Ð@Ý�)Ô.°°1¨vÑ6Ô6½Ñ@Ô@Ð@Ð@Ð@Ý�)Ô.°°1¨vÑ6Ô6½ÑAÔAÐAÐAÐAÐAÐAr3   c                 ó  ‡— t           t          fD �]òŠt          j        t          j        t          j        t          j        t          j        t          j        t          j	        fD ]P} ‰ddd|¬¦  «        }t          |j        |¦  «         t          |j        d¦  «         t          |j        d¦  «         ŒQ ‰dddd¬¦  «        }t          |j        t          j        ¦  «          ‰dddt          j                             d¦  «        ¬¦  «        }t!          |j        |j        ¦  «         t!          |j        |j        ¦  «         t!          |j        |j        ¦  «         dD ]L} ‰dd|¬	¦  «        }t          |j        t)          |t          j        |j        ¦  «        z  ¦  «        ¦  «         ŒMd
D ]%} ‰dd|¬¦  «        }t          |j        |¦  «         Œ&t/          t0          ˆfd„¦  «         t/          t0          ˆfd„¦  «         �Œôd S )NrN   rT   çš™™™™™¹?)r,   r.   )rN   rT   éá  )r,   r/   )g        rJ  rÜ   g      ð?©r,   )r   r   r   r    rÆ   c                  ó   •—  ‰ ddd¦  «        S )NrN   rT   gš™™™™™ñ?r£   ©Úfs   €r1   ú<lambda>z9TestConstructUtils.test_random_sampling.<locals>.<lambda>  s   ø€ ¨a¨a°°2°s©m¬m€ r3   c                  ó   •—  ‰ ddd¦  «        S )NrN   rT   gš™™™™™¹¿r£   rN  s   €r1   rP  z9TestConstructUtils.test_random_sampling.<locals>.<lambda>  s   ø€ ¨a¨a°°2°t©n¬n€ r3   )Úsprandr2   r%   rñ   Úfloat64Ú
longdoublerõ   rÿ   Ú	complex64Ú
complex128r   r.   rG   Únnzr&   r'   r   ÚdataÚrowÚcolr·   Úprodr-   rš   r?   )rA   Útr©   Úx1Úx2r,   rÊ   rO  s          @r1   Útest_random_samplingz'TestConstructUtils.test_random_samplingõ  sø  ø€ å�Ð!ð 	>ñ 	>ˆAÝ”j¥"¤*­b¬mÝ”h¥¤­"¬,½¼ðGð 'ð '�à�A�a˜ S°Ð2Ñ2Ô2�Ý˜QœW aÑ(Ô(Ð(Ý˜QœW gÑ.Ô.Ð.Ý˜QœU AÑ&Ô&Ð&Ð&à��1�b #¨4Ð0Ñ0Ô0ˆBÝ˜œ¥2¤:Ñ.Ô.Ð.à��1�b #­2¬9×+@Ò+@ÀÑ+FÔ+FÐGÑGÔGˆBå˜rœw¨¬Ñ0Ô0Ð0Ý˜rœv r¤vÑ.Ô.Ð.Ý˜rœv r¤vÑ.Ô.Ð.à/ð Eð E�Ø�A�a˜ WÐ-Ñ-Ô-�Ý˜QœU¥C¨µ"´'¸!¼'Ñ2BÔ2BÑ(BÑ$CÔ$CÑDÔDÐDÐDà3ð ,ð ,�Ø�A�a˜ CÐ(Ñ(Ô(�Ý˜QœX sÑ+Ô+Ð+Ð+å�*Ð&;Ð&;Ð&;Ð&;Ñ<Ô<Ð<Ý�*Ð&<Ð&<Ð&<Ð&<Ñ=Ô=Ð=Ñ=ð5	>ð 	>r3   r/   NrK  c                 ó&  — t          dddt          j        |¬¦  «        }t          t          j        t          j        d|j        ¦  «        ¦  «        ¦  «         t          t          j        t          j        |j        d¦  «        ¦  «        ¦  «         d S ©NrT   é   rÜ   ©r,   r.   r/   r   rE   )rR  r%   rS  r   r6  Ú
less_equalrX  ©rA   r/   r©   s      r1   Ú	test_randzTestConstructUtils.test_rand  sp   € õ �2�r 3­b¬j¸cÐBÑBÔBˆÝ•”•r”} Q¨¬Ñ/Ô/Ñ0Ô0Ñ1Ô1Ð1Ý•”•r”} Q¤V¨QÑ/Ô/Ñ0Ô0Ñ1Ô1Ð1Ð1Ð1r3   c                 óF  — t          dddt          j        |¬¦  «        }t          t          j        t          j        |j        d¦  «        ¦  «        ¦  «         t          t          j        t          j        d|j        ¦  «        ¦  «        ¦  «         t          dddt          j        |¬¦  «        }t          t          j        t          j        |j        d¦  «        ¦  «        ¦  «         t          t          j        t          j        d|j        ¦  «        ¦  «        ¦  «         d S ra  )r2   r%   rS  r   ÚanyÚlessrX  r7   re  s      r1   Ú
test_randnzTestConstructUtils.test_randn  sÖ   € õ
 �R˜ Sµ´
ÀÐDÑDÔDˆÝ•”•r”w˜qœv qÑ)Ô)Ñ*Ô*Ñ+Ô+Ð+Ý•”•r”w˜q !¤&Ñ)Ô)Ñ*Ô*Ñ+Ô+Ð+Ý˜2˜r¨3µb´jÀcÐJÑJÔJˆÝ•”•r”w˜qœv qÑ)Ô)Ñ*Ô*Ñ+Ô+Ð+Ý•”•r”w˜q !¤&Ñ)Ô)Ñ*Ô*Ñ+Ô+Ð+Ð+Ð+r3   c                 ó¸   — t          j        ddd¬¦  «         t          j        dd¬¦  «         t          j        dd¬¦  «         t          j        dd¬¦  «         d S )NrT   rv   rÏ   ©rT   rT   ©rT   rT   rT   ©rT   rT   rT   rT   rT   )r)   r&   r6   r×   s    r1   Útest_random_accept_str_dtypez/TestConstructUtils.test_random_accept_str_dtype&  se   € õ 	Ô˜˜R sÐ+Ñ+Ô+Ð+ÝÔ˜x¨sÐ3Ñ3Ô3Ð3ÝÔ˜|°3Ð7Ñ7Ô7Ð7ÝÔÐ3¸3Ð?Ñ?Ô?Ð?Ð?Ð?r3   c                 ó  — t          j        ddt          d¬¦  «        }|j        dk    sJ ‚t          j        ddt          d¬¦  «        }|j        dk    sJ ‚t          j        ddt          d¬¦  «        }|j        dk    sJ ‚d S )N)r   rM   g333333Ó?r   )r,   r.   Úrandom_staterm  rc  rn  )r)   r6   r·   rG   )rA   r  s     r1   Ú'test_random_array_maintains_array_shapez:TestConstructUtils.test_random_array_maintains_array_shape.  s–   € åÔ$ V°SÅÐRSÐTÑTÔTˆØŒy˜FÒ"Ð"Ð"Ð"åÔ$ \¸3ÅcÈqÐQÑQÔQˆØŒy˜LÒ(Ð(Ð(Ð(åÔ$Ð%9À3ÍcØ)*ð,ñ ,ô ,ˆàŒyÐ0Ò0Ð0Ð0Ð0Ð0Ð0r3   c                 ór   — t          j        d¦  «        }|j        d         j        t          j        k    sJ ‚d S )Nrl  r   )r)   r6   r  r.   r%   rõ   )rA   rø   s     r1   Útest_random_array_idx_dtypez.TestConstructUtils.test_random_array_idx_dtype:  s4   € ÝÔ" 8Ñ,Ô,ˆØŒx˜Œ{Ô ¥B¤HÒ,Ð,Ð,Ð,Ð,Ð,r3   c                 óœ  — t          j        ddd¬¦  «        }t          |                     ¦   «         d¦  «         t          j        dd¬¦  «        }t          |                     ¦   «         d¦  «         t          |t          ¦  «        sJ ‚d}t          j        |d¬¦  «        }t          |                     ¦   «         d¦  «         t          j        d	d
¬¦  «        }t          |                     ¦   «         d¦  «         t          |t          ¦  «        sJ ‚d}t          j        |d¬¦  «        }t          |                     ¦   «         d¦  «         d S )NrT   gþÔxé&1À?rL  rX   rl  )ì        rv  g(Rsåû?<iÐ  )rT   rT   rT   rT   gkñ) Æ3À?iò  )rv  rv  rv  g�ëAŒy5:é¬   )r)   r&   r   Úcount_nonzeror6   rÕ   r   )rA   Úsparse_matrixÚsparse_arrayrG   s       r1   ÚEtest_random_sparse_matrix_returns_correct_number_of_non_zero_elementszXTestConstructUtils.test_random_sparse_matrix_returns_correct_number_of_non_zero_elements>  s:  € õ "Ô(¨¨R¸Ð@Ñ@Ô@ˆÝ�]×0Ò0Ñ2Ô2°2Ñ6Ô6Ð6å Ô-¨hÀÐGÑGÔGˆÝ�\×/Ò/Ñ1Ô1°"Ñ5Ô5Ð5Ý˜,­Ñ0Ô0Ð0Ð0Ð0àˆÝ Ô-¨e¸ZÐHÑHÔHˆÝ�\×/Ò/Ñ1Ô1°$Ñ7Ô7Ð7õ !Ô-Ð.>ÈÐPÑPÔPˆÝ�\×/Ò/Ñ1Ô1°$Ñ7Ô7Ð7Ý˜,­Ñ0Ô0Ð0Ð0Ð0à%ˆÝ Ô-¨e¸ZÐHÑHÔHˆÝ�\×/Ò/Ñ1Ô1°#Ñ6Ô6Ð6Ð6Ð6r3   )JÚ__name__Ú
__module__Ú__qualname__r>   ÚmarkÚparametrizer   r   r   r   r   r   r   rB   r   r
   r   r   r   r   rH   ry   r”   r˜   r›   r    rµ   r¹   r¾   rÁ   r)   rÂ   rÖ   rË   rÌ   rÑ   rÓ   rØ   rá   rä   rè   rë   rí   rú   r	  r  r  r  r  r+  r  r"  r)  r.  ÚslowÚthread_unsafeÚxfail_on_32bitr9  r=  r@  rB  rD  rF  rH  r_  r%   r&   r'   rf  rj  ro  rr  rt  r{  r£   r3   r1   r9   r9   )   sÞ  € € € € € à„[×Ò˜UØ�9˜i¨Ø�9˜ið%ñ ô ðð ñ	ô ðð „[×Ò˜UØ�J 
Ø�J 
ð%ñ ô ð&ð &ñ	ô ð&ð6Lð 6Lð 6LðpL.ð L.ð L.ð\?ð ?ð ?ð6ð 6ð 6ðIð Ið Ið&Ið Ið Ið64ð 4ð 4ð
Fð Fð Fð&ð &ð &ð „[×Ò˜Z¨)Ô*<¸iÔ>QÐ)RÑSÔSðAð Añ TÔSðAð „[×Ò˜U Y¤]°IÔ4GÐ$HÑIÔIð!ð !ñ JÔIð!ðF „[×Ò˜U Y¤]°IÔ4GÐ$HÑIÔIðAð Añ JÔIðAð9ð 9ð 9ð.,ð .,ð .,ð`+ð +ð +ðð ð ð-ð -ð -ð01ð 1ð 1ð „[×Ò˜Y¨°YÐ(?Ñ@Ô@ð4ð 4ñ AÔ@ð4ð:Dð Dð Dð&Vð Vð Vð6ð 6ð 6ð. „[×Ò˜Y¨°YÐ(?Ñ@Ô@ð!ð !ñ AÔ@ð!ð.Vð Vð Vð „[×Ò˜]¨Y¬^¸YÔ=RÐ,SÑTÔTðK=ð K=ñ UÔTðK=ðZ
Dð 
Dð 
Dð"Dð "Dð "DðH „[ÔØ„[ÔØ„[×ÒÐ CÑDÔDð/ð /ñ EÔDñ Ôñ Ôð/ð/ð /ð /ð Hð Hð Hð
	?ð 	?ð 	?ð
#ð 
#ð 
#ðFð Fð FðBð Bð Bð>ð >ð >ð< „[×Ò˜U T¨4°´×1FÒ1FÀtÑ1LÔ1LÐ$MÑNÔNð2ð 2ñ OÔNð2ð „[×Ò˜U T¨4°´×1FÒ1FÀtÑ1LÔ1LÐ$MÑNÔNð	,ð 	,ñ OÔNð	,ð@ð @ð @ð
1ð 
1ð 
1ð-ð -ð -ð7ð 7ð 7ð 7ð 7r3   r9   c                  óº  — t          j        dd¦  «        } t          t          j        | ¦  «                             ¦   «         t          j        | ¦  «        ¦  «         t          t          j        | d¬¦  «                             ¦   «         t          j        | d¬¦  «        ¦  «         t          t          j        | dd¬¦  «                             ¦   «         t          j        | d¬¦  «        dd	…dd	…f         ¦  «         t          j        t          d
¬¦  «        5  t          j
        t          j        dd¦  «        dd¬¦  «         ddd¦  «         dS # 1 swxY w Y   dS )z7Tests of diags_array that do not rely on diags wrapper.rE   rN   rK   r�   rÐ   rž   r‰   NrM   z.*out of boundsr<   rF   )r%   r­   r   r)   rç   rq   r–   r>   r   r?   rŽ   )r–   s    r1   Útest_diags_arrayr…  W  sw  € åŒ9�Q˜‰?Œ?€Då•yÔ,¨TÑ2Ô2×:Ò:Ñ<Ô<½b¼gÀd¹m¼mÑLÔLÐLåÝÔ˜d¨AÐ.Ñ.Ô.×6Ò6Ñ8Ô8½"¼'À$È!Ð:LÑ:LÔ:Lñô ð õ ÝÔ˜d¨A°VÐ<Ñ<Ô<×DÒDÑFÔFÝ
Œ�˜ÐÑÔ˜2˜A˜2˜r ˜r˜6Ô"ñô ð õ 
Œ•zÐ):Ð	;Ñ	;Ô	;ð :ð :ÝŒ�œ	 ! Q™œ¨°&Ð9Ñ9Ô9Ð9ð:ð :ð :ñ :ô :ð :ð :ð :ð :ð :ð :ð :øøøð :ð :ð :ð :ð :ð :s   Ä+EÅEÅE)r"   r   NN)(Ú__doc__Únumpyr%   r   Únumpy.testingr   r   r   r   r>   r   rš   Úscipy._lib._testutilsr	   Úscipy.sparser
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r)   Úscipy.sparse._constructr   rR  rÈ   r2   r7   r9   r…  r£   r3   r1   ú<module>rŒ     sß  ðØ /Ð /à Ð Ð Ð Ø Ð Ð Ð Ð Ð ð<ð <ð <ð <ð <ð <ð <ð <ð <ð <ð <ð <à €€€Ø *Ð *Ð *Ð *Ð *Ð *Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3ð3ð 3ð 3ð 3ð 3ð 3ð 3ð 3ð 3ð 3ð 3ð 3ð 3ð 3ð 3ð 3ð 3ð 3ð 3ð 3ð 3ð 3ð 3ð 3ð 3ð 3ð 3ð 3ð 3ð 3ð 3ð 3ð 3ð 3ð 3ð 3ð 3Ð 2Ð 2Ð 2Ð 2Ð 2à<Ð<Ð<€ð
Ið Ið Ið IðFð Fð Fð Fðk7ð k7ð k7ð k7ð k7ñ k7ô k7ð k7ð\:ð :ð :ð :ð :r3   