
    Pi                        d dl Z 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mZ e j                            e j                            e          d          Zd Zd Zd Zd	 Zd
 Zd Z ej!        "                    dd dg          ej!        "                    dg d          d                         Z#d Z$d Z%d Z&dS )    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                     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       u/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/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_randomr0   $   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_emptyr8   +   s#    8E??L&&&&&r)   c                  V    t          j        d          } d| d<   t          |            d S )Nr2      )r:      r5   r7   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   )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   "&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valuer>   ndim)r:   r;      c                    t          |g                              d| z            }t          j        d          \  }}t	          j        |           	 t          ||           t          |          }t	          j        |           n# t	          j        |           w xY wt          |t                     sJ t          |j        |j        k               t          |                                |                                           d S )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 "&111KBHRLLL!G$$
	'	'h	*****HNag%&&&h..0011111s   B B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__`   s    ABBr)   N)__name__
__module____qualname__rO    r)   r   ExecutorrL   _   s(        	C 	C 	C 	C 	Cr)   rT   r   r   )format)
r   r   r   r   r,   savezassert_raises
ValueErrorr
   r   )rT   r   r   s      r   test_malicious_loadrY   ^   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_compatibilityra   n   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;   rD   r:   )r   r:   zx.npz)r   rW   NotImplementedErrorr	   )xs    r   test_implemented_errorre   z   s5     	5AAcF%x!<<<<<r)   )'r   numpyr,   r   pytestr   rW   numpy.testingr   r   scipy.sparser   r   r   r	   r
   r   r   r   r   r   r   r[   r\   dirname__file__r]   r    r(   r0   r8   r<   rA   markparametrizerI   rY   ra   re   rS   r)   r   <module>rn      s   				       * * * * * * / / / / / / / /2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
 7<<116::  < < <' ' '' ' '' ' '
B B B0 1c(++++2 2 ,+ ,+2    
+ 
+ 
+= = = = =r)   