
    tKgv                     T    d Z ddlZddlmZ ddlmZ ddlm	Z
 ddlmZ  G d d      Zy)	z'unit tests for sparse utility functions    N)assert_equal)raises)_sputils)matrixc                   Z    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zy)TestSparseUtilsc                    t        t        j                  d      t        j                         t        t        j                  dd      t        j
                         t        t        j                  dt        t              t        j                         t        t        j                  dd      t        j
                         y )Nintcint32float32boolid)	r   sputilsupcastnpr
   float64complexfloat
complex128selfs    c/home/alanp/www/video.onchill/myenv/lib/python3.12/site-packages/scipy/sparse/tests/test_sputils.pytest_upcastzTestSparseUtils.test_upcast   sf    W^^F+RWW5W^^GY7DW^^FGU;R]]KW^^C-rzz:    c                 Z   t        j                  dgd      }t        t        j                  d t
              t
               t        t        j                  d |      t         j                         t        t        d      5  t        j                  d       d d d        y # 1 sw Y   y xY w)	N   int8dtype)default)az0object dtype is not supported by sparse matricesmatchO)	r   arrayr   r   getdtyper   r   assert_raises
ValueError)r   As     r   test_getdtypezTestSparseUtils.test_getdtype   st    HHaS'W%%dE:EBW%%da0"'':D
 S!	
 
 
s   B!!B*c                    t        t        j                  d      d       t        t        j                  d      d       t        t        j                  d      d       t        t        j                  d      d       t        t        j                  t        j                  d            d       t        t        j                  d      d       t        t        j                  t        j                  dg            d       t        t        j                  dgg      d       t        t        j                  d	      d       t        t        j                  d
      d       y )N      @T      @      ?      @   16Fr   r      )r   r   isscalarliker   r&   r   s    r   test_isscalarlikez!TestSparseUtils.test_isscalarlike   s    W))#.5W))"-t4W))#.5W))&148W))"((1+6=W))$/6W))"((A3-8%@W))A3%0%8W))$/7W))&159r   c                 z   t        t        j                  d      d       t        t        j                  t        j                  d            d       t        t        j                  t        j                  dg            d       t        t        d      5  t        j                  d       d d d        t        t        j                  d      d       t        t        j                  d	      d       t        t        j                  d
      d       t        t        j                  d      d       y # 1 sw Y   xY w)Nr.   Tr1   Fz4Inexact indices into sparse matrices are not allowedr#   r-   r/   r0   r3   r4   )r   r   	isintliker   r&   r(   r)   r   s    r   test_isintlikezTestSparseUtils.test_isintlike+   s    W&&r*D1W&&rxx{3T:W&&rxx}5u=H
 c"	
 	W&&s+U3W&&v.6W&&t,e4W&&v.6
 
s   D11D:c                    t        t        j                  d      d       t        t        j                  d      d       t        t        j                  d      d       t        t        j                  d      d       t        t        j                  dgdf      d       t        t        j                  dd	      d       t        t        j                  d
d	      d       t        t        j                  dd	      d       t        t        j                  d
d	      d       t        t        j                  dd      d       t        t        j                  dgdfd      d       t        t        j                  ddd      d       t        t        j                  dd      d       t        t        j                  dd      d       t        t        j                  dd      d       y )Nr4   T)   r5   )      ?r5   F)r5   r5   r5   r5   )r5   )nonneg)r5   r>   )allow_1d)r5   r5   )r?   r@   )r5   )r5   r5   )r   r   isshaper   s    r   test_isshapezTestSparseUtils.test_isshape:   sD   W__V,d3W__V,d3W__X.6W__Y/7W__qc1X.6W__WU;DAW__WU;DAW__WT:5AW__WT:5AW__X=uEW__qc1X=uEW__ZtL	W__TD94@W__Wt<dCW__Y>Fr   c           	         t        t        j                  d      d       t        t        j                  d      d       t        t        j                  dg      d       t        t        j                  g d      d       t        t        j                  t        j                  g d            d       t        t        j                  t        j                  dgdgdgg            d       t        t        j                  d      d       y )Nr3   Tr   r5   r1   r   r5   r1   F)r   r   
issequencer   r&   r   s    r   test_issequencezTestSparseUtils.test_issequenceN   s    W''-t4W''	2D9W'',d3W''	2D9W''(;<dCW''1#sQC(ABEJW''*E2r   c                    t        t        j                  d      d       t        t        j                  dgdgg      d       t        t        j                  t        j                  d      d          d       t        t        j                  ddg      d       t        t        j                  t        j                  d            d       t        t        j                  dggg      d       t        t        j                  d      d       y )N) Tr   r5   r1   F)r   r   ismatrixr   aranger   s    r   test_ismatrixzTestSparseUtils.test_ismatrixX   s    W%%e,d3W%%sQCj148W%%biil4&894@W%%q!f-u5W%%biil3U;W%%ug.6W%%a(%0r   c                     t        t        j                  t        j                  dg            d       t        t        j                  t        dg            d       y )Nr   T)r   r   isdenser   r&   r   r   s    r   test_isdensezTestSparseUtils.test_isdenseb   s8    W__RXXqc]3T:W__VQC[148r   c                     t        t        t        j                  d       t        t        t        j                  d       t        t        t        j                  d       dD ]  }t        j                  |        y )N)r   r   r=   r1   )rA   r>   r   r   N)r(   	TypeErrorr   validateaxisr)   )r   axiss     r   test_validateaxisz!TestSparseUtils.test_validateaxisf   sR    i!5!5v>i!5!5s;j'"6"6: )D  & )r   c           	      *   t        j                  t        j                  t         j                        j                        }|dz   }t        j
                  dd      }t        j
                  dd      }t        t        j                  t        j                  ||fd            t        j                  d             ||d<   t        t        j                  t        j                  ||fd            t        j                  d             ||d<   t        t        j                  t        j                  ||fd            t        j                  d	             t        j
                  d
d      }t        j
                  d
d      }t        t        j                  t        j                  ||f            t        j                  d	             t        j
                  dd      }t        j
                  dd      }t        t        j                  t        j                  ||f|d            t        j                  d	             ||d<   t        t        j                  t        j                  ||f|            t        j                  d	             y )Nr   Z   uint32r   T)check_contentsr   r>   int64Y      )maxvalrX   )r\   )
r   rY   iinfor   maxonesr   r    r   get_index_dtype)r   imaxtoo_biga1a2s        r   test_get_index_dtypez$TestSparseUtils.test_get_index_dtypeo   s   xx*../( WWRx(WWRx(HHW,,b"XdKLHHW	
 2HHW,,b"XdKLHHW	
 2HHW,,b"XdKLHHW	
 WWRx(WWRx(HHW,,b"X67HHW	
 WWRx(WWRx(HHW,,R  HHW		
 2HHW,,b"XgFGHHW	
r   c                 J    t        j                  dgd      }t        |d       y )N)
   r>   )i  i )rg   i23)r   check_shaper   )r   	new_shapes     r   test_check_shape_overflowz)TestSparseUtils.test_check_shape_overflow   s     ''
OD	Y0r   c                    g dg}t        j                  |      }t        t        j                  |      t         j                        sJ t        t        j                  |      t         j                        sJ t        j                  |      }d|d d d d f<   t        ||       t        j                  |d      }d|d d d d f<   t        |g dg       y )NrE   {   F)copyrl   rl   rl   )r   r&   
isinstancer   r   r   r   r"   bcs       r   test_matrixzTestSparseUtils.test_matrix   s    KHHQK'..+RYY777'..+RYY777NN1!Q$QNN15)!Q$Q)*r   c                 R   g dg}t        j                  |      }t        t        j                  |      t         j
                        sJ t        t        j                  |      t         j
                        sJ t        j                  |      }d|d d d d f<   t        |g dg       y )NrE   rl   rn   )r   r&   ro   r   asmatrixr   r   rp   s       r   test_asmatrixzTestSparseUtils.test_asmatrix   s~    KHHQK'**1-ryy999'**1-ryy999Q!Q$Q)*r   N)__name__
__module____qualname__r   r+   r7   r:   rC   rG   rL   rO   rT   re   rj   rs   rv   rI   r   r   r   r   
   sE    ;
":7G(319'7
r1+	+r   r   )__doc__numpyr   numpy.testingr   pytestr   r(   scipy.sparser   r   scipy.sparse._sputilsr   r   rI   r   r   <module>r      s#    -  & * , (z+ z+r   