o
    ék)hV  ã                   @   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   )ÚnpZlinspacer   ZmtrandZvonmisesr   ÚallZpi)ÚselfZmuÚr© r   úBlib/python3.10/site-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   ZhypergeometricÚsysÚmaxsizeÚplatformÚappend)r   ÚargsZ	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¡| }d|d›d}t|d	k|ƒ t  |d
k¡| }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   ÚseedZ	logseriesÚsumr   )r   ÚNZrvsnZ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   r+   r,   N)r*   r$   r   Ni90  r   r   r   r$   ©Údtype)r
   r   r%   ÚlistÚshuffleÚarrayÚobjectr   )r   ÚtZshuffledZ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   r6   r   r   r   iá  r   g      $@)r   Úp)	r
   r   ZRandomStater1   Úranger%   r   ÚchoiceZ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   Zmultivariate_normalZint_Z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%   Zbetar   ÚanyZ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$   r-   )r8   gÍÌÌÌÌÌì?)r
   r   r%   Zfloat16Zfloat32Zfloat64r1   r&   r:   r   r   Ú
ValueError)r   ÚaZcountsZdtZ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 )NrD   rF   Aè  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaar@   r   )r
   r   r%   r1   r9   r0   ÚgcÚcollect©r   rF   Ú_rI   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 )NrD   r   r   r-   r"   r   )
r
   r   r%   r1   Úaranger2   r9   r0   rI   rJ   rK   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   r'   ‚   s    r'   r   r   )r   r$   r   c                   @   s    e Zd Ze d¡Zddd„ZdS )z3TestRegression.test_permutation_subclass.<locals>.Mr   Nc                 S   s   | j S )N)rF   )r   r.   Úcopyr   r   r   Ú	__array__Ž   s   z=TestRegression.test_permutation_subclass.<locals>.M.__array__)NN)rP   rQ   rR   r
   rN   rF   rT   r   r   r   r   ÚM‹   s    
rU   )r$   r   r   r   r   r   )
r
   Zndarrayr   r%   rN   ÚviewZpermutationr   r1   rT   )r   r'   ZorigZpermrU   r;   r   r   r   Útest_permutation_subclass   s   z(TestRegression.test_permutation_subclassN)rP   rQ   rR   r   r!   r)   r4   r>   r?   rC   rH   rM   rO   rW   r   r   r   r   r   	   s    
r   )	r   Znumpy.testingr   r   r   Znumpyr   r
   r   r   r   r   r   Ú<module>   s
    