
    (ph                        S SK r S SKrS SKrS SKJr  S SKJrJ	r	  S SK
JrJrJrJrJrJrJrJrJrJr  \ R*                  R-                  \ R*                  R/                  \5      S5      rS rS rS rS	 rS
 rS rS r S r!S r"g)    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                     [         R                  " SS9u  p[        R                  " U5         [	        X 5        [        U5      n[        R                  " U5        U$ ! [        R                  " U5        f = f)N.npzsuffix)tempfilemkstemposcloser   r   remove)matrixfdtmpfileloaded_matrixs       T/var/www/html/venv/lib/python3.13/site-packages/scipy/sparse/tests/test_matrix_io.py_save_and_loadr      sX    ""&1KBHHRL! )
		' 			's   A A4c                 V   [         [        [        [        [        4 H  nU" U 5      n[        U5      n[        [        U5      UL 5        [        UR                  U R                  :H  5        [        UR                  U R                  :H  5        [        UR                  5       U 5        M     g )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                      Sn [         R                  R                  S5        [         R                  R                  X 45      nSXS:  '   [        U5        g )N
   r   gffffff?)nprandomseedr'   )Nr%   s     r   test_save_and_load_randomr/   "   sB    
AIINN199##QF+L'(L#$&r(   c                  F    [         R                  " S5      n [        U 5        g )N      r+   zerosr'   r%   s    r   test_save_and_load_emptyr7   )   s    88E?L&r(   c                  P    [         R                  " S5      n SU S'   [        U 5        g )Nr1      )r9      r4   r6   s    r   test_save_and_load_one_entryr;   -   s!    88E?LL&r(   c                     [         R                  " SS9u  p[        R                  " U 5         [	        U[        / SQ/ SQ/5      5        [        U5      n[        R                  " U5        [         R                  " SS9u  p[        R                  " U 5         [	        U[        / SQ/ SQ/5      5        [        U5      n[        R                  " U5        [        U[        5      (       a   e[        U[        5      (       d   e[        UR                  UR                  :H  5        [        UR                  5       UR                  5       5        g ! [        R                  " U5        f = f! [        R                  " U5        f = f)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1lG,,,,M<#5#556&&(,*>*>*@A 			' 			's   &E &E' E$'E?c                  0    " S S5      n [         R                  " SS9u  p[        R                  " U5         [        R
                  " X " 5       S9  [        [        [        U5        [        R                  " U5        g ! [        R                  " U5        f = f)Nc                       \ rS rSrS rSrg)%test_malicious_load.<locals>.ExecutorK   c                     [         S4$ )N)Fzunexpected code execution)r   )selfs    r   
__reduce__0test_malicious_load.<locals>.Executor.__reduce__L   s    ABBr(    N)__name__
__module____qualname____firstlineno__rF   __static_attributes__rH   r(   r   ExecutorrB   K   s    	Cr(   rN   r   r   )format)
r   r   r   r   r+   savezassert_raises
ValueErrorr   r   )rN   r   r   s      r   test_malicious_loadrS   J   si    C C ""&1KBHHRL
, 	j(G4
		'		's   .A= =Bc                  r   [        [        R                  R                  [        S5      5      n [        [        R                  R                  [        S5      5      n[        S//5      n[        U R                  5       UR                  5       5        [        UR                  5       UR                  5       5        g )Nzcsc_py2.npzzcsc_py3.npzr   )r   r   pathjoinDATA_DIRr   r   r$   )abcs      r   test_py23_compatibilityr[   Z   sp    
 	h67Ah67AQC5Aaiik*aiik*r(   c                  P    [        S5      n SU S'   [        [        [        SU 5        g )N)r:      r9   )r   r9   zx.npz)r   rQ   NotImplementedErrorr   )xs    r   test_implemented_errorr`   f   s&     	5AAcF%x!<r(   )#r   numpyr+   r   pytestr   rQ   numpy.testingr   r   scipy.sparser   r   r   r	   r
   r   r   r   r   r   rU   rV   dirname__file__rW   r   r'   r/   r7   r;   r?   rS   r[   r`   rH   r(   r   <module>rg      sw    	   * /Q Q Q 77<<16:<'''
B0 
+=r(   