
    ge	                         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 e j                            e j                            e          d          Zd Zd Zd Zd	 Zd
 Zd Zd Zd ZdS )    N)raises)assert_equalassert_)
csc_matrix
csr_matrix
bsr_matrix
dia_matrix
coo_matrixsave_npzload_npz
dok_matrixdatac                     t          j        d          \  }}t          j        |           	 t	          ||            t          |          }t          j        |           n# t          j        |           w xY w|S )N.npzsuffix)tempfilemkstemposcloser   r   remove)matrixfdtmpfileloaded_matrixs       Alib/python3.11/site-packages/scipy/sparse/tests/test_matrix_io.py_save_and_loadr      sw    "&111KBHRLLL&!!! ))
	'	's   A" "A8c                 t   t           t          t          t          t          fD ]} ||           }t          |          }t          t          |          |u            t          |j        | j        k               t          |j	        | j	        k               t          |                                |            d S )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44#|'99:::#|'99:::]**,,l;;;;< <    c                      d} t           j                            d           t           j                            | | f          }d||dk    <   t          |           d S )N
   r   gffffff?)nprandomseedr%   )Nr#   s     r   test_save_and_load_randomr-   "   sW    
AINN19##QF++L'(L#$&&&&&r&   c                  L    t          j        d          } t          |            d S )N      r)   zerosr%   r#   s    r   test_save_and_load_emptyr5   )   s#    8E??L&&&&&r&   c                  V    t          j        d          } d| d<   t          |            d S )Nr/      )r7      r2   r4   s    r   test_save_and_load_one_entryr9   -   s-    8E??LL&&&&&r&   c                  F    G d d          } t          j        d          \  }}t          j        |           	 t	          j        | |                        t          t          t          |           t          j	        |           d S # t          j	        |           w xY w)Nc                       e Zd Zd ZdS )%test_malicious_load.<locals>.Executorc                     t           dfS )N)Fzunexpected code execution)r   )selfs    r   
__reduce__z0test_malicious_load.<locals>.Executor.__reduce__5   s    ABBr&   N)__name__
__module____qualname__r?    r&   r   Executorr<   4   s(        	C 	C 	C 	C 	Cr&   rD   r   r   )format)
r   r   r   r   r)   savezassert_raises
ValueErrorr   r   )rD   r   r   s      r   test_malicious_loadrI   3   s    C C C C C C C C "&111KBHRLLL
,,,, 	j(G444
	'	's   9B
 
B c                     t          t          j                            t          d                    } t          t          j                            t          d                    }t          dgg          }t          |                                 |                                           t          |                                |                                           d S )Nzcsc_py2.npzzcsc_py3.npzr   )r   r   pathjoinDATA_DIRr   r   r"   )abcs      r   test_py23_compatibilityrQ   C   s    
 	h6677Ah6677AQC5Aaiikk***aiikk*****r&   c                  f    t          d          } d| d<   t          t          t          d|            d S )N)r8      r7   )r   r7   zx.npz)r   rG   NotImplementedErrorr   )xs    r   test_implemented_errorrV   O   s5     	5AAcF%x!<<<<<r&   ) r   numpyr)   r   pytestr   rG   numpy.testingr   r   scipy.sparser   r   r   r	   r
   r   r   r   rK   rL   dirname__file__rM   r   r%   r-   r5   r9   rI   rQ   rV   rC   r&   r   <module>r]      sl   				      * * * * * * / / / / / / / /F F F F F F F F F F F F F F F F F F F F 7<<116::  < < <' ' '' ' '' ' '   
+ 
+ 
+= = = = =r&   