§
    ¢éUg/  ã                   ó–   — 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	 d dl
mZ d dlmZmZmZ  G d„ d¦  «        Z G d	„ d
¦  «        ZdS )é    N)Úraises)Úassert_allclose)Ústats)Úarray_api_compatible)Úxp_assert_closeÚxp_assert_equalÚxp_assert_lessc                   óX  — 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dS )ÚTestEntropyc                 óD  — |                      g d¢¦  «        }|                      g d¢¦  «        }t          j        ||¦  «        }t          j        ||¦  «        }t          ||                      d¦  «        ¦  «         t	          | |                      d¦  «        ¦  «         d S )N)ç      à?çš™™™™™É?ç333333Ó?)çš™™™™™¹?g      Ð?gÍÌÌÌÌÌä?ç        )Úasarrayr   Úentropyr   r	   )ÚselfÚxpÚpkÚqkÚeselfÚedoubles         ú]/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/scipy/stats/tests/test_entropy.pyÚtest_entropy_positivez!TestEntropy.test_entropy_positive   s�   € ð �ZŠZ˜˜˜Ñ(Ô(ˆØ�ZŠZÐ)Ð)Ð)Ñ*Ô*ˆÝ”˜b "Ñ%Ô%ˆÝ”-  BÑ'Ô'ˆÝ˜˜rŸzšz¨"™~œ~Ñ.Ô.Ð.Ý˜�x §¢¨B¡¤Ñ0Ô0Ð0Ð0Ð0ó    c                 ón  — |                      d¦  «        }t          j        |d¬¦  «        }t          |                     |dz
  ¦  «        |                     d¦  «        ¦  «         |                      d¦  «        }|                     |                     d¦  «        dk     |                     d¦  «        |¦  «        }t          j        ||¦  «        }t          j        ||d¬¦  «        }t          |                     ||z  t          j	        d¦  «        z
  ¦  «        |                     d¦  «        ¦  «         d S )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˜" 2Ð&Ñ&Ô&ˆÝ�r—v’v˜a "™f‘~”~ r§z¢z°%Ñ'8Ô'8Ñ9Ô9Ð9à�WŠW�R‰[Œ[ˆØ�XŠX�b—i’i ‘m”m aÒ'¨¯ª°B©¬¸Ñ<Ô<ˆÝŒM˜"˜bÑ!Ô!ˆÝŒ]˜2˜r¨Ð+Ñ+Ô+ˆÝ�r—v’v˜a ™d¥T¤X¨b¡\¤\Ñ1Ñ2Ô2°B·J²J¸uÑ4EÔ4EÑFÔFÐFÐFÐFr   c                 óž   — |                      g d¢¦  «        }t          t          j        |¦  «        |                      d¦  «        ¦  «         d S )N)r   g      ð?r   g ŠöR^ä?©r   r   r   r   )r   r   Úxs      r   Útest_entropy_zerozTestEntropy.test_entropy_zero#   sQ   € ð �JŠJ�|�|�|Ñ$Ô$ˆÝ�œ aÑ(Ô(ØŸ
š
Ð#6Ñ7Ô7ñ	9ô 	9ð 	9ð 	9ð 	9r   c                 óî   — |                      ddgddgddgg¦  «        }|                      ddgddgddgg¦  «        }t          t          j        ||¦  «        |                      ddg¦  «        ¦  «         d S )Nr   r   ç333333ã?r   r   gN!ü0ç¾È?çÈó2íÒÇ?r-   ©r   r   r   r   s       r   Útest_entropy_2dzTestEntropy.test_entropy_2d*   sˆ   € à�ZŠZ˜#˜s˜ c¨3 Z°#°s°Ð<Ñ=Ô=ˆØ�ZŠZ˜#˜s˜ c¨3 Z°#°s°Ð<Ñ=Ô=ˆÝ�œ b¨"Ñ-Ô-ØŸ
š
 I¨zÐ#:Ñ;Ô;ñ	=ô 	=ð 	=ð 	=ð 	=r   c                 ó¤  — |                      ddgddgddgg¦  «        }|                      ddgddgddgg¦  «        }t          t          j        ||¦  «        |                      |j        dg¦  «        ¦  «         |                      ddgddgddgg¦  «        }t          t          j        ||¦  «        |                      ddg¦  «        ¦  «         d S )	Nr   r   r1   r   r   r   r2   g¯^fTðFÆ?)r   r   r   r   Úinfr3   s       r   Útest_entropy_2d_zeroz TestEntropy.test_entropy_2d_zero1   sä   € à�ZŠZ˜#˜s˜ c¨3 Z°#°s°Ð<Ñ=Ô=ˆØ�ZŠZ˜#˜s˜ c¨3 Z°#°s°Ð<Ñ=Ô=ˆÝ�œ b¨"Ñ-Ô-ØŸ
š
 B¤F¨JÐ#7Ñ8Ô8ñ	:ô 	:ð 	:ð �ZŠZ˜#˜s˜ c¨3 Z°#°s°Ð<Ñ=Ô=ˆÝ�œ b¨"Ñ-Ô-ØŸ
š
 J°
Ð#;Ñ<Ô<ñ	>ô 	>ð 	>ð 	>ð 	>r   c                 ó´   — |                      ddgddgddgg¦  «        }t          t          j        |d¬¦  «        |                      g d¢¦  «        ¦  «         d S )	Nr   r   r1   r   r   é   ©Úaxis)çæòöR^ä?r<   gD%¬†+å?r-   ©r   r   r   s      r   Ú$test_entropy_base_2d_nondefault_axisz0TestEntropy.test_entropy_base_2d_nondefault_axis<   sn   € à�ZŠZ˜#˜s˜ c¨3 Z°#°s°Ð<Ñ=Ô=ˆÝ�œ b¨qÐ1Ñ1Ô1ØŸ
š
Ð#GÐ#GÐ#GÑHÔHñ	Jô 	Jð 	Jð 	Jð 	Jr   c                 óò   — |                      ddgddgddgg¦  «        }|                      ddgddgddgg¦  «        }t          t          j        ||d¬¦  «        |                      g d¢¦  «        ¦  «         d S )	Nr   r   r1   r   r   r9   r:   )ç{[<þ“Í?r@   g¾C8¯XÀ?r-   r3   s       r   Útest_entropy_2d_nondefault_axisz+TestEntropy.test_entropy_2d_nondefault_axisB   s”   € à�ZŠZ˜#˜s˜ c¨3 Z°#°s°Ð<Ñ=Ô=ˆØ�ZŠZ˜#˜s˜ c¨3 Z°#°s°Ð<Ñ=Ô=ˆÝ�œ b¨"°1Ð5Ñ5Ô5ØŸ
š
Ð#GÐ#GÐ#GÑHÔHñ	Jô 	Jð 	Jð 	Jð 	Jr   c                 ó  — |                      ddgddgddgg¦  «        }|                      ddgddgg¦  «        }d}t          j        t          |¬¦  «        5  t	          j        ||¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   r   r1   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_errorI   sÔ   € à�ZŠZ˜#˜s˜ c¨3 Z°#°s°Ð<Ñ=Ô=ˆØ�ZŠZ˜#˜s˜ c¨3 ZÐ0Ñ1Ô1ˆØCˆÝŒ]�:¨WÐ5Ñ5Ô5ð 	"ð 	"ÝŒM˜"˜bÑ!Ô!Ð!ð	"ð 	"ð 	"ñ 	"ô 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"ð 	"øøøð 	"ð 	"ð 	"ð 	"ð 	"ð 	"s   ÁA:Á:A>ÂA>c                 ó®   — |                      ddgddgddgg¦  «        }t          t          j        |d¬¦  «        t          j        |¦  «        ¦  «         d S ©Nr   r   r1   r   r   r   r:   r-   r=   s      r   Ú1test_base_entropy_with_axis_0_is_equal_to_defaultz=TestEntropy.test_base_entropy_with_axis_0_is_equal_to_defaultQ   s`   € à�ZŠZ˜#˜s˜ c¨3 Z°#°s°Ð<Ñ=Ô=ˆÝ�œ b¨qÐ1Ñ1Ô1Ýœ bÑ)Ô)ñ	+ô 	+ð 	+ð 	+ð 	+r   c                 óî   — |                      ddgddgddgg¦  «        }|                      ddgddgddgg¦  «        }t          t          j        ||d¬¦  «        t          j        ||¦  «        ¦  «         d S rK   r-   r3   s       r   Ú,test_entropy_with_axis_0_is_equal_to_defaultz8TestEntropy.test_entropy_with_axis_0_is_equal_to_defaultW   sˆ   € à�ZŠZ˜#˜s˜ c¨3 Z°#°s°Ð<Ñ=Ô=ˆØ�ZŠZ˜#˜s˜ c¨3 Z°#°s°Ð<Ñ=Ô=ˆÝ�œ b¨"°1Ð5Ñ5Ô5Ýœ b¨"Ñ-Ô-ñ	/ô 	/ð 	/ð 	/ð 	/r   c                 ó¸   — |                      ddgddgddgg¦  «        }t          t          j        |j        ¦  «        t          j        |d¬¦  «        ¦  «         d S ©Nr   r   r1   r   r   r9   r:   ©r   r   r   r   ÚTr=   s      r   Útest_base_entropy_transposedz(TestEntropy.test_base_entropy_transposed^   sb   € à�ZŠZ˜#˜s˜ c¨3 Z°#°s°Ð<Ñ=Ô=ˆÝ�œ b¤dÑ+Ô+Ýœ b¨qÐ1Ñ1Ô1ñ	3ô 	3ð 	3ð 	3ð 	3r   c                 ó  — |                      ddgddgddgg¦  «        }|                      ddgddgddgg¦  «        }t          t          j        |j        |j        ¦  «        t          j        ||d¬¦  «        ¦  «         d S rP   rQ   r3   s       r   Útest_entropy_transposedz#TestEntropy.test_entropy_transposedd   sŒ   € à�ZŠZ˜#˜s˜ c¨3 Z°#°s°Ð<Ñ=Ô=ˆØ�ZŠZ˜#˜s˜ c¨3 Z°#°s°Ð<Ñ=Ô=ˆÝ�œ b¤d¨B¬DÑ1Ô1Ýœ b¨"°1Ð5Ñ5Ô5ñ	7ô 	7ð 	7ð 	7ð 	7r   c                 óÎ  — t           j                             d¦  «        }|                     |                     d¦  «        ¦  «        }|                     |                     d¦  «        ¦  «        }t	          j        ||d¬¦  «        }t          |d         t	          j        ||d         ¦  «        ¦  «         t          |d         t	          j        ||d	         ¦  «        ¦  «         d S )
Nl   Ü@”UáC<é   )é   r9   éÿÿÿÿr:   r   )r   .r9   )r9   .)ÚnpÚrandomÚdefault_rngr   r   r   r   )r   r   Úrngr.   ÚyÚress         r   Útest_entropy_broadcastingz%TestEntropy.test_entropy_broadcastingk   s´   € åŒi×#Ò#Ð$5Ñ6Ô6ˆØ�JŠJ�s—z’z !‘}”}Ñ%Ô%ˆØ�JŠJ�s—z’z &Ñ)Ô)Ñ*Ô*ˆÝŒm˜A˜q rÐ*Ñ*Ô*ˆÝ˜˜Aœ¥¤¨a°°6´Ñ ;Ô ;Ñ<Ô<Ð<Ý˜˜Aœ¥¤¨a°°6´Ñ ;Ô ;Ñ<Ô<Ð<Ð<Ð<r   c                 óð   — |                      d¦  «        }|                      d¦  «        }d}t          j        t          |¬¦  «        5  t	          j        ||¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )N)é
   r9   é   )é   rX   rC   rD   ©r#   rF   r   rG   r   r   )r   r   r.   r^   rH   s        r   Útest_entropy_shape_mismatchz'TestEntropy.test_entropy_shape_mismatcht   s´   € à�GŠG�KÑ Ô ˆØ�GŠG�GÑÔˆØCˆÝŒ]�:¨WÐ5Ñ5Ô5ð 	 ð 	 ÝŒM˜!˜QÑÔÐð	 ð 	 ð 	 ñ 	 ô 	 ð 	 ð 	 ð 	 ð 	 ð 	 ð 	 ð 	 øøøð 	 ð 	 ð 	 ð 	 ð 	 ð 	 s   ÁA+Á+A/Á2A/c                 óÈ   — |                      d¦  «        }d}t          j        t          |¬¦  «        5  t	          j        |d¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nrb   z!`base` must be a positive number.rD   éþÿÿÿr    re   )r   r   r.   rH   s       r   Útest_input_validationz!TestEntropy.test_input_validation|   s¤   € à�GŠG�B‰KŒKˆØ5ˆÝŒ]�:¨WÐ5Ñ5Ô5ð 	&ð 	&ÝŒM˜! "Ð%Ñ%Ô%Ð%ð	&ð 	&ð 	&ñ 	&ô 	&ð 	&ð 	&ð 	&ð 	&ð 	&ð 	&ð 	&øøøð 	&ð 	&ð 	&ð 	&ð 	&ð 	&s   ³AÁAÁAN)Ú__name__Ú
__module__Ú__qualname__r   r   r+   r/   r4   r7   r>   rA   rI   rL   rN   rS   rU   r`   rf   ri   © r   r   r   r      s¿  € € € € € Øð1ð 1ñ Ôð1ð ð	Gð 	Gñ Ôð	Gð ð9ð 9ñ Ôð9ð ð=ð =ñ Ôð=ð ð>ð >ñ Ôð>ð ðJð Jñ ÔðJð
 ðJð Jñ ÔðJð ð"ð "ñ Ôð"ð ð+ð +ñ Ôð+ð
 ð/ð /ñ Ôð/ð ð3ð 3ñ Ôð3ð
 ð7ð 7ñ Ôð7ð ð=ð =ñ Ôð=ð ð ð  ñ Ôð ð ð&ð &ñ Ôð&ð &ð &r   r   c                   óæ  — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	e
j                             dg d	¢¦  «        d
„ ¦   «         ZdddddœZe
j                             d ee                     ¦   «         ¦  «        ¦  «        d„ ¦   «         ZdddddœZe
j                             d ee                     ¦   «         ¦  «        ¦  «        d„ ¦   «         Ze
j                             dg d¢¦  «        d„ ¦   «         ZdS )ÚTestDifferentialEntropyzº
    Vasicek results are compared with the R package vsgoftest.

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

    c                 ób  — t           j                             d¦  «        }|                     d¦  «        }t	          j        |d¬¦  «        }t          |dd¬¦  «         t	          j        |dd¬	¦  «        }t          |d
d¬¦  «         t	          j        |dd¬	¦  «        }t          |dd¬¦  «         d S )Nr   éd   Úvasicek©Úmethodç¿dãÁ{õ?ç�íµ ÷Æ°>©Úrtolr9   )Úwindow_lengthrt   çµÄÊhäóñ?r"   çÿÃ€%—õ?©rZ   r[   ÚRandomStateÚstandard_normalr   Údifferential_entropyr   ©r   Úrandom_stateÚvaluesr   s       r   Ú!test_differential_entropy_vasicekz9TestDifferentialEntropy.test_differential_entropy_vasicek�   sÀ   € å”y×,Ò,¨QÑ/Ô/ˆØ×-Ò-¨cÑ2Ô2ˆåÔ,¨V¸IÐFÑFÔFˆÝ˜ °Ð5Ñ5Ô5Ð5åÔ,¨VÀ1Ø4=ð?ñ ?ô ?ˆå˜ °Ð5Ñ5Ô5Ð5åÔ,¨VÀ1Ø4=ð?ñ ?ô ?ˆå˜ °Ð5Ñ5Ô5Ð5Ð5Ð5r   c                 ót  — t           j                             d¦  «        }|                     d¦  «        }t	          j        |dd¬¦  «        }t          |g d¢d¬¦  «         t	          j        |ddd¬	¦  «        }t          |g d
¢d¬¦  «         t	          j        |ddd¬	¦  «        }t          |g d¢d¬¦  «         d S )Nr   ©rW   rq   r9   rr   )r;   rt   )ru   g‹Â.Šxõ?gOjM³ô?rv   rw   )r;   ry   rt   )rz   g\•›¨¥ñ?g�:èò?r"   )r{   gpÏó§�jõ?g80¹Qd­ô?r|   r€   s       r   Ú4test_differential_entropy_vasicek_2d_nondefault_axiszLTestDifferentialEntropy.test_differential_entropy_vasicek_2d_nondefault_axisŸ   s  € Ý”y×,Ò,¨QÑ/Ô/ˆØ×-Ò-¨hÑ7Ô7ˆåÔ,¨V¸!ÀIÐNÑNÔNˆÝØØ*Ð*Ð*Øð	
ñ 	
ô 	
ð 	
õ Ô,¨V¸!È1Ø4=ð?ñ ?ô ?ˆåØØ*Ð*Ð*Øð	
ñ 	
ô 	
ð 	
õ Ô,¨V¸!È1Ø4=ð?ñ ?ô ?ˆåØØ*Ð*Ð*Øð	
ñ 	
ô 	
ð 	
ð 	
ð 	
r   c                 ó\  — t           j                             d¦  «        }|                     d¦  «        }d}|j        d         }dd|dz  |hD ]^}|                     ||¬¦  «        }t          t          |¬¦  «        5  t          j	        ||d¬	¦  «         d d d ¦  «         n# 1 swxY w Y   Œ_d S )
Nr   r…   zhWindow length \({window_length}\) must be positive and less than half the sample size \({sample_size}\).r9   rY   rX   )ry   Úsample_sizerD   )ry   r;   )
rZ   r[   r}   r~   ÚshapeÚformatÚassert_raisesrG   r   r   )r   r�   r‚   Ú	error_strrˆ   ry   Úformatted_error_strs          r   Ú,test_differential_entropy_raises_value_errorzDTestDifferentialEntropy.test_differential_entropy_raises_value_errorº   s  € Ý”y×,Ò,¨QÑ/Ô/ˆØ×-Ò-¨hÑ7Ô7ˆð<ð 	ð
 ”l 1”oˆà  ! [°!¡^°[ÐAð 	ð 	ˆMà"+×"2Ò"2Ø+Ø'ð #3ñ #ô #Ðõ
 �zÐ1DÐEÑEÔEð ð ÝÔ*ØØ"/Øðñ ô ð ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð øð	ð 	s   Á<B Â B$	Â'B$	c                 óâ   — t           j                             d¦  «        }|                     d¦  «        }t	          j        |d¬¦  «        }t	          j        |¦  «        }t          ||¦  «         d S )Nr   )rq   rW   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Ó   se   € Ý”y×,Ò,¨QÑ/Ô/ˆØ×-Ò-¨hÑ7Ô7ˆåÔ,¨V¸!Ð<Ñ<Ô<ˆÝÔ4°VÑ<Ô<ˆÝ˜ Ñ1Ô1Ð1Ð1Ð1r   c                 óî   — t           j                             d¦  «        }|                     d¦  «        }t	          t          j        |j        ¦  «        j        t          j        |d¬¦  «        ¦  «         d S )Nr   r…   r9   r:   )rZ   r[   r}   r~   r   r   r   rR   )r   r�   r‚   s      r   Ú)test_base_differential_entropy_transposedzATestDifferentialEntropy.test_base_differential_entropy_transposedÛ   sl   € Ý”y×,Ò,¨QÑ/Ô/ˆØ×-Ò-¨hÑ7Ô7ˆåÝÔ& v¤xÑ0Ô0Ô2ÝÔ& v°AÐ6Ñ6Ô6ñ	
ô 	
ð 	
ð 	
ð 	
r   c                 ór  — t           j                             d¦  «        }d}t          j        t
          |¬¦  «        5  t          j        |d¬¦  «         d d d ¦  «         n# 1 swxY w Y   d}t          j        t
          |¬¦  «        5  t          j        |d¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )	Nrb   z+`base` must be a positive number or `None`.rD   rh   r    z`method` must be one of...z	ekki-ekkirs   )rZ   r[   ÚrandrF   r   rG   r   r   )r   r.   rH   s      r   ri   z-TestDifferentialEntropy.test_input_validationä   s0  € ÝŒI�NŠN˜2ÑÔˆà?ˆÝŒ]�:¨WÐ5Ñ5Ô5ð 	3ð 	3ÝÔ& q¨rÐ2Ñ2Ô2Ð2ð	3ð 	3ð 	3ñ 	3ô 	3ð 	3ð 	3ð 	3ð 	3ð 	3ð 	3øøøð 	3ð 	3ð 	3ð 	3ð /ˆÝŒ]�:¨WÐ5Ñ5Ô5ð 	>ð 	>ÝÔ& q°Ð=Ñ=Ô=Ð=ð	>ð 	>ð 	>ñ 	>ô 	>ð 	>ð 	>ð 	>ð 	>ð 	>ð 	>ð 	>øøøð 	>ð 	>ð 	>ð 	>ð 	>ð 	>s#   ½A Á A$Á'A$ÂB,Â,B0Â3B0rt   )rr   úvan esÚebrahimiÚcorreac                 óè   — |dk    rdnd}t           j                             |d¬¦  «        }t           j                             ¦   «         }t          j        ||¬¦  «        }t          ||d¬¦  «         d S )	Nr˜   é'  i@B r   ©Úsizer�   rs   ç{®Gázt?rw   )r   ÚnormÚrvsr   r   r   )r   rt   ÚnrŸ   Úexpectedr_   s         r   Útest_consistencyz(TestDifferentialEntropy.test_consistencyï   sq   € ð ˜xÒ'Ð'ˆEˆE¨WˆÝŒj�nŠn !°!ˆnÑ4Ô4ˆÝ”:×%Ò%Ñ'Ô'ˆÝÔ(¨°VÐ<Ñ<Ô<ˆÝ˜˜X¨EÐ2Ñ2Ô2Ð2Ð2Ð2r   )gòÒMbXÉ?ç�•C‹lç»?)g‰A`åÐ"Ë?g)\�Âõ(¼?)gHáz®GÁ?gyé&1¬¼?)gü©ñÒMbÀ?r£   )rr   r–   r˜   r—   zmethod, expectedc                 óŽ  — d\  }}}|\  }}t           j                             ||fd¬¦  «        }t           j                             ¦   «         }	t          j        |||d¬¦  «        }
t          t          j        t          j        |
|	z
  dz  ¦  «        ¦  «        |d¬¦  «         t          t          j	        |
¦  «        |d	¬¦  «         d S ©
N)rš   é2   é   r   r›   rY   )ry   rt   r;   rX   r�   )Úatolgü©ñÒMb`?)
r   rž   rŸ   r   r   r   rZ   ÚsqrtÚmeanÚstd©r   rt   r¡   Úrepsr    ÚmÚrmse_expectedÚstd_expectedrŸ   Útrue_entropyr_   s              r   Útest_norm_rmse_stdz*TestDifferentialEntropy.test_norm_rmse_std  sÉ   € ð "‰
ˆˆa�Ø&.Ñ#ˆ�|ÝŒj�nŠn 4¨ )¸!ˆnÑ<Ô<ˆÝ”z×)Ò)Ñ+Ô+ˆÝÔ(¨¸AØ06¸RðAñ Aô Aˆå�œ¥¤¨¨|Ñ);¸aÑ(?Ñ @Ô @ÑAÔAØ%¨Eð	3ñ 	3ô 	3ð 	3å�œ˜s™œ \¸Ð>Ñ>Ô>Ð>Ð>Ð>r   )g¢E¶óýÔÈ?ç‹lçû©ñÂ?)g¶óýÔxéÆ?gßO�—nÃ?)g×£p=
×Ã?gÛù~j¼tÃ?)g‡ÙÎ÷SÃ?r³   c                 óŽ  — d\  }}}|\  }}t           j                             ||fd¬¦  «        }t           j                             ¦   «         }	t          j        |||d¬¦  «        }
t          t          j        t          j        |
|	z
  dz  ¦  «        ¦  «        |d¬¦  «         t          t          j	        |
¦  «        |d	¬¦  «         d S r¥   )
r   ÚexponrŸ   r   r   r   rZ   r©   rª   r«   r¬   s              r   Útest_expon_rmse_stdz+TestDifferentialEntropy.test_expon_rmse_std  sÉ   € ð "‰
ˆˆa�Ø&.Ñ#ˆ�|ÝŒk�oŠo D¨! 9¸1ˆoÑ=Ô=ˆÝ”{×*Ò*Ñ,Ô,ˆÝÔ(¨¸AØ06¸RðAñ Aô Aˆå�œ¥¤¨¨|Ñ);¸aÑ(?Ñ @Ô @ÑAÔAØ%¨Eð	3ñ 	3ô 	3ð 	3å�œ˜s™œ \¸Ð>Ñ>Ô>Ð>Ð>Ð>r   z	n, method))r"   r–   )rc   r—   )ié  rr   c                 ó®   — t           j                             |fd¬¦  «        }t          j        |¦  «        }t          j        ||¬¦  «        }||k    sJ ‚d S )Nr   r›   rs   )r   rž   rŸ   r   )r   r    rt   rŸ   Úres1Úres2s         r   Útest_method_autoz(TestDifferentialEntropy.test_method_auto)  sS   € õ Œj�nŠn 1 $°QˆnÑ7Ô7ˆÝÔ)¨#Ñ.Ô.ˆÝÔ)¨#°fÐ=Ñ=Ô=ˆØ�tŠ|ˆ|ˆ|ˆ|ˆ|ˆ|r   N)rj   rk   rl   Ú__doc__rƒ   r†   rŽ   r‘   r“   ri   rF   ÚmarkÚparametrizer¢   Únorm_rmse_std_casesÚlistÚitemsr²   Úexpon_rmse_std_casesr¶   rº   rm   r   r   ro   ro   „   sÒ  € € € € € ðð ð6ð 6ð 6ð 
ð 
ð 
ð6ð ð ð22ð 2ð 2ð
ð 
ð 
ð	>ð 	>ð 	>ð „[×Ò˜Xð (>ð (>ð (>ñ ?ô ?ð3ð 3ñ?ô ?ð3ð '5Ø%3Ø%3Ø'5ð	ð Ðð „[×ÒÐ/Ø!˜TÐ"5×";Ò";Ñ"=Ô"=Ñ>Ô>ñ@ô @ð?ð ?ñ@ô @ð?ð  (6Ø&4Ø&4Ø(6ð	ð Ðð „[×ÒÐ/Ø!˜TÐ"6×"<Ò"<Ñ">Ô">Ñ?Ô?ñAô Að?ð ?ñAô Að?ð „[×Ò˜[ð +>ð +>ð +>ñ ?ô ?ðð ñ?ô ?ðð ð r   ro   )r'   rF   r   r‹   ÚnumpyrZ   Únumpy.testingr   Úscipyr   Úscipy.conftestr   Úscipy._lib._array_apir   r   r	   r   ro   rm   r   r   ú<module>rÇ      sö   ðØ €€€Ø €€€Ø *Ð *Ð *Ð *Ð *Ð *à Ð Ð Ð Ø )Ð )Ð )Ð )Ð )Ð )à Ð Ð Ð Ð Ð Ø /Ð /Ð /Ð /Ð /Ð /Ø RÐ RÐ RÐ RÐ RÐ RÐ RÐ RÐ RÐ Rðu&ð u&ð u&ð u&ð u&ñ u&ô u&ð u&ðplð lð lð lð lñ lô lð lð lð lr   