o
    6˜¿aM  ã                   @   sB   d dl Z d dlmZmZmZ d dlmZ d dlZG dd„ dƒZdS )é    N)Úassert_Úassert_array_equalÚassert_raises)Úrandomc                   @   sd   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ ZdS )ÚTestRegressionc                 C   sN   t  ddd¡D ]}tj |dd¡}tt  |t j k¡o"t  |t jk¡ƒ qd S )Ng      Àg      @é   é   é2   )ÚnpÚlinspacer   ÚmtrandÚvonmisesr   ÚallÚpi)ÚselfÚmuÚr© r   úD/usr/lib/python3/dist-packages/numpy/random/tests/test_regression.pyÚtest_VonMises_range   s   (þz"TestRegression.test_VonMises_rangec              	   C   sŽ   t t tjjddddddk ¡ƒ t t tjjddddddk¡ƒ dg}tjd	k}|r6tjd
kr6| d¡ |D ]}t tjj|Ž dkƒ q8d S )Né   é   é   é
   ©Úsizeé   r   )éþÿ r   r   l        Úwin32)ì   þÿÿr   r   )	r   r
   r   r   ÚhypergeometricÚsysÚmaxsizeÚplatformÚappend)r   ÚargsÚ	is_64bitsÚargr   r   r   Útest_hypergeometric_range   s   ""ÿ

ÿz(TestRegression.test_hypergeometric_rangec                 C   sˆ   d}t j d¡ t jjd|d}t  |dk¡t|ƒ }d|d›d}t|d	k|ƒ t  |d
k¡t|ƒ }d|d›d}t|dk |ƒ d S )Néè  r   gš™™™™™é?r   r   zFrequency was Úfz, should be > 0.45gÍÌÌÌÌÌÜ?é   z, should be < 0.23gq=
×£pÍ?)r
   r   ÚseedÚ	logseriesÚsumÚfloatr   )r   ÚNÚrvsnÚfreqÚmsgr   r   r   Útest_logseries_convergence"   s   z)TestRegression.test_logseries_convergencec                 C   s~   g d¢g d¢g d¢g d¢fD ].}t j d¡ t|ƒ}t |¡ t j|d |d |d |d	 gtd
}tt j|td
|ƒ qd S )N)r   r+   r   N)©r   r   ©r+   r+   ©r   r   N)r   r6   r7   N)r5   r+   r   Ni90  r   r   r   r+   ©Údtype)r
   r   r,   ÚlistÚshuffleÚarrayÚobjectr   )r   ÚtÚshuffledÚexpectedr   r   r   Útest_shuffle_mixed_dimension2   s   ý
&øz+TestRegression.test_shuffle_mixed_dimensionc                 C   s`   t j ¡ }t  g d¢¡}tdƒD ]}t j |¡ | d¡ t|jddt  d¡d d|ƒ qd S )N)
r   é   é   r+   r   é	   r   rC   r   r   r   iá  r   g      $@)r   Úp)	r
   r   ÚRandomStater<   Úranger,   r   ÚchoiceÚones)r   ÚmÚresÚir   r   r   Útest_call_within_randomstate>   s   

"üz+TestRegression.test_call_within_randomstatec                 C   sX   t jjdgdggdd t jjdgdggt  d¡d t jjdgdggt  d¡d d S )Nr   r   r   )r
   r   Úmultivariate_normalÚint_Úint64©r   r   r   r   Ú#test_multivariate_normal_size_typesH   s   "z2TestRegression.test_multivariate_normal_size_typesc                 C   s:   t j d¡ t jjdddd}tt  t  |¡¡ dƒ d S )NiÒ–Ig-Cëâ6?éd   r   zNans in np.random.beta)r
   r   r,   Úbetar   ÚanyÚisnan)r   Úxr   r   r   Útest_beta_small_parametersP   s   z)TestRegression.test_beta_small_parametersc                 C   s€   t j d¡ g d¢}g d¢}t jt jt jfD ]'}t j||dt|ƒ }t jj||d}t	||v ƒ t
tt jj||d d qd S )NéÒ  )r   r+   r   )r   r   r+   r8   )rE   gÍÌÌÌÌÌì?)r
   r   r,   Úfloat16Úfloat32Úfloat64r<   r.   rH   r   r   Ú
ValueError)r   ÚaÚcountsÚdtÚprobsÚcr   r   r   Ú"test_choice_sum_of_probs_toleranceW   s   üz1TestRegression.test_choice_sum_of_probs_tolerancec                 C   sH   t j d¡ t  ddg¡}tdƒD ]}t j |¡ qdd l}| ¡  d S )NrY   r^   Áè  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarS   r   )r
   r   r,   r<   rG   r;   ÚgcÚcollect©r   r^   Ú_re   r   r   r   Ú1test_shuffle_of_array_of_different_length_stringsd   s   z@TestRegression.test_shuffle_of_array_of_different_length_stringsc                 C   sX   t j d¡ t jt  d¡t  d¡gtd}tdƒD ]}t j |¡ qdd l}| 	¡  d S )NrY   r   r   r8   r)   r   )
r
   r   r,   r<   Úaranger=   rG   r;   re   rf   rg   r   r   r   Ú test_shuffle_of_array_of_objectss   s   z/TestRegression.test_shuffle_of_array_of_objectsc                 C   s¼   G dd„ dt jƒ}t j d¡ t  d¡ |¡}t j |¡}t|t  g d¢¡ƒ t|t  d¡ |¡ƒ G dd„ dƒ}t j d¡ |ƒ }t j |¡}t|t  g d¢¡ƒ t| 	¡ t  d	¡ƒ d S )
Nc                   @   s   e Zd ZdS )z3TestRegression.test_permutation_subclass.<locals>.NN)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r0   ‚   s    r0   r   r   )r   r+   r   c                   @   s   e Zd Ze d¡Zdd„ ZdS )z3TestRegression.test_permutation_subclass.<locals>.Mr   c                 S   s   | j S )N)r^   rQ   r   r   r   Ú	__array__Ž   s   z=TestRegression.test_permutation_subclass.<locals>.M.__array__N)rl   rm   rn   r
   rj   r^   ro   r   r   r   r   ÚM‹   s    
rp   )r+   r   r   r   r   r   )
r
   Úndarrayr   r,   rj   ÚviewÚpermutationr   r<   ro   )r   r0   ÚorigÚpermrp   rJ   r   r   r   Útest_permutation_subclass   s   z(TestRegression.test_permutation_subclassN)rl   rm   rn   r   r(   r4   rA   rM   rR   rX   rc   ri   rk   rv   r   r   r   r   r   	   s    
r   )	r!   Únumpy.testingr   r   r   Únumpyr   r
   r   r   r   r   r   Ú<module>   s
    