Ë
    0Ò^jc=  ã            
       óÄ  — d dl Z d dlZd dlZd dlmZmZmZmZm	Z	m
Z
mZmZmZmZmZ d dlmZ d dlm	Z d dlmZ ej.                  j0                  Z ee«        ee«       ej.                  j5                  dd¬«      ej.                  j7                  e d	¬«       G d
„ d«      «       «       Zg d¢ZdgdgdggZdj?                  «       Z e D � cg c]  }  ejB                  dg e"e| «      ¬«      ‘Œ  c} Z#d„ Z$d„ Z%ej.                  jM                  deez   e z   e#z   «      ej.                  jM                  deez   e z   e#z   «      ej.                  j5                  dd¬«      d„ «       «       «       Z'ej.                  jM                  deez   e z   e#z   «      ej.                  jM                  deez   e z   e#z   «      ej.                  j5                  dd¬«      d„ «       «       «       Z(yc c} w )é    N)ÚSCIPY_ARRAY_APIÚarray_namespaceÚ_asarrayÚxp_copyÚxp_assert_equalÚis_numpyÚ	np_compatÚxp_default_dtypeÚxp_result_typeÚis_torchÚ_xp_copy_to_numpy)Úarray_api_extra)r   )Úlazy_xp_functionFznot applicable)ÚreasonzDArray API test; set environment variable SCIPY_ARRAY_API=1 to run itc            
       óx  — e Zd Zd„ Zd„ Zej                  j                  d«      d„ «       Zej                  j                  dd¬«      d„ «       Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zej                  j!                  dg d¢«      ej                  j!                  dg dg d¢ddgddggg«      d„ «       «       Zej                  j!                  dg d¢«      ej                  j!                  dddg«      d„ «       «       Zej                  j                  dd¬«      d„ «       Zej                  j                  dd¬«      d„ «       Zd„ Zy) ÚTestArrayAPIc                 ó˜   — t        j                  g d¢«      t        j                  g d¢«      }}t        ||«      }d|j                  v sJ ‚y )N©r   é   é   zarray_api_compat.numpy)ÚnpÚarrayr   Ú__name__)ÚselfÚxÚyÚxps       új/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/scipy/_lib/tests/test_array_api.pyÚtest_array_namespacez!TestArrayAPI.test_array_namespace   s;   € Ü�x‰xš	Ó"¤B§H¡HªYÓ$7ˆ1ˆÜ˜Q Ó"ˆØ'¨2¯;©;Ñ6Ð6Ñ6ó    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 supportedú/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TzArray-likes)Únp_onlyr   c                 óþ  — t        g d¢«      |u sJ ‚t        d«      |u sJ ‚t        ddd«      |u sJ ‚t        d«      |u sJ ‚t        t        j                  d«      «      |u sJ ‚t        g d¢d«      |u sJ ‚t        «       |u sJ ‚t        d«      |u sJ ‚t        dd«      |u sJ ‚t        dd«      |u sJ ‚t        t        j                  ddg«      ddg«      |u sJ ‚t        t        j                  d«      ddg«      |u sJ ‚y)zuTest that if all parameters of array_namespace are Array-likes,
        the output is array_api_compat.numpy
        r   r   r   r#   Né   )r   r   Úint64r%   ©r   r   s     r   Útest_array_likeszTestArrayAPI.test_array_likes6   s  € ô
 šyÓ)¨RÑ/Ð/Ð/Ü˜yÓ)¨RÑ/Ð/Ð/Ü˜q ! QÓ'¨2Ñ-Ð-Ð-Ü˜qÓ! RÑ'Ð'Ð'ÜœrŸx™x¨›{Ó+¨rÑ1Ð1Ð1Üšy¨!Ó,°Ñ2Ð2Ð2ÜÓ  BÑ&Ð&Ð&Ü˜tÓ$¨Ñ*Ð*Ð*Ü˜q $Ó'¨2Ñ-Ð-Ð-Ü˜t QÓ'¨2Ñ-Ð-Ð-ô œrŸz™z¨1¨a¨&Ó1°A°q°6Ó:¸bÑ@Ð@Ð@ÜœrŸx™x¨›{¨Q°¨FÓ3°rÑ9Ð9Ñ9r    c                 ó6  — |j                  d«      }t        |«      |u sJ ‚t        |d«      |u sJ ‚t        d|«      |u sJ ‚t        d|«      |u sJ ‚t        |«      rt        |ddg«      |u sJ ‚yt        j                  t
        d¬«      5  t        |ddg«       ddd«       t        j                  t
        d¬«      5  t        |t        j                  d«      «       ddd«       t        j                  t
        d¬«      5  t        |t        j                  d«      «       ddd«       t        j                  t
        d¬«      5  t        |t        j                  d«      «       ddd«       y# 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)a  Test that if there is at least one Array API object among
        the parameters of array_namespace, and all other parameters
        are scalars, the output is its namespace.

        If there are non-scalar Array-Likes, raise as in array-api-compat.
        r   Nr   zMultiple namespacesr)   )
r%   r   r   r-   r.   r/   r   r9   Úfloat64Ú
complex128)r   r   r   s      r   Útest_array_and_array_likes_mixz+TestArrayAPI.test_array_and_array_likes_mixJ   s_  € ð �J‰J�q‹MˆÜ˜qÓ! RÑ'Ð'Ð'Ü˜q !Ó$¨Ñ*Ð*Ð*Ü˜q !Ó$¨Ñ*Ð*Ð*Ü˜t QÓ'¨2Ñ-Ð-Ð-ä�BŒ<Ü" 1 q¨! fÓ-°Ñ3Ð3Ñ3ä—‘œyÐ0EÔFñ +Ü  A q 6Ô*÷+ä—‘œyÐ0EÔFñ 0Ü ¤2§8¡8¨A£;Ô/÷0ä—‘œyÐ0EÔFñ 2ä ¤2§:¡:¨a£=Ô1÷2ô —‘œyÐ0EÔFñ 5ä ¤2§=¡=°Ó#3Ô4÷5ð 5÷+ð +ú÷0ð 0ú÷2ð 2ú÷5ð 5ús0   Â
E+Â< E7Ã? FÅ FÅ+E4Å7F ÆFÆFc                 ó–   — d}t        j                  t        |¬«      5  t        j                  dd¬«       ddd«       y# 1 sw Y   yxY w)znTest that the `array_namespace` function used by
        array-api-extra has been overridden by scipy
        r+   r)   r,   r   )ÚndimN)r-   r.   r/   ÚxpxÚ
atleast_ndr3   s     r   Útest_array_api_extra_hookz&TestArrayAPI.test_array_api_extra_hooke   s;   € ð @ˆÜ�]‰]œ9¨CÔ0ñ 	*Ü�N‰N˜5 qÕ)÷	*÷ 	*ñ 	*ús	   ž?¿Ac                 óø   — t        j                  d«      }t        j                  d«      } |j                  |j                  |j                  d¬«      «      |j                  d«      «      }t        |«      |u sJ ‚y)zÃTest array_namespace special case for JAX zero-gradient arrays, which are
        numpy arrays but must be treated as JAX arrays.
        See matching code and tests in array_api_compat.
        Újaxz	jax.numpyT)Ú	allow_intr8   N)r-   ÚimportorskipÚvmapÚgradÚfloat32r$   r   )r   rF   r   Újax_zeros       r   Útest_jax_zero_gradient_arrayz)TestArrayAPI.test_jax_zero_gradient_arraym   se   € ô
 ×!Ñ! %Ó(ˆÜ× Ñ  Ó-ˆàA�3—8‘8˜CŸH™H R§Z¡Z¸4˜HÓ@ÓAÀ"Ç)Á)ÈAÃ,ÓOˆÜ˜xÓ(¨BÑ.Ð.Ñ.r    c                 óH  — t        j                  dt        j                  g «      ¬«      }t        j                  t
        d¬«      5  t        |«       ddd«       t        j                  t
        d¬«      5  t        ||g«       ddd«       y# 1 sw Y   Œ;xY w# 1 sw Y   yxY w)z{A void dtype that is not a jax.float0 must not be caught in the
        special case for JAX zero-gradient arrays.
        r   ©Údtypez!only boolean and numerical dtypesr)   N)r   ÚemptyrP   r-   r.   r/   r   )r   Úvoids     r   Ú)test_void_but_not_jax_zero_gradient_arrayz6TestArrayAPI.test_void_but_not_jax_zero_gradient_arrayx   s}   € ô �x‰x˜¤§¡¨"£Ô.ˆÜ�]‰]œ9Ð,OÔPñ 	"Ü˜DÔ!÷	"ä�]‰]œ9Ð,OÔPñ 	*Ü˜T 4˜LÔ)÷	*ð 	*÷	"ð 	"ú÷	*ð 	*ús   ÁBÁ5BÂBÂB!c                 óØ   — |d fD ]N  }|j                  g d¢«      }t        ||¬«      }t        |«      t        |«      k7  sJ ‚	 d|d<   |d   |d   k7  rŒNJ ‚ y # t        t        f$ r Y Œcw xY w)N©r   r   r#   r"   é
   r   )r%   r   Úidr/   Ú
ValueError)r   r   Ú_xpr   r   s        r   Ú	test_copyzTestArrayAPI.test_copy‚   s‚   € Ø˜�:ò 	$ˆCØ—
‘
š9Ó%ˆAÜ˜˜cÔ"ˆAô �a“5œB˜q›E’>Ð!�>ð$Ø��!‘ð ˜‘t˜q ™t“|Ð#�|ñ	$øô œzÐ*ò Ùðús   ÁAÁA)Á(A)rP   )rK   r=   Ú	complex64r>   Úint32r9   Údatar   rU   r   r#   c                 ó¼  — t        ||«      }t        t        |«      }|j                  ||¬«      }t        |«      }t	        |t        j
                  «      sJ ‚|j                  |k(  sJ ‚|j                  |j                  k(  sJ ‚t        j                  j                  |t        j                  ||¬«      «       t        |«      rt        |«      t        |«      k7  sJ ‚y y )NrO   )Úgetattrr   r%   r   Ú
isinstanceÚndarrayrP   ÚshapeÚtestingÚassert_equalr   rW   )r   r   r]   rP   Úxp_dtypeÚnp_dtyper   r   s           r   Útest_copy_to_numpyzTestArrayAPI.test_copy_to_numpy�   s³   € ô ˜2˜uÓ%ˆÜœ2˜uÓ%ˆØ�J‰J�t 8ˆJÓ,ˆÜ˜aÓ ˆÜ˜!œRŸZ™ZÔ(Ð(Ð(Ø�w‰w˜(Ò"Ð"Ð"Ø�w‰w˜!Ÿ'™'Ò!Ð!Ð!Ü
�
‰
×Ñ ¤2§:¡:¨d¸(Ô#CÔDÜ�BŒ<ä�a“5œB˜q›E’>Ð!‘>ð r    )r\   r9   rK   r=   rb   © )r#   c                 óX  — t        ||«      }|j                  |j                  d|¬«      |«      }|r|n|d   }t        j                  d«      d   }g d¢}t	        t        |g d¢«      «      }t        |«      rt        ||fi |¤Ž nbt        j                  t        d¬«      5  t        ||fi |¤Ž d d d «       t        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   Œ·xY w# 1 sw Y   y xY w)Nr   rO   rh   )Úcheck_namespaceÚcheck_dtypeÚcheck_shapeÚcheck_0d)TFFFz)Namespace of desired array does not matchr)   z3Namespace of actual and desired arrays do not match)FTFFzdtypes do not match.)FFTFzShapes do not match.)FFFTzArray-ness does not match.)r_   Úbroadcast_tor%   r	   ÚdictÚzipr   r   r-   r.   ÚAssertionErrorrP   ÚnameÚstrrb   )r   r   rP   rb   r   r   Úkwarg_namesÚoptionss           r   Útest_strict_checkszTestArrayAPI.test_strict_checks¥   sG  € ô ˜˜EÓ"ˆØ�O‰O˜BŸJ™J q°˜JÓ6¸Ó>ˆÙ‰A˜A˜b™EˆÜ×Ñ˜aÓ  Ñ$ˆâSˆÜ”s˜;Ò(CÓDÓEˆÜ�BŒ<Ü˜A˜qÑ, GÓ,ä—‘ÜØAôñ 1ô    1Ñ0¨Ò0÷	1ô
 —‘ÜØKôñ 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ð ÷91ñ 1ú÷
1ñ 1ú÷1ñ 1ú÷=ð =ú÷1ð 1ús<   Â I-ÃI:ÅJÇJÉJ É-I7É:JÊJÊJÊ J)zScalars only exist in NumPyc                 ó*  — 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)	Nr   ç        F©rm   úArray-ness does not match:.*r)   é*   rh   )r   r=   r%   r-   r.   rq   r9   ©r   r   Úmessages      r   Útest_check_scalarzTestArrayAPI.test_check_scalarÓ   s  € ô 	˜Ÿ
™
 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   Ã
+K!Ä+K.Å&+K;Æ4+LË!K+Ë.K8Ë;LÌLc                 ó*  — 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)	Nr   Try   rx   zResult is a NumPy 0d-array.*r)   r{   rz   )Úxp_assert_equal_no_0dr=   r%   r-   r.   rq   r9   r|   s      r   Útest_check_scalar_no_0dz$TestArrayAPI.test_check_scalar_no_0dò   s�  € ô 	˜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   Â +L<Ã.+M	Ä<+MÇ -M#È0-M0Ê -M=Ë-N	Ì<MÍ	MÍM Í#M-Í0M:Í=NÎ	Nc                 óV   — t        |«      |j                  d«      j                  k(  sJ ‚y )Nç      ð?)r
   r%   rP   r:   s     r   Útest_default_dtypezTestArrayAPI.test_default_dtype  s#   € Ü Ó# r§z¡z°"£~×';Ñ';Ò;Ð;Ñ;r    N)r   Ú
__module__Ú__qualname__r   r'   r-   ÚmarkÚfilterwarningsr5   Úskip_xp_backendsr;   r?   rD   rM   rS   rZ   Úparametrizerg   rv   r~   r�   r„   rh   r    r   r   r      sn  „ ò
7ò
 ð ‡[�[×ÑÐ =Ó>ñ#ó ?ð#ð ‡[�[×!Ñ!¨$°}Ð!ÓEñ:ó Fð:ò&5ò6*ò	/ò*ò$ð ‡[�[×ÑØÚKóð ‡[�[×ÑØ��Qš	 Q¨ F¨Q°¨FÐ#3Ð4óñ"óó	ð"ð ‡[�[×Ñ˜WÒ&NÓOØ‡[�[×Ñ˜W r¨4 jÓ1ñ*1ó 2ó Pð*1ðX ‡[�[×!Ñ!¨$Ð7TÐ!ÓUñ;ó Vð;ð< ‡[�[×!Ñ!¨$Ð7TÐ!ÓUñ 2ó Vð 2óD<r    r   )r   rƒ   ù      ð?      ð?r   rƒ   r‹   zVint8 int16 int32 int64 uint8 uint16 uint32 uint64 float32 float64 complex64 complex128rO   c                 ó”   — t        | t        j                  «      r|j                  | «      S t        | t        «      rt        || «      S | S )N)r`   r   ra   r%   rs   r_   )r   r   s     r   Úconvert_typer�   !  s;   € ô �!”R—Z‘ZÔ Ø�z‰z˜!‹}ÐÜ	�A”sÔ	Ü�r˜1‹~ÐØ€Hr    c                 ó°   — t        j                  | «      st        | t        «      r|j	                  | «      n| } t        | d| «      }|j                  |d«      S )NrP   )zreal floatingzcomplex floating)r   Úisscalarr`   Úlistr%   r_   Úisdtype)r   r   rP   s      r   Ú
is_inexactr’   ,  sD   € äŸ™ Qœ¬:°a¼Ô+>ˆ�
‰
�1ŒÀA€AÜ�A�w Ó"€EØ�:‰:�eÐBÓCÐCr    r   r   c                 ó  — t        | |«      } t        ||«      }t        | t        «      r|j                  | «      n| }t        |t        «      r|j                  |«      n|}	 |j	                  ||«      }d }|�Ht        j                  |d   t        j                  |d   «      ¬«      5  t        | ||¬«       d d d «       y t        | ||¬«      }|k(  sJ ‚y # t
        $ r }t        |«      t        |«      f}Y d }~Œ„d }~ww xY w# 1 sw Y   y xY w)Nr   r   r)   r"   )r�   r`   r�   r%   Úresult_typeÚ	ExceptionÚtypers   r-   r.   ÚreÚescaper   )	r   r   r   Úx_refÚy_refÚ	dtype_refÚexpected_errorÚeÚ	dtype_ress	            r   Útest_xp_result_type_no_forcerŸ   3  sñ   € ô 	�Q˜Ó€AÜ�Q˜Ó€AÜ'¨¬4Ô0ˆB�J‰J�qŒM°a€EÜ'¨¬4Ô0ˆB�J‰J�qŒM°a€Eð+Ø—N‘N 5¨%Ó0ˆ	Øˆð Ð!Ü�]‰]˜>¨!Ñ,´B·I±I¸nÈQÑ>OÓ4PÔQñ 	(Ü˜1˜a BÕ'÷	(àä˜q !¨Ô+€IØ˜	Ò!Ð!Ñ!øô ò +Ü˜q›'¤3 q£6Ð*�ûð+ú÷	(àús$   Á C Â&D Ã	C=ÃC8Ã8C=Ä D	c                 óœ  — t        |«      r_t        | t        «      sOt        |t        «      s?t        j                  | «      r*t        j                  |«      rt        j                  d«       t        | |«      } t        ||«      }t        | t        «      r|j                  | «      n| }t        |t        «      r|j                  |«      n|}d }	 |j                  ||d«      }|�5t        j                   |d   |d   ¬«      5  t#        | ||¬«       d d d «       y t#        | |d|¬«      }	|	k(  sJ ‚y # t        $ rb g }t        ||«      r|j                  |«       t        ||«      r|j                  |«        |j                  g |¢|j                  d«      ‘­Ž }Y Œ¸t        $ r }t        |«      t        |«      f}Y d }~ŒÛd }~ww xY w# 1 sw Y   y xY w)	Nz8See 3/27/2024 comment at  data-apis/array-api-compat#277rƒ   r   r   r)   r"   T)Úforce_floatingr   )r   r`   rs   r   r�   r-   Úskipr�   r�   r%   r”   r/   r’   Úappendr•   r–   r.   r   )
r   r   r   r™   rš   rœ   r›   Úargsr�   rž   s
             r   Ú"test_xp_result_type_force_floatingr¥   N  s€  € ô 	�ŒœZ¨¬3Ô/´:¸aÄÔ3EÜ—‘˜A”¤2§;¡;¨q¤>Ü�‰ÐNÔOä�Q˜Ó€AÜ�Q˜Ó€AÜ'¨¬4Ô0ˆB�J‰J�qŒM°a€EÜ'¨¬4Ô0ˆB�J‰J�qŒM°a€Eà€Nð
+Ø—N‘N 5¨%°Ó5ˆ	ð Ð!Ü�]‰]˜>¨!Ñ,°NÀ1Ñ4EÔFñ 	(Ü˜1˜a BÕ'÷	(àä˜q !°D¸RÔ@€IØ˜	Ò!Ð!Ñ!øô! ò ;ØˆÜ�e˜RÔ Ø�K‰K˜ÔÜ�e˜RÔ Ø�K‰K˜ÔØ"�B—N‘NÐ: DÐ:¨"¯*©*°S«/Ò:Š	Üò +Ü˜q›'¤3 q£6Ð*�ûð+ú÷	(àús+   ÃD- Ã>GÄ-A(F?ÆF?ÆF:Æ:F?ÇG))r—   Únumpyr   r-   Úscipy._lib._array_apir   r   r   r   r   r   r	   r
   r   r   r   Úscipy._externalr   rB   Úscipy._lib._array_api_no_0dr€   Ú'scipy._external.array_api_extra.testingr   r‡   Úarray_api_backendsÚ
pytestmarkÚuses_xp_capabilitiesÚskipifr   ÚscalarsÚlistsÚsplitÚtypesr%   r_   Úarraysr�   r’   rŠ   rŸ   r¥   )Úts   0r   ú<module>rµ      sþ  ðÛ 	ã Û ÷÷ ÷ ñ õ 3Ý PÝ Dð �[‰[×+Ñ+€
á �Ô Ù �Ô ð ‡�×!Ñ! %Ð0@Ð!ÓAØ‡�×Ñ˜Ð'ØUð ó W÷}<ð }<óWó Bð}<ò@ €Ø
ˆˆrˆd�W�IÐ€ð
0ç16±³ð ð :?Ö	?°Aˆ*ˆ"�*‰*�a�S¡¨¨A£Ö
/Ò	?€òòDð ‡�×Ñ˜˜g¨™o°Ñ5¸Ñ>Ó?Ø‡�×Ñ˜˜g¨™o°Ñ5¸Ñ>Ó?Ø‡�×!Ñ! %Ð0@Ð!ÓAñ"ó Bó @ó @ð"ð0 ‡�×Ñ˜˜g¨™o°Ñ5¸Ñ>Ó?Ø‡�×Ñ˜˜g¨™o°Ñ5¸Ñ>Ó?Ø‡�×!Ñ! %Ð0@Ð!ÓAñ$"ó Bó @ó @ñ$"ùòg 
@s   Ã
#G