Ë
    0Ò^jy  ã                   ó˜  — d dl Z 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mZ e j,                  j/                  e j,                  j1                  e«      d«      Zd„ Zd„ Zd„ Zd	„ Zd
„ Zd„ Z ejB                  jE                  dd dg«      ejB                  jE                  dg d¢«      d„ «       «       Z#d„ Z$d„ Z%y)é    N)Úraises)Úassert_equalÚassert_)ÚsparrayÚ	csr_arrayÚ	coo_arrayÚsave_npzÚload_npzÚ
csc_matrixÚ
csr_matrixÚ
bsr_matrixÚ
dia_matrixÚ
coo_matrixÚ
dok_matrixÚ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       úl/var/www/ramen.bs-engineer-server.com/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_randomr0   $   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_emptyr8   +   s   € Ü—8‘8˜E“?€LÜ˜Õ&r)   c                  óN   — t        j                  d«      } d| d<   t        | «       y )Nr2   é   )r:   é   r5   r7   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   )ç333333ó?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_spmatrixrA   4   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Úvaluer>   Úndim)r:   r;   é   c                 óâ  — t        |g«      j                  d| z  «      }t        j                  d¬«      \  }}t	        j
                  |«       	 t        ||«       t        |«      }t	        j                  |«       t        |t         «      sJ ‚t        |j                  |j                  k(  «       t        |j                  «       |j                  «       «       y # t	        j                  |«       w xY w)N)r:   r   r   )r   Úreshaper   r   r   r   r	   r
   r   r?   r   r#   r   r%   )rC   rB   ÚAr   r   Úloaded_As         r   Útest_nd_coo_formatrI   L   s³   € ô 	�5�'Ó×"Ñ" 4¨$¡;Ó/€Aô ×"Ñ"¨&Ô1�K€BˆÜ‡H�HˆR„LðÜ�˜!ÔÜ˜GÓ$ˆä
�	‰	�'Ôä�h¤	Ô*Ð*Ð*ÜˆH�N‰N˜aŸg™gÑ%Ô&Ü�—‘“˜h×.Ñ.Ó0Õ1øô	 	�	‰	�'Õús   ÁC ÃC.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__`   s   € ÜÐAÐBÐBr)   N)Ú__name__Ú
__module__Ú__qualname__rO   © r)   r   ÚExecutorrL   _   s   „ ó	Cr)   rT   r   r   )Úformat)
r   r   r   r   r,   ÚsavezÚassert_raisesÚ
ValueErrorr
   r   )rT   r   r   s      r   Útest_malicious_loadrY   ^   sk   € ÷Cñ Cô ×"Ñ"¨&Ô1�K€BˆÜ‡H�HˆR„LðÜ
�‰�¡£Õ,ô 	”j¤(¨GÔ4ä
�	‰	�'ÕøŒ�	‰	�'Õús   º1B ÂBc                  óP   — t        d«      } d| d<   t        t        t        d| «       y )N)r;   rD   r:   )r   r:   zx.npz)r   rW   ÚNotImplementedErrorr	   )Úxs    r   Útest_implemented_errorr]   m   s&   € ô 	�5Ó€AØ€A€c�FäÔ%¤x°¸!Õ<r)   )&r   Únumpyr,   r   Úpytestr   rW   Únumpy.testingr   r   Úscipy.sparser   r   r   r	   r
   r   r   r   r   r   r   ÚpathÚjoinÚdirnameÚ__file__ÚDATA_DIRr    r(   r0   r8   r<   rA   ÚmarkÚparametrizerI   rY   r]   rS   r)   r   ú<module>ri      s¹   ðÛ 	Û Û ã Ý *ß /÷2÷ 2÷ 2ñ 2ð
 �7‰7�<‰<˜Ÿ™Ÿ™¨Ó1°6Ó:€òò<ò'ò'ò'ò
Bð0 ‡�×Ñ˜ 1 c (Ó+Ø‡�×Ñ˜¢Ó+ñ2ó ,ó ,ð2ò ó=r)   