§
    ¡éUgÅŽ  ã                   óî   — 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 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)Úcheck_random_state)Ú
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           	      ób   — t          |¦  «        }|j        }t          j        | ||||||¦  «        S )N)r
   Ústandard_normalÚ	constructÚrandom)ÚmÚnÚdensityÚformatÚdtypeÚrandom_stateÚdata_rvss          ú`/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/scipy/sparse/tests/test_construct.pyÚ_sprandnr0      s;   € å% lÑ3Ô3€LØÔ+€HÝÔ˜A˜q '¨6°5Ø(¨(ñ4ô 4ð 4ó    c                 óf   — t          |¦  «        }|j        }t          j        | |f|||||¬¦  «        S )N)r*   r+   r,   r-   Údata_sampler)r
   r%   r&   Úrandom_array)r(   r)   r*   r+   r,   r-   r3   s          r/   Ú_sprandn_arrayr5   #   sG   € å% lÑ3Ô3€LØÔ/€LÝÔ! 1 a &°'À&ÐPUØ/;È,ðXñ Xô Xð Xr1   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-ej                             deeg¦  «        d„ ¦   «         Z.d„ Z/ej                             dej0        ej1        f¦  «        d„ ¦   «         Z2d „ Z3d!„ Z4ej        j5        ej         6                    d"¦  «        d#„ ¦   «         ¦   «         Z7d$„ Z8d%„ Z9d&„ Z:d'„ Z;d(„ Z<d)„ Z=d*„ Z>d+„ Z?d,„ Z@d-„ ZAd.S )/Ú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©Úselfr8   s     r/   Ú 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   ©é   rC   N©Úshaper>   s     r/   Ú!test_singleton_matrix_constructorz4TestConstructUtils.test_singleton_matrix_constructor;   s%   € ð ˆs�1‰vŒvŒ|˜vÒ%Ð%Ð%Ð%Ð%Ð%r1   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©rC   é   é   é   é   ©é   é   é   é	   é
   ©é   é   é   é   é   r   rC   rI   éÿÿÿÿrJ   rK   ©rC   r   r   r   ©r   rI   r   r   ©r   r   rJ   r   )r   r   r   rK   rL   ©r   r   rJ   r   r   )r   r   r   rK   r   )r   r   r   r   rL   )rC   r   rP   ©r   rI   r   ©r   r   rJ   ©rN   r   r   r   ©rC   rO   r   r   ©r   rI   rP   r   éýÿÿÿrN   )r   r   rJ   r   r   r   )r   r   r   rK   r   r   )r   r   r   r   rL   r   )rN   r   r   r   r   r   ©r   rO   r   r   r   r   ©r   r   rP   r   r   r   ©rY   r   rC   )rN   rU   r   r   r   r   )rC   rO   rV   r   r   r   )r   rI   rP   rW   r   r   )r   r   rJ   rQ   rX   r   )r   r   r   rK   rR   r   ©éüÿÿÿrI   rY   )r   r   rP   r   r   )rT   r   r   rQ   r   )r   rU   r   r   rR   ©r   r   rV   r   r   ©rC   r   r   rW   r   ©r   rI   r   r   rX   )rY   rC   rI   )r   rO   rV   r   r   )rC   r   rP   rW   r   )r   rI   r   rQ   rX   )r   r   rJ   r   rR   )r   ÚappendÚlenr   r&   ÚspdiagsÚtoarray)
r?   Údiags1Údiags2Údiags3ÚcasesÚdÚor(   r)   Úresults
             r/   Útest_spdiagszTestConstructUtils.test_spdiagsI   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r1   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 )VNrH   rM   rS   rC   r   rB   ©rI   rC   ©rC   rI   rI   ©rI   rI   rY   rJ   )rJ   rK   rZ   r[   r\   )r   rC   r   r   )r   r   rI   r   )r   r   r   rJ   éþÿÿÿ©rJ   rL   )r   r   r   r   r   )rC   r   r   r   r   )r   rI   r   r   r   r]   )r   rC   r   r   r   )r   r   rI   r   r   )r   r   r   rJ   r   )r   r   rC   r   r   )r   r   r   rI   r   )r   r   r   r   rJ   )r   r   r   rC   r   )r   r   r   r   rI   rK   )r   r   r   r   rC   rh   )rL   rJ   ©r   r   r   ©rC   r   r   rc   r^   r_   ©r   rC   r   )r   r   rI   ©r   r   rC   ©rJ   rJ   )rC   r   rN   r`   ra   rb   )rN   rN   )r   r   rC   r   r   r   )r   r   r   rI   r   r   )r   r   r   r   rJ   r   )rN   r   r   r   r   rK   rd   re   rf   ©rL   rL   )rN   rT   r   r   r   )rC   rO   rU   r   r   )r   rI   rP   rV   r   )r   r   rJ   rQ   rW   )r   r   r   rK   rR   rg   ©rN   rL   )r   r   rN   r   r   )rT   r   r   rO   r   )r   rU   r   r   rP   ri   rj   rk   ©rC   rI   rJ   )rK   rL   rN   )rK   rI   r   )r   rL   rJ   )rC   r|   rC   )rC   r   rY   )r|   rC   r   )r   rC   r|   ú ©ÚoffsetsrE   )Úerr_msgÚ__len__©rˆ   )
r   rl   Únpr   r&   Údiagsro   Úhasattrrm   Úmax)
r?   ÚaÚbÚcrs   rt   ru   rE   rv   r‰   s
             r/   Ú
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Ø%,ð.ñ .ô .ð .øð
	.ð 
	.r1   c                 ó´   — t          g d¢¦  «        }t          t          j        |¦  «                             ¦   «         t          j        |¦  «        ¦  «         d S )NrH   )r   r   r&   r�   ro   rŒ   Údiag©r?   r�   s     r/   Útest_diags_defaultz%TestConstructUtils.test_diags_defaultÏ   sG   € Ý�/�/�/Ñ"Ô"ˆÝ•Y”_ QÑ'Ô'×/Ò/Ñ1Ô1µ2´7¸1±:´:Ñ>Ô>Ð>Ð>Ð>r1   c                 óp   — t          g d¢g d¢g¦  «        }t          t          t          j        |¦  «         d S )NrH   )rI   rJ   rK   rL   rN   )r   Úassert_raisesr=   r&   r�   r–   s     r/   Útest_diags_default_badz)TestConstructUtils.test_diags_default_badÓ   s6   € Ý�?�?�? O O OÐ4Ñ5Ô5ˆÝ•j¥)¤/°1Ñ5Ô5Ð5Ð5Ð5r1   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 )NrH   rM   rS   r   rB   rK   rJ   rf   rƒ   rI   rg   r„   rC   éûÿÿÿ©rK   rK   r‡   r‹   )r   rl   r™   r=   r&   r�   Ú	TypeError)r?   r�   r‘   r’   rs   rt   ru   rE   s           r/   Ú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ÐHr1   c                 óú  ‡— t           j                             d¦  «         dD �]V}d|dz  z   t           j                             dd¦  «        z   Št          j        ‰ dz   ‰dz
  ¦  «        }t           j                             |¦  «         |d |…         }ˆfd„|D ¦   «         }t          j        ||¬¦  «        }t          d	„ t          ||¦  «        D ¦   «         ¦  «        }t          |                     ¦   «         |¦  «         t          |¦  «        dk    ret          j        |d         |d         ¬¦  «        }t          j        |d         |d         ¦  «        }t          |                     ¦   «         |¦  «         �ŒXd S )
NiÒ  )rC   rI   rJ   rK   rL   rR   rC   rI   r   rR   c                 ón   •— g | ]1}t           j                             ‰t          |¦  «        z
  ¦  «        ‘Œ2S © )rŒ   r'   r   Úabs)Ú.0Úqr)   s     €r/   ú
<listcomp>z9TestConstructUtils.test_diags_vs_diag.<locals>.<listcomp>ù   s1   ø€ ÐEÐEÐE¸�œŸš¨­C°©F¬F©
Ñ3Ô3ÐEÐEÐEr1   r‹   c                 ó>   — g | ]\  }}t          j        ||¦  «        ‘ŒS r¢   )rŒ   r•   )r¤   ÚxÚjs      r/   r¦   z9TestConstructUtils.test_diags_vs_diag.<locals>.<listcomp>ü   s&   € ÐOÐOÐO©t¨q°!�RœW Q¨™]œ]ÐOÐOÐOr1   )rŒ   r'   ÚseedÚrandintÚarangeÚshuffler&   r�   ÚsumÚzipr   ro   rm   r•   )r?   Ún_diagsrˆ   Ú	diagonalsÚmatÚ	dense_matr)   s         @r/   Útest_diags_vs_diagz%TestConstructUtils.test_diags_vs_diagê   sc  ø€ õ 	Œ	�Š�tÑÔÐà*ð 	Iñ 	IˆGØ�G˜Q‘J‘¥¤×!2Ò!2°1°bÑ!9Ô!9Ñ9ˆAå”i   1¡ a¨¡cÑ*Ô*ˆGÝŒI×Ò˜gÑ&Ô&Ð&Ø˜h˜w˜hÔ'ˆGàEÐEÐEÐE¸WÐEÑEÔEˆ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r1   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ˆ   rE   r,   rI   )r&   r�   Úintr   r,   ro   ©r?   r¨   s     r/   Ú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Ð3r1   c                 ó   — t          t          d¦  «        ¦  «        }t          dd¦  «        D ]`}t          t          j        ||¬¦  «                             ¦   «         t          j        |g|g¬¦  «                             ¦   «         ¦  «         Œad S )NrL   rœ   rN   r‹   )ÚlistÚranger   r&   r�   ro   )r?   rt   Úks      r/   Ú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r1   c                 óX   — t          j        g ¦  «        }t          |j        d¦  «         d S )N©r   r   )r&   r�   r   rE   r·   s     r/   Útest_diags_emptyz#TestConstructUtils.test_diags_empty  s)   € ÝŒO˜BÑÔˆÝ�Q”W˜fÑ%Ô%Ð%Ð%Ð%r1   Ú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 ©NrC   rI   r   rJ   Úint8r    )r,   r+   ©r+   r   r€   r�   ©r   ro   r,   rŒ   r+   Úsparse_formats)r?   rÁ   ÚIÚfmts       r/   Ú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r1   Ú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 )NrC   rI   rJ   r   r€   r   r�   Úint16©r,   r}   rœ   rN   zOffset.*out of boundsr:   ©r¼   )
r   ro   r,   rŒ   r»   r£   r<   r   r=   rË   )r?   rË   r(   r)   r¼   s        r/   Ú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Æ   )r?   rË   rÈ   rÉ   s       r/   Útest_eye_onezTestConstructUtils.test_eye_oneF  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r1   c                 óª   — t          t          j        d¦  «        t          ¦  «        sJ ‚t          t          j        d¦  «        t          ¦  «        rJ ‚d S )NrJ   )Ú
isinstancer&   Ú	eye_arrayr   rË   ©r?   s    r/   Útest_eye_array_vs_matrixz+TestConstructUtils.test_eye_array_vs_matrixT  sI   € Ý�)Ô-¨aÑ0Ô0µ'Ñ:Ô:Ð:Ð:Ð:Ý�iœm¨AÑ.Ô.µÑ8Ô8Ð8Ð8Ð8Ð8Ð8r1   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   rY   rK   rR   rC   rI   rJ   rL   ©r   rI   iúÿÿÿ©rP   r   rW   rN   )rL   rK   rK   r   )rN   r   rP   )r   rC   r   rI   r   rL   rP   )ç      à?g      À?r   g      
@)r   g      @r   r   rÅ   rc   )rl   r   r   rŒ   ÚkronrÇ   r&   r   r+   r   ro   rÔ   r   r   r   )	r?   rs   r�   Úcar‘   ÚcbÚexpectedrÉ   rv   s	            r/   Ú	test_kronzTestConstructUtils.test_kronX  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Ý˜&¥(Ñ+Ô+Ð+Ð+Ð+Ð+Ð+r1   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   rC   )r<   r   r=   r&   rÜ   r   rÖ   s    r/   Ú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   rC   )rE   rˆ   )r&   Údiags_arrayrÜ   )r?   r)   r�   r‘   s       r/   Ú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˜!ÑÔÐÐÐr1   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   rY   rK   rR   rC   rI   rJ   rL   rÙ   rÚ   )r   rJ   r   r   )r   rL   rY   )rK   r|   rP   )rl   r   r&   Úkronsumr   ro   rŒ   rÜ   rË   rE   r   r   )r?   rs   r�   r‘   rv   rß   s         r/   Ú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Ñ,Ô,Ð,Ð,Ð,r1   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   rC   rI   )r<   r   r=   r&   ré   r   rÖ   s    r/   Ú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 )NrC   rI   rJ   rK   rL   rN   rÎ   r   )r+   r,   r   )r   r   r&   Úvstackro   rŒ   Úfloat32r,   ÚtodokÚtocsrÚindicesÚint32ÚindptrÚtocsc)r?   rí   ÚAÚBrß   rv   s         r/   Ú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Ð3r1   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 ©NrC   rI   rJ   rK   rL   rN   )rÔ   r&   rï   r   r   r   r   ©r?   r÷   rø   s      r/   Ú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ÐUr1   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   )rC   rK   )rC   rN   )rI   rJ   )rI   rN   zincompatible row dimensionsr:   zincompatible column dimensions)r   r   r&   rï   rŒ   r   rE   Úhstackr<   r   r=   )r?   ÚarrÚarr1dÚarr1dcoos       r/   Ú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 )
NrC   rI   rJ   rK   rL   rN   ©rC   rI   rL   ©rJ   rK   rN   rÎ   )r   r   r&   rÿ   ro   rŒ   rð   r,   rñ   rö   rò   )r?   rí   r÷   rø   rß   s        r/   Ú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ñ	!ô 	!ð 	!ð 	!ð 	!r1   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      r/   Ú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ÐUr1   Ú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 )NrC   rI   rJ   rK   rL   rN   rO   r¿   r  r  )r   r   rO   rz   rÎ   )rC   rI   r   )rJ   rK   r   rB   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   ro   r   rŒ   rô   rò   rö   ÚTÚemptyr™   r=   r;   )
r?   r
  r÷   rø   ÚCÚDrß   ÚEÚZÚexcinfos
             r/   Ú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 )	NrC   rI   rJ   rK   rO   rL   r   rÅ   )r&   r
  r   rÔ   r   )r?   ÚblockÚFlÚGlÚFmÚGms         r/   Útest_block_return_typez)TestConstructUtils.test_block_return_typec  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ÐCr1   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 removedrC   rI   rJ   rK   rO   rL   r   rÅ   Nr   )r&   Úbmatr   r   rÔ   r   r   rö   )r?   r  r  r  r  r  ÚFaÚGas           r/   Útest_bmat_return_typez(TestConstructUtils.test_bmat_return_typeo  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ÐCr1   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,   Úint64)r?   r)   r÷   rø   r  s        r/   Ú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Ñ.Ô.Ð.Ð.Ð.r1   c                 ó"  — 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          t          j        |||f¦  «                             ¦   «         |¦  «         dS )z basic test for block_diag rC   rI   rJ   rK   rL   rN   rO   )rC   rI   r   r   )rJ   rK   r   r   )r   r   rL   r   )r   r   rN   r   )r   r   r   rO   N)r   r   r   r&   Ú
block_diagro   )r?   r÷   rø   r  rß   s        r/   Útest_block_diag_basicz(TestConstructUtils.test_block_diag_basic£  s¬   € å˜˜!�u˜a ˜U�mÑ$Ô$ˆÝ˜�s˜A˜3�iÑ Ô ˆÝ˜�s�eÑÔˆå˜,˜,˜,Ø&˜,˜,Ø&˜,˜,Ø&˜,˜,Ø&˜,˜,ð	(ñ )ô )ˆõ 	•YÔ)¨1¨a°¨)Ñ4Ô4×<Ò<Ñ>Ô>ÀÑIÔIÐIÐIÐIr1   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 rI   rJ   rK   )rI   rJ   r   )r   r   rK   )rC   r   rJ   r   )rC   r   rJ   r   r   )r   r   r   r   rK   N)r   r&   r-  ro   r   rü   s      r/   Ú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¨_¨_¨_Ð=ñ	?ô 	?ð 	?ð 	?ð 	?r1   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 rC   r   N)r   r&   r-  ro   r   rÖ   s    r/   Ú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‘\”\ñ	#ô 	#ð 	#ð 	#ð 	#r1   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…   )rC   rJ   rD   rK   rL   rz   )rC   rI   rJ   r   r   )r   r   r   rK   rL   rC   rI   rJ   )rJ   rC   ry   r   N)r   r   r&   r-  ro   r   rü   s      r/   Ú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r1   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…   )rI   rJ   rK   )r   r   rÔ   r&   r-  r   r   rü   s      r/   Ú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ÐAr1   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 )NrL   rR   çš™™™™™¹?)r*   r,   )rL   rR   éá  )r*   r-   )g        r8  rÛ   g      ð?©r*   )r   r   r   r!   rÅ   c                  ó   •—  ‰ ddd¦  «        S )NrL   rR   gš™™™™™ñ?r¢   ©Úfs   €r/   ú<lambda>z9TestConstructUtils.test_random_sampling.<locals>.<lambda>ù  s   ø€ ¨a¨a°°2°s©m¬m€ r1   c                  ó   •—  ‰ ddd¦  «        S )NrL   rR   gš™™™™™¹¿r¢   r<  s   €r/   r>  z9TestConstructUtils.test_random_sampling.<locals>.<lambda>ú  s   ø€ ¨a¨a°°2°t©n¬n€ r1   )Úsprandr0   rŒ   rð   Úfloat64Ú
longdoublerô   r*  Ú	complex64Ú
complex128r   r,   rE   Únnzr'   ÚRandomStater   ÚdataÚrowÚcolr¶   Úprodr+   r™   r=   )r?   Útr¨   Úx1Úx2r*   rÉ   r=  s          @r/   Ú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 #°DÐ9Ñ9Ô9ˆBÝ˜œ¥2¤:Ñ.Ô.Ð.à��1�b #Ý "¤	× 5Ò 5°dÑ ;Ô ;ð=ñ =ô =ˆ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Ñ+Ô+Ð+Ð+å�*Ð&;Ð&;Ð&;Ð&;Ñ<Ô<Ð<Ý�*Ð&<Ð&<Ð&<Ð&<Ñ=Ô=Ð=Ñ=ð7	>ð 	>r1   c           	      óü  — d dt           j                             ¦   «         g}	 t           j                             ¦   «         }|                     |¦  «         n# t
          $ r Y nw xY w|D ]’}t          dddt           j        |¬¦  «        }t          t          j	        t          j
        d|j        ¦  «        ¦  «        ¦  «         t          t          j	        t          j
        |j        d¦  «        ¦  «        ¦  «         Œ“d S ©Nr9  rR   é   rÛ   )r*   r,   r-   r   rC   )rŒ   r'   rF  Údefault_rngrl   ÚAttributeErrorr@  rA  r   r'  Ú
less_equalrG  )r?   Úrandom_statesÚgenr-   r¨   s        r/   Ú	test_randzTestConstructUtils.test_randü  sö   € à˜t¥R¤Y×%:Ò%:Ñ%<Ô%<Ð=ˆð	Ý”)×'Ò'Ñ)Ô)ˆCØ× Ò  Ñ%Ô%Ð%Ð%øÝð 	ð 	ð 	ØˆDð	øøøð *ð 	6ð 	6ˆLÝ�r˜2 sµ"´*Ø$0ð2ñ 2ô 2ˆAå•B”F�2œ=¨¨A¬FÑ3Ô3Ñ4Ô4Ñ5Ô5Ð5Ý•B”F�2œ=¨¬°Ñ3Ô3Ñ4Ô4Ñ5Ô5Ð5Ð5ð		6ð 	6ó   £3A Á
A$Á#A$c           	      ó   — d dt           j                             ¦   «         g}	 t           j                             ¦   «         }|                     |¦  «         n# t
          $ r Y nw xY w|D �]#}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 rP  )rŒ   r'   rF  rR  rl   rS  r0   rA  r   ÚanyÚlessrG  r5   )r?   rU  rV  Úrsr¨   s        r/   Ú
test_randnzTestConstructUtils.test_randn  sX  € ð ˜t¥R¤Y×%:Ò%:Ñ%<Ô%<Ð=ˆð	Ý”)×'Ò'Ñ)Ô)ˆCØ× Ò  Ñ%Ô%Ð%Ð%øÝð 	ð 	ð 	ØˆDð	øøøð  ð 	0ñ 	0ˆBÝ˜˜R¨µB´JÈRÐPÑPÔPˆAÝ•B”F�2œ7 1¤6¨1Ñ-Ô-Ñ.Ô.Ñ/Ô/Ð/Ý•B”F�2œ7 1 a¤fÑ-Ô-Ñ.Ô.Ñ/Ô/Ð/Ý˜r 2¨s½"¼*ÐSUÐVÑVÔVˆAÝ•B”F�2œ7 1¤6¨1Ñ-Ô-Ñ.Ô.Ñ/Ô/Ð/Ý•B”F�2œ7 1 a¤fÑ-Ô-Ñ.Ô.Ñ/Ô/Ð/Ñ/ð	0ð 	0rX  c                 ó`   — t          j        ddd¬¦  «         t          j        dd¬¦  «         d S )NrR   rt   rÎ   ©rR   rR   )r&   r'   r4   rÖ   s    r/   Útest_random_accept_str_dtypez/TestConstructUtils.test_random_accept_str_dtype  s8   € õ 	Ô˜˜R sÐ+Ñ+Ô+Ð+ÝÔ˜x¨sÐ3Ñ3Ô3Ð3Ð3Ð3r1   c                 óŠ  — t          j        ddd¬¦  «        }t          |                     ¦   «         d¦  «         t          j        dd¬¦  «        }t          |                     ¦   «         d¦  «         t          |t          ¦  «        sJ ‚d}t          j        |d¬¦  «        }t          |                     ¦   «         d¦  «         d S )	NrR   gþÔxé&1À?r:  rV   r_  )ì        rb  g(Rsåû?<iÐ  )r&   r'   r   Úcount_nonzeror4   rÔ   r   )r?   Úsparse_matrixÚsparse_arrayrE   s       r/   Ú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Ð7Ð7r1   N)BÚ__name__Ú
__module__Ú__qualname__r<   ÚmarkÚparametrizer   r   r   r   r   r   r   r@   r   r   r   r   r   r   rF   rw   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Úxfail_on_32bitr+  r.  r0  r2  r4  r6  rN  rW  r]  r`  rf  r¢   r1   r/   r7   r7   +   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ð: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ñ Ôð/ðJð Jð Jð	?ð 	?ð 	?ð
#ð 
#ð 
#ðFð Fð FðBð Bð Bð>ð >ð >ð>6ð 6ð 6ð0ð 0ð 0ð&4ð 4ð 4ð8ð 8ð 8ð 8ð 8r1   r7   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.rC   rL   rI   r‹   rÏ   r�   r‡   NrK   z.*out of boundsr:   rD   )rŒ   r¬   r   r&   ræ   ro   r•   r<   r   r=   r�   )r•   s    r/   Útest_diags_arrayro  3  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._lib._utilr
   Úscipy.sparser   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r&   Úscipy.sparse._constructr   r@  rÇ   r0   r5   r7   ro  r¢   r1   r/   ú<module>rw     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à<Ð<Ð<€ð
4ð 4ð 4ð 4ðXð Xð Xð XðE8ð E8ð E8ð E8ð E8ñ E8ô E8ð E8ðP:ð :ð :ð :ð :r1   