
    4[g                        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/html/bid-api/venv/lib/python3.12/site-packages/scipy/sparse/tests/test_matrix_io.py_save_and_loadr      s\    ""&1KBHHRL&! )
		' 			'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; U    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IINN199##QF+L'(L#$&r(   c                  D    t        j                  d      } t        |        y )N      r+   zerosr'   r%   s    r   test_save_and_load_emptyr7   )   s    88E?L&r(   c                  N    t        j                  d      } d| d<   t        |        y )Nr1      )r9      r4   r6   s    r   test_save_and_load_one_entryr;   -   s!    88E?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   ""&1KBHHRL*m[%ABC )
		' ""&1KBHHRL)]K$@AB(
		'-111lG,,,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 ""&1KBHHRL
, 	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7Ah67AQC5Aaiik*aiik*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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      sw    	   * /Q Q Q 77<<16:<'''
B0 
+=r(   