Ë
    âQ(hé  ã                   ó  — d dl Z d dlZd dlZd dlmZ d dlmZm	Z	 d dl
mZmZmZmZmZmZmZmZmZmZ e j*                  j-                  e j*                  j/                  e«      d«      Zd„ Zd„ Zd„ Zd	„ Zd
„ Zd„ Zd„ Z d„ Z!d„ Z"y)é    N)Úraises)Úassert_equalÚassert_)
ÚsparrayÚ
csc_matrixÚ
csr_matrixÚ
bsr_matrixÚ
dia_matrixÚ
coo_matrixÚ
dok_matrixÚ	csr_arrayÚsave_npzÚload_npzÚdatac                 óð   — t        j                  d¬«      \  }}t        j                  |«       	 t	        || «       t        |«      }t        j                  |«       |S # t        j                  |«       w xY w)Nú.npz©Úsuffix)ÚtempfileÚmkstempÚosÚcloser   r   Úremove)ÚmatrixÚfdÚtmpfileÚloaded_matrixs       ú_/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/scipy/sparse/tests/test_matrix_io.pyÚ_save_and_loadr      s\   € Ü×"Ñ"¨&Ô1�K€BˆÜ‡H�HˆR„LðÜ�˜&Ô!Ü  Ó)ˆä
�	‰	�'ÔØÐøô 	�	‰	�'Õús   °A ÁA5c                 óR  — t         t        t        t        t        fD ]‰  } || «      }t        |«      }t        t        |«      |u «       t        |j                  | j                  k(  «       t        |j                  | j                  k(  «       t        |j                  «       | «       Œ‹ y )N)r   r   r	   r
   r   r   r   ÚtypeÚshapeÚdtyper   Útoarray)Údense_matrixÚmatrix_classr   r   s       r   Ú_check_save_and_loadr'      s‡   € Ü#¤Z´¼ZÌÐTò <ˆÙ˜lÓ+ˆÜ& vÓ.ˆÜ”�]Ó# |Ð3Ô4Ü�×#Ñ# |×'9Ñ'9Ñ9Ô:Ü�×#Ñ# |×'9Ñ'9Ñ9Ô:Ü�]×*Ñ*Ó,¨lÕ;ñ<ó    c                  ó®   — d} t         j                  j                  d«       t         j                  j                  | | f«      }d||dkD  <   t        |«       y )Né
   r   gffffffæ?)ÚnpÚrandomÚseedr'   )ÚNr%   s     r   Útest_save_and_load_randomr/   "   sF   € Ø
€AÜ‡I�I‡N�N�1ÔÜ—9‘9×#Ñ# Q¨ FÓ+€LØ'(€L� Ñ#Ñ$Ü˜Õ&r(   c                  óD   — t        j                  d«      } t        | «       y )N©é   é   ©r+   Úzerosr'   ©r%   s    r   Útest_save_and_load_emptyr7   )   s   € Ü—8‘8˜E“?€LÜ˜Õ&r(   c                  óN   — t        j                  d«      } d| d<   t        | «       y )Nr1   é   )r9   é   r4   r6   s    r   Útest_save_and_load_one_entryr;   -   s!   € Ü—8‘8˜E“?€LØ€L�ÑÜ˜Õ&r(   c                  óð  — t        j                  d¬«      \  } }t        j                  | «       	 t	        |t        g d¢g d¢g«      «       t        |«      }t        j                  |«       t        j                  d¬«      \  } }t        j                  | «       	 t	        |t        g d¢g d¢g«      «       t        |«      }t        j                  |«       t        |t        «      rJ ‚t        |t        «      sJ ‚t        |j                  |j                  k(  «       t        |j                  «       |j                  «       «       y # t        j                  |«       w xY w# t        j                  |«       w xY w)Nr   r   )g333333ó?r   gÍÌÌÌÌÌì?)r   g333333Ó?r   )r   r   r   r   r   r   r   r   r   Ú
isinstancer   r   r#   r   r$   )r   r   r   Úloaded_arrays       r   Útest_sparray_vs_spmatrixr?   2   s  € ä×"Ñ"¨&Ô1�K€BˆÜ‡H�HˆR„LðÜ�œ*¢m²[Ð%AÓBÔCÜ  Ó)ˆä
�	‰	�'Ôô ×"Ñ"¨&Ô1�K€BˆÜ‡H�HˆR„LðÜ�œ)¢]²KÐ$@ÓAÔBÜ Ó(ˆä
�	‰	�'Ôä˜-¬Ô1Ð1Ð1Ü�l¤GÔ,Ð,Ð,ÜˆM×Ñ <×#5Ñ#5Ñ5Ô6Ü�×&Ñ&Ó(¨,×*>Ñ*>Ó*@ÕAøô 	�	‰	�'Õûô 	�	‰	�'Õús   °&E Â&E ÅEÅE5c                  ó6  —  G d„ d«      } t        j                  d¬«      \  }}t        j                  |«       	 t	        j
                  | | «       ¬«       t        t        t        |«       t        j                  |«       y # t        j                  |«       w xY w)Nc                   ó   — e Zd Zd„ Zy)ú%test_malicious_load.<locals>.Executorc                 ó   — t         dfS )N)Fzunexpected code execution)r   )Úselfs    r   Ú
__reduce__z0test_malicious_load.<locals>.Executor.__reduce__L   s   € ÜÐAÐBÐBr(   N)Ú__name__Ú
__module__Ú__qualname__rE   © r(   r   ÚExecutorrB   K   s   „ ó	Cr(   rJ   r   r   )Úformat)
r   r   r   r   r+   ÚsavezÚassert_raisesÚ
ValueErrorr   r   )rJ   r   r   s      r   Útest_malicious_loadrO   J   sk   € ÷Cñ Cô ×"Ñ"¨&Ô1�K€BˆÜ‡H�HˆR„LðÜ
�‰�¡£Õ,ô 	”j¤(¨GÔ4ä
�	‰	�'ÕøŒ�	‰	�'Õús   º1B ÂBc                  ór  — t        t        j                  j                  t        d«      «      } t        t        j                  j                  t        d«      «      }t        dgg«      }t        | j                  «       |j                  «       «       t        |j                  «       |j                  «       «       y )Nzcsc_py2.npzzcsc_py3.npzr   )r   r   ÚpathÚjoinÚDATA_DIRr   r   r$   )ÚaÚbÚcs      r   Útest_py23_compatibilityrW   Z   sp   € ô
 	”—‘—‘œh¨Ó6Ó7€AÜ”—‘—‘œh¨Ó6Ó7€AÜ�Q�C�5Ó€Aä�—‘“˜aŸi™i›kÔ*Ü�—‘“˜aŸi™i›kÕ*r(   c                  óP   — t        d«      } d| d<   t        t        t        d| «       y )N)r:   é   r9   )r   r9   zx.npz)r   rM   ÚNotImplementedErrorr   )Úxs    r   Útest_implemented_errorr\   f   s&   € ô 	�5Ó€AØ€A€c�FäÔ%¤x°¸!Õ<r(   )#r   Únumpyr+   r   Úpytestr   rM   Únumpy.testingr   r   Úscipy.sparser   r   r   r	   r
   r   r   r   r   r   rQ   rR   ÚdirnameÚ__file__rS   r   r'   r/   r7   r;   r?   rO   rW   r\   rI   r(   r   ú<module>rc      sw   ðÛ 	Û Û å *ß /÷Q÷ Q÷ Qð �7‰7�<‰<˜Ÿ™Ÿ™¨Ó1°6Ó:€òò<ò'ò'ò'ò
Bò0ò 
+ó=r(   