
    Ui                        d dl Z d dlZd dlmZ d dlmc mZ d dl	m
Z
mZ 	 d dlZn# e$ r dZY nw xY we j                            edu d          ZdZ e j        d           e j        de j                            e          g          fZej        ej        ej        ej        ej        ej        gZ e j        e	          d
             Z e j        e	          d             Ze j        d             Ze j        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,d Z-d Z.d Z/d Z0d Z1d  Z2d! Z3dS )"    N)assert_allcloseassert_equalzpydata/sparse not installed)reasonz>pydata/sparse (0.15.1) does not implement necessary operationsCOODOK)marks)paramsc                 6    t          t          | j                  S N)getattrsparseparamrequests    /var/www/development/aibuddy-work/election-extract/venv/lib/python3.11/site-packages/scipy/sparse/linalg/tests/test_pydata_sparse.py
sparse_clsr   "   s    67=)))    c                     | j         S r   )r   r   s    r   sp_sparse_clsr   '   s
    =r   c                     t           j                            d           t           j                            dd          } ||           | |          fS Ni  	   )nprandomseedrand)r   r   A_denses      r   same_matrixr   ,   sJ    INN4innQ""G=!!::g#6#666r   c                     t           j                            d           t           j                            dd          }||j        z  } | |          }t           j                            d          }|||fS r   )r   r   r   r   T)r   r   A_sparsebs       r   matricesr#   3   sf    INN4innQ""G	!Gz'""H
	qAHar   c                     | \  }}}t          j        ||d          \  }}|dk    sJ t          |t          j                  sJ t          ||z  |           d S )NgV瞯<atolr   )splingmres
isinstancer   ndarrayr   )r#   r   r!   r"   xinfos         r   test_isolve_gmresr-   =   si     $GXqk(AE222GAt19999a$$$$$HqL!$$$$$r   c                     | \  }}}t          j        ||          }t          j        ||          }t          |d         |d         d           d S )Nr   MbP?r%   )r'   lsmrr   r#   r   r!   r"   res0ress         r   	test_lsmrr4   G   S    #GXq:gq!!D
*Xq
!
!CCFDG$//////r   c                      t          j        t          j        d          t          j        d          t          j        d                    d         } t          | j        d           d S )N)
      r7   r8   )Ar"   x0r   )r8   )r'   r0   r   oneszerosr   shape)r+   s    r   test_lsmr_output_shaper>   O   sO    
RWW%%""'!**EEEaHA$r   c                     | \  }}}t          j        ||          }t          j        ||          }t          |d         |d         d           d S )Nr   gh㈵>r%   )r'   lsqrr   r1   s         r   	test_lsqrrA   T   r5   r   c                 x   | \  }}}t          j        |dz            }|                    |          }t          j        |d|          \  }}t          j        |d|          \  }}	t          ||           t          |	|           ||fD ]}
t          j        ||d|          \  }}t          j        ||
d|          \  }}	t          ||           t          |	|           t          j        ||d|          \  }}t          j        ||
d|          \  }}	t          ||           t          |	|           d S )N      kv0)MrF   rG   )r   diag	__class__r'   eigsr   eigsh)r#   r   r!   rG   M_denseM_sparsew_densev_densewvrH   s              r   	test_eigsrS   [   sZ   $GXrgb!ennG!!'**Hz'Q2666GW:h!+++DAqAwAw  $ $ :gA"EEEz(a144417###7### ;w'Q2FFF{8qA"55517###7####$ $r   c                 n   | \  }}}t          j        |d|          \  }}}t          j        |d|          \  }}}	t          ||           t          t          j        |          t          j        |                     t          t          j        |	          t          j        |                     d S )NrC   rE   )r'   svdsr   r   abs)
r#   r   r!   rG   u0s0vt0usvts
             r   	test_svdsr]   u   s    $GXr*Wb111KBCz(aB///HAq"ArBF1IIrvbzz***BF2JJs,,,,,r   c                     | \  }}}|d d d f         }t          j        ||          \  }}t          j        ||          \  }}t          ||           t          ||           d S r   )r'   lobpcgr   )	r#   r   r!   r+   XrO   rP   rQ   rR   s	            r   test_lobpcgra      sp    #GXq	!!!D&	A|GQ//GW<!$$DAqAwAwr   c                 "   | \  }}}t           j                            t          |          d          }t	          j        t          j        |          |          }t	          j        ||          }t          |t           j	                  sJ t          ||           t	          j        t          j        |          |          }t	          j        ||d          }t          |t           j	                  sJ t          ||           t	          j        t          j        |          |          }t	          j        ||          }t          |t           j	                  sJ t          ||           t	          j        t          j        |          t          j        |                    }t	          j        ||          }t          |t          |                    sJ t          |                                |                                           d S )NrD   T)use_umfpack)r   r   r   lenr'   spsolvesp	csc_arrayr)   r*   r   typetodense)r#   r   r!   r"   b2r:   r+   s          r   test_spsolverk      s   #GXq	A	"	"B	r|G,,a	0	0Bh""Aa$$$$$Ar	r|G,,a	0	0Bht444Aa$$$$$Ar	r|G,,b	1	1Bh##Aa$$$$$Ar	r|G,,|G,,
. 
.Bh))Aah(((((AIIKK.....r   c                 f   | \  }}}t          |          }t          |          }t          j        |          }t	          |j        |          sJ t	          |j        |          sJ t          j        t          j
        |          |j        t          j        |          ff          }t          j        t          j
        |          t          j        |          |j        ff          }|                    |          }	|                    |          }
|	j        |j        z  |j        z  |
j        z  }t!          |                                |                                           |                    |                                          }t!          |t          j        |          d           d S )Ng|=r%   )rd   rh   r'   splur)   LUrf   rg   r   r;   perm_rarangeperm_cfrom_scipy_sparser    r   ri   solveeye)r#   r   r!   r"   nr   lu	_Pr_scipy	_Pc_scipyPrPcA2zs                r   	test_splur~      s^   #GXqAAhJ	H		BbdJ'''''bdJ'''''bgajj29bill*CDEEIbgajj29Q<<*CDEEI		%	%i	0	0B		%	%i	0	0B	rt	bd	"BBJJLL("2"2"4"4555
!!##$$AArvayyu------r   c                 d   | \  }}}t          |          }t          j        |          }t          |j        |          sJ t          |j        |          sJ |                    |                                          }t          |t          j
        t          |                    d           d S )Nr/   r%   )rh   r'   spilur)   rn   ro   rt   ri   r   r   ru   rd   )r#   r   r!   r"   r   rw   r}   s          r   
test_spilur      s    #GXqhJ	X		BbdJ'''''bdJ'''''
!!##$$AArvc!ff~~D111111r   c                     | \  }}}t          j        |          }t          j        ||          }t	          ||z  |           d S r   )r   trilr'   spsolve_triangularr   )r#   r   r!   r"   r+   s        r   test_spsolve_triangularr      sI    #GXq{8$$H 1--AHqL!$$$$$r   c                     | \  }}}t          j        |          }t          j        |          }t          ||           d S r   )r'   
onenormestr   )r#   r   r!   r"   est0ests         r   test_onenormestr      sD    #GXqG$$D

8
$
$CCr   c                     | \  }}}t          j        t          j        |                    }t          j        |          }t	          ||           d S r   )r'   normrf   	csr_arrayr   )r#   r   r!   r"   norm0r   s         r   	test_normr      sL    #GXqJr|G,,--E:hDD%     r   c                     | \  }}}t          j        t          j        |                    }t          j        |          }t	          |                                |                                           d S r   )r'   invrf   rg   r   ri   r#   r   r!   r"   r:   r+   s         r   test_invr      s\    #GXq	2<((	)	)B	(AAIIKK.....r   c                     | \  }}}t          j        t          j        |                    }t          j        |          }t	          |                                |                                           d S r   )r'   expmrf   rg   r   ri   r   s         r   	test_expmr      s\    #GXq	BL))	*	*B
8AAIIKK.....r   c                    | \  }}}t          j        ||          }t          j        ||          }t          ||           t          j        ||          }t          j        ||          }t          |                                |           d S r   )r'   expm_multiplyr   ri   r   s         r   test_expm_multiplyr      s    #GXq		Wa	(	(BHa((AAr		Wg	.	.BHh//AAIIKK$$$$$r   c                     | \  }}t          j        |                              |j                  }||k                                    sJ d S r   rf   
coo_matrixasformatformatallr   	sp_sparse	pd_sparses      r   test_eqr      O    &Iyi((11)2BCCI"'')))))))r   c                     | \  }}t          j        |                              |j                  }||k                                    rJ d S r   rf   r   r   r   anyr   s      r   test_ner      sO    &Iyi((11)2BCCIY&++-------r   c                     | \  }}t          j        |                              |j                  }||k                                    sJ d S r   r   r   s      r   test_ger     r   r   c                     | \  }}t          j        |                              |j                  }||k                                    rJ d S r   r   r   s      r   test_gtr     sO    &Iyi((11)2BCCII%**,,,,,,,r   )4pytestnumpyr   scipy.sparser   rf   scipy.sparse.linalglinalgr'   numpy.testingr   r   	Exceptionmarkskipif
pytestmarkmsgr   xfailsparse_params	bsr_arrayr   	coo_arrayrg   	dia_array	dok_arrayscipy_sparse_classesfixturer   r   r   r#   r-   r4   r>   rA   rS   r]   ra   rk   r~   r   r   r   r   r   r   r   r   r   r   r    r   r   <module>r      s              # # # # # # # # # 7 7 7 7 7 7 7 7MMMM   FFF [$'D   F F
 G e$$eFK,=,=S,=,I,I+JKKKM LLLLLL  }%%%* * &%* +,,,  -, 7 7 7      % % %0 0 0     
0 0 0$ $ $4- - -     / / /4. . .,
2 
2 
2% % %  ! ! !/ / // / /% % %* * *. . .* * *- - - - -s   & 00