o
    1ήc                     @   sL   d dl mZmZ d dlZd dlZd dlmZmZ ee Z	G dd dZ
dS )    )assert_assert_array_equalN)	GeneratorMT19937c                   @   sl   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S )TestRegressionc                 C   sL   t dddD ]}t|dd}tt |t j ko!t |t jk qd S )Ng      g      @      2   )nplinspacemt19937vonmisesr   allpi)selfmur r   \/tmp/pip-target-vg8gfxp4/lib/python/numpy/random/tests/test_generator_mt19937_regressions.pytest_vonmises_range   s   (z"TestRegression.test_vonmises_rangec              	   C   sZ   t ttjddddddk  t ttjddddddk d}t tj| dk d S )	N         
   size   r   ) r   r   )r   r
   r   r   hypergeometric)r   argsr   r   r   test_hypergeometric_range   s     z(TestRegression.test_hypergeometric_rangec                 C   s~   d}t td}|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   	logseriesr
   sumr   )r   Nr   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 ]1}t td}tj|td}|| 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  dtyper#   r   r   r   )r   r   r
   arrayobjectshuffler   )r   tr   shuffledexpectedr   r   r   test_shuffle_mixed_dimension+   s   
&z+TestRegression.test_shuffle_mixed_dimensionc                 C   sX   t g d}tdD ]}tt|}ttd}t|jddt dd d| qd S )N)
r      r   r   r   r   r   r7   r   r   r   i  r   g      $@)r   p)r
   r0   ranger   r   r   choiceones)r   resir   mr   r   r   test_call_within_randomstate7   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   multivariate_normalr
   int_int64r   r   r   r   #test_multivariate_normal_size_types@   s    z2TestRegression.test_multivariate_normal_size_typesc                 C   s8   t td}|jdddd}ttt| d d S )NiIg-C6?d   r   zNans in mt19937.beta)r   r   betar   r
   anyisnan)r   r   xr   r   r   test_beta_small_parametersH   s   z)TestRegression.test_beta_small_parametersc              	   C   s   t td}g d}g d}tjtjtjfD ]8}tj||dt| }|j||d}t	||v  t
t |j||d d W d    n1 sIw   Y  qd S )N  )r   r#   r   )r   r   r#   r.   )r8   g?)r   r   r
   float16float32float64r0   r%   r:   r   pytestraises
ValueError)r   r   acountsdtprobscr   r   r   "test_choice_sum_of_probs_toleranceO   s   z1TestRegression.test_choice_sum_of_probs_tolerancec                 C   sF   t td}tddg}tdD ]}|| qdd l}|  d S )NrK   rR     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarE   r   )r   r   r
   r0   r9   r2   gccollectr   r   rR   _rY   r   r   r   1test_shuffle_of_array_of_different_length_strings]   s   z@TestRegression.test_shuffle_of_array_of_different_length_stringsc                 C   sV   t td}tjtdtdgtd}tdD ]}|| qdd l}|	  d S )NrK   r   r   r.   r!   r   )
r   r   r
   r0   aranger1   r9   r2   rY   rZ   r[   r   r   r    test_shuffle_of_array_of_objectsl   s   z/TestRegression.test_shuffle_of_array_of_objectsc                 C   s   G dd dt j}ttd}t d|}||}t|t g d t|t d| G dd d}ttd}| }||}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 ZdS )z3TestRegression.test_permutation_subclass.<locals>.Mr   c                 S   s   | j S )N)rR   rC   r   r   r   	__array__   s   z=TestRegression.test_permutation_subclass.<locals>.M.__array__N)r`   ra   rb   r
   r^   rR   rc   r   r   r   r   M   s    
rd   )r   r   r   r   r#   r   )
r
   ndarrayr   r   r^   viewpermutationr   r0   rc   )r   r&   r   origpermrd   r>   r   r   r   test_permutation_subclassz   s   

z(TestRegression.test_permutation_subclassc                 C   sT   t ddks	J tt dgd t jdgdd}tjdgtjd}t|| d S )Ng        floatr.   )r   standard_gammar   r
   r0   rM   )r   actualr5   r   r   r   test_gamma_0   s
   zTestRegression.test_gamma_0N)r`   ra   rb   r   r    r*   r6   r?   rD   rJ   rW   r]   r_   rj   rn   r   r   r   r   r   	   s    		r   )numpy.testingr   r   numpyr
   rO   numpy.randomr   r   r   r   r   r   r   r   <module>   s    
