Ë
    âQ(h�6  ã                   óæ   — d dl Z d dlZd dlmZ d dlZd dlmZ d dlm	Z	m
Z
 d dlmZ d dlmZmZmZ d dlmZmZmZ  G d„ d	«      Zeej,                  j/                  d
«       G d„ d«      «       «       Zy)é    N)Úraises)Ústats)ÚnormÚexpon)Úarray_api_compatible)Úarray_namespaceÚis_array_api_strictÚis_jax)Úxp_assert_closeÚxp_assert_equalÚxp_assert_lessc                   óü   — e Zd Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Z	ed„ «       Z
ed„ «       Zed	„ «       Zed
„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zy)ÚTestEntropyc                 ó  — |j                  g d¢«      }|j                  g d¢«      }t        j                  ||«      }t        j                  ||«      }t        ||j                  d«      «       t	        | |j                  d«      «       y )N)ç      à?çš™™™™™É?ç333333Ó?)çš™™™™™¹?g      Ð?gÍÌÌÌÌÌä?ç        )Úasarrayr   Úentropyr   r   )ÚselfÚxpÚpkÚqkÚeselfÚedoubles         ú\/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/scipy/stats/tests/test_entropy.pyÚtest_entropy_positivez!TestEntropy.test_entropy_positive   sg   € ð �Z‰ZšÓ(ˆØ�Z‰ZÒ)Ó*ˆÜ—‘˜b "Ó%ˆÜ—-‘-  BÓ'ˆÜ˜˜rŸz™z¨"›~Ô.Ü˜�x §¡¨B£Õ0ó    c                 ó  — |j                  d«      }t        j                  |d¬«      }t        |j	                  |dz
  «      |j                  d«      «       |j                  d«      }|j                  |j                  d«      dk  |j                  d«      |«      }t        j                  ||«      }t        j                  ||d¬«      }t        |j	                  ||z  t        j                  d«      z
  «      |j                  d«      «       y )Né   ç       @©Úbaseg      @gñhãˆµøä>é   )
Úonesr   r   r   Úabsr   ÚwhereÚarangeÚmathÚlog)r   r   r   ÚSr   ÚS2s         r   Útest_entropy_basezTestEntropy.test_entropy_base   sÁ   € à�W‰W�R‹[ˆÜ�M‰M˜" 2Ô&ˆÜ�r—v‘v˜a "™f“~ r§z¡z°%Ó'8Ô9à�W‰W�R‹[ˆØ�X‰X�b—i‘i “m aÑ'¨¯©°B«¸Ó<ˆÜ�M‰M˜"˜bÓ!ˆÜ�]‰]˜2˜r¨Ô+ˆÜ�r—v‘v˜a ™d¤T§X¡X¨b£\Ñ1Ó2°B·J±J¸uÓ4EÕFr    c                 ó†   — |j                  g d¢«      }t        t        j                  |«      |j                  d«      «       y )N)r   ç      ð?r#   g ŠöR^ä?©r   r   r   r   )r   r   Úxs      r   Útest_entropy_zerozTestEntropy.test_entropy_zero%   s2   € ð �J‰J’|Ó$ˆÜœŸ™ aÓ(ØŸ
™
Ð#6Ó7õ	9r    c                 óÎ   — |j                  ddgddgddgg«      }|j                  ddgddgddgg«      }t        t        j                  ||«      |j                  ddg«      «       y )Nr   r   ç333333ã?r   r   gN!ü0ç¾È?çÈó2íÒÇ?r2   ©r   r   r   r   s       r   Útest_entropy_2dzTestEntropy.test_entropy_2d,   sj   € à�Z‰Z˜#˜s˜ c¨3 Z°#°s°Ð<Ó=ˆØ�Z‰Z˜#˜s˜ c¨3 Z°#°s°Ð<Ó=ˆÜœŸ™ b¨"Ó-ØŸ
™
 I¨zÐ#:Ó;õ	=r    c                 óx  — |j                  ddgddgddgg«      }|j                  ddgddgddgg«      }t        t        j                  ||«      |j                  |j                  dg«      «       |j                  ddgddgddgg«      }t        t        j                  ||«      |j                  ddg«      «       y )	Nr   r   r6   r   r   r   r7   g¯^fTðFÆ?)r   r   r   r   Úinfr8   s       r   Útest_entropy_2d_zeroz TestEntropy.test_entropy_2d_zero3   s·   € à�Z‰Z˜#˜s˜ c¨3 Z°#°s°Ð<Ó=ˆØ�Z‰Z˜#˜s˜ c¨3 Z°#°s°Ð<Ó=ˆÜœŸ™ b¨"Ó-ØŸ
™
 B§F¡F¨JÐ#7Ó8ô	:ð �Z‰Z˜#˜s˜ c¨3 Z°#°s°Ð<Ó=ˆÜœŸ™ b¨"Ó-ØŸ
™
 J°
Ð#;Ó<õ	>r    c                 óœ   — |j                  ddgddgddgg«      }t        t        j                  |d¬«      |j                  g d¢«      «       y )	Nr   r   r6   r   r   é   ©Úaxis)çæòöR^ä?rA   gD%¬†+å?r2   ©r   r   r   s      r   Ú$test_entropy_base_2d_nondefault_axisz0TestEntropy.test_entropy_base_2d_nondefault_axis>   sF   € à�Z‰Z˜#˜s˜ c¨3 Z°#°s°Ð<Ó=ˆÜœŸ™ b¨qÔ1ØŸ
™
Ò#GÓHõ	Jr    c                 óÒ   — |j                  ddgddgddgg«      }|j                  ddgddgddgg«      }t        t        j                  ||d¬«      |j                  g d¢«      «       y )	Nr   r   r6   r   r   r>   r?   )ç{[<þ“Í?rE   g¾C8¯XÀ?r2   r8   s       r   Útest_entropy_2d_nondefault_axisz+TestEntropy.test_entropy_2d_nondefault_axisD   si   € à�Z‰Z˜#˜s˜ c¨3 Z°#°s°Ð<Ó=ˆØ�Z‰Z˜#˜s˜ c¨3 Z°#°s°Ð<Ó=ˆÜœŸ™ b¨"°1Ô5ØŸ
™
Ò#GÓHõ	Jr    c                 óö   — |j                  ddgddgddgg«      }|j                  ddgddgg«      }d}t        j                  t        |¬«      5  t	        j
                  ||«       d d d «       y # 1 sw Y   y xY w)Nr   r   r6   r   r   ú/Array shapes are incompatible for broadcasting.©Úmatch)r   Úpytestr   Ú
ValueErrorr   r   )r   r   r   r   Úmessages        r   Útest_entropy_raises_value_errorz+TestEntropy.test_entropy_raises_value_errorK   st   € à�Z‰Z˜#˜s˜ c¨3 Z°#°s°Ð<Ó=ˆØ�Z‰Z˜#˜s˜ c¨3 ZÐ0Ó1ˆØCˆÜ�]‰]œ:¨WÔ5ñ 	"Ü�M‰M˜"˜bÔ!÷	"÷ 	"ñ 	"ús   ÁA/Á/A8c                 ó    — |j                  ddgddgddgg«      }t        t        j                  |d¬«      t        j                  |«      «       y ©Nr   r   r6   r   r   r   r?   r2   rB   s      r   Ú1test_base_entropy_with_axis_0_is_equal_to_defaultz=TestEntropy.test_base_entropy_with_axis_0_is_equal_to_defaultS   sD   € à�Z‰Z˜#˜s˜ c¨3 Z°#°s°Ð<Ó=ˆÜœŸ™ b¨qÔ1ÜŸ™ bÓ)õ	+r    c                 óØ   — |j                  ddgddgddgg«      }|j                  ddgddgddgg«      }t        t        j                  ||d¬«      t        j                  ||«      «       y rP   r2   r8   s       r   Ú,test_entropy_with_axis_0_is_equal_to_defaultz8TestEntropy.test_entropy_with_axis_0_is_equal_to_defaultY   si   € à�Z‰Z˜#˜s˜ c¨3 Z°#°s°Ð<Ó=ˆØ�Z‰Z˜#˜s˜ c¨3 Z°#°s°Ð<Ó=ˆÜœŸ™ b¨"°1Ô5ÜŸ™ b¨"Ó-õ	/r    c                 ó´   — |j                  ddgddgddgg«      }t        t        j                  |j                  «      t        j                  |d¬«      «       y ©Nr   r   r6   r   r   r>   r?   ©r   r   r   r   ÚTrB   s      r   Útest_base_entropy_transposedz(TestEntropy.test_base_entropy_transposed`   sH   € à�Z‰Z˜#˜s˜ c¨3 Z°#°s°Ð<Ó=ˆÜœŸ™ b§d¡dÓ+ÜŸ™ b¨qÔ1õ	3r    c                 ó   — |j                  ddgddgddgg«      }|j                  ddgddgddgg«      }t        t        j                  |j                  |j                  «      t        j                  ||d¬«      «       y rU   rV   r8   s       r   Útest_entropy_transposedz#TestEntropy.test_entropy_transposedf   sq   € à�Z‰Z˜#˜s˜ c¨3 Z°#°s°Ð<Ó=ˆØ�Z‰Z˜#˜s˜ c¨3 Z°#°s°Ð<Ó=ˆÜœŸ™ b§d¡d¨B¯D©DÓ1ÜŸ™ b¨"°1Ô5õ	7r    c                 óŠ  — t         j                  j                  d«      }|j                  |j                  d«      «      }|j                  |j                  d«      «      }t	        j
                  ||d¬«      }t        |d   t	        j
                  ||d   «      «       t        |d   t	        j
                  ||d	   «      «       y )
Nl   Ü@”UáC<é   )é   r>   éÿÿÿÿr?   r   )r   .r>   )r>   .)ÚnpÚrandomÚdefault_rngr   r   r   r   )r   r   Úrngr3   ÚyÚress         r   Útest_entropy_broadcastingz%TestEntropy.test_entropy_broadcastingm   s�   € ä�i‰i×#Ñ#Ð$5Ó6ˆØ�J‰J�s—z‘z !“}Ó%ˆØ�J‰J�s—z‘z &Ó)Ó*ˆÜ�m‰m˜A˜q rÔ*ˆÜ˜˜A™¤§¡¨a°°6±Ó ;Ô<Ü˜˜A™¤§¡¨a°°6±Ó ;Õ<r    c                 óØ   — |j                  d«      }|j                  d«      }d}t        j                  t        |¬«      5  t	        j
                  ||«       d d d «       y # 1 sw Y   y xY w)N)é
   r>   é   )é   r]   rH   rI   ©r'   rK   r   rL   r   r   )r   r   r3   rc   rM   s        r   Útest_entropy_shape_mismatchz'TestEntropy.test_entropy_shape_mismatchv   sT   € à�G‰G�KÓ ˆØ�G‰G�GÓˆØCˆÜ�]‰]œ:¨WÔ5ñ 	 Ü�M‰M˜!˜QÔ÷	 ÷ 	 ñ 	 ús   Á A Á A)c                 ó¸   — |j                  d«      }d}t        j                  t        |¬«      5  t	        j
                  |d¬«       d d d «       y # 1 sw Y   y xY w)Nrg   z!`base` must be a positive number.rI   éþÿÿÿr$   rj   ©r   r   r3   rM   s       r   Útest_input_validationz!TestEntropy.test_input_validation~   sE   € à�G‰G�B‹KˆØ5ˆÜ�]‰]œ:¨WÔ5ñ 	&Ü�M‰M˜! "Õ%÷	&÷ 	&ñ 	&ús   ¯AÁAN)Ú__name__Ú
__module__Ú__qualname__r   r   r/   r4   r9   r<   rC   rF   rN   rQ   rS   rX   rZ   re   rk   ro   © r    r   r   r      s2  „ Øñ1ó ð1ð ñ	Gó ð	Gð ñ9ó ð9ð ñ=ó ð=ð ñ>ó ð>ð ñJó ðJð
 ñJó ðJð ñ"ó ð"ð ñ+ó ð+ð
 ñ/ó ð/ð ñ3ó ð3ð
 ñ7ó ð7ð ñ=ó ð=ð ñ ó ð ð ñ&ó ñ&r    r   Úskip_xp_backendsc                   óÀ  — e Zd ZdZd„ Zd„ Zd„ Zej                  j                  dd¬«      d„ «       Z
ej                  j                  dd¬«      d	„ «       Zd
„ Zej                  j                  dg d¢«      d„ «       ZdddddœZdddddœZeeeeiZej                  j                  dg d¢«      ej                  j                  deeg«      d„ «       «       Zej                  j                  dg d¢«      d„ «       Zej                  j                  dd¬«      ej                  j                  dg d¢«      ej                  j                  dg d¢«      d„ «       «       «       Zy) ÚTestDifferentialEntropyzº
    Vasicek results are compared with the R package vsgoftest.

    # library(vsgoftest)
    #
    # samp <- c(<values>)
    # entropy.estimate(x = samp, window = <window_length>)

    c                 óÒ  — t         j                  j                  d«      }|j                  d«      }|j	                  |j                  «       «      }t        j                  |d¬«      }t        ||j	                  d«      «       t        j                  |dd¬«      }t        ||j	                  d«      «       t        j                  |d	d¬«      }t        ||j	                  d
«      «       y )Nr   éd   Úvasicek©Úmethodç- ô{õ?r>   )Úwindow_lengthr{   ç¡ €˜äóñ?r&   ç=£&—õ?©	r_   r`   ÚRandomStateÚstandard_normalr   Útolistr   Údifferential_entropyr   )r   r   Úrandom_stateÚvaluesr   s        r   Ú!test_differential_entropy_vasicekz9TestDifferentialEntropy.test_differential_entropy_vasicek“   s¶   € ä—y‘y×,Ñ,¨QÓ/ˆØ×-Ñ-¨cÓ2ˆØ—‘˜FŸM™M›OÓ,ˆä×,Ñ,¨V¸IÔFˆÜ˜ §¡Ð,=Ó!>Ô?ä×,Ñ,¨VÀ1Ø4=ô?ˆä˜ §¡Ð,=Ó!>Ô?ä×,Ñ,¨VÀ1Ø4=ô?ˆä˜ §¡Ð,=Ó!>Õ?r    c                 óð  — t         j                  j                  d«      }|j                  d«      }|j	                  |j                  «       «      }t        j                  |dd¬«      }|j	                  g d¢«      }t        ||«       t        j                  |ddd¬«      }|j	                  g d¢«      }t        ||«       t        j                  |dd	d¬«      }|j	                  g d
¢«      }t        ||«       y )Nr   ©r\   rx   r>   ry   )r@   r{   )r|   gUZdpxõ?gEÄ7ÿL³ô?)r@   r}   r{   )r~   gzGÃÀ¨¥ñ?gt¤Åèò?r&   )r   gl+ÛÉ�jõ?g×o4d­ô?r€   )r   r   r…   r†   r   Úrefs         r   Ú4test_differential_entropy_vasicek_2d_nondefault_axiszLTestDifferentialEntropy.test_differential_entropy_vasicek_2d_nondefault_axis¤   sË   € Ü—y‘y×,Ñ,¨QÓ/ˆØ×-Ñ-¨hÓ7ˆØ—‘˜FŸM™M›OÓ,ˆä×,Ñ,¨V¸!ÀIÔNˆØ�j‰jÒRÓSˆÜ˜ Ô%ä×,Ñ,¨V¸!È1Ø4=ô?ˆà�j‰jÒQÓRˆÜ˜ Ô%ä×,Ñ,¨V¸!È1Ø4=ô?ˆà�j‰jÒRÓSˆÜ˜ Õ%r    c                 ó‚  — t         j                  j                  d«      }|j                  d«      }|j	                  |j                  «       «      }d}|j                  d   }dd|dz  |hD ]G  }|j                  ||¬«      }t        t        |¬«      5  t        j                  ||d¬	«       d d d «       ŒI y # 1 sw Y   ŒTxY w)
Nr   r‰   zhWindow length \({window_length}\) must be positive and less than half the sample size \({sample_size}\).r>   r^   r]   )r}   Úsample_sizerI   )r}   r@   )r_   r`   r�   r‚   r   rƒ   ÚshapeÚformatÚassert_raisesrL   r   r„   )r   r   r…   r†   Ú	error_strr�   r}   Úformatted_error_strs           r   Ú,test_differential_entropy_raises_value_errorzDTestDifferentialEntropy.test_differential_entropy_raises_value_error¸   sÉ   € Ü—y‘y×,Ñ,¨QÓ/ˆØ×-Ñ-¨hÓ7ˆØ—‘˜FŸM™M›OÓ,ˆð<ð 	ð
 —l‘l 1‘oˆà  ! [°!¡^°[ÐAò 	ˆMà"+×"2Ñ"2Ø+Ø'ð #3ó #Ðô
 œzÐ1DÔEñ Ü×*Ñ*ØØ"/Øõ÷ð ñ	÷ð ús   ÂB5Â5B>	z	jax.numpyz#JAX doesn't support item assignment)Úreasonc                 ó  — t         j                  j                  d«      }|j                  d«      }|j	                  |j                  «       «      }t        j                  |d¬«      }t        j                  |«      }t        ||«       y )Nr   )rx   r\   r?   r€   )r   r   r…   r†   r   Údefault_entropys         r   Ú>test_base_differential_entropy_with_axis_0_is_equal_to_defaultzVTestDifferentialEntropy.test_base_differential_entropy_with_axis_0_is_equal_to_defaultÒ   sh   € ô —y‘y×,Ñ,¨QÓ/ˆØ×-Ñ-¨hÓ7ˆØ—‘˜FŸM™M›OÓ,ˆä×,Ñ,¨V¸!Ô<ˆÜ×4Ñ4°VÓ<ˆÜ˜ Õ1r    c                 ó  — t         j                  j                  d«      }|j                  d«      }|j	                  |j                  «       «      }t        t        j                  |j                  «      t        j                  |d¬«      «       y )Nr   r‰   r>   r?   )
r_   r`   r�   r‚   r   rƒ   r   r   r„   rW   )r   r   r…   r†   s       r   Ú)test_base_differential_entropy_transposedzATestDifferentialEntropy.test_base_differential_entropy_transposedÝ   sf   € ô —y‘y×,Ñ,¨QÓ/ˆØ×-Ñ-¨hÓ7ˆØ—‘˜FŸM™M›OÓ,ˆäÜ×&Ñ& v§x¡xÓ0Ü×&Ñ& v°AÔ6õ	
r    c                 ó¤  — t         j                  j                  d«      }|j                  |j	                  «       «      }d}t        j                  t        |¬«      5  t        j                  |d¬«       d d d «       d}t        j                  t        |¬«      5  t        j                  |d¬«       d d d «       y # 1 sw Y   ŒGxY w# 1 sw Y   y xY w)	Nrg   z+`base` must be a positive number or `None`.rI   rm   r$   z`method` must be one of...z	ekki-ekkirz   )
r_   r`   Úrandr   rƒ   rK   r   rL   r   r„   rn   s       r   ro   z-TestDifferentialEntropy.test_input_validationé   sŸ   € Ü�I‰I�N‰N˜2ÓˆØ�J‰J�q—x‘x“zÓ"ˆà?ˆÜ�]‰]œ:¨WÔ5ñ 	3Ü×&Ñ& q¨rÕ2÷	3ð /ˆÜ�]‰]œ:¨WÔ5ñ 	>Ü×&Ñ& q°Õ=÷	>ð 	>÷		3ð 	3ú÷	>ð 	>ús   ÁB:ÂCÂ:CÃCr{   )ry   úvan esÚebrahimiÚcorreac                 óâ  — t        |«      r|dk(  rt        j                  d«       n%t        |«      r|dk(  rt        j                  d«       |dk(  rdnd}t        j
                  j                  |d¬«      }|j                  |j                  «       «      }|j                  t        t        j
                  j                  «       «      «      }t	        j                  ||¬	«      }t        ||d
¬«       y )Nr�   úNeeds array assignment.rž   úNeeds fancy indexing.é'  i@B r   ©Úsizer…   rz   ç{®Gázt?)Úrtol)r
   rK   Úxfailr	   r   r   Úrvsr   rƒ   Úfloatr   r„   r   )r   r{   r   Únr¨   Úexpectedrd   s          r   Útest_consistencyz(TestDifferentialEntropy.test_consistencyõ   s±   € ô �"Œ:˜& JÒ.Ü�L‰LÐ2Õ3Ü  Ô$¨°8Ò);Ü�L‰LÐ0Ô1à˜xÒ'‰E¨WˆÜ�j‰j�n‰n !°!ˆnÓ4ˆØ�j‰j˜Ÿ™›Ó&ˆØ—:‘:œe¤E§J¡J×$6Ñ$6Ó$8Ó9Ó:ˆÜ×(Ñ(¨°VÔ<ˆÜ˜˜X¨EÖ2r    )gòÒMbXÉ?ç�•C‹lç»?)g‰A`åÐ"Ë?g)\�Âõ(¼?)gHáz®GÁ?gyé&1¬¼?)gü©ñÒMbÀ?r­   )ry   rœ   rž   r�   )g¢E¶óýÔÈ?ç‹lçû©ñÂ?)g¶óýÔxéÆ?gßO�—nÃ?)g×£p=
×Ã?gÛù~j¼tÃ?)g‡ÙÎ÷SÃ?r®   Údistc                 ó¼  — t        |«      r|dk(  rt        j                  d«       n%t        |«      r|dk(  rt        j                  d«       d\  }}}| j                  |   |   }|j                  |d   «      |j                  |d   «      }	}|j                  ||fd¬«      }
|j                  |
j                  «       «      }
|j                  t        |j                  «       «      «      }t        j                  |
||d	¬
«      }t        |j                  |j                  ||z
  dz  «      «      |d¬«       t        |«      }t        |j!                  |d¬«      |	d¬«       y )Nr�   r    rž   r¡   )r¢   é2   é   r   r>   r£   r^   )r}   r{   r@   r]   r¥   )Úatol)Ú
correctiongü©ñÒMb`?)r
   rK   r§   r	   Úrmse_std_casesr   r¨   rƒ   r©   r   r   r„   r   ÚsqrtÚmeanr   Ústd)r   r{   r¯   r   Úrepsrª   Úmr«   Úrmse_expectedÚstd_expectedr¨   Útrue_entropyrd   Úxp_tests                 r   Útest_rmse_stdz%TestDifferentialEntropy.test_rmse_std  s*  € ô �"Œ:˜& JÒ.Ü�L‰LÐ2Õ3Ü  Ô$¨°8Ò);Ü�L‰LÐ0Ô1à!‰
ˆˆa�Ø×&Ñ& tÑ,¨VÑ4ˆØ&(§j¡j°¸!±Ó&=¸r¿z¹zÈ(ÐSTÉ+Ó?V�|ˆØ�h‰h˜T 1˜I°AˆhÓ6ˆØ�j‰j˜Ÿ™›Ó&ˆØ—z‘z¤%¨¯©«Ó"7Ó8ˆÜ×(Ñ(¨¸AØ06¸RôAˆä˜Ÿ™ §¡¨¨|Ñ);¸aÑ(?Ó @ÓAØ%¨Eõ	3ä! #Ó&ˆÜ˜Ÿ™ C°A˜Ó6¸È5ÖQr    z	n, method))r&   rœ   )rh   r�   )ié  ry   c                 ó@  — t        |«      r|dk(  rt        j                  d«       t        j                  j                  |fd¬«      }|j                  |j                  «       «      }t        j                  |«      }t        j                  ||¬«      }t        ||«       y )Nr�   r    r   r£   rz   )
r
   rK   r§   r   r   r¨   r   rƒ   r„   r   )r   rª   r{   r   r¨   Úres1Úres2s          r   Útest_method_autoz(TestDifferentialEntropy.test_method_auto/  sw   € ô �"Œ:˜& JÒ.Ü�L‰LÐ2Ô3Ü�j‰j�n‰n 1 $°QˆnÓ7ˆØ�j‰j˜Ÿ™›Ó&ˆÜ×)Ñ)¨#Ó.ˆÜ×)Ñ)¨#°fÔ=ˆÜ˜˜dÕ#r    Údtype)NÚfloat32Úfloat64c                 óÔ  — t        |«      r|dk(  rt        j                  d«       g d¢}t        |t	        |«      d «      }t        |t	        |«      |j                  d«      j                  «      }t        j                  |j                  ||¬«      |¬«      }t        j                  |j                  ||j                  ¬«      |¬«      }t        ||j                  ||¬«      d   «       y )Nrž   r¡   )r>   r>   r]   r\   r\   é   é   rÉ   é   r²   r&   é	   rg   ri   r1   )rÄ   rz   rs   )r	   rK   r§   ÚgetattrÚstrr   rÄ   r   r„   rÆ   r   )	r   r   r{   rÄ   r3   Údtype_inÚ	dtype_outrd   rŠ   s	            r   Útest_dtypes_gh21192z+TestDifferentialEntropy.test_dtypes_gh21192;  s¶   € ô ˜rÔ" v°Ò'9Ü�L‰LÐ0Ô1Ú8ˆÜ˜2œs 5›z¨4Ó0ˆÜ˜B¤ E£
¨B¯J©J°r«N×,@Ñ,@ÓAˆ	Ü×(Ñ(¨¯©°A¸X¨Ó)FÈvÔVˆÜ×(Ñ(¨¯©°A¸R¿Z¹Z¨Ó)HÐQWÔXˆÜ˜˜RŸZ™Z¨°9˜ZÓ=¸bÑAÕBr    N)rp   rq   rr   Ú__doc__r‡   r‹   r“   rK   Úmarkrt   r—   r™   ro   Úparametrizer¬   Únorm_rmse_std_casesÚexpon_rmse_std_casesr   r   rµ   r¿   rÃ   rÐ   rs   r    r   rv   rv   †   s¼  „ ñò@ò"&ò(ð4 ‡[�[×!Ñ! +Ø)Nð "ó Pñ2óPð2ð ‡[�[×!Ñ! +Ø)Nð "ó Pñ
óPð
ò
>ð ‡[�[×Ñ˜Xò (>ó ?ñ3ó?ð3ð '5Ø%3Ø%3Ø'5ñ	Ðð (6Ø&4Ø&4Ø(6ñ	Ðð Ð/ØÐ1ð3€Nð ‡[�[×Ñ˜XÒ'RÓSØ‡[�[×Ñ˜V d¨E ]Ó3ñRó 4ó TðRð, ‡[�[×Ñ˜[ò +>ó ?ñ$ó?ð$ð ‡[�[×!Ñ! +Ø)Nð "ó Pà‡[�[×Ñ˜XÒ'RÓSØ‡[�[×Ñ˜WÒ&BÓCñCó Dó TóPñCr    rv   )r+   rK   r   r�   Únumpyr_   Úscipyr   Úscipy.statsr   r   Úscipy.conftestr   Úscipy._lib._array_apir   r	   r
   Úscipy._lib._array_api_no_0dr   r   r   r   rÒ   Úusefixturesrv   rs   r    r   ú<module>rÝ      sn   ðÛ Û Ý *ã å ß #Ý /ß NÑ N÷9ñ 9÷u&ñ u&ðp Ø‡�×ÑÐ+Ó,÷BCð BCó -ó ñBCr    