U
    -e	                     @   s   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d Zdd	 Zd
d Zdd Zdd Zdd Zdd Zd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              	   C   sB   t jdd\}}t| zt||  t|}W 5 t| X |S )N.npzsuffix)tempfilemkstemposcloseremover
   r   )matrixfdtmpfileloaded_matrix r   b/var/www/html/Darija-Ai-Train/env/lib/python3.8/site-packages/scipy/sparse/tests/test_matrix_io.py_save_and_load   s    

r   c                 C   sf   t ttttfD ]R}|| }t|}tt||k t|j| jk t|j	| j	k t
| |  qd S )N)r   r   r   r   r	   r   r   typeshapeZdtyper   toarray)dense_matrixZmatrix_classr   r   r   r   r   _check_save_and_load   s    r!   c                  C   s8   d} t jd t j| | f}d||dk< t| d S )N
   r   gffffff?)nprandomseedr!   )Nr    r   r   r   test_save_and_load_random"   s
    r'   c                  C   s   t d} t|  d S )N      r#   Zzerosr!   r    r   r   r   test_save_and_load_empty)   s    
r-   c                  C   s   t d} d| d< t|  d S )Nr(      )r.      r+   r,   r   r   r   test_save_and_load_one_entry-   s    
r0   c               	   C   sZ   G dd d} t jdd\}}t| z tj||  d ttt	| W 5 t| X d S )Nc                   @   s   e Zd Zdd ZdS )z%test_malicious_load.<locals>.Executorc                 S   s   t dfS )N)Fzunexpected code execution)r   )selfr   r   r   
__reduce__5   s    z0test_malicious_load.<locals>.Executor.__reduce__N)__name__
__module____qualname__r2   r   r   r   r   Executor4   s   r6   r   r   )format)
r   r   r   r   r   r#   Zsavezassert_raises
ValueErrorr   )r6   r   r   r   r   r   test_malicious_load3   s    
r:   c                  C   sX   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cr   r   r   test_py23_compatibilityC   s
    rA   c                  C   s"   t d} d| d< tttd|  d S )N)r/      r.   )r   r.   zx.npz)r   r8   NotImplementedErrorr
   )xr   r   r   test_implemented_errorO   s    rE   ) r   numpyr#   r   Zpytestr   r8   Znumpy.testingr   r   Zscipy.sparser   r   r   r   r	   r
   r   r   r;   r<   dirname__file__r=   r   r!   r'   r-   r0   r:   rA   rE   r   r   r   r   <module>   s   (
	