Ë
    âQ(h‹  ã                   óÜ   — d dl Zd dlZd dlmZ d dlmZmZmZm	Z	m
Z
mZmZmZ d dlm
Z ej                   j"                  Zej                   j%                  ed    d¬«       G d„ d	«      «       Zy)
é    N)Úarray_api_compatible)Ú_GLOBAL_CONFIGÚarray_namespaceÚ_asarrayÚxp_copyÚxp_assert_equalÚis_numpyÚ	np_compatÚxp_default_dtype)r   ÚSCIPY_ARRAY_APIzDArray API test; set environment variable SCIPY_ARRAY_API=1 to run it©Úreasonc                   ó”  — e Zd Zd„ Zed„ «       Zej                  j                  d«      d„ «       Z	d„ Z
 edd¬«      ej                  j                  d	«      ed
„ «       «       «       Zeej                  j                  dg d¢«      ej                  j                  dddg«      d„ «       «       «       Zed„ «       Zed„ «       Zed„ «       Zy)ÚTestArrayAPIc                 óô   — t        j                  g d¢«      t        j                  g d¢«      }}t        ||«      }d|j                  v sJ ‚dt        d<   t        ||«      }d|j                  v sJ ‚dt        d<   y )N©r   é   é   zarray_api_compat.numpyFr   T)ÚnpÚarrayr   Ú__name__r   )ÚselfÚxÚyÚxps       ú]/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/scipy/_lib/tests/test_array_api.pyÚtest_array_namespacez!TestArrayAPI.test_array_namespace   so   € Ü�x‰xš	Ó"¤B§H¡HªYÓ$7ˆ1ˆÜ˜Q Ó"ˆØ'¨2¯;©;Ñ6Ð6Ð6à,1ŒÐ(Ñ)Ü˜Q Ó"ˆØ'¨2¯;©;Ñ6Ð6Ð6Ø,0ŒÐ(Ò)ó    c                 ó¸   — t        g d¢|¬«      t        t        j                  d«      |¬«      }}|j                  g d¢«      }t	        ||«       t	        ||«       y )Nr   ©r   é   )r   r   ÚarangeÚasarrayr   )r   r   r   r   Úrefs        r   Útest_asarrayzTestArrayAPI.test_asarray   sC   € äš	 bÔ)¬8´B·I±I¸a³LÀRÔ+Hˆ1ˆØ�j‰jšÓ#ˆÜ˜˜3ÔÜ˜˜3Õr   zignore: the matrix subclassc                 óª  — d}t        j                  t        |¬«      5  t        t        j
                  j                  d«      t	        j                  d«      «       d d d «       d}t        j                  t        |¬«      5  t        t	        j                  d«      t	        j                  d«      «       d d d «       d}t        j                  t        |¬«      5  t        t        «       g«       d d d «       t        j                  t        |¬«      5  t        d«       d d d «       y # 1 sw Y   ŒËxY w# 1 sw Y   ŒxY w# 1 sw Y   ŒQxY w# 1 sw Y   y xY w)Nz0of type `numpy.ma.MaskedArray` are not supported©Úmatchr   z(of type `numpy.matrix` are not supportedz/only boolean and numerical dtypes are supportedÚabc)	ÚpytestÚraisesÚ	TypeErrorr   r   Úmar   ÚmatrixÚobject)r   Úmsgs     r   Útest_raiseszTestArrayAPI.test_raises#   só   € à@ˆÜ�]‰]œ9¨CÔ0ñ 	9ÜœBŸE™EŸK™K¨›N¬B¯H©H°Q«KÔ8÷	9ð 9ˆÜ�]‰]œ9¨CÔ0ñ 	7ÜœBŸH™H Q›K¬¯©°1«Ô6÷	7ð @ˆÜ�]‰]œ9¨CÔ0ñ 	(ÜœV›X˜JÔ'÷	(ä�]‰]œ9¨CÔ0ñ 	#Ü˜EÔ"÷	#ð 	#÷	9ð 	9ú÷	7ð 	7ú÷	(ð 	(ú÷	#ð 	#ús/   ž=D%Â 3D1ÃD=ÄE	Ä%D.Ä1D:Ä=EÅ	Ec                 óN   — t        g d¢«       t        ddd«       t        d«       y )Nr   r   r   r!   )r   )r   s    r   Útest_array_likeszTestArrayAPI.test_array_likes3   s   € äš	Ô"Ü˜˜1˜aÔ Ü˜Õr   z	jax.numpyz)JAX arrays do not support item assignmentr   Úskip_xp_backendsc                 óô   — |d fD ]q  }|j                  g d¢«      }t        ||¬«      }d|d<   d|d<   d|d<   |d   |d   k7  sJ ‚|d   |d   k7  sJ ‚|d   |d   k7  sJ ‚t        |«      t        |«      k7  rŒqJ ‚ y )	N)r   r   r!   r    é
   r   é   r   é   r   )r#   r   Úid)r   r   Ú_xpr   r   s        r   Ú	test_copyzTestArrayAPI.test_copy9   sž   € ð
 ˜�:ò 	"ˆCØ—
‘
š9Ó%ˆAÜ˜˜cÔ"ˆAð ˆAˆa‰DØˆAˆa‰DØˆAˆa‰Dà�Q‘4˜1˜Q™4’<Ð�<Ø�Q‘4˜1˜Q™4’<Ð�<Ø�Q‘4˜1˜Q™4’<Ð�<Ü�a“5œB˜q›E“>Ð!�>ñ	"r   Údtype)Úint32Úint64Úfloat32Úfloat64Úshape© )r!   c                 óØ  — t        ||«      }|j                  |j                  d|¬«      |«      }|r|n|d   }t        j                  d«      d   }g d¢}t	        t        |g d¢«      «      }|t        k(  rt        ||fi |¤Ž n1t        j                  t        d¬«      5  t        ||fi |¤Ž d d d «       t	        t        |g d¢«      «      }|j                  j                  t        |j                  «      v rt        ||fi |¤Ž n1t        j                  t        d	¬«      5  t        ||fi |¤Ž d d d «       t	        t        |g d
¢«      «      }|j                  |j                  k(  rt        ||fi |¤Ž n@t        j                  t        d¬«      5  t        ||j                  |«      fi |¤Ž d d d «       t	        t        |g d¢«      «      }t        |«      r'|j                  |j                  k(  rt        ||fi |¤Ž y t        |«      r2t        j                  t        d¬«      5  t        ||fi |¤Ž d d d «       y 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   y xY w)Nr   )r<   rB   )Úcheck_namespaceÚcheck_dtypeÚcheck_shapeÚcheck_0d)TFFFzNamespaces do not match.r'   )FTFFzdtypes do not match.)FFTFzShapes do not match.)FFFTzArray-ness does not match.)ÚgetattrÚbroadcast_tor#   r
   ÚdictÚzipr   r   r*   r+   ÚAssertionErrorr<   ÚnameÚstrrA   r	   )r   r   r<   rA   r   r   Úkwarg_namesÚoptionss           r   Útest_strict_checkszTestArrayAPI.test_strict_checksL   s  € ô
 ˜˜EÓ"ˆØ�O‰O˜BŸJ™J q°˜JÓ6¸Ó>ˆÙ‰A˜A˜b™EˆÜ×Ñ˜aÓ  Ñ$ˆâSˆÜ”s˜;Ò(CÓDÓEˆØ”Š8Ü˜A˜qÑ, GÓ,ä—‘œ~Ð5OÔPñ 1Ü  1Ñ0¨Ò0÷1ô ”s˜;Ò(CÓDÓEˆØ�7‰7�<‰<œ3˜qŸw™w›<Ñ'Ü˜A˜qÑ, GÓ,ä—‘œ~Ð5KÔLñ 1Ü  1Ñ0¨Ò0÷1ô ”s˜;Ò(CÓDÓEˆØ�7‰7�a—g‘gÒÜ˜A˜qÑ, GÓ,ä—‘œ~Ð5KÔLñ =Ü  2§:¡:¨a£=Ñ<°GÒ<÷=ô ”s˜;Ò(CÓDÓEˆÜ�BŒ<˜AŸG™G q§w¡wÒ.Ü˜A˜qÑ, GÓ,Ü�bŒ\Ü—‘œ~Ð5QÔRñ 1Ü  1Ñ0¨Ò0÷1ð 1ð ÷)1ñ 1ú÷1ñ 1ú÷=ð =ú÷1ð 1ús0   ÂH:ÄIÆIÈ"I È:IÉIÉIÉ I)c                 ój  — t        |«      st        j                  d«       t        |j	                  d«      |j	                  d«      «       t        |j                  d«      |j                  d«      «       t        |j	                  d«      |j	                  d«      d¬«       t        |j                  d«      |j                  d«      d¬«       d}t        j                  t        |¬«      5  t        |j                  d«      |j	                  d«      «       d d d «       t        j                  t        |¬«      5  t        |j	                  d«      |j                  d«      «       d d d «       t        j                  t        |¬«      5  t        |j                  d«      |j                  d«      «       d d d «       t        j                  t        |¬«      5  t        |j                  d«      |j                  d«      «       d d d «       t        |j                  d«      |j	                  d«      d¬«       t        |j	                  d«      |j                  d«      d¬«       t        |j                  d«      dd¬«       t        d|j                  d«      d¬«       t        |j                  d«      dd¬«       t        d|j                  d«      d¬«       t        |j	                  d«      |j                  d«      d	   «       y # 1 sw Y   �ŒîxY w# 1 sw Y   �Œ­xY w# 1 sw Y   �ŒlxY w# 1 sw Y   �Œ+xY w)
NúScalars only exist in NumPyr   ç        F©rG   úArray-ness does not match:.*r'   é*   rB   )	r	   r*   Úskipr   r@   r#   r+   rL   r>   ©r   r   Úmessages      r   Útest_check_scalarzTestArrayAPI.test_check_scalart   s*  € ä˜Œ|Ü�K‰KÐ5Ô6ô 	˜Ÿ
™
 1› r§z¡z°!£}Ô5Ü˜Ÿ
™
 2›¨¯
©
°2«Ô7Ü˜Ÿ
™
 1› r§z¡z°!£}¸uÕEÜ˜Ÿ
™
 2›¨¯
©
°2«ÀÕGð 1ˆÜ�]‰]œ>°Ô9ñ 	;Ü˜BŸJ™J r›N¨B¯J©J°q«MÔ:÷	;ä�]‰]œ>°Ô9ñ 	;Ü˜BŸJ™J q›M¨2¯:©:°b«>Ô:÷	;ä�]‰]œ>°Ô9ñ 	:Ü˜BŸJ™J r›N¨B¯H©H°R«LÔ9÷	:ä�]‰]œ>°Ô9ñ 	:Ü˜BŸH™H R›L¨"¯*©*°R«.Ô9÷	:ô 	˜Ÿ
™
 2›¨¯
©
°1«ÀÕFÜ˜Ÿ
™
 1› r§z¡z°"£~ÀÕFä˜Ÿ
™
 2›¨°UÕ;Ü˜˜BŸJ™J r›N°UÕ;Ü˜Ÿ
™
 2›¨°UÕ;Ü˜˜BŸJ™J r›N°UÕ;ô 	˜Ÿ
™
 1› r§z¡z°"£~°bÑ'9Õ:÷'	;ñ 	;ú÷	;ñ 	;ú÷	:ñ 	:ú÷	:ñ 	:ús0   Ã*+LÄ8+LÆ+LÇ+L(ÌLÌLÌL%Ì(L2c                 ój  — t        |«      st        j                  d«       t        |j	                  d«      |j	                  d«      «       t        |j	                  d«      |j	                  d«      d¬«       t        |j                  d«      |j                  d«      d¬«       d}t        j                  t        |¬«      5  t        |j                  d«      |j                  d«      «       d d d «       t        j                  t        |¬«      5  t        |j                  d«      |j	                  d«      «       d d d «       t        j                  t        |¬«      5  t        |j                  d«      |j                  d«      «       d d d «       t        |j	                  d«      |j                  d«      «       t        |j                  d«      |j                  d«      «       d	}t        j                  t        |¬«      5  t        |j                  d«      |j	                  d«      d¬«       d d d «       t        j                  t        |¬«      5  t        |j	                  d«      |j                  d«      d¬«       d d d «       t        j                  t        |¬«      5  t        |j                  d«      |j                  d«      d¬«       d d d «       t        j                  t        |¬«      5  t        |j                  d«      |j                  d«      d¬«       d d d «       t        d|j                  d«      «       t        d|j                  d«      «       y # 1 sw Y   �ŒsxY w# 1 sw Y   �Œ2xY w# 1 sw Y   �ŒñxY w# 1 sw Y   �ŒXxY w# 1 sw Y   �ŒxY w# 1 sw Y   ŒÑxY w# 1 sw Y   Œ�xY w)
NrS   r   TrU   rT   zResult is a NumPy 0d-array.*r'   rW   rV   )	r	   r*   rX   Úxp_assert_equal_no_0dr@   r#   r+   rL   r>   rY   s      r   Útest_check_scalar_no_0dz$TestArrayAPI.test_check_scalar_no_0d—   s£  € ä˜Œ|Ü�K‰KÐ5Ô6ô 	˜bŸj™j¨›m¨R¯Z©Z¸«]Ô;Ü˜bŸj™j¨›m¨R¯Z©Z¸«]ÀTÕJÜ˜bŸj™j¨›n¨b¯j©j¸«nÀtÕLð 1ˆÜ�]‰]œ>°Ô9ñ 	BÜ! "§*¡*¨R£.°"·*±*¸R³.ÔA÷	Bä�]‰]œ>°Ô9ñ 	AÜ! "§*¡*¨R£.°"·*±*¸Q³-Ô@÷	Aä�]‰]œ>°Ô9ñ 	@Ü! "§*¡*¨R£.°"·(±(¸2³,Ô?÷	@ô 	˜bŸj™j¨›m¨R¯Z©Z¸«^Ô<Ü˜bŸh™h r›l¨B¯J©J°r«NÔ;ð 1ˆÜ�]‰]œ>°Ô9ñ 	PÜ! "§*¡*¨R£.°"·*±*¸Q³-È$ÕO÷	Pä�]‰]œ>°Ô9ñ 	PÜ! "§*¡*¨Q£-°·±¸B³È$ÕO÷	Pä�]‰]œ>°Ô9ñ 	NÜ! "§*¡*¨R£.°"·(±(¸1³+ÈÕM÷	Nä�]‰]œ>°Ô9ñ 	NÜ! "§(¡(¨1£+¨r¯z©z¸"«~ÈÕM÷	Nô 	˜b "§*¡*¨R£.Ô1Ü˜b "§*¡*¨R£.Õ1÷1	Bñ 	Bú÷	Añ 	Aú÷	@ñ 	@ú÷	Pñ 	Pú÷	Pñ 	Pú÷	Nð 	Nú÷	Nð 	NúsT   Ã +MÄ+M)Å+M6È -NÉ-NÊ -NË0-N)ÍM&Í)M3Í6N ÎNÎNÎN&Î)N2c                 óV   — t        |«      |j                  d«      j                  k(  sJ ‚y )Ng      ð?)r   r#   r<   )r   r   s     r   Útest_default_dtypezTestArrayAPI.test_default_dtype½   s#   € ä Ó# r§z¡z°"£~×';Ñ';Ò;Ð;Ñ;r   N)r   Ú
__module__Ú__qualname__r   r   r%   r*   ÚmarkÚfilterwarningsr1   r3   r4   Úusefixturesr;   ÚparametrizerQ   r[   r^   r`   rB   r   r   r   r      s  „ ò1ð ñ ó ð ð ‡[�[×ÑÐ =Ó>ñ#ó ?ð#òñ �kØHôJà‡[�[×ÑÐ/Ó0Øñ"ó ó 1óJð"ð Ø‡[�[×Ñ˜WÒ&NÓOØ‡[�[×Ñ˜W r¨4 jÓ1ñ"1ó 2ó Pó ð"1ðJ ñ;ó ð;ðD ñ#2ó ð#2ðJ ñ<ó ñ<r   r   )Únumpyr   r*   Úscipy.conftestr   Úscipy._lib._array_apir   r   r   r   r   r	   r
   r   Úscipy._lib._array_api_no_0dr]   rc   r4   Úskipifr   rB   r   r   ú<module>rl      ss   ðÛ Û å /÷÷ ó õ Qà—;‘;×/Ñ/Ð ð ‡�×Ñ˜Ð'8Ñ9Ð9ØUð ó W÷o<ð o<óWño<r   