
    doi                        S SK r 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Jr  \ R,                  R/                  \ R,                  R1                  \5      S5      rS rS rS rS	 rS
 rS r \RB                  RE                  SS S/5      \RB                  RE                  S/ SQ5      S 5       5       r#S r$S r%S r&g)    N)raises)assert_equalassert_)sparray	csr_array	coo_arraysave_npzload_npz
csc_matrix
csr_matrix
bsr_matrix
dia_matrix
coo_matrix
dok_matrix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       ]/var/www/html/land-ocr/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_randomr0   $   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_emptyr8   +   s    88E?L&r)   c                  P    [         R                  " S5      n SU S'   [        U 5        g )Nr2      )r:      r5   r7   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   )333333?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_spmatrixrA   4   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?valuer>   ndim)r:   r;      c                    [        U/5      R                  SU -  5      n[        R                  " SS9u  p4[        R
                  " U5         [        XB5        [        U5      n[        R                  " U5        [        U[         5      (       d   e[        UR                  UR                  :H  5        [        UR                  5       UR                  5       5        g ! [        R                  " U5        f = f)N)r:   r   r   )r   reshaper   r   r   r   r	   r
   r   r?   r   r#   r   r%   )rC   rB   Ar   r   loaded_As         r   test_nd_coo_formatrI   L   s     	5'""4$;/A ""&1KBHHRLG$
		'h	****HNNagg%&h..01	 			's   C C2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>.Executor_   c                     [         S4$ )N)Fzunexpected code execution)r   )selfs    r   
__reduce__0test_malicious_load.<locals>.Executor.__reduce__`   s    ABBr)    N)__name__
__module____qualname____firstlineno__rP   __static_attributes__rR   r)   r   ExecutorrL   _   s    	Cr)   rX   r   r   )format)
r   r   r   r   r,   savezassert_raises
ValueErrorr
   r   )rX   r   r   s      r   test_malicious_loadr]   ^   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_compatibilityre   n   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;   rD   r:   )r   r:   zx.npz)r   r[   NotImplementedErrorr	   )xs    r   test_implemented_errorri   z   s&     	5AAcF%x!<r)   )'r   numpyr,   r   pytestr   r[   numpy.testingr   r   scipy.sparser   r   r   r	   r
   r   r   r   r   r   r   r_   r`   dirname__file__ra   r    r(   r0   r8   r<   rA   markparametrizerI   r]   re   ri   rR   r)   r   <module>rr      s    	    * /2 2 2 2
 77<<16:<'''
B0 1c(++2 , ,2  
+=r)   