U
    O8Úc?  ã                   @   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¡oDt  |t jk¡ƒ qd S )Ng      Àg      @é   é   é2   )ÚnpZlinspacer   ZmtrandZvonmisesr   ÚallÚpi)ÚselfÚmuÚr© r   úF/tmp/pip-unpacked-wheel-fd_gsd75/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}|rltjd
krl| d¡ |D ]}t tjj|Ž dkƒ qpd 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rvsnÚfreqÚmsgr   r   r   Útest_logseries_convergence"   s    z)TestRegression.test_logseries_convergencec                 C   sŽ   dddd gdddd gdddd gdddd gfD ]\}t j d¡ t|ƒ}t |¡ t j|d |d |d |d gtd	}tt j|td	|ƒ q,d S )
Nr   r&   r   )r   r   )r&   r&   )r   r   i90  r   ©Zdtype)r
   r   r'   ÚlistÚshuffleÚarrayÚobjectr   )r   ÚtZshuffledÚexpectedr   r   r   Útest_shuffle_mixed_dimension2   s    



ý
&z+TestRegression.test_shuffle_mixed_dimensionc                 C   sp   t j ¡ }t  ddddddddddg
¡}tdƒD ]:}t j |¡ | d	¡ t|jd
d
t  d
¡d d|ƒ q0d S )Nr   é   é   r&   r   é	   r   r   iá  r   g      $@)r   Úp)	r
   r   ZRandomStater0   Ú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_normalÚ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'   Úbetar   ÚanyÚisnan)r   Úxr   r   r   Útest_beta_small_parametersP   s    z)TestRegression.test_beta_small_parametersc                 C   s„   t j d¡ dddg}dddg}t jt jt jfD ]N}t j||dt|ƒ }t jj||d}t	||kƒ t
tt jj||d d q0d S )	NéÒ  r   r&   r   r   r-   )r8   gÍÌÌÌÌÌì?)r
   r   r'   Zfloat16Zfloat32Zfloat64r0   r(   r:   r   r   Ú
ValueError)r   ÚaÚcountsÚ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 )NrH   rJ   Aè  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarB   r   )r
   r   r'   r0   r9   r/   ÚgcÚcollect©r   rJ   Ú_rO   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 |¡ q2dd l}| 	¡  d S )NrH   r   r   r-   r$   r   )
r
   r   r'   r0   Úaranger1   r9   r/   rO   rP   rQ   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  dddg¡ƒ t|t  d¡ |¡ƒ G dd„ dƒ}t j d¡ |ƒ }t j |¡}t|t  ddd	ddg¡ƒ 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&   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)rJ   r@   r   r   r   Ú	__array__Ž   s    z=TestRegression.test_permutation_subclass.<locals>.M.__array__N)rV   rW   rX   r
   rT   rJ   rY   r   r   r   r   ÚM‹   s   
rZ   r   r   )
r
   Zndarrayr   r'   rT   ÚviewZpermutationr   r0   rY   )r   r)   ÚorigÚpermrZ   r;   r   r   r   Útest_permutation_subclass   s    z(TestRegression.test_permutation_subclassN)rV   rW   rX   r   r#   r,   r4   r>   rA   rG   rN   rS   rU   r^   r   r   r   r   r   	   s   
r   )	r   Znumpy.testingr   r   r   Znumpyr   r
   r   r   r   r   r   Ú<module>   s   