U
    Kf                     @   sZ   d dl Z d dlZd dlmZmZmZ d dlZd dlmZ G dd dZ	dd Z
dd	 ZdS )
    N)assert_assert_array_equalassert_raises)randomc                   @   s   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d Zdd Zdd Zejjedjdk dd d!d" Zd#d$ Zd%d& Zd'S )(TestRegressionc                 C   sL   t dddD ]8}t|dd}tt |t j koBt |t jk qd S )Ng      g      @      2   )npZlinspacer   Zvonmisesr   allpi)selfmur r   R/tmp/pip-unpacked-wheel-6z689xxv/numpy/random/tests/test_randomstate_regression.pytest_VonMises_range   s    z"TestRegression.test_VonMises_rangec              	   C   s   t ttjddddddk  t ttjddddddk dg}tjd	k}|rhtjd
krh|d |D ]}t tj| dk qld S )N         
   size   r   ) r   r           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 d t 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   seedZ	logseriesr
   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 ]Z}t 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   90  r   dtype)r   r(   listshuffler
   arrayobjectr   )r   tZshuffledexpectedr   r   r   test_shuffle_mixed_dimension6   s    





&z+TestRegression.test_shuffle_mixed_dimensionc                 C   sl   t  }tddddddddddg
}tdD ]8}t | |d	 t|jd
d
td
d d| q.d S )Nr         r'   r   	   r   r   i  r   g      $@)r   p)	r   RandomStater
   r3   ranger(   r   choiceZones)r   mresir   r   r   test_call_within_randomstateB   s    

z+TestRegression.test_call_within_randomstatec                 C   sR   t jdgdggdd t jdgdggtdd t jdgdggtdd d S )Nr   r   r   )r   Zmultivariate_normalr
   int_int64r   r   r   r   #test_multivariate_normal_size_typesL   s    z2TestRegression.test_multivariate_normal_size_typesc                 C   s6   t d t jdddd}ttt| d d S )NiIg-C6?d   r   zNans in random.beta)r   r(   betar   r
   anyisnan)r   xr   r   r   test_beta_small_parametersT   s    
z)TestRegression.test_beta_small_parametersc                 C   s~   t d dddg}dddg}tjtjtjfD ]J}tj||dt| }t j||d}t	||k t
tt j||d d q.d S )	N  r   r'   r   r   r/   )r;   g?)r   r(   r
   Zfloat16Zfloat32Zfloat64r3   r)   r>   r   r   
ValueError)r   acountsdtZprobscr   r   r   "test_choice_sum_of_probs_tolerance[   s    


z1TestRegression.test_choice_sum_of_probs_tolerancec                 C   sD   t d tddg}tdD ]}t | q dd l}|  d S )NrM   rO   A  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarG   r   )r   r(   r
   r3   r=   r2   gccollectr   rO   _rT   r   r   r   1test_shuffle_of_array_of_different_length_stringsh   s    
z@TestRegression.test_shuffle_of_array_of_different_length_stringsc                 C   sT   t d tjtdtdgtd}tdD ]}t | q0dd l}|	  d S )NrM   r   r   r/   r%   r   )
r   r(   r
   r3   aranger4   r=   r2   rT   rU   rV   r   r   r    test_shuffle_of_array_of_objectsw   s    
z/TestRegression.test_shuffle_of_array_of_objectsc              	   C   s   G dd dt j}td t d|}t|}t|t dddg t|t d| G dd d}td | }t|}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)rO   rE   r   r   r   	__array__   s    z=TestRegression.test_permutation_subclass.<locals>.M.__array__N)r[   r\   r]   r
   rY   rO   r^   r   r   r   r   M   s   
r_   r   r   )
r
   Zndarrayr   r(   rY   viewZpermutationr   r3   r^   )r   r*   origpermr_   r?   r   r   r   test_permutation_subclass   s    



z(TestRegression.test_permutation_subclassc              	   C   s@   t jdkrdnd}tjdd tjddd|d	 W 5 Q R X d S )
Nbigz<i4z>i4znon-native byteorder is notmatchr      r   )r   r0   )r   	byteorderpytestZdeprecated_callr   randint)r   Zother_byteord_dtr   r   r   test_warns_byteorder   s    z#TestRegression.test_warns_byteorderc                 C   s:   t jd}t jjdd}|dd|ddks6td S )Ni[)r(   r   rG   )r
   r   r<   rj   AssertionError)r   Zrs1Zrs2r   r   r   "test_named_argument_initialization   s    z1TestRegression.test_named_argument_initializationc                 C   s   t jjddgd dd}|jt tks,tt jjddgd ddd}|jt tksZtt jjddd}|jt tks~tt jjdddd}|jt tkstd S )	Nr   g?r'   )r;   r   F)r;   replacer   r   )rn   r   )r
   r   r>   r0   intrl   )r   rR   r   r   r   test_choice_retun_dtype   s    z&TestRegression.test_choice_retun_dtypelr   zCannot test with 32-bit C long)reasonc                 C   sH   t d tjdddddddd	d
dg
dd}t jddd}t|| d S )Nr   l   
 l   /*/ l   u&-n l   LC0 l   C34 l   RD7 l   v l   g}1 i	tll   ^C? rD   r/   r   r   r   )r   r(   r
   r3   rj   r   )r   r6   actualr   r   r   test_randint_117   s    
    zTestRegression.test_randint_117c              	   C   s6   t jd ttddddddgdddddg d S )Nr.   r   r         ?g      ?g      ?)r
   r   r(   r   binomialrE   r   r   r   test_p_zero_stream   s    z!TestRegression.test_p_zero_streamc                 C   sd   t jd t ddddddddddg
ddddddddddg
g}ttjdgdggd	d
d| d S )Ni_ r   r   r   r'   r   r   r   ru   )r'   r   r   )r
   r   r(   r3   r   rv   )r   r6   r   r   r   test_n_zero_stream   s    z!TestRegression.test_n_zero_streamN)r[   r\   r]   r   r$   r-   r7   rB   rF   rL   rS   rX   rZ   rc   rk   rm   rp   ri   markZskipifr
   Ziinfomaxrt   rw   rx   r   r   r   r   r      s(   

	r   c                   C   s4   t dg jdkstt jdg ddjdks0td S )Nr   )r   r   )r9   r   r   r   )r9   r   r   r   )r   multinomialshaperl   r   r   r   r   test_multinomial_empty   s    r}   c                	   C   s*   t jtdd tdd W 5 Q R X d S )Nzpvals must be a 1-dre   r   g333333?)ri   Zraises	TypeErrorr   r{   r   r   r   r   test_multinomial_1d_pval   s    r   )r   ri   Znumpy.testingr   r   r   Znumpyr
   r   r   r}   r   r   r   r   r   <module>   s    B