§
    fŠtjr  ã                   óÔ  — 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&„ Z7d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    úV/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/scipy/io/tests/test_mmio.pyÚimplementationsr      s&   € ð
 Œ]Ô!€FØŒ]Ô!€FØŒmÔ#€G€G€Gó    c                   ód  — e Zd Zd„ Zd„ Zd„ Zd„ Zej         	                    de
¦  «        d„ ¦   «         Z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 r8   )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©rA   r   ©r.   ÚtypevalrI   s      r   Útest_simple_integerz!TestMMIOArray.test_simple_integer9   óU   € à×Ò�  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éÿÿÿéþÿÿéýÿÿéüÿÿrH   rE   rG   r   rJ   )r   rA   )r.   rM   rI   r<   s       r   Útest_32bit_integerz TestMMIOArray.test_32bit_integer>   sL   € å�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ì        ì        ì   þÿÿÿ ì   ÿÿÿÿ rH   r   é   ©rE   rE   rG   r   r   rJ   )r   ÚnpÚint64ÚintpÚitemsizer   ÚscipyÚioÚ_mmioÚassert_raisesÚOverflowErrorr,   rA   ©r.   r<   s     r   Útest_64bit_integerz TestMMIOArray.test_64bit_integerC   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 )NrW   rX   ì   þÿÿÿ ì   ÿÿÿÿ rH   )rE   rE   rG   r   r   rJ   )r   r]   Úuint64rA   rf   s     r   Útest_64bit_unsigned_integerz)TestMMIOArray.test_64bit_unsigned_integerJ   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   rD   rH   rE   rG   r   rJ   rK   rL   s      r   Ú"test_simple_upper_triangle_integerz0TestMMIOArray.test_simple_upper_triangle_integerN   rO   r   c           	      óh   — |                       t          ddgddgg|¬¦  «        dddd|df¦  «         d S rn   rK   rL   s      r   Ú"test_simple_lower_triangle_integerz0TestMMIOArray.test_simple_lower_triangle_integerS   rO   r   c           	      óh   — |                       t          g d¢g d¢g|¬¦  «        dddd|df¦  «         d S )	N©rD   rE   rF   ©rG   é   é   rH   rE   rF   rv   r   rJ   rK   rL   s      r   Útest_simple_rectangular_integerz-TestMMIOArray.test_simple_rectangular_integerX   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 )NrD   rE   ç      @rG   ru   rv   )rF   rE   rv   r   ÚrealrJ   ©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 )NrD   rE   rF   ç      @©rE   rE   rG   r   rz   rJ   r{   r-   s    r   Útest_simple_floatzTestMMIOArray.test_simple_floata   s4   € Ø�
Š
�Q˜�F˜Q ˜HÐ%Ø8ñ	:ô 	:ð 	:ð 	:ð 	:r   c                 ó>   — |                       ddgddggd¦  «         d S )NrD   rE   rF   ù              @)rE   rE   rG   r   ÚcomplexrJ   r{   r-   s    r   Útest_simple_complexz!TestMMIOArray.test_simple_complexe   s4   € Ø�
Š
�Q˜�F˜Q ˜GÐ$Ø;ñ	=ô 	=ð 	=ð 	=ð 	=r   c           	      óh   — |                       t          ddgddgg|¬¦  «        dddd|df¦  «         d S )NrD   rE   rG   rH   r   Ú	symmetricrK   rL   s      r   Útest_simple_symmetric_integerz+TestMMIOArray.test_simple_symmetric_integeri   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   rE   éþÿÿÿ)rE   rE   rG   r   r   úskew-symmetric)rA   r-   s    r   Ú"test_simple_skew_symmetric_integerz0TestMMIOArray.test_simple_skew_symmetric_integern   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   rE   ç       Àg        Úf)rE   rE   rG   r   rz   rŠ   )r?   r   r-   s    r   Ú test_simple_skew_symmetric_floatz.TestMMIOArray.test_simple_skew_symmetric_floatr   sC   € Ø�
Š
•5˜1˜a˜& 4¨ +Ð.°Ñ4Ô4Ø?ñ	Aô 	Að 	Að 	Að 	Ar   c                 ó>   — |                       ddgddggd¦  «         d S )NrD   ù       @      @ù       @      ÀrG   )rE   rE   rG   r   rƒ   Ú	hermitianr{   r-   s    r   Útest_simple_hermitian_complexz+TestMMIOArray.test_simple_hermitian_complexv   s4   € Ø�
Š
�Q˜�I  a˜yÐ)Ø=ñ	?ô 	?ð 	?ð 	?ð 	?r   c                 ó˜   — d}t           j                             |¦  «        }|t          |¦  «        z   }|                      |d¦  «         d S )N©é   r—   )r—   r—   i�  r   rz   r†   )r]   Úrandomr   r?   ©r.   Úszr<   s      r   Útest_random_symmetric_floatz)TestMMIOArray.test_random_symmetric_floatz   sG   € ØˆÝŒI×Ò˜RÑ Ô ˆØ•	˜!‘”ÑˆØ�
Š
�1ÐAÑBÔBÐBÐBÐBr   c                 ót   — d}t           j                             |¦  «        }|                      |d¦  «         d S )N©r—   é   )r—   rž   é,  r   rz   rJ   )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   Ú
ValueErrorra   rb   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 )NrD   rE   r‰   éc   rH   r\   )rA   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 )NrD   rE   r‰   ç     ÀX@rH   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/   r5   r?   rA   rª   ÚmarkÚparametrizeÚparametrize_argsrN   rU   rg   rl   ro   rq   rw   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¢   r0   r   c                 ó8   — t          j        | j        ¦  «         d S r   r2   r-   s    r   r5   z!TestMMIOSparseCSR.teardown_method¦   r6   r   c                 ó  — t          | j        |¦  «         t          t          | j        ¦  «        |¦  «         t	          | j        d¬¦  «        }t          |                     ¦   «         |                     ¦   «         ¦  «         d S r8   )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 r8   )r   r,   r   r   r   rÇ   r;   s       r   rA   zTestMMIOSparseCSR.check_exact¯   sf   € Ý�”˜ÑÔÐÝ•V˜DœG‘_”_ dÑ+Ô+Ð+Ý�4”7 UÐ+Ñ+Ô+ˆÝ�Q—Y’Y‘[”[ !§)¢)¡+¤+Ñ.Ô.Ð.Ð.Ð.r   rB   c           	      óˆ   — |                       t          j                             ddgddgg|¬¦  «        dddd|df¦  «         d S )NrD   rE   rF   rG   rH   Ú
coordinaterJ   ©rA   ra   ÚsparseÚ	csr_arrayrL   s      r   rN   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 )NrQ   i  €rS   rT   rH   ©rE   rE   rG   rÊ   r   rJ   )ra   rÌ   rÍ   r   r]   r´   rA   rf   s     r   rU   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ì       ìûÿÿÿþÿÿÿ rY   rH   r   r[   rÐ   )ra   rÌ   rÍ   r   r]   r^   r_   r`   r   rb   rc   rd   re   r,   rA   rf   s     r   rg   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 )NrQ   rR   rS   rT   rH   ©rE   rE   rG   rÊ   r   rJ   )ra   rÌ   rÍ   r   r]   Úuint32rA   rf   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Ò   ri   rj   rH   rÕ   )ra   rÌ   rÍ   r   r]   rk   rA   rf   s     r   rl   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   rD   rH   rE   rÊ   rJ   rË   rL   s      r   ro   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Ë   rL   s      r   rq   z4TestMMIOSparseCSR.test_simple_lower_triangle_integerÚ   rÎ   r   c           	      óˆ   — |                       t          j                             g d¢g d¢g|¬¦  «        dddd|df¦  «         d S )	Nrs   rt   rH   rE   rF   rv   rÊ   rJ   rË   rL   s      r   rw   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 )NrD   rE   ry   rG   ru   rv   )rF   rE   rv   rÊ   rz   rJ   ©r?   ra   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 )NrD   rE   rF   r~   ©rE   rE   rG   rÊ   rz   rJ   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 )NrD   rE   rF   r‚   )rE   rE   rG   rÊ   rƒ   rJ   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 )NrD   rE   rG   rH   rF   rÊ   r†   rË   rL   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   rE   r‰   )rE   rE   rD   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   rE   r�   rŽ   )rE   rE   rD   rÊ   rz   rŠ   )r?   ra   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 )NrD   r‘   r’   rG   )rE   rE   rF   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Ê   rz   r†   )r]   r˜   r   ra   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Ê   rz   rJ   )r]   r˜   ra   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      @rD   )rE   rE   rF   rÊ   ÚpatternrJ   rë   )ÚfieldFr9   T)ra   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 )NrD   rE   r‰   r³   rH   rÐ   )ra   rÌ   rÍ   r]   r´   rA   rf   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 )NrD   rE   r‰   r·   rH   rá   )ra   rÌ   rÍ   r]   r¸   r?   rf   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/   r5   r?   rA   rª   r½   r¾   r¿   rN   rU   rg   r×   rl   ro   rq   rw   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_methodj  r0   r   c                 ó8   — t          j        | j        ¦  «         d S r   r2   r-   s    r   r5   z)TestMMIOReadLargeIntegers.teardown_methodn  r6   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   r[   Fr9   )Úopenr,   Úwriter   r   r]   r_   r`   r   ra   rb   rc   rd   re   r   rÇ   )	r.   Úexampler<   r=   ÚdenseÚover32Úover64rŽ   r>   s	            r   Ú
check_readz$TestMMIOReadLargeIntegers.check_readq  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 )NrQ   rR   rH   r\   TF©rü   rý   rþ   )r   r]   r^   rÿ   Ú_32bit_integer_dense_examplerf   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 )NrQ   r   rR   rH   ©rE   rE   rE   rÊ   r   r†   Fr  )r   r]   r^   rÿ   Ú_32bit_integer_sparse_examplerf   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 )
NrW   i   €rÓ   rZ   rH   r\   TFr  )r   r]   r^   rÿ   Ú_64bit_integer_dense_examplerf   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 )	NrW   rZ   r   rH   )rE   rE   rF   rÊ   r   rJ   FTr  )r   r]   r^   rÿ   Ú%_64bit_integer_sparse_general_examplerf   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 )	NrW   ìûÿÿÿÿÿÿÿ rZ   rH   )rE   rE   rF   rÊ   r   r†   FTr  )r   r]   r^   rÿ   Ú'_64bit_integer_sparse_symmetric_examplerf   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 )	NrW   r  rZ   rH   )rE   rE   rF   rÊ   r   rŠ   FTr  )r   r]   r^   rÿ   Ú"_64bit_integer_sparse_skew_examplerf   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 )Nr\   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/   r5   rÿ   r  r  r
  r  r  r  r  r  rÁ   r   r   rô   rô   i  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_method1  r0   r   c                 ó8   — t          j        | j        ¦  «         d S r   r2   r-   s    r   r5   z"TestMMIOCoordinate.teardown_method5  r6   r   c                 ó6  — t          | j        d¦  «        }|                     |¦  «         |                     ¦   «          t	          t          | j        ¦  «        |¦  «         t          | j        d¬¦  «                             ¦   «         }t          ||¦  «         d S )Nrø   Fr9   )	rù   r,   rú   Úcloser   r   r   rÇ   r
   )r.   rû   r<   r=   rŽ   r>   s         r   rÿ   zTestMMIOCoordinate.check_read8  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)rD   r   r   rv   r   )r   ç      %@r   r   r   ©r   r   ç¸…ëQ¸Ž?r   r   )r   ç     Po@r   éèþÿÿç)\�Âõ¨@@©r   r   r   r   é   ©ru   ru   r[   rÊ   rz   rJ   )rÿ   Ú_general_examplerf   s     r   Útest_read_generalz$TestMMIOCoordinate.test_read_general@  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©rD   r   r   r   r   )r   r#  r   y     Po@¸…ëQ86Àr   r$  )r   y     Po@¸…ëQ86@r   r'  y       €)\�Âõ¨@À)r   r   r   y        )\�Âõ¨@@r*  )ru   ru   é   rÊ   rƒ   r“   )rÿ   Ú_hermitian_examplerf   s     r   Útest_read_hermitianz&TestMMIOCoordinate.test_read_hermitianI  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)  )ru   ru   r0  rÊ   rz   rŠ   )rÿ   Ú_skew_examplerf   s     r   Útest_read_skewz!TestMMIOCoordinate.test_read_skewR  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'  r[   )r   r   r   r[   r*  )ru   ru   r0  rÊ   rz   r†   )rÿ   Ú_symmetric_examplerf   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   rD   r   rD   r   )r   r   rD   r   r   )r   rD   r   rD   rD   )r   r   r   rD   rD   )ru   ru   r0  rÊ   rë   r†   )rÿ   Ú_symmetric_pattern_examplerf   s     r   Útest_read_symmetric_patternz.TestMMIOCoordinate.test_read_symmetric_patternd  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_examplerf   s     r   Útest_read_empty_linesz(TestMMIOCoordinate.test_read_empty_linesm  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Ê   rz   r†   Fr9   )
ra   rÌ   Ú	coo_arrayr   r,   r   r   rÇ   r   r
   )r.   r>   r<   s      r   Útest_empty_write_readz(TestMMIOCoordinate.test_empty_write_readv  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   rD   rE   rF   rF   rF   rG   ©r   rF   rD   rE   rD   rF   rG   rG   ©g      ð?g      @r#  r%  r&  g     €qÀr(  g      (@©ru   ru   ©Úshapez.bz2ÚrbÚwbFr9   )Úbz2ÚImportErrorr   ra   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  Fr9   )ÚgziprL  r   ra   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+  Fr9   ©r   ra   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  )ru   ru   r[   rÊ   rƒ   rJ   Fr9   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.mtxFr9   )Úmkdirr   Úappendra   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
|› d�›¦  «        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öÿÿÿéÿÿÿÿrD   r¡   )Ú	precisionFr9   ú.Úg)r   Úrangera   rÌ   Ú	dok_arrayr   r,   rb   r   r	   ÚrowÚcolr   ÚdataÚfloat)r.   Útest_valuesÚtest_precisionsÚvaluerx  ÚnÚAs          r   Útest_precisionz!TestMMIOCoordinate.test_precisioné  s7  € Ý�dÐAÐA­u°Q¸¸RÑ/@Ô/@ÐAÑAÔAÑAˆÝ  2™,œ,ˆØ ð 	Kð 	KˆEØ,ð Kð K�	à˜	‘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Ý ¤­°%Ð/G¸)Ð/GÐ/GÐ/GÐ/GÑ)HÔ)HÐ(IÑJÔJÐJÐJðKð	Kð 	K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/   r5   rÿ   r-  r2  r5  r8  r;  r>  rA  rU  rZ  r^  ra  rq  r†  rˆ  rÁ   r   r   r  r  0  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Kð Kð Kð".ð .ð .ð .ð .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+00Fr9   )r   rb   Ú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ø   Fr9   )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Š  Fr9   Útest_mtxztest_mtx.mtx)r   rb   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 threadpoolctlrG   )ÚlimitsrE   ra   )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c                  óØ   — t          t          t          j        ¦   «         ¦  «        ¬¦  «        } t          j                             | d¦  «        }t          t          t          |¦  «         d S )Nr"   znot_exist_test_file.mtx)
r   r%   r&   r'   r)   r*   r+   rd   ÚFileNotFoundErrorr   )r(   Úwrong_fns     r   Útest_gh21999_file_not_existr¥  :  sR   € Ý�C¥	Ô 7Ñ 9Ô 9Ñ:Ô:Ð;Ñ;Ô;€FÝŒw�|Š|˜FÐ$=Ñ>Ô>€HÝÕ#¥V¨XÑ6Ô6Ð6Ð6Ð6r   )8Útempfiler   r)   rb   r3   r&   r§   Únumpyr]   r   r   r   Únumpy.testingr   r   r	   r
   rª   r   rd   Úscipy.sparsera   Úscipy.io._mmioÚscipy.io._fast_matrix_marketÚ_fast_matrix_marketrŸ  r¿   r½   Úthread_unsafeÚ
pytestmarkÚfixturerc   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   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ð$ðy:ð y:ð y:ð y:ð y:ñ y:ô y:ð y:ðx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ð ð ð	&ð 	&ð 	&ð*ð *ð *ð)ð )ð )ð"7ð 7ð 7ð 7ð 7r   