§
    ¡éUgv  ã                   ó\   — 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dS )	z'unit tests for sparse utility functionsé    N)Úassert_equal)Úraises)Ú_sputils)Úmatrixc                   ó\   — 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dS )Ú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        ¦  «         d S )NÚintcÚint32Úfloat32ÚboolÚiÚd)	r   ÚsputilsÚupcastÚnpr
   Úfloat64ÚcomplexÚfloatÚ
complex128©Úselfs    ú^/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/scipy/sparse/tests/test_sputils.pyÚtest_upcastzTestSparseUtils.test_upcast   s€   € Ý•W”^ FÑ+Ô+­R¬WÑ5Ô5Ð5Ý•W”^ G¨YÑ7Ô7½¼ÑDÔDÐDÝ•W”^ F­GµUÑ;Ô;½R¼]ÑKÔKÐKÝ•W”^ C¨Ñ-Ô-­r¬zÑ:Ô:Ð:Ð:Ð:ó    c                 ór  — 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 ¦  «         d S # 1 swxY w Y   d S )	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   sì   € ÝŒH�a�S Ð'Ñ'Ô'ˆå•WÔ% dµEÐ:Ñ:Ô:½EÑBÔBÐBÝ•WÔ% d¨aÐ0Ñ0Ô0µ"´'Ñ:Ô:Ð:åÝØDð
ñ 
ô 
ð 	"ð 	"õ Ô˜SÑ!Ô!Ð!ð		"ð 	"ð 	"ñ 	"ô 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"øøøð 	"ð 	"ð 	"ð 	"ð 	"ð 	"s   Â
B,Â,B0Â3B0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¦  «         d S )Nç      @Téüÿÿÿç      @ù      ð?      @é   Ú16F©r   ©r   é   )r   r   Úisscalarliker   r&   r   s    r   Útest_isscalarlikez!TestSparseUtils.test_isscalarlike   s,  € Ý•WÔ)¨#Ñ.Ô.°Ñ5Ô5Ð5Ý•WÔ)¨"Ñ-Ô-¨tÑ4Ô4Ð4Ý•WÔ)¨#Ñ.Ô.°Ñ5Ô5Ð5Ý•WÔ)¨&Ñ1Ô1°4Ñ8Ô8Ð8Ý•WÔ)­"¬(°1©+¬+Ñ6Ô6¸Ñ=Ô=Ð=Ý•WÔ)¨$Ñ/Ô/°Ñ6Ô6Ð6å•WÔ)­"¬(°A°3©-¬-Ñ8Ô8¸%Ñ@Ô@Ð@Ý•WÔ)¨A¨3¨%Ñ0Ô0°%Ñ8Ô8Ð8Ý•WÔ)¨$Ñ/Ô/°Ñ7Ô7Ð7Ý•WÔ)¨&Ñ1Ô1°5Ñ9Ô9Ð9Ð9Ð9r   c                 ó°  — 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 ¦  «         n# 1 swxY w Y   t          t          j        d¦  «        d¦  «         t          t          j        d	¦  «        d¦  «         t          t          j        d
¦  «        d¦  «         t          t          j        d¦  «        d¦  «         d S )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Ô1Ð1Ý•WÔ&¥r¤x°¡{¤{Ñ3Ô3°TÑ:Ô:Ð:Ý•WÔ&¥r¤x°°¡}¤}Ñ5Ô5°uÑ=Ô=Ð=ÝÝØHð
ñ 
ô 
ð 	#ð 	#õ Ô˜cÑ"Ô"Ð"ð		#ð 	#ð 	#ñ 	#ô 	#ð 	#ð 	#ð 	#ð 	#ð 	#ð 	#øøøð 	#ð 	#ð 	#ð 	#õ 	•WÔ& sÑ+Ô+¨UÑ3Ô3Ð3Ý•WÔ& vÑ.Ô.°Ñ6Ô6Ð6Ý•WÔ& tÑ,Ô,¨eÑ4Ô4Ð4Ý•WÔ& vÑ.Ô.°Ñ6Ô6Ð6Ð6Ð6s   Â"CÃCÃ
Cc                 ó8  — 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¦  «         d S )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:   sÕ  € Ý•W”_ VÑ,Ô,¨dÑ3Ô3Ð3Ý•W”_ VÑ,Ô,¨dÑ3Ô3Ð3å•W”_ XÑ.Ô.°Ñ6Ô6Ð6Ý•W”_ YÑ/Ô/°Ñ7Ô7Ð7Ý•W”_ q c¨1 XÑ.Ô.°Ñ6Ô6Ð6Ý•W”_ W°UÐ;Ñ;Ô;¸DÑAÔAÐAÝ•W”_ W°UÐ;Ñ;Ô;¸DÑAÔAÐAÝ•W”_ W°TÐ:Ñ:Ô:¸5ÑAÔAÐAÝ•W”_ W°TÐ:Ñ:Ô:¸5ÑAÔAÐAå•W”_ X¸Ð=Ñ=Ô=¸uÑEÔEÐEÝ•W”_ q c¨1 X¸Ð=Ñ=Ô=¸uÑEÔEÐEÝ•W”_ Z¸ÀtÐLÑLÔLØñ	ô 	ð 	å•W”_ T°DÐ9Ñ9Ô9¸4Ñ@Ô@Ð@Ý•W”_ W°tÐ<Ñ<Ô<¸dÑCÔCÐCÝ•W”_ Y¸Ð>Ñ>Ô>ÀÑFÔFÐFÐFÐ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¦  «         d S )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Ô4Ð4Ý•WÔ'¨	Ñ2Ô2°DÑ9Ô9Ð9Ý•WÔ'¨¨Ñ,Ô,¨dÑ3Ô3Ð3Ý•WÔ'¨	¨	¨	Ñ2Ô2°DÑ9Ô9Ð9Ý•WÔ'­¬°°°Ñ(;Ô(;Ñ<Ô<¸dÑCÔCÐCå•WÔ'­¬°1°#¸°s¸Q¸C°Ñ(AÔ(AÑBÔBÀEÑJÔJÐJÝ•WÔ'¨Ñ*Ô*¨EÑ2Ô2Ð2Ð2Ð2r   c                 óH  — 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¦  «         d S )N)© Tr   r5   r1   F)r   r   Úismatrixr   Úaranger   s    r   Útest_ismatrixzTestSparseUtils.test_ismatrixX   sì   € Ý•WÔ% eÑ,Ô,¨dÑ3Ô3Ð3Ý•WÔ%¨ s¨Q¨C jÑ1Ô1°4Ñ8Ô8Ð8Ý•WÔ%¥b¤i°¡l¤l°4Ô&8Ñ9Ô9¸4Ñ@Ô@Ð@å•WÔ% q¨! fÑ-Ô-¨uÑ5Ô5Ð5Ý•WÔ%¥b¤i°¡l¤lÑ3Ô3°UÑ;Ô;Ð;Ý•WÔ%¨¨ u gÑ.Ô.°Ñ6Ô6Ð6Ý•WÔ% aÑ(Ô(¨%Ñ0Ô0Ð0Ð0Ð0r   c                 óÐ   — t          t          j        t          j        dg¦  «        ¦  «        d¦  «         t          t          j        t          dg¦  «        ¦  «        d¦  «         d S )Nr   T)r   r   Úisdenser   r&   r   r   s    r   Útest_isdensezTestSparseUtils.test_isdenseb   sN   € Ý•W”_¥R¤X¨q¨c¡]¤]Ñ3Ô3°TÑ:Ô:Ð:Ý•W”_¥V¨Q¨C¡[¤[Ñ1Ô1°4Ñ8Ô8Ð8Ð8Ð8r   c                 óø   — t          t          t          j        d¦  «         t          t          t          j        d¦  «         t          t          t          j        d¦  «         dD ]}t          j        |¦  «         Œd S )N)r   r   r=   r1   )rA   r>   r   r   N)r(   Ú	TypeErrorr   Úvalidateaxisr)   )r   Úaxiss     r   Útest_validateaxisz!TestSparseUtils.test_validateaxisf   sp   € Ý•i¥Ô!5°vÑ>Ô>Ð>Ý•i¥Ô!5°sÑ;Ô;Ð;Ý•j¥'Ô"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	¦  «        ¦  «         d S )Nr   éZ   Úuint32r   T)Úcheck_contentsr   r>   Úint64éY   é   )Ú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\  € ÝŒx�œ¥¤Ñ*Ô*Ô.Ñ/Ô/ˆØ˜‘(ˆõ ŒW�R˜xÐ(Ñ(Ô(ˆÝŒW�R˜xÐ(Ñ(Ô(ˆÝÝŒH•WÔ,¨b°"¨XÀdÐKÑKÔKÑLÔLÝŒH�WÑÔñ	
ô 	
ð 	
ð ˆˆ2‰ÝÝŒH•WÔ,¨b°"¨XÀdÐKÑKÔKÑLÔLÝŒH�WÑÔñ	
ô 	
ð 	
ð ˆˆ2‰ÝÝŒH•WÔ,¨b°"¨XÀdÐKÑKÔKÑLÔLÝŒH�WÑÔñ	
ô 	
ð 	
õ ŒW�R˜xÐ(Ñ(Ô(ˆÝŒW�R˜xÐ(Ñ(Ô(ˆÝÝŒH•WÔ,¨b°"¨XÑ6Ô6Ñ7Ô7ÝŒH�WÑÔñ	
ô 	
ð 	
õ ŒW�R˜xÐ(Ñ(Ô(ˆÝŒW�R˜xÐ(Ñ(Ô(ˆÝÝŒH•WÔ,Ø�R� ¸ðñ ô ñ ô õ ŒH�WÑÔñ		
ô 	
ð 	
ð ˆˆ2‰ÝÝŒH•WÔ,¨b°"¨X¸gÐFÑFÔFÑGÔGÝŒH�WÑÔñ	
ô 	
ð 	
ð 	
ð 	
r   c                 óR   — t          j        dgd¦  «        }t          |d¦  «         d S )N)é
   r>   )iÿÿ  iþÿ )rg   iÍÌ23)r   Úcheck_shaper   )r   Ú	new_shapes     r   Útest_check_shape_overflowz)TestSparseUtils.test_check_shape_overflow¨   s,   € ÝÔ'¨¨
°OÑDÔDˆ	Ý�Y Ñ0Ô0Ð0Ð0Ð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¦  «         d S )NrE   é{   F)Úcopy©rl   rl   rl   )r   r&   Ú
isinstancer   r   r   ©r   r"   ÚbÚcs       r   Útest_matrixzTestSparseUtils.test_matrix¬   sØ   € ØˆYˆYˆKˆÝŒH�Q‰KŒKˆå�'œ.¨Ñ+Ô+­R¬YÑ7Ô7Ð7Ð7Ð7Ý�'œ.¨Ñ+Ô+­R¬YÑ7Ô7Ð7Ð7Ð7åŒN˜1ÑÔˆØˆˆ!ˆ!ˆ!ˆQˆQˆQˆ$‰Ý�Q˜ÑÔÐåŒN˜1 5Ð)Ñ)Ô)ˆØˆˆ!ˆ!ˆ!ˆQˆQˆQˆ$‰Ý�Q˜˜˜Ð)Ñ*Ô*Ð*Ð*Ð*r   c                 óT  — 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¦  «         d S )NrE   rl   rn   )r   r&   ro   r   Úasmatrixr   r   rp   s       r   Útest_asmatrixzTestSparseUtils.test_asmatrix»   s¢   € ØˆYˆYˆKˆÝŒH�Q‰KŒKˆå�'Ô*¨1Ñ-Ô-­r¬yÑ9Ô9Ð9Ð9Ð9Ý�'Ô*¨1Ñ-Ô-­r¬yÑ9Ô9Ð9Ð9Ð9åÔ˜QÑÔˆØˆˆ!ˆ!ˆ!ˆQˆ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   
   sÛ   € € € € € ð;ð ;ð ;ð
"ð 
"ð 
"ð:ð :ð :ð7ð 7ð 7ðGð Gð Gð(3ð 3ð 3ð1ð 1ð 1ð9ð 9ð 9ð'ð 'ð 'ð7
ð 7
ð 7
ðr1ð 1ð 1ð+ð +ð +ð	+ð 	+ð 	+ð 	+ð 	+r   r   )Ú__doc__Únumpyr   Únumpy.testingr   Úpytestr   r(   Úscipy.sparser   r   Úscipy.sparse._sputilsr   r   rI   r   r   ú<module>r€      s›   ðØ -Ð -à Ð Ð Ð Ø &Ð &Ð &Ð &Ð &Ð &Ø *Ð *Ð *Ð *Ð *Ð *Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø (Ð (Ð (Ð (Ð (Ð (ðz+ð z+ð z+ð z+ð z+ñ z+ô z+ð z+ð z+ð z+r   