
    bi                        d dl Z d dlZd dlZd dlmZ d dlZd dlm	Z	m
Z
 ej                  j                  Zej                  d        Zej                  d        Z ej                  e	e
g      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 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)&    N)assert_equal)	dok_array
dok_matrixc                      dddS )N      )r   r   r   r    r       V/home/cdr/jupyterlab/.venv/lib/python3.12/site-packages/scipy/sparse/tests/test_dok.pydr      s    q!!r   c                  >    t        j                  g dg dg dg      S )N)r   r   r   )r   r   r   )nparrayr   r   r   Ar      s    88Y	9566r   )paramsc              #   J   K   | j                  d      }d|d<   d|d<   | y w)N)   r   r   r	   r   r
   )param)requestr   s     r   Aspr      s+     fAAfIAfI
Gs   !#c                 j    t        t        |             dhz
  }t        t        |            }||k  sJ y )N__class_getitem__)setdir)r   r   	d_methodsasp_methodss       r   test_dict_methods_coveredr   "   s3    CF233Ic#h-K{"""r   c                     | j                         |j                         k(  sJ | j                          |j                          | j                         |j                         k(  sJ y N)itemsclearr   r   s     r   
test_clearr%   '   sH    779		###GGIIIK779		###r   c                 4   | j                         |j                         k(  sJ | j                         }|j                         }|j                         |j                         k(  sJ |j                         |j                         k(  sJ d|d<   |d   dk(  sJ y )Nr   r	   r   )r"   copy)r   r   ddasps       r   	test_copyr*   -   s    779		###	
B
((*C88:$$$99;#))+%%%CKv;!r   c                      g d} t        j                  |       }g dg dg dg}t        |j                         |       y )Nr
   )r   r   )r   r   )r   r   r   )r   r   r   )r   r   r   r   fromkeysr   toarrayedgesXdokXs      r   test_fromkeys_defaultr4   6   s3    $Ee$D	Iy)A#r   c                      g d} t        j                  | d      }g dg dg dg}t        |j                         |       y )Nr,   )r   r   r6   )r6   r   r   )r   r6   r   r-   r0   s      r   test_fromkeys_positionalr7   =   s5    $EeR(D	Z,A#r   c                      d t        d      D        } t        j                  |       }ddgddgddgddgg}t        |j	                         |       y )Nc              3   *   K   | ]  }||d z  f  yw)r   Nr   ).0as     r   	<genexpr>z)test_fromkeys_iterator.<locals>.<genexpr>E   s     	'1a!e*	's      r   r   )ranger   r.   r   r/   )itr2   r3   s      r   test_fromkeys_iteratorr@   D   sN    	'eAh	'Bb!D
Q!Q!Q!Q(A#r   c                     |j                  d      | j                  d      k(  sJ |j                  dd      | j                  dd      k(  sJ t        j                  t        d      5  |j                  dd       d d d        y # 1 sw Y   y xY w)Nr	   r   r   c   zout of boundsmatch)r   r=   )getpytestraises
IndexErrorr$   s     r   test_getrJ   J   su    776?aeeFm+++7762!%%"3333	z	9   s   (BBc                 J    |j                         | j                         k(  sJ y r!   r"   r$   s     r   
test_itemsrM   P   s    99;!'')###r   c                 J    |j                         | j                         k(  sJ y r!   )keysr$   s     r   	test_keysrP   S   s    88:!!!r   c                     | j                  d      dk(  sJ |j                  d      dk(  sJ | j                         |j                         k(  sJ |j                  dd       J |j                  dd      dk(  sJ t        j                  t        d      5  |j                  d       d d d        t        j                  t
        d      5  |j                  dd	       d d d        y # 1 sw Y   AxY w# 1 sw Y   y xY w)
Nr	   r   )      otherz(22, 21)rD   z"got an unexpected keyword argument   )default)popr"   rG   rH   KeyError	TypeErrorr$   s     r   test_poprZ   V   s    55=A776?a779		###778T"***778W%000	xz	2 	y(L	M %!$% % % %s   C(C4(C14C=c                     | j                         |j                         k(  sJ | j                         |j                         k(  sJ y r!   )popitemr"   r$   s     r   test_popitemr]   b   s6    99;#++-'''779		###r   c                     |j                  dd      dk(  sJ |j                  dd      dk(  sJ | j                  dd       | j                  dd       | j                         |j                         k(  sJ y )Nr	   r=   r   r   r   )
setdefaultr"   r$   s     r   test_setdefaultra   f   sj    >>&!$)))>>&!$)))LLLL779		###r   c                    ||j                   |j                   j                         fD ]P  }t        |j                        }|j	                  |       t        |j                         |j                                R t        j                  t        d      5  |j	                  t        j                  d             d d d        t        j                  t        d      5  |j	                  ddi       d d d        t        j                  t        d      5  |j	                  ddi       d d d        t        j                  t        d	      5  |j	                  d
di       d d d        t        j                  t        d      5  |j	                  ddi       d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   exY w# 1 sw Y   y xY w)NzInexact indices .* not allowedrD   r_   z length needs to match self.shape)r   r   r   r   g333333?zinteger keys required)g?r   znegative index)r   r6   zindex .* is too large)r   r   )_dictr"   r   shapeupdater   r/   rG   rH   
ValueErrorr   zerosrI   )r   r   inputBsps       r   test_updaterj   m   sg   syy#))//"34 3		"

5S[[]CKKM23
 
z)I	J $

288E?#$	z)K	L (

L#&'(	z)@	A $

Hc?#$	z)9	: #

GS>"#	z)@	A "

FC=!" "$ $( ($ $# #" "s<   %F F,F8GG F),F58GGGc                 n    t        |j                               t        | j                               k(  sJ y r!   )listvaluesr$   s     r   test_valuesrn   ~   s(     

ahhj!1111r   c                     |d   | d   k(  sJ y Nr	   r   r$   s     r   test_dunder_getitemrq      s    v;!F)###r   c                 ^    d|d<   d| d<   | j                         |j                         k(  sJ y )NrU   )r   r   rL   r$   s     r   test_dunder_setitemrs      s.    CKAfI779		###r   c                 V    |d= | d= | j                         |j                         k(  sJ y rp   rL   r$   s     r   test_dunder_delitemru      s*    F	&	779		###r   c                 0    d| v d|v k(  sJ d| v d|v k(  sJ y )Nr	   rB   r   r$   s     r   test_dunder_containsrw      s.    aKVs]+++aKVs]+++r   c                 6    t        |       t        |      k(  sJ y r!   )lenr$   s     r   test_dunder_lenrz      s    q6SXr   c                     t        |t              r7t        j                  t              5  t        t        |             d d d        y t        t        |            t        t        |             k(  sJ y # 1 sw Y   y xY wr!   )
isinstancer   rG   rH   rY   rl   reversedr$   s     r   test_dunder_reversedr~      s`    #y!]]9% 	 #	  	  HSM"d8A;&7777	  	 s   A44A=c                 R   t        |t              r(t        j                  t              5  ||z  }d d d        y ddi}||z  }|d   dk(  sJ | |z  } | j                         |j                         k(  sJ ||z  }|j                         |j                         k(  sJ y # 1 sw Y   y xY w)NrB   rU   )r|   r   rG   rH   rY   r"   )r   r   r(   s      r   test_dunder_iorr      s    #y!]]9% 	3JC	 	 a[r	6{a	RwwyCIIK'''
c	xxzSYY[(((	 	s   BB&c                     t        |t              r(t        j                  t              5  ||z   d d d        y | | z  || z  k(  sJ | | z  ||z  k(  sJ y # 1 sw Y   y xY wr!   )r|   r   rG   rH   rY   r$   s     r   test_dunder_orr      sg    #y!]]9% 	#I	 	 1ua1uc	!!!		 	s   AAc                    t        |t              rOt        j                  t              5  ||z   d d d        t        j                  t              5  | |z   d d d        y |j                  |       |j                  |      k(  sJ | j                  |       |j                  |       k(  sJ | |z  sJ y # 1 sw Y   xY w# 1 sw Y   y xY wr!   )r|   r   rG   rH   rY   __ror__r$   s     r   test_dunder_rorr      s    #y!]]9% 	#I	]]9% 	G	 	 {{1~S!1111yy|s{{1~---3ww	 		 	s   B2B>2B;>Cc                 $   t        j                         5  t        j                  dt        j                  j
                         ||k(  j                         j                         sJ | |k(  j                         sJ 	 d d d        y # 1 sw Y   y xY wNignorewarningscatch_warningssimplefilterspsparseSparseEfficiencyWarningr/   allr   r   s     r   test_dunder_eqr      p    		 	 	"  h		(I(IJs
##%))+++S~~        A'BBc                 t    ||k7  j                         j                         rJ | |k7  j                         rJ y r!   r/   anyr   s     r   test_dunder_ner      s8    s
##%))+++S~~r   c                 t    ||k  j                         j                         rJ | |k  j                         rJ y r!   r   r   s     r   test_dunder_ltr      6    c	""$((***C}}r   c                 t    ||kD  j                         j                         rJ | |kD  j                         rJ y r!   r   r   s     r   test_dunder_gtr      r   r   c                 $   t        j                         5  t        j                  dt        j                  j
                         ||k  j                         j                         sJ | |k  j                         sJ 	 d d d        y # 1 sw Y   y xY wr   r   r   s     r   test_dunder_ler      r   r   c                 $   t        j                         5  t        j                  dt        j                  j
                         ||k\  j                         j                         sJ | |k\  j                         sJ 	 d d d        y # 1 sw Y   y xY wr   r   r   s     r   test_dunder_ger      r   r   c                 @    t        d t        | |      D              sJ y )Nc              3   H   K   | ]  \  }}||k(  j                           y wr!   )r   )r:   r;   r)   s      r   r<   z#test_dunder_iter.<locals>.<genexpr>   s     :FAsS~~:s    ")r   zipr   s     r   test_dunder_iterr      s    :c!Sk::::r   )0r   rG   numpyr   numpy.testingr   scipyr   scipy.sparser   r   markthread_unsafe
pytestmarkfixturer   r   r   r   r%   r*   r4   r7   r@   rJ   rM   rP   rZ   r]   ra   rj   rn   rq   rs   ru   rw   rz   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   <module>r      s      &  . [[&&
 " " 7 7 	:./ 0#
$$$$$"
%$$""2
$$
$
,8)"	    ;r   