
    _Mh                        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                            e j                            e          d          Z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_)
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        |           n# t          j        |           w xY w|S )N.npzsuffix)tempfilemkstemposcloser   r   remove)matrixfdtmpfileloaded_matrixs       a/var/www/html/test/jupyter/venv/lib/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_emptyr7   )   s#    8E??L&&&&&r(   c                  V    t          j        d          } d| d<   t          |            d S )Nr1      )r9      r4   r6   s    r   test_save_and_load_one_entryr;   -   s-    8E??LL&&&&&r(   c                  8   t          j        d          \  } }t          j        |            	 t	          |t          g dg dg                     t          |          }t          j        |           n# t          j        |           w xY wt          j        d          \  } }t          j        |            	 t	          |t          g dg dg                     t          |          }t          j        |           n# t          j        |           w xY wt          |t                    rJ t          |t                    sJ t          |j        |j        k               t          |                                |                                           d S )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11KBHRLLL*mmm[[[%ABBCCC ))
	'	' "&111KBHRLLL)]]]KKK$@AABBB((
	'	'-11111lG,,,,,M<#55666&&((,*>*>*@*@AAAAAs   2A5 5B;2D D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__L   s    ABBr(   N)__name__
__module____qualname__rE    r(   r   ExecutorrB   K   s(        	C 	C 	C 	C 	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   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_compatibilityrW   Z   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)r:      r9   )r   r9   zx.npz)r   rM   NotImplementedErrorr   )xs    r   test_implemented_errorr\   f   s5     	5AAcF%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      s   				      * * * * * * / / / / / / / /Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q 7<<116::  < < <' ' '' ' '' ' '
B B B0   
+ 
+ 
+= = = = =r(   