§
    µ³Ùgoq  ã                   óÎ  — d dl mZ d dlZd dlZd dlZd dlZd dlZd dlZd dlm	Z	m
Z
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Zd dlZd dlmc mZ ddgZej        j        Z ej        dej        j        efd	¬
¦  «        d„ ¦   «         Z  G d„ d¦  «        Z! G d„ de!¦  «        Z"dZ#dZ$dZ%dZ&dZ'dZ(dZ)dZ* G d„ d¦  «        Z+dZ,dZ-dZ.dZ/dZ0dZ1 G d „ d!¦  «        Z2d"„ Z3d#„ Z4d$„ Z5d%„ Z6dS )&é    )ÚmkdtempN)ÚarrayÚ	transposeÚpi)Úassert_equalÚassert_allcloseÚassert_array_equalÚassert_array_almost_equal)Úraises)ÚintegerÚint)úunsigned-integerÚuintÚmoduleT)ÚscopeÚparamsÚautousec                 óN   — | j         j        a| j         j        a| j         j        ad S ©N)ÚparamÚmminfoÚmmreadÚmmwrite)Úrequests    úN/granary/edev/quantum/lib/python3.11/site-packages/scipy/io/tests/test_mmio.pyÚimplementationsr      s&   € ð
 Œ]Ô!€FØŒ]Ô!€FØŒmÔ#€G€G€Gó    c                   ó¬  — e Zd Zd„ Zd„ Zd„ Zd„ Zej        j	        ej         
                    de¦  «        d„ ¦   «         ¦   «         Zej        j	        ej         
                    de¦  «        d„ ¦   «         ¦   «         Zd„ Zd	„ Zej         
                    de¦  «        d
„ ¦   «         Zej         
                    de¦  «        d„ ¦   «         Zej         
                    de¦  «        d„ ¦   «         Zd„ Zd„ Zd„ Zej         
                    de¦  «        d„ ¦   «         Zd„ Zd„ Zd„ Zd„ Zd„ Zej                             d¦  «        d„ ¦   «         Zd„ Zd„ ZdS )ÚTestMMIOArrayc                 óÀ   — t          t          t          j        ¦   «         ¦  «        ¬¦  «        | _        t
          j                             | j        d¦  «        | _        d S ©N)Úsuffixztestfile.mtx©	r   ÚstrÚ	threadingÚget_native_idÚtmpdirÚosÚpathÚjoinÚfn©Úselfs    r   Úsetup_methodzTestMMIOArray.setup_method&   óB   € Ý¥S­Ô)@Ñ)BÔ)BÑ%CÔ%CÐDÑDÔDˆŒÝ”'—,’,˜tœ{¨NÑ;Ô;ˆŒˆˆr   c                 ó8   — t          j        | j        ¦  «         d S r   ©ÚshutilÚrmtreer'   r,   s    r   Úteardown_methodzTestMMIOArray.teardown_method*   ó   € ÝŒ�d”kÑ"Ô"Ð"Ð"Ð"r   c                 óÀ   — t          | j        |¦  «         t          t          | j        ¦  «        |¦  «         t	          | j        d¬¦  «        }t          ||¦  «         d S ©NF©Úspmatrix)r   r+   r   r   r   r
   ©r-   ÚaÚinfoÚbs       r   ÚcheckzTestMMIOArray.check-   sV   € Ý�”˜ÑÔÐÝ•V˜DœG‘_”_ dÑ+Ô+Ð+Ý�4”7 UÐ+Ñ+Ô+ˆÝ! ! QÑ'Ô'Ð'Ð'Ð'r   c                 óÀ   — t          | j        |¦  «         t          t          | j        ¦  «        |¦  «         t	          | j        d¬¦  «        }t          ||¦  «         d S r7   )r   r+   r   r   r   r:   s       r   Úcheck_exactzTestMMIOArray.check_exact3   sV   € Ý�”˜ÑÔÐÝ•V˜DœG‘_”_ dÑ+Ô+Ð+Ý�4”7 UÐ+Ñ+Ô+ˆÝ�Q˜ÑÔÐÐÐr   útypeval, dtypec           	      óh   — |                       t          ddgddgg|¬¦  «        dddd|df¦  «         d S )Né   é   é   é   ©Údtyper   Úgeneral©r@   r   ©r-   ÚtypevalrH   s      r   Útest_simple_integerz!TestMMIOArray.test_simple_integer9   sW   € ð 	×Ò�  A ¨¨A¨Ð/°uÐ=Ñ=Ô=Ø˜Q  7¨G°YÐ?ñ	Aô 	Að 	Að 	Að 	Ar   c           	      ól   — t          ddgddgg|¬¦  «        }|                      |dddd|d	f¦  «         d S )
NéÿÿÿéþÿÿéýÿÿéüÿÿrG   rD   rF   r   rI   )r   r@   )r-   rL   rH   r;   s       r   Útest_32bit_integerz TestMMIOArray.test_32bit_integer?   sN   € õ �G˜WÐ%¨°Ð'9Ð:À%ÐHÑHÔHˆØ×Ò˜˜Q  1 g¨w¸	ÐBÑCÔCÐCÐCÐCr   c                 ó2  — t          ddgddggt          j        ¬¦  «        }t          j        d¦  «        j        dk     rBt
          t          j        j        j        k    r#t          t          t
          | j        |¦  «         d S |                      |d¦  «         d S )	Nì        ì        ì   þÿÿÿ ì   ÿÿÿÿ rG   r   é   ©rD   rD   rF   r   r   rI   )r   ÚnpÚint64ÚintpÚitemsizer   ÚscipyÚioÚ_mmioÚassert_raisesÚOverflowErrorr+   r@   ©r-   r;   s     r   Útest_64bit_integerz TestMMIOArray.test_64bit_integerE   s„   € Ý�E˜5�> G¨WÐ#5Ð6½b¼hÐGÑGÔGˆÝŒG�A‰JŒJÔ !Ò#Ð#­µE´H´NÔ4JÒ)JÐ)JÝ�-­°$´'¸1Ñ=Ô=Ð=Ð=Ð=à×Ò˜QÐ HÑIÔIÐIÐIÐIr   c                 ót   — t          ddgddggt          j        ¬¦  «        }|                      |d¦  «         d S )NrU   rV   ì   þÿÿÿ ì   ÿÿÿÿ rG   )rD   rD   rF   r   r   rI   )r   r[   Úuint64r@   rd   s     r   Útest_64bit_unsigned_integerz)TestMMIOArray.test_64bit_unsigned_integerL   sA   € Ý�E˜5�> G¨WÐ#5Ð6½b¼iÐHÑHÔHˆØ×Ò˜ÐMÑNÔNÐNÐNÐNr   c           	      óh   — |                       t          ddgddgg|¬¦  «        dddd|df¦  «         d S ©Nr   rC   rG   rD   rF   r   rI   rJ   rK   s      r   Ú"test_simple_upper_triangle_integerz0TestMMIOArray.test_simple_upper_triangle_integerP   óU   € à×Ò�  A ¨¨A¨Ð/°uÐ=Ñ=Ô=Ø˜Q  7¨G°YÐ?ñ	Aô 	Að 	Að 	Að 	Ar   c           	      óh   — |                       t          ddgddgg|¬¦  «        dddd|df¦  «         d S rl   rJ   rK   s      r   Ú"test_simple_lower_triangle_integerz0TestMMIOArray.test_simple_lower_triangle_integerU   rn   r   c           	      óh   — |                       t          g d¢g d¢g|¬¦  «        dddd|df¦  «         d S )	N©rC   rD   rE   ©rF   é   é   rG   rD   rE   ru   r   rI   rJ   rK   s      r   Útest_simple_rectangular_integerz-TestMMIOArray.test_simple_rectangular_integerZ   sU   € à×Ò� 	 	 	¨9¨9¨9Ð5¸UÐCÑCÔCØ˜Q  7¨G°YÐ?ñ	Aô 	Að 	Að 	Að 	Ar   c                 óD   — |                       ddgddgddggd¦  «         d S )NrC   rD   ç      @rF   rt   ru   )rE   rD   ru   r   ÚrealrI   ©r>   r,   s    r   Útest_simple_rectangular_floatz+TestMMIOArray.test_simple_rectangular_float_   s:   € Ø�
Š
�Q˜�F˜S !˜H q¨! fÐ-Ø8ñ	:ô 	:ð 	:ð 	:ð 	:r   c                 ó>   — |                       ddgddggd¦  «         d S )NrC   rD   rE   ç      @©rD   rD   rF   r   ry   rI   rz   r,   s    r   Útest_simple_floatzTestMMIOArray.test_simple_floatc   s4   € Ø�
Š
�Q˜�F˜Q ˜HÐ%Ø8ñ	:ô 	:ð 	:ð 	:ð 	:r   c                 ó>   — |                       ddgddggd¦  «         d S )NrC   rD   rE   ù              @)rD   rD   rF   r   ÚcomplexrI   rz   r,   s    r   Útest_simple_complexz!TestMMIOArray.test_simple_complexg   s4   € Ø�
Š
�Q˜�F˜Q ˜GÐ$Ø;ñ	=ô 	=ð 	=ð 	=ð 	=r   c           	      óh   — |                       t          ddgddgg|¬¦  «        dddd|df¦  «         d S )NrC   rD   rF   rG   r   Ú	symmetricrJ   rK   s      r   Útest_simple_symmetric_integerz+TestMMIOArray.test_simple_symmetric_integerk   sU   € à×Ò�  A ¨¨A¨Ð/°uÐ=Ñ=Ô=Ø˜Q  7¨G°[ÐAñ	Cô 	Cð 	Cð 	Cð 	Cr   c                 ó>   — |                       ddgddggd¦  «         d S )Nr   rD   éþÿÿÿ)rD   rD   rF   r   r   úskew-symmetric)r@   r,   s    r   Ú"test_simple_skew_symmetric_integerz0TestMMIOArray.test_simple_skew_symmetric_integerp   s;   € Ø×Ò˜1˜a˜& 2 q 'Ð*ØHñ	Jô 	Jð 	Jð 	Jð 	Jr   c                 óZ   — |                       t          ddgddggd¦  «        d¦  «         d S )Nr   rD   ç       Àg        Úf)rD   rD   rF   r   ry   r‰   )r>   r   r,   s    r   Ú test_simple_skew_symmetric_floatz.TestMMIOArray.test_simple_skew_symmetric_floatt   sC   € Ø�
Š
•5˜1˜a˜& 4¨ +Ð.°Ñ4Ô4Ø?ñ	Aô 	Að 	Að 	Að 	Ar   c                 ó>   — |                       ddgddggd¦  «         d S )NrC   ù       @      @ù       @      ÀrF   )rD   rD   rF   r   r‚   Ú	hermitianrz   r,   s    r   Útest_simple_hermitian_complexz+TestMMIOArray.test_simple_hermitian_complexx   s4   € Ø�
Š
�Q˜�I  a˜yÐ)Ø=ñ	?ô 	?ð 	?ð 	?ð 	?r   c                 ó˜   — d}t           j                             |¦  «        }|t          |¦  «        z   }|                      |d¦  «         d S )N©é   r–   )r–   r–   i�  r   ry   r…   )r[   Úrandomr   r>   ©r-   Úszr;   s      r   Útest_random_symmetric_floatz)TestMMIOArray.test_random_symmetric_float|   sG   € ØˆÝŒI×Ò˜RÑ Ô ˆØ•	˜!‘”ÑˆØ�
Š
�1ÐAÑBÔBÐBÐBÐBr   c                 ót   — d}t           j                             |¦  «        }|                      |d¦  «         d S )N©r–   é   )r–   r�   é,  r   ry   rI   )r[   r—   r>   r˜   s      r   Útest_random_rectangular_floatz+TestMMIOArray.test_random_rectangular_float‚   s7   € ØˆÝŒI×Ò˜RÑ Ô ˆØ�
Š
�1Ð?Ñ@Ô@Ð@Ð@Ð@r   é
   c                 ó"  — d}t          j        |¦  «                             d¦  «        }t          j        t
          d¬¦  «        5  t          j                             t          j	        |¦  «        ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nzè            %%MatrixMarket matrix array real general
              3  3 999
            1.0
            2.0
            3.0
            4.0
            5.0
            6.0
            7.0
            8.0
            9.0
            Úasciiznot of length 2©Úmatch©
ÚtextwrapÚdedentÚencodeÚpytestr   Ú
ValueErrorr_   r`   r   ÚBytesIO©r-   ÚsÚtexts      r   Ú&test_bad_number_of_array_header_fieldsz4TestMMIOArray.test_bad_number_of_array_header_fields‡   sÀ   € ðˆõ Œ˜qÑ!Ô!×(Ò(¨Ñ1Ô1ˆÝŒ]�:Ð->Ð?Ñ?Ô?ð 	.ð 	.ÝŒH�OŠO�BœJ tÑ,Ô,Ñ-Ô-Ð-ð	.ð 	.ð 	.ñ 	.ô 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.øøøð 	.ð 	.ð 	.ð 	.ð 	.ð 	.ó   Á2BÂBÂBc                 óp   — |                       t          ddgddggt          j        ¬¦  «        d¦  «         d S )NrC   rD   rˆ   éc   rG   rZ   )r@   r   r[   Úint32r,   s    r   Ú#test_gh13634_non_skew_symmetric_intz1TestMMIOArray.test_gh13634_non_skew_symmetric_intš   sJ   € Ø×Ò�  A ¨¨R¨Ð1½¼ÐBÑBÔBØAñ	Cô 	Cð 	Cð 	Cð 	Cr   c                 óp   — |                       t          ddgddggt          j        ¬¦  «        d¦  «         d S )NrC   rD   rˆ   ç     ÀX@rG   r~   )r>   r   r[   Úfloat32r,   s    r   Ú%test_gh13634_non_skew_symmetric_floatz3TestMMIOArray.test_gh13634_non_skew_symmetric_floatž   sC   € Ø�
Š
•5˜1˜a˜& 2 s )Ð,µB´JÐ?Ñ?Ô?Ø8ñ	:ô 	:ð 	:ð 	:ð 	:r   N) Ú__name__Ú
__module__Ú__qualname__r.   r4   r>   r@   r©   ÚmarkÚthread_unsafeÚparametrizeÚparametrize_argsrM   rS   re   rj   rm   rp   rv   r{   r   rƒ   r†   rŠ   rŽ   r“   rš   rŸ   Ú	fail_slowr¯   r´   r¸   © r   r   r   r   %   s�  € € € € € ð<ð <ð <ð#ð #ð #ð(ð (ð (ðð ð ð „[ÔØ„[×ÒÐ-Ð/?Ñ@Ô@ðAð Añ AÔ@ñ ÔðAð „[ÔØ„[×ÒÐ-Ð/?Ñ@Ô@ðDð Dñ AÔ@ñ ÔðDðJð Jð JðOð Oð Oð „[×ÒÐ-Ð/?Ñ@Ô@ðAð Añ AÔ@ðAð „[×ÒÐ-Ð/?Ñ@Ô@ðAð Añ AÔ@ðAð „[×ÒÐ-Ð/?Ñ@Ô@ðAð Añ AÔ@ðAð:ð :ð :ð:ð :ð :ð=ð =ð =ð „[×ÒÐ-Ð/?Ñ@Ô@ðCð Cñ AÔ@ðCðJð Jð JðAð Að Að?ð ?ð ?ðCð Cð CðAð Að Að
 „[×Ò˜2ÑÔð.ð .ñ Ôð.ð$Cð Cð Cð:ð :ð :ð :ð :r   r   c                   óè  — e Zd Zd„ Zd„ Zd„ Zd„ Zej         	                    de
¦  «        d„ ¦   «         Zd„ Zd„ Zd	„ Zd
„ Zej         	                    de
¦  «        d„ ¦   «         Zej         	                    de
¦  «        d„ ¦   «         Zej         	                    de
¦  «        d„ ¦   «         Zd„ Zd„ Zd„ Zej         	                    de
¦  «        d„ ¦   «         Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚTestMMIOSparseCSRc                 óÀ   — t          t          t          j        ¦   «         ¦  «        ¬¦  «        | _        t
          j                             | j        d¦  «        | _        d S r!   r#   r,   s    r   r.   zTestMMIOSparseCSR.setup_method¤   r/   r   c                 ó8   — t          j        | j        ¦  «         d S r   r1   r,   s    r   r4   z!TestMMIOSparseCSR.teardown_method¨   r5   r   c                 ó  — t          | j        |¦  «         t          t          | j        ¦  «        |¦  «         t	          | j        d¬¦  «        }t          |                     ¦   «         |                     ¦   «         ¦  «         d S r7   )r   r+   r   r   r   r
   Útoarrayr:   s       r   r>   zTestMMIOSparseCSR.check«   sf   € Ý�”˜ÑÔÐÝ•V˜DœG‘_”_ dÑ+Ô+Ð+Ý�4”7 UÐ+Ñ+Ô+ˆÝ! !§)¢)¡+¤+¨q¯yªy©{¬{Ñ;Ô;Ð;Ð;Ð;r   c                 ó  — t          | j        |¦  «         t          t          | j        ¦  «        |¦  «         t	          | j        d¬¦  «        }t          |                     ¦   «         |                     ¦   «         ¦  «         d S r7   )r   r+   r   r   r   rÇ   r:   s       r   r@   zTestMMIOSparseCSR.check_exact±   sf   € Ý�”˜ÑÔÐÝ•V˜DœG‘_”_ dÑ+Ô+Ð+Ý�4”7 UÐ+Ñ+Ô+ˆÝ�Q—Y’Y‘[”[ !§)¢)¡+¤+Ñ.Ô.Ð.Ð.Ð.r   rA   c           	      óˆ   — |                       t          j                             ddgddgg|¬¦  «        dddd|df¦  «         d S )NrC   rD   rE   rF   rG   Ú
coordinaterI   ©r@   r_   ÚsparseÚ	csr_arrayrK   s      r   rM   z%TestMMIOSparseCSR.test_simple_integer·   ó]   € à×Ò�œ×/Ò/°!°Q°¸!¸Q¸Ð0@ÈÐ/ÑNÔNØ˜Q  <°¸)ÐDñ	Fô 	Fð 	Fð 	Fð 	Fr   c                 ó®   — t           j                             t          ddgddggt          j        ¬¦  «        ¦  «        }|                      |d¦  «         d S )NrO   i  €rQ   rR   rG   ©rD   rD   rF   rÊ   r   rI   )r_   rÌ   rÍ   r   r[   r³   r@   rd   s     r   rS   z$TestMMIOSparseCSR.test_32bit_integer¼   sb   € ÝŒL×"Ò"¥5¨7°HÐ*=Ø+2°GÐ*<ð*>å/1¬xð$9ñ $9ô $9ñ :ô :ˆð 	×Ò˜ÐIÑJÔJÐJÐJÐJr   c                 ól  — t           j                             t          ddgddggt          j        ¬¦  «        ¦  «        }t	          j        d¦  «        j        dk     rBt          t           j	        j
        j        k    r#t          t          t          | j        |¦  «         d S |                      |d¦  «         d S )Nì       ìûÿÿÿþÿÿÿ rW   rG   r   rY   rÐ   )r_   rÌ   rÍ   r   r[   r\   r]   r^   r   r`   ra   rb   rc   r+   r@   rd   s     r   re   z$TestMMIOSparseCSR.test_64bit_integerÂ   s¥   € ÝŒL×"Ò"¥5¨7°GÐ*<Ø+3°WÐ*=ð*?å/1¬xð$9ñ $9ô $9ñ :ô :ˆõ ŒG�A‰JŒJÔ !Ò#Ð#­µE´H´NÔ4JÒ)JÐ)JÝ�-­°$´'¸1Ñ=Ô=Ð=Ð=Ð=à×Ò˜QÐ MÑNÔNÐNÐNÐNr   c                 ó®   — t           j                             t          ddgddggt          j        ¬¦  «        ¦  «        }|                      |d¦  «         d S )NrO   rP   rQ   rR   rG   ©rD   rD   rF   rÊ   r   rI   )r_   rÌ   rÍ   r   r[   Úuint32r@   rd   s     r   Útest_32bit_unsigned_integerz-TestMMIOSparseCSR.test_32bit_unsigned_integerË   ób   € ÝŒL×"Ò"¥5¨7°GÐ*<Ø+2°GÐ*<ð*>å/1¬yð$:ñ $:ô $:ñ ;ô ;ˆð 	×Ò˜ÐRÑSÔSÐSÐSÐSr   c                 ó®   — t           j                             t          ddgddggt          j        ¬¦  «        ¦  «        }|                      |d¦  «         d S )NrÒ   rg   rh   rG   rÕ   )r_   rÌ   rÍ   r   r[   ri   r@   rd   s     r   rj   z-TestMMIOSparseCSR.test_64bit_unsigned_integerÑ   rØ   r   c           	      óˆ   — |                       t          j                             ddgddgg|¬¦  «        dddd|df¦  «         d S ©Nr   rC   rG   rD   rÊ   rI   rË   rK   s      r   rm   z4TestMMIOSparseCSR.test_simple_upper_triangle_integer×   rÎ   r   c           	      óˆ   — |                       t          j                             ddgddgg|¬¦  «        dddd|df¦  «         d S rÛ   rË   rK   s      r   rp   z4TestMMIOSparseCSR.test_simple_lower_triangle_integerÜ   rÎ   r   c           	      óˆ   — |                       t          j                             g d¢g d¢g|¬¦  «        dddd|df¦  «         d S )	Nrr   rs   rG   rD   rE   ru   rÊ   rI   rË   rK   s      r   rv   z1TestMMIOSparseCSR.test_simple_rectangular_integerá   s]   € à×Ò�œ×/Ò/°°°¸I¸I¸IÐ0FÈeÐ/ÑTÔTØ˜Q  <°¸)ÐDñ	Fô 	Fð 	Fð 	Fð 	Fr   c                 ó~   — |                       t          j                             ddgddgddgg¦  «        d¦  «         d S )NrC   rD   rx   rF   rt   ru   )rE   rD   ru   rÊ   ry   rI   ©r>   r_   rÌ   rÍ   r,   s    r   r{   z/TestMMIOSparseCSR.test_simple_rectangular_floatæ   sJ   € Ø�
Š
•5”<×)Ò)¨A¨q¨6°C¸°8¸aÀ¸VÐ*DÑEÔEØ=ñ	?ô 	?ð 	?ð 	?ð 	?r   c                 óx   — |                       t          j                             ddgddgg¦  «        d¦  «         d S )NrC   rD   rE   r}   ©rD   rD   rF   rÊ   ry   rI   rß   r,   s    r   r   z#TestMMIOSparseCSR.test_simple_floatê   sD   € Ø�
Š
•5”<×)Ò)¨A¨q¨6°A°s°8Ð*<Ñ=Ô=Ø=ñ	?ô 	?ð 	?ð 	?ð 	?r   c                 óx   — |                       t          j                             ddgddgg¦  «        d¦  «         d S )NrC   rD   rE   r�   )rD   rD   rF   rÊ   r‚   rI   rß   r,   s    r   rƒ   z%TestMMIOSparseCSR.test_simple_complexî   sI   € Ø�
Š
•5”<×)Ò)¨A¨q¨6°A°r°7Ð*;Ñ<Ô<Ø@ñ	Bô 	Bð 	Bð 	Bð 	Br   c           	      óˆ   — |                       t          j                             ddgddgg|¬¦  «        dddd|df¦  «         d S )NrC   rD   rF   rG   rE   rÊ   r…   rË   rK   s      r   r†   z/TestMMIOSparseCSR.test_simple_symmetric_integerò   s]   € à×Ò�œ×/Ò/°!°Q°¸!¸Q¸Ð0@ÈÐ/ÑNÔNØ˜Q  <°¸+ÐFñ	Hô 	Hð 	Hð 	Hð 	Hr   c                 óx   — |                       t          j                             ddgddgg¦  «        d¦  «         d S )Nr   rD   rˆ   )rD   rD   rC   rÊ   r   r‰   rË   r,   s    r   rŠ   z4TestMMIOSparseCSR.test_simple_skew_symmetric_integer÷   sK   € Ø×Ò�œ×/Ò/°!°Q°¸"¸a¸Ð0AÑBÔBØMñ	Oô 	Oð 	Oð 	Oð 	Or   c           	      ó”   — |                       t          j                             t	          ddgddggd¦  «        ¦  «        d¦  «         d S )Nr   rD   rŒ   r�   )rD   rD   rC   rÊ   ry   r‰   )r>   r_   rÌ   rÍ   r   r,   s    r   rŽ   z2TestMMIOSparseCSR.test_simple_skew_symmetric_floatû   sS   € Ø�
Š
•5”<×)Ò)­%°!°Q°¸$À¸Ð0CÀSÑ*IÔ*IÑJÔJØDñ	Fô 	Fð 	Fð 	Fð 	Fr   c                 óx   — |                       t          j                             ddgddgg¦  «        d¦  «         d S )NrC   r�   r‘   rF   )rD   rD   rE   rÊ   r‚   r’   rß   r,   s    r   r“   z/TestMMIOSparseCSR.test_simple_hermitian_complexÿ   sI   € Ø�
Š
•5”<×)Ò)¨A¨t¨9°t¸Q°iÐ*@ÑAÔAØBñ	Dô 	Dð 	Dð 	Dð 	Dr   c                 óÖ   — d}t           j                             |¦  «        }|t          |¦  «        z   }t          j                             |¦  «        }|                      |d¦  «         d S )Nr•   )r–   r–   éÒ   rÊ   ry   r…   )r[   r—   r   r_   rÌ   rÍ   r>   r˜   s      r   rš   z-TestMMIOSparseCSR.test_random_symmetric_float  s\   € ØˆÝŒI×Ò˜RÑ Ô ˆØ•	˜!‘”ÑˆÝŒL×"Ò" 1Ñ%Ô%ˆØ�
Š
�1ÐFÑGÔGÐGÐGÐGr   c                 ó²   — d}t           j                             |¦  «        }t          j                             |¦  «        }|                      |d¦  «         d S )Nrœ   )r–   r�   rž   rÊ   ry   rI   )r[   r—   r_   rÌ   rÍ   r>   r˜   s      r   rŸ   z/TestMMIOSparseCSR.test_random_rectangular_float
  sL   € ØˆÝŒI×Ò˜RÑ Ô ˆÝŒL×"Ò" 1Ñ%Ô%ˆØ�
Š
�1ÐDÑEÔEÐEÐEÐEr   c                 óÒ  — t           j                             ddgddgg¦  «        }t          j        |                     ¦   «         ¦  «        }d||                     ¦   «         dk    <   d}t          | j        |d¬¦  «         t          t          | j        ¦  «        |¦  «         t          | j        d	¬
¦  «        }t          ||                     ¦   «         ¦  «         t           j                             |¦  «        rJ ‚t          | j        d¬
¦  «        }t           j                             |¦  «        sJ ‚t          | j        ¦  «        }t           j                             |¦  «        sJ ‚d S )Nr   g      ø?g      @g      @rC   )rD   rD   rE   rÊ   ÚpatternrI   rë   )ÚfieldFr8   T)r_   rÌ   rÍ   r[   Ú
zeros_likerÇ   r   r+   r   r   r   r
   Ú
isspmatrix)r-   r;   Úpr<   r=   s        r   Útest_simple_patternz%TestMMIOSparseCSR.test_simple_pattern  s,  € ÝŒL×"Ò" Q¨ H¨s°C¨jÐ#9Ñ:Ô:ˆÝŒM˜!Ÿ)š)™+œ+Ñ&Ô&ˆØˆˆ!�)Š)‰+Œ+˜Š/ÑØ<ˆÝ�”˜ )Ð,Ñ,Ô,Ð,Ý•V˜DœG‘_”_ dÑ+Ô+Ð+Ý�4”7 UÐ+Ñ+Ô+ˆÝ! ! Q§Y¢Y¡[¤[Ñ1Ô1Ð1Ý”<×*Ò*¨1Ñ-Ô-Ð-Ð-Ð-å�4”7 TÐ*Ñ*Ô*ˆÝŒ|×&Ò& qÑ)Ô)Ð)Ð)Ð)Ý�4”7‰OŒOˆÝŒ|×&Ò& qÑ)Ô)Ð)Ð)Ð)Ð)Ð)r   c                 ó”   — t           j                             ddgddggt          j        ¬¦  «        }|                      |d¦  «         d S )NrC   rD   rˆ   r²   rG   rÐ   )r_   rÌ   rÍ   r[   r³   r@   rd   s     r   r´   z5TestMMIOSparseCSR.test_gh13634_non_skew_symmetric_int   sH   € ÝŒL×"Ò" Q¨ F¨R°¨HÐ#5½R¼XÐ"ÑFÔFˆØ×Ò˜ÐIÑJÔJÐJÐJÐJr   c                 ó”   — t           j                             ddgddggt          j        ¬¦  «        }|                      |d¦  «         d S )NrC   rD   rˆ   r¶   rG   rá   )r_   rÌ   rÍ   r[   r·   r>   rd   s     r   r¸   z7TestMMIOSparseCSR.test_gh13634_non_skew_symmetric_float$  sF   € ÝŒL×"Ò" Q¨ F¨R°¨IÐ#6½b¼jÐ"ÑIÔIˆØ�
Š
�1Ð@ÑAÔAÐAÐAÐAr   N)r¹   rº   r»   r.   r4   r>   r@   r©   r¼   r¾   r¿   rM   rS   re   r×   rj   rm   rp   rv   r{   r   rƒ   r†   rŠ   rŽ   r“   rš   rŸ   rð   r´   r¸   rÁ   r   r   rÃ   rÃ   £   s[  € € € € € ð<ð <ð <ð#ð #ð #ð<ð <ð <ð/ð /ð /ð „[×ÒÐ-Ð/?Ñ@Ô@ðFð Fñ AÔ@ðFðKð Kð KðOð Oð OðTð Tð TðTð Tð Tð „[×ÒÐ-Ð/?Ñ@Ô@ðFð Fñ AÔ@ðFð „[×ÒÐ-Ð/?Ñ@Ô@ðFð Fñ AÔ@ðFð „[×ÒÐ-Ð/?Ñ@Ô@ðFð Fñ AÔ@ðFð?ð ?ð ?ð?ð ?ð ?ðBð Bð Bð „[×ÒÐ-Ð/?Ñ@Ô@ðHð Hñ AÔ@ðHðOð Oð OðFð Fð FðDð Dð DðHð Hð HðFð Fð Fð*ð *ð *ð Kð Kð KðBð Bð Bð Bð Br   rÃ   z]%%MatrixMarket matrix array integer general
2  2
2147483647
2147483646
2147483647
2147483646
z]%%MatrixMarket matrix coordinate integer symmetric
2  2  2
1  1  2147483647
2  2  2147483646
z…%%MatrixMarket matrix array integer general
2  2
          2147483648
-9223372036854775806
         -2147483648
 9223372036854775807
z‡%%MatrixMarket matrix coordinate integer general
2  2  3
1  1           2147483648
1  2  9223372036854775807
2  2  9223372036854775807
zŒ%%MatrixMarket matrix coordinate integer symmetric
2  2  3
1  1            2147483648
1  2  -9223372036854775807
2  2   9223372036854775807
z‘%%MatrixMarket matrix coordinate integer skew-symmetric
2  2  3
1  1            2147483648
1  2  -9223372036854775807
2  2   9223372036854775807
z�%%MatrixMarket matrix array integer general
2  2
         2147483648
9223372036854775807
         2147483648
9223372036854775808
zq%%MatrixMarket matrix coordinate integer symmetric
2  2  2
1  1            2147483648
2  2  19223372036854775808
c                   óP   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ ZdS )ÚTestMMIOReadLargeIntegersc                 óÀ   — t          t          t          j        ¦   «         ¦  «        ¬¦  «        | _        t
          j                             | j        d¦  «        | _        d S r!   r#   r,   s    r   r.   z&TestMMIOReadLargeIntegers.setup_methodl  r/   r   c                 ó8   — t          j        | j        ¦  «         d S r   r1   r,   s    r   r4   z)TestMMIOReadLargeIntegers.teardown_methodp  r5   r   c                 ó
  — t          | j        d¦  «        5 }|                     |¦  «         d d d ¦  «         n# 1 swxY w Y   t          t	          | j        ¦  «        |¦  «         |r<t          j        d¦  «        j        dk     rt          t          j
        j        j        k    s|r"t          t          t          | j        ¦  «         d S t          | j        d¬¦  «        }|s|                     ¦   «         }t          ||¦  «         d S )NÚwr   rY   Fr8   )Úopenr+   Úwriter   r   r[   r]   r^   r   r_   r`   ra   rb   rc   r   rÇ   )	r-   Úexampler;   r<   ÚdenseÚover32Úover64r�   r=   s	            r   Ú
check_readz$TestMMIOReadLargeIntegers.check_reads  s   € Ý�$”'˜3ÑÔð 	 1Ø�GŠG�GÑÔÐð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	å•V˜DœG‘_”_ dÑ+Ô+Ð+Øð 	�œ ™œÔ,¨qÒ0Ð0µgÅÄÄÔAWÒ6WÐ6WØð 7Xå�-­°´Ñ9Ô9Ð9Ð9Ð9å�t”w¨Ð/Ñ/Ô/ˆAØð  Ø—I’I‘K”K�Ý˜˜AÑÔÐÐÐs   –8¸<¿<c                 óˆ   — t          ddgddggt          j        ¬¦  «        }|                      t          |dddd¬¦  «         d S )NrO   rP   rG   rZ   TF©rü   rý   rþ   )r   r[   r\   rÿ   Ú_32bit_integer_dense_examplerd   s     r   Útest_read_32bit_integer_densez7TestMMIOReadLargeIntegers.test_read_32bit_integer_dense€  sf   € Ý�G˜WÐ%Ø˜WÐ%ð'Ý.0¬hð8ñ 8ô 8ˆà�ŠÕ4ØØ@Ø"Ø$Ø$ð 	ñ 	&ô 	&ð 	&ð 	&ð 	&r   c                 óˆ   — t          ddgddggt          j        ¬¦  «        }|                      t          |dddd¬¦  «         d S )NrO   r   rP   rG   ©rD   rD   rD   rÊ   r   r…   Fr  )r   r[   r\   rÿ   Ú_32bit_integer_sparse_examplerd   s     r   Útest_read_32bit_integer_sparsez8TestMMIOReadLargeIntegers.test_read_32bit_integer_sparseŠ  sd   € Ý�G˜Q�<Ø�w�<ð!Ý(*¬ð2ñ 2ô 2ˆà�ŠÕ5ØØGØ#Ø$Ø$ð 	ñ 	&ô 	&ð 	&ð 	&ð 	&r   c                 óˆ   — t          ddgddggt          j        ¬¦  «        }|                      t          |dddd¬	¦  «         d S )
NrU   i   €rÓ   rX   rG   rZ   TFr  )r   r[   r\   rÿ   Ú_64bit_integer_dense_examplerd   s     r   Útest_read_64bit_integer_densez7TestMMIOReadLargeIntegers.test_read_64bit_integer_dense”  se   € Ý�E˜6�?Ø˜gÐ&ð(Ý/1¬xð9ñ 9ô 9ˆà�ŠÕ4ØØ@Ø"Ø#Ø$ð 	ñ 	&ô 	&ð 	&ð 	&ð 	&r   c                 óˆ   — t          ddgddggt          j        ¬¦  «        }|                      t          |dddd¬¦  «         d S )	NrU   rX   r   rG   )rD   rD   rE   rÊ   r   rI   FTr  )r   r[   r\   rÿ   Ú%_64bit_integer_sparse_general_examplerd   s     r   Ú&test_read_64bit_integer_sparse_generalz@TestMMIOReadLargeIntegers.test_read_64bit_integer_sparse_generalž  se   € Ý�E˜7Ð#Ø�w�<ð!Ý(*¬ð2ñ 2ô 2ˆà�ŠÕ=ØØEØ#Ø#Ø$ð 	ñ 	&ô 	&ð 	&ð 	&ð 	&r   c                 óˆ   — t          ddgddggt          j        ¬¦  «        }|                      t          |dddd¬¦  «         d S )	NrU   ìûÿÿÿÿÿÿÿ rX   rG   )rD   rD   rE   rÊ   r   r…   FTr  )r   r[   r\   rÿ   Ú'_64bit_integer_sparse_symmetric_examplerd   s     r   Ú(test_read_64bit_integer_sparse_symmetriczBTestMMIOReadLargeIntegers.test_read_64bit_integer_sparse_symmetric¨  sf   € Ý�E˜8Ð$Ø˜gÐ&ð(Ý/1¬xð9ñ 9ô 9ˆà�ŠÕ?ØØGØ#Ø#Ø$ð 	ñ 	&ô 	&ð 	&ð 	&ð 	&r   c                 óˆ   — t          ddgddggt          j        ¬¦  «        }|                      t          |dddd¬¦  «         d S )	NrU   r  rX   rG   )rD   rD   rE   rÊ   r   r‰   FTr  )r   r[   r\   rÿ   Ú"_64bit_integer_sparse_skew_examplerd   s     r   Ú#test_read_64bit_integer_sparse_skewz=TestMMIOReadLargeIntegers.test_read_64bit_integer_sparse_skew²  sf   € Ý�E˜8Ð$Ø˜WÐ%ð'Ý.0¬hð8ñ 8ô 8ˆà�ŠÕ:ØØLØ#Ø#Ø$ð 	ñ 	&ô 	&ð 	&ð 	&ð 	&r   c                 óF   — |                       t          d dddd¬¦  «         d S )NrZ   Tr  )rÿ   Ú _over64bit_integer_dense_exampler,   s    r   Ú!test_read_over64bit_integer_densez;TestMMIOReadLargeIntegers.test_read_over64bit_integer_dense¼  s9   € Ø�ŠÕ8ØØ@Ø"Ø#Ø#ð 	ñ 	%ô 	%ð 	%ð 	%ð 	%r   c                 óF   — |                       t          d dddd¬¦  «         d S )Nr  FTr  )rÿ   Ú!_over64bit_integer_sparse_exampler,   s    r   Ú"test_read_over64bit_integer_sparsez<TestMMIOReadLargeIntegers.test_read_over64bit_integer_sparseÄ  s9   € Ø�ŠÕ9ØØGØ#Ø#Ø#ð 	ñ 	%ô 	%ð 	%ð 	%ð 	%r   N)r¹   rº   r»   r.   r4   rÿ   r  r  r
  r  r  r  r  r  rÁ   r   r   rô   rô   k  s¹   € € € € € ð<ð <ð <ð#ð #ð #ðð ð ð&ð &ð &ð&ð &ð &ð&ð &ð &ð&ð &ð &ð&ð &ð &ð&ð &ð &ð%ð %ð %ð%ð %ð %ð %ð %r   rô   a&  %%MatrixMarket matrix coordinate real general
%=================================================================================
%
% This ASCII file represents a sparse MxN matrix with L
% nonzeros in the following Matrix Market format:
%
% +----------------------------------------------+
% |%%MatrixMarket matrix coordinate real general | <--- header line
% |%                                             | <--+
% |% comments                                    |    |-- 0 or more comment lines
% |%                                             | <--+
% |    M  N  L                                   | <--- rows, columns, entries
% |    I1  J1  A(I1, J1)                         | <--+
% |    I2  J2  A(I2, J2)                         |    |
% |    I3  J3  A(I3, J3)                         |    |-- L lines
% |        . . .                                 |    |
% |    IL JL  A(IL, JL)                          | <--+
% +----------------------------------------------+
%
% Indices are 1-based, i.e. A(1,1) is the first element.
%
%=================================================================================
  5  5  8
    1     1   1.000e+00
    2     2   1.050e+01
    3     3   1.500e-02
    1     4   6.000e+00
    4     2   2.505e+02
    4     4  -2.800e+02
    4     5   3.332e+01
    5     5   1.200e+01
a   %%MatrixMarket matrix coordinate complex hermitian
  5  5  7
    1     1     1.0      0
    2     2    10.5      0
    4     2   250.5     22.22
    3     3     1.5e-2   0
    4     4    -2.8e2    0
    5     5    12.       0
    5     4     0       33.32
zÍ%%MatrixMarket matrix coordinate real skew-symmetric
  5  5  7
    1     1     1.0
    2     2    10.5
    4     2   250.5
    3     3     1.5e-2
    4     4    -2.8e2
    5     5    12.
    5     4     0
zÈ%%MatrixMarket matrix coordinate real symmetric
  5  5  7
    1     1     1.0
    2     2    10.5
    4     2   250.5
    3     3     1.5e-2
    4     4    -2.8e2
    5     5    12.
    5     4     8
z‘%%MatrixMarket matrix coordinate pattern symmetric
  5  5  7
    1     1
    2     2
    4     2
    3     3
    4     4
    5     5
    5     4
a  %%MatrixMarket  MATRIX    Coordinate    Real General

   5  5         8

1 1  1.0
2 2       10.5
3 3             1.5e-2
4 4                     -2.8E2
5 5                              12.
     1      4      6
     4      2      250.5
     4      5      33.32

c                   ót   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚTestMMIOCoordinatec                 óÀ   — t          t          t          j        ¦   «         ¦  «        ¬¦  «        | _        t
          j                             | j        d¦  «        | _        d S r!   r#   r,   s    r   r.   zTestMMIOCoordinate.setup_method3  r/   r   c                 ó8   — t          j        | j        ¦  «         d S r   r1   r,   s    r   r4   z"TestMMIOCoordinate.teardown_method7  r5   r   c                 ó6  — t          | j        d¦  «        }|                     |¦  «         |                     ¦   «          t	          t          | j        ¦  «        |¦  «         t          | j        d¬¦  «                             ¦   «         }t          ||¦  «         d S )Nrø   Fr8   )	rù   r+   rú   Úcloser   r   r   rÇ   r
   )r-   rû   r;   r<   r�   r=   s         r   rÿ   zTestMMIOCoordinate.check_read:  s€   € Ý�”˜#ÑÔˆØ	�Š�ÑÔÐØ	�Š‰	Œ	ˆ	Ý•V˜DœG‘_”_ dÑ+Ô+Ð+Ý�4”7 UÐ+Ñ+Ô+×3Ò3Ñ5Ô5ˆÝ! ! QÑ'Ô'Ð'Ð'Ð'r   c                 ó`   — g d¢g d¢g d¢g d¢g d¢g}|                       t          |d¦  «         d S ©N)rC   r   r   ru   r   )r   ç      %@r   r   r   ©r   r   ç¸…ëQ¸Ž?r   r   )r   ç     Po@r   éèþÿÿç)\�Âõ¨@@©r   r   r   r   é   ©rt   rt   rY   rÊ   ry   rI   )rÿ   Ú_general_examplerd   s     r   Útest_read_generalz$TestMMIOCoordinate.test_read_generalB  sc   € Øˆ_ˆ_ØÐÐØÐÐØ'Ð'Ð'ØÐÐð	ˆð
 	�ŠÕ(¨!ØBñ	Dô 	Dð 	Dð 	Dð 	Dr   c                 ó`   — g d¢g d¢g d¢g d¢g d¢g}|                       t          |d¦  «         d S )N©rC   r   r   r   r   )r   r#  r   y     Po@¸…ëQ86Àr   r$  )r   y     Po@¸…ëQ86@r   r'  y       €)\�Âõ¨@À)r   r   r   y        )\�Âõ¨@@r*  )rt   rt   é   rÊ   r‚   r’   )rÿ   Ú_hermitian_examplerd   s     r   Útest_read_hermitianz&TestMMIOCoordinate.test_read_hermitianK  sc   € Øˆ_ˆ_Ø,Ð,Ð,ØÐÐØ2Ð2Ð2Ø"Ð"Ð"ð	$ˆð
 	�ŠÕ*¨AØGñ	Iô 	Ið 	Ið 	Ið 	Ir   c                 ó`   — g d¢g d¢g d¢g d¢g d¢g}|                       t          |d¦  «         d S )Nr/  )r   r#  r   g     PoÀr   r$  )r   r&  r   r'  r   r)  )rt   rt   r0  rÊ   ry   r‰   )rÿ   Ú_skew_examplerd   s     r   Útest_read_skewz!TestMMIOCoordinate.test_read_skewT  sb   € Øˆ_ˆ_Ø$Ð$Ð$ØÐÐØ#Ð#Ð#ØÐÐð	ˆð
 	�Š� qØIñ	Kô 	Kð 	Kð 	Kð 	Kr   c                 ó`   — g d¢g d¢g d¢g d¢g d¢g}|                       t          |d¦  «         d S )Nr/  )r   r#  r   r&  r   r$  )r   r&  r   r'  rY   )r   r   r   rY   r*  )rt   rt   r0  rÊ   ry   r…   )rÿ   Ú_symmetric_examplerd   s     r   Útest_read_symmetricz&TestMMIOCoordinate.test_read_symmetric]  sc   € Øˆ_ˆ_Ø#Ð#Ð#ØÐÐØ#Ð#Ð#ØÐÐð	ˆð
 	�ŠÕ*¨AØDñ	Fô 	Fð 	Fð 	Fð 	Fr   c                 ó`   — g d¢g d¢g d¢g d¢g d¢g}|                       t          |d¦  «         d S )Nr/  )r   rC   r   rC   r   )r   r   rC   r   r   )r   rC   r   rC   rC   )r   r   r   rC   rC   )rt   rt   r0  rÊ   rë   r…   )rÿ   Ú_symmetric_pattern_examplerd   s     r   Útest_read_symmetric_patternz.TestMMIOCoordinate.test_read_symmetric_patternf  s[   € Øˆ_ˆ_Øˆ_ˆ_Øˆ_ˆ_Øˆ_ˆ_Øˆ_ˆ_ð	ˆð
 	�ŠÕ2°AØGñ	Iô 	Ið 	Ið 	Ið 	Ir   c                 ó`   — g d¢g d¢g d¢g d¢g d¢g}|                       t          |d¦  «         d S r"  )rÿ   Ú_empty_lines_examplerd   s     r   Útest_read_empty_linesz(TestMMIOCoordinate.test_read_empty_lineso  sc   € Øˆ_ˆ_ØÐÐØÐÐØ'Ð'Ð'ØÐÐð	ˆð
 	�ŠÕ,¨aØBñ	Dô 	Dð 	Dð 	Dð 	Dr   c                 óJ  — t           j                             d¦  «        }t          | j        |¦  «         t          t          | j        ¦  «        d¦  «         |                     ¦   «         }t          | j        d¬¦  «                             ¦   «         }t          ||¦  «         d S )N)r    r    )r    r    r   rÊ   ry   r…   Fr8   )
r_   rÌ   Ú	coo_arrayr   r+   r   r   rÇ   r   r
   )r-   r=   r;   s      r   Útest_empty_write_readz(TestMMIOCoordinate.test_empty_write_readx  s�   € õ ŒL×"Ò" 8Ñ,Ô,ˆÝ�”˜ÑÔÐå•V˜DœG‘_”_ØCñ	Eô 	Eð 	Eà�IŠI‰KŒKˆÝ�4”7 UÐ+Ñ+Ô+×3Ò3Ñ5Ô5ˆÝ! ! QÑ'Ô'Ð'Ð'Ð'r   c                 ó¨  — 	 dd l }n# t          $ r Y d S w xY wt          g d¢¦  «        }t          g d¢¦  «        }t          g d¢¦  «        }t          j                             |||ffd¬¦  «        }t          | j        |¦  «         | j        › d�}t          | j        d¦  «        5 }| 	                    |d	¦  «        }| 
                    |                     ¦   «         ¦  «         |                     ¦   «          d d d ¦  «         n# 1 swxY w Y   t          |d
¬¦  «                             ¦   «         }	t          |	|                     ¦   «         ¦  «         d S )Nr   ©r   r   rC   rD   rE   rE   rE   rF   ©r   rE   rC   rD   rC   rE   rF   rF   ©g      ð?g      @r#  r%  r&  g     €qÀr(  g      (@©rt   rt   ©Úshapez.bz2ÚrbÚwbFr8   )Úbz2ÚImportErrorr   r_   rÌ   r@  r   r+   rù   ÚBZ2Filerú   Úreadr   r   rÇ   r
   )
r-   rK  ÚIÚJÚVr=   Úfn_bzip2Úf_inÚf_outr;   s
             r   Útest_bzip2_py3z!TestMMIOCoordinate.test_bzip2_py3„  s�  € ð	àˆJˆJˆJˆJøÝð 	ð 	ð 	ØˆFˆFð	øøøåÐ*Ð*Ð*Ñ+Ô+ˆÝÐ*Ð*Ð*Ñ+Ô+ˆÝÐEÐEÐEÑFÔFˆåŒL×"Ò" A¨¨1 v ;°fÐ"Ñ=Ô=ˆå�”˜ÑÔÐà”gÐ#Ð#Ð#ˆÝ�$”'˜4Ñ Ô ð 	 DØ—K’K ¨$Ñ/Ô/ˆEØ�KŠK˜Ÿ	š	™œÑ$Ô$Ð$Ø�KŠK‰MŒMˆMð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	õ
 �8 eÐ,Ñ,Ô,×4Ò4Ñ6Ô6ˆÝ! ! Q§Y¢Y¡[¤[Ñ1Ô1Ð1Ð1Ð1ó   ‚ ‡
”Â$ADÄDÄ	Dc                 ó¨  — 	 dd l }n# t          $ r Y d S w xY wt          g d¢¦  «        }t          g d¢¦  «        }t          g d¢¦  «        }t          j                             |||ffd¬¦  «        }t          | j        |¦  «         | j        › d�}t          | j        d¦  «        5 }|                     |d	¦  «        }| 	                    | 
                    ¦   «         ¦  «         |                     ¦   «          d d d ¦  «         n# 1 swxY w Y   t          |d
¬¦  «                             ¦   «         }	t          |	|                     ¦   «         ¦  «         d S )Nr   rC  rD  rE  rF  rG  z.gzrI  rJ  Fr8   )ÚgziprL  r   r_   rÌ   r@  r   r+   rù   rú   rN  r   r   rÇ   r
   )
r-   rX  rO  rP  rQ  r=   Úfn_gziprS  rT  r;   s
             r   Útest_gzip_py3z TestMMIOCoordinate.test_gzip_py3œ  s�  € ð	àˆKˆKˆKˆKøÝð 	ð 	ð 	ØˆFˆFð	øøøåÐ*Ð*Ð*Ñ+Ô+ˆÝÐ*Ð*Ð*Ñ+Ô+ˆÝÐEÐEÐEÑFÔFˆåŒL×"Ò" A¨¨1 v ;°fÐ"Ñ=Ô=ˆå�”˜ÑÔÐà”W�/�/�/ˆÝ�$”'˜4Ñ Ô ð 	 DØ—I’I˜g tÑ,Ô,ˆEØ�KŠK˜Ÿ	š	™œÑ$Ô$Ð$Ø�KŠK‰MŒMˆMð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	õ
 �7 UÐ+Ñ+Ô+×3Ò3Ñ5Ô5ˆÝ! ! Q§Y¢Y¡[¤[Ñ1Ô1Ð1Ð1Ð1rV  c                 ó¼  — t          g d¢¦  «        }t          g d¢¦  «        }t          g d¢¦  «        }t          j                             |||ffd¬¦  «        }t	          | j        |¦  «         t          t          | j        ¦  «        d¦  «         |                     ¦   «         }t          | j        d¬¦  «                             ¦   «         }t          ||¦  «         d S )	NrC  rD  rE  rF  rG  r+  Fr8   ©r   r_   rÌ   r@  r   r+   r   r   rÇ   r   r
   ©r-   rO  rP  rQ  r=   r;   s         r   Útest_real_write_readz'TestMMIOCoordinate.test_real_write_read´  s×   € ÝÐ*Ð*Ð*Ñ+Ô+ˆÝÐ*Ð*Ð*Ñ+Ô+ˆÝÐEÐEÐEÑFÔFˆåŒL×"Ò" A¨¨1 v ;°fÐ"Ñ=Ô=ˆå�”˜ÑÔÐå•V˜DœG‘_”_Ø?ñ	Aô 	Að 	Aà�IŠI‰KŒKˆÝ�4”7 UÐ+Ñ+Ô+×3Ò3Ñ5Ô5ˆÝ! ! QÑ'Ô'Ð'Ð'Ð'r   c                 ó¼  — t          g d¢¦  «        }t          g d¢¦  «        }t          g d¢¦  «        }t          j                             |||ffd¬¦  «        }t	          | j        |¦  «         t          t          | j        ¦  «        d¦  «         |                     ¦   «         }t          | j        d¬¦  «                             ¦   «         }t          ||¦  «         d S )	NrC  rD  ©y      ð?      @y      @       @y      %@ÍÌÌÌÌÌì?y¸…ëQ¸Ž?š™™™™™Ày     Po@        y     €qÀ      @y)\�Âõ¨@@š™™™™™@y      (@š™™™™™é?rF  rG  )rt   rt   rY   rÊ   r‚   rI   Fr8   r\  r]  s         r   Útest_complex_write_readz*TestMMIOCoordinate.test_complex_write_readÃ  sè   € ÝÐ*Ð*Ð*Ñ+Ô+ˆÝÐ*Ð*Ð*Ñ+Ô+ˆÝð Hð Hð Hñ Iô Iˆõ ŒL×"Ò" A¨¨1 v ;°fÐ"Ñ=Ô=ˆå�”˜ÑÔÐå•V˜DœG‘_”_ØBñ	Dô 	Dð 	Dà�IŠI‰KŒKˆÝ�4”7 UÐ+Ñ+Ô+×3Ò3Ñ5Ô5ˆÝ! ! QÑ'Ô'Ð'Ð'Ð'r   c                 óœ  — |dz  }|                      ¦   «          g }t          g d¢¦  «        }t          g d¢¦  «        }t          g d¢¦  «        }|                     t          j                             |||ffd¬¦  «        ¦  «         t          g d¢¦  «        }|                     t          j                             |||ffd¬¦  «        ¦  «         |D ]y}|                     ¦   «         }dD ]`}	||	d	z   z  }
t          |
|                     |	¦  «        ¦  «         t          |
d
¬¦  «                             ¦   «         }t          ||¦  «         ŒaŒzd S )NÚsparse_formatsrC  rD  rE  rF  rG  r`  )ÚcsrÚcscÚcooz.mtxFr8   )Úmkdirr   Úappendr_   rÌ   r@  rÇ   r   Úasformatr   r
   )r-   Útmp_pathr'   ÚmatsrO  rP  rQ  ÚmatÚexpectedÚfmtÚfnameÚresults               r   Útest_sparse_formatsz&TestMMIOCoordinate.test_sparse_formatsÓ  sq  € àÐ,Ñ,ˆØ�Š‰ŒˆàˆÝÐ*Ð*Ð*Ñ+Ô+ˆÝÐ*Ð*Ð*Ñ+Ô+ˆåÐEÐEÐEÑFÔFˆØ�Š•E”L×*Ò*¨A°°1¨v¨;¸fÐ*ÑEÔEÑFÔFÐFåð Hð Hð Hñ Iô Iˆà�Š•E”L×*Ò*¨A°°1¨v¨;¸fÐ*ÑEÔEÑFÔFÐFàð 	<ð 	<ˆCØ—{’{‘}”}ˆHØ,ð <ð <�Ø #¨¡,Ñ/�Ý˜˜sŸ|š|¨CÑ0Ô0Ñ1Ô1Ð1Ý °Ð6Ñ6Ô6×>Ò>Ñ@Ô@�Ý)¨&°(Ñ;Ô;Ð;Ð;ð	<ð	<ð 	<r   c           	      ó  — t           gd„ t          ddd¦  «        D ¦   «         z   }t          dd¦  «        }|D ]Õ}|D ]Ð}d|z  dz   }t          j                             ||f¦  «        }|||dz
  |dz
  f<   t          | j        ||¬¦  «         t          j                             | j        d¬	¦  «        }t          |j
        |dz
  g¦  «         t          |j        |dz
  g¦  «         t          |j        t          d
|z  |z  ¦  «        g¦  «         ŒÑŒÖd S )Nc                 ó   — g | ]}d |z  ‘ŒS )r    rÁ   )Ú.0Úis     r   ú
<listcomp>z5TestMMIOCoordinate.test_precision.<locals>.<listcomp>ì  s   € ÐAÐAÐA¨!˜b 1™gÐAÐAÐAr   r   iöÿÿÿéÿÿÿÿrC   r    )Ú	precisionFr8   z%%.%dg)r   Úranger_   rÌ   Ú	dok_arrayr   r+   r`   r   r	   ÚrowÚcolr   ÚdataÚfloat)r-   Útest_valuesÚtest_precisionsÚvaluerx  ÚnÚAs          r   Útest_precisionz!TestMMIOCoordinate.test_precisionë  s0  € Ý�dÐAÐA­u°Q¸¸RÑ/@Ô/@ÐAÑAÔAÑAˆÝ  2™,œ,ˆØ ð 	Oð 	OˆEØ,ð Oð O�	à˜	‘M AÑ%�Ý”L×*Ò*¨A¨q¨6Ñ2Ô2�Ø#��!�A‘#�q˜‘s�(‘å˜œ ¨iÐ8Ñ8Ô8Ð8Ý”H—O’O D¤G°e�OÑ<Ô<�å" 1¤5¨1¨Q©3¨%Ñ0Ô0Ð0Ý" 1¤5¨1¨Q©3¨%Ñ0Ô0Ð0Ý ¤­¨x¸)Ñ/CÀeÑ/KÑ)LÔ)LÐ(MÑNÔNÐNÐNðOð	Oð 	Or   c                 ó"  — d}t          j        |¦  «                             d¦  «        }t          j        t
          d¬¦  «        5  t          j                             t          j	        |¦  «        ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Na€              %%MatrixMarket matrix coordinate real general
              5  5  8 999
                1     1   1.000e+00
                2     2   1.050e+01
                3     3   1.500e-02
                1     4   6.000e+00
                4     2   2.505e+02
                4     4  -2.800e+02
                4     5   3.332e+01
                5     5   1.200e+01
            r¢   znot of length 3r£   r¥   r¬   s      r   Ú+test_bad_number_of_coordinate_header_fieldsz>TestMMIOCoordinate.test_bad_number_of_coordinate_header_fieldsü  sÀ   € ðˆõ Œ˜qÑ!Ô!×(Ò(¨Ñ1Ô1ˆÝŒ]�:Ð->Ð?Ñ?Ô?ð 	.ð 	.ÝŒH�OŠO�BœJ tÑ,Ô,Ñ-Ô-Ð-ð	.ð 	.ð 	.ñ 	.ô 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.ð 	.øøøð 	.ð 	.ð 	.ð 	.ð 	.ð 	.r°   N)r¹   rº   r»   r.   r4   rÿ   r-  r2  r5  r8  r;  r>  rA  rU  rZ  r^  ra  rq  r„  r†  rÁ   r   r   r  r  2  s(  € € € € € ð<ð <ð <ð#ð #ð #ð(ð (ð (ðDð Dð DðIð Ið IðKð Kð KðFð Fð FðIð Ið IðDð Dð Dð
(ð 
(ð 
(ð2ð 2ð 2ð02ð 2ð 2ð0(ð (ð (ð(ð (ð (ð <ð <ð <ð0Oð Oð Oð".ð .ð .ð .ð .r   r  c                  óL   — t          t          j        d¦  «        d¬¦  «         d S )Núg%%MatrixMarket matrix coordinate complex symmetric
 1 1 1
1 1 -2.1846000000000e+02  0.0000000000000e+00Fr8   )r   r`   ÚStringIOrÁ   r   r   Útest_gh11389rŠ    s>   € Ý
�2Œ;ð Gñ Hô Hð ðñ ô ð ð ð r   c                 ó´   — g d¢}| dz  }t          |d¦  «        5 }|                     |¦  «         d d d ¦  «         n# 1 swxY w Y   t          |d¬¦  «         d S )N)z/ %%MatrixMarket matrix coordinate real general
z5 5 3
z2 3 1.0
z3 4 2.0
z3 5 3.0
ztest.mtxrø   Fr8   )rù   Ú
writelinesr   )rj  ÚlinesÚ	test_filer�   s       r   Útest_gh18123r�    s¬   € ðð ð €Eð
 ˜:Ñ%€IÝ	ˆi˜Ñ	Ô	ð  Ø	�Š�UÑÔÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð å
ˆ9˜uÐ%Ñ%Ô%Ð%Ð%Ð%s   š<¼A ÁA c                 ó¢   — t          t          j        d¦  «        d¬¦  «        }| dz  }| dz  }t          ||¦  «         t          |d¬¦  «         d S )Nrˆ  Fr8   Útest_mtxztest_mtx.mtx)r   r`   r‰  r   )rj  r;   Útest_writefileÚtest_readfiles       r   Útest_mtx_appendr”     sp   € Ý�rŒ{ð Kñ Lô Lð ð	ñ 	ô 	€Að  
Ñ*€NØ Ñ.€MÝˆN˜AÑÔÐÝ
ˆ= 5Ð)Ñ)Ô)Ð)Ð)Ð)r   c                  óÌ  — 	 dd l } t          | d¦  «        st          j        d¦  «         d S n%# t          $ r t          j        d¦  «         Y d S w xY w|                      d¬¦  «        5  t          t          j        d¦  «         d d d ¦  «         n# 1 swxY w Y   |                      dd¬	¦  «        5  t          t          j        d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )
Nr   Úregisterzthreadpoolctl too oldzno threadpoolctlrF   )ÚlimitsrD   r_   )r—  Úuser_api)	ÚthreadpoolctlÚhasattrr©   ÚskiprL  Úthreadpool_limitsr   ÚfmmÚPARALLELISM)r™  s    r   Útest_threadpoolctlrŸ  +  s†  € ðØÐÐÐÝ�} jÑ1Ô1ð 	ÝŒKÐ/Ñ0Ô0Ð0ØˆFð	øõ ð ð ð ÝŒÐ&Ñ'Ô'Ð'Øˆˆðøøøð 
×	(Ò	(°Ð	(Ñ	2Ô	2ð )ð )Ý•S”_ aÑ(Ô(Ð(ð)ð )ð )ñ )ô )ð )ð )ð )ð )ð )ð )øøøð )ð )ð )ð )ð 
×	(Ò	(°¸GÐ	(Ñ	DÔ	Dð )ð )Ý•S”_ aÑ(Ô(Ð(ð)ð )ð )ñ )ô )ð )ð )ð )ð )ð )ð )ð )øøøð )ð )ð )ð )ð )ð )s3   ‚(- ­AÁAÁ(BÂBÂBÂ1CÃCÃ C)7Útempfiler   r(   r`   r2   r%   r¦   Únumpyr[   r   r   r   Únumpy.testingr   r   r	   r
   r©   r   rb   Úscipy.sparser_   Úscipy.io._mmioÚscipy.io._fast_matrix_marketÚ_fast_matrix_marketr�  r¿   r¼   r½   Ú
pytestmarkÚfixturera   r   r   rÃ   r  r  r	  r  r  r  r  r  rô   r,  r1  r4  r7  r:  r=  r  rŠ  r�  r”  rŸ  rÁ   r   r   ú<module>r©     sà  ðØ Ð Ð Ð Ð Ð Ø 	€	€	€	Ø 	€	€	€	Ø €€€Ø Ð Ð Ð Ø €€€à Ð Ð Ð Ø &Ð &Ð &Ð &Ð &Ð &Ð &Ð &Ð &Ð &ðJð Jð Jð Jð Jð Jð Jð Jð Jð Jð Jð Jà €€€Ø *Ð *Ð *Ð *Ð *Ð *à Ð Ð Ð Ø Ð Ð Ð Ø *Ð *Ð *Ð *Ð *Ð *Ð *Ð *Ð *ð 'Ø0ð2Ð ð Œ[Ô&€
ð €„�h¨¬¬¸Ð'<ÀdÐKÑKÔKð$ð $ñ LÔKð$ð{:ð {:ð {:ð {:ð {:ñ {:ô {:ð {:ð|CBð CBð CBð CBð CB˜ñ CBô CBð CBðL Ð ð!Ð ð Ð ð)Ð %ð+Ð 'ð&Ð "ð$Ð  ð%Ð !ð_%ð _%ð _%ð _%ð _%ñ _%ô _%ð _%ðD Ð ðD
Ð ð
€ð
Ð ð
Ð ðÐ ð"Y.ð Y.ð Y.ð Y.ð Y.ñ Y.ô Y.ð Y.ðxð ð ð	&ð 	&ð 	&ð*ð *ð *ð)ð )ð )ð )ð )r   