o
    Ggl                      @   sB   d dl mZmZ d dlZd dlZd dlmZmZ G dd dZ	dS )    )assert_assert_array_equalN)	GeneratorMT19937c                   @   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dd Zdd  Zd!d" Zd#d$ Zd%d& Zd'S )(TestRegressionc                 C   s   t td| _d S )Nl   (vn4Ti )r   r   mt19937self r
   vC:\Users\micha\Documents\internet-seite\env\Lib\site-packages\numpy/random/tests/test_generator_mt19937_regressions.pysetup_method	   s   zTestRegression.setup_methodc                 C   sN   t dddD ]}| j|dd}tt |t j ko"t |t jk qd S )Ng      g      @      2   )npZlinspacer   Zvonmisesr   allpi)r	   murr
   r
   r   test_vonmises_range   s   (z"TestRegression.test_vonmises_rangec              	   C   s`   t t| jjddddddk  t t| jjddddddk d}t | jj| dk d S )	N         
   size   r   ) r   r   )r   r   r   r   Zhypergeometric)r	   argsr
   r
   r   test_hypergeometric_range   s   ""z(TestRegression.test_hypergeometric_rangec                 C   st   d}| 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  g?r   r   zFrequency was fz, should be > 0.45g?   z, should be < 0.23gq=
ףp?)r   Z	logseriesr   sumr   )r	   NZ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   Z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   r3   r   r   r   i  r   g      $@)r   p)r   r-   ranger   r   r   choiceones)r	   resir   mr
   r
   r   test_call_within_randomstate7   s   "z+TestRegression.test_call_within_randomstatec                 C   sX   | j jdgdggdd | j jdgdggtdd | j jdgdggtdd d S )Nr   r   r   )r   Zmultivariate_normalr   int_int64r   r
   r
   r   #test_multivariate_normal_size_types@   s   "z2TestRegression.test_multivariate_normal_size_typesc                 C   s.   | j jdddd}ttt| d d S )Ng-C6?d   r   zNans in mt19937.beta)r   betar   r   anyisnan)r	   xr
   r
   r   test_beta_small_parametersH   s   z)TestRegression.test_beta_small_parametersc                 C   s   | j dd d S )Ngn5gWw'&l7)r   r@   r   r
   r
   r   test_beta_very_small_parametersN   s   z.TestRegression.test_beta_very_small_parametersc                 C   s>   t dj}| jj|d |d dd}t t |rJ d S )Ng      ?    (   r   r   )r   Zfinfotinyr   r@   rA   rB   )r	   rH   rC   r
   r
   r   'test_beta_ridiculously_small_parametersR   s   z6TestRegression.test_beta_ridiculously_small_parametersc                 C   sX   d}d}d}| j j|||d}t|dk}d}d| |  k r'd| k s*J  J d S )Ng{Gzd?i@B r   r   gSis@gffffff?g?)r   r@   r   count_nonzero)r	   abnrC   ZnzerosZexpected_freqr
   r
   r   !test_beta_expected_zero_frequencyY   s   (z0TestRegression.test_beta_expected_zero_frequencyc              	   C   s   g d}g d}t jt jt jfD ]:}t j||dt| }| jj||d}t||v  t	
t | jj||d d W d    n1 sEw   Y  qd S )N)r   r"   r   )r   r   r"   r+   )r4   g?)r   Zfloat16float32Zfloat64r-   r#   r   r6   r   pytestZraises
ValueError)r	   rK   countsdtZprobscr
   r
   r   "test_choice_sum_of_probs_tolerancep   s   z1TestRegression.test_choice_sum_of_probs_tolerancec                 C   s<   t ddg}tdD ]}| j| qdd l}|  d S )NrK   A  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaar?   r   )r   r-   r5   r   r/   gccollectr	   rK   _rV   r
   r
   r   1test_shuffle_of_array_of_different_length_strings}   s
   z@TestRegression.test_shuffle_of_array_of_different_length_stringsc                 C   sL   t jt dt dgtd}tdD ]}| j| qdd l}|  d S )Nr   r   r+   r    r   )	r   r-   aranger.   r5   r   r/   rV   rW   rX   r
   r
   r    test_shuffle_of_array_of_objects   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dZdS )z3TestRegression.test_permutation_subclass.<locals>.Mr   Nc                 S   s   | j S )N)rK   )r	   r,   copyr
   r
   r   	__array__   s   z=TestRegression.test_permutation_subclass.<locals>.M.__array__)NN)r]   r^   r_   r   r[   rK   ra   r
   r
   r
   r   M   s    
rb   )r   r   r   r   r"   r   )
r   Zndarrayr   r   r[   viewZpermutationr   r-   ra   )r	   r$   r   origpermrb   r:   r
   r
   r   test_permutation_subclass   s   

z(TestRegression.test_permutation_subclassc                 C   sZ   | j ddks
J t| j dgd | j jdgdd}tjdgtjd}t|| d S )Ng        floatr+   )r   Zstandard_gammar   r   r-   rO   )r	   actualr1   r
   r
   r   test_gamma_0   s
   zTestRegression.test_gamma_0c                 C   s$   t | jjdddttjj d S )NgKH9r   )r4   r   )r   r   Z	geometricr   Ziinfor=   maxr   r
   r
   r   test_geometric_tiny_prob   s   z'TestRegression.test_geometric_tiny_probc                 C   s.   d}| j jd|d}t|tj|tjd d S )Nr3   i'  r   r+   )r   zipfr   r   r7   r=   r	   rM   sampler
   r
   r   test_zipf_large_parameter   s   z(TestRegression.test_zipf_large_parameterc                 C   s2   d}| j jd|d}t|dk |d ksJ d S )Ni g    ?r   l            r"   )r   rl   r   rJ   rm   r
   r
   r   test_zipf_a_near_1   s   z!TestRegression.test_zipf_a_near_1N)r]   r^   r_   r   r   r   r'   r2   r;   r>   rD   rE   rI   rN   rU   rZ   r\   rf   ri   rk   ro   rp   r
   r
   r
   r   r      s(    		r   )
Znumpy.testingr   r   numpyr   rP   Znumpy.randomr   r   r   r
   r
   r
   r   <module>   s
    