
    ؔ j"                     P    d dl Z d dlZd dlmZmZ d dlmZmZ  G d d          Z	dS )    N)MT19937	Generator)assert_assert_array_equalc                       e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd ZdS )TestRegressionc                 :    t          t          d                    S )Nl   (vn4Ti )r   r   )selfs    C:\Users\Terasoftware\OneDrive\Desktop\faahhh\fyndo\fyndo\venv\Lib\site-packages\numpy/random/tests/test_generator_mt19937_regressions.py_create_generatorz TestRegression._create_generator	   s    !677888    c                 2   |                                  }t          j        ddd          D ]k}|                    |dd          }t	          t          j        |t          j         k              o!t          j        |t          j        k                         ld S )Ng      g      @      2   )r   nplinspacevonmisesr   allpi)r
   mt19937murs       r   test_vonmises_rangez"TestRegression.test_vonmises_range   s     ((**+c2q)) 	? 	?B  Q++ABF1v:&&=26!ru*+=+=>>>>	? 	?r   c           
      X   |                                  }t          t          j        |                    dddd          dk                          t          t          j        |                    dddd          dk                         d}t           |j        | dk               d S )	N         
   size   r   ) r#   r#   )r   r   r   r   hypergeometric)r
   r   argss      r   test_hypergeometric_rangez(TestRegression.test_hypergeometric_range   s    ((**w--aRb-AAAEFFGGGw--b!Rb-AAAEFFGGG 1&&-122222r   c                 8   |                                  }d}|                    d|          }t          j        |dk              |z  }d|dd}t	          |dk    |           t          j        |d	k              |z  }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   	logseriesr   sumr   )r
   r   Nrvsnfreqmsgs         r   test_logseries_convergencez)TestRegression.test_logseries_convergence   s    ((**  1 -- vdai  1$9t9999tS!!!vdai  1$9t9999tS!!!!!r   c                    g dg dg dg dfD ]}t          t          d                    }t          j        |t                    }|                    |           t          j        |d         |d         |d	         |d
         gt                    }t          t          j        |t                    |           d S )N)r   r*   r   N)r   r   r*   r*   r   r   N)r   r4   r5   N)r3   r*   r   Ni90  dtyper*   r   r   r   )r   r   r   arrayobjectshuffler   )r
   tr   shuffledexpecteds        r   test_shuffle_mixed_dimensionz+TestRegression.test_shuffle_mixed_dimension.   s    !//000+++&&&( 	K 	KA  //Gx000HOOH%%%x1qtQqT1Q4 8GGGHrx???JJJJ	K 	Kr   c           
      <   t          j        g d          }t          d          D ]u}t          t	          |                    }t          t	          d                    }t          |                    ddt          j        d          dz            |           vd S )N)
r      r   r   r   r   r   r@   r   r"   r   i  r   g      $@)r!   p)r   r8   ranger   r   r   choiceones)r
   resir   ms        r   test_call_within_randomstatez+TestRegression.test_call_within_randomstate:   s    h55566q 	P 	PA

++G'$--((Aqxxrwr{{S7HxII3OOOO		P 	Pr   c                    |                                  }|                    dgdggd           |                    dgdggt          j        d                     |                    dgdggt          j        d                     d S )Nr   r   r    )r   multivariate_normalr   int_int64r
   r   s     r   #test_multivariate_normal_size_typesz2TestRegression.test_multivariate_normal_size_typesC   s     ((**##QC1#Q#777##QC1#RWQZZ#@@@##QC1#RXa[[#AAAAAr   c                     |                                  }|                    ddd          }t          t          j        t          j        |                     d           d S )Ng-C6?d   r    zNans in mt19937.beta)r   betar   r   anyisnan)r
   r   xs      r   test_beta_small_parametersz)TestRegression.test_beta_small_parametersL   sX     ((**LLcL22BF28A;;''')?@@@@@r   c                 Z    |                                  }|                    dd           d S )Ngn5gWw'&l7)r   rQ   rM   s     r   test_beta_very_small_parametersz.TestRegression.test_beta_very_small_parametersS   s-    ((**UE"""""r   c                     |                                  }t          j        d          j        }|                    |dz  |dz  d          }t          j        t          j        |                    rJ d S )Ng      ?    (   r   r    )r   r   finfotinyrQ   rR   rS   )r
   r   r\   rT   s       r   'test_beta_ridiculously_small_parametersz6TestRegression.test_beta_ridiculously_small_parametersX   sh     ((**x}}!LLD2IBL776"(1++&&&&&&&r   c                     |                                  }d}d}d}|                    |||          }t          j        |dk              }d}d|z  |cxk     r	d|z  k     sn J d S )Ng{Gzd?i@B r    r   gSis@gffffff?g?)r   rQ   r   count_nonzero)r
   r   abnrT   nzerosexpected_freqs           r   !test_beta_expected_zero_frequencyz0TestRegression.test_beta_expected_zero_frequency`   s     ((**LLAAL&&!!q&)) *m#fCCCCtm/CCCCCCCCCr   c                    |                                  }g d}g d}t          j        t          j        t          j        fD ]}t          j        ||          t          |          z  }|                    ||          }t          ||v            t          j
        t                    5  |                    ||dz             d d d            n# 1 swxY w Y   d S )N)r   r*   r   )r"   r"   r*   r6   )rA   g?)r   r   float16float32float64r8   r,   rC   r   pytestraises
ValueError)r
   r   r`   countsdtprobscs          r   "test_choice_sum_of_probs_tolerancez1TestRegression.test_choice_sum_of_probs_tolerancex   s    ((**II*bj"*4 	1 	1BHV2...V<EqE**AAFOOOz** 1 1qECK0001 1 1 1 1 1 1 1 1 1 1 1 1 1 1		1 	1s   )CC	C	c                     |                                  }t          j        ddg          }t          d          D ]}|                    |           dd l}|                                 d S )Nr`     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarP   r   )r   r   r8   rB   r:   gccollectr
   r   r`   _rt   s        r   1test_shuffle_of_array_of_different_length_stringsz@TestRegression.test_shuffle_of_array_of_different_length_strings   so     ((**Hc:&''s 	 	AOOA 				


r   c                 .   |                                  }t          j        t          j        d          t          j        d          gt                    }t          d          D ]}|                    |           dd l}|                                 d S )Nr   r"   r6   r(   r   )	r   r   r8   aranger9   rB   r:   rt   ru   rv   s        r    test_shuffle_of_array_of_objectsz/TestRegression.test_shuffle_of_array_of_objects   s     ((**HbillBIaLL1@@@t 	 	AOOA 				


r   c                     G d dt           j                  }t          t          d                    }t          j        d                              |          }|                    |          }t          |t          j        g d                     t          |t          j        d                              |                      G d d          }t          t          d                    } |            }|                    |          }t          |t          j        g d                     t          |	                                t          j        d	                     d S )
Nc                       e Zd ZdS )3TestRegression.test_permutation_subclass.<locals>.NN)__name__
__module____qualname__ r   r   r-   r~      s        Dr   r-   r   r   )r*   r   r   c                   6    e Zd Z ej        d          ZddZdS )3TestRegression.test_permutation_subclass.<locals>.Mr   Nc                     | j         S )N)r`   )r
   r7   copys      r   	__array__z=TestRegression.test_permutation_subclass.<locals>.M.__array__   s	    vr   )NN)r   r   r   r   rz   r`   r   r   r   r   Mr      s7        	!A     r   r   )r"   r   r   r   r*   r   )
r   ndarrayr   r   rz   viewpermutationr   r8   r   )r
   r-   r   origpermr   rG   s          r   test_permutation_subclassz(TestRegression.test_permutation_subclass   sT   	 	 	 	 	
 	 	 	 GAJJ''y||  ##""4((4)))!4!455541!2!21!5!5666	 	 	 	 	 	 	 	 GAJJ''ACC""1%%4///!:!:;;;1;;==")A,,77777r   c                 >   |                                  }|                    d          dk    sJ t          |                    dg          d           |                    dgd          }t          j        dgt          j                  }t          ||           d S )Ng        floatr6   )r   standard_gammar   r   r8   rh   )r
   r   actualr=   s       r   test_gamma_0zTestRegression.test_gamma_0   s    ((**%%c**c11117113%88#>>>''W'==8RD
33368,,,,,r   c                     |                                  }t          |                    dd          t          j        t          j                  j                   d S )NgKH9r   )rA   r!   )r   r   	geometricr   iinforL   maxrM   s     r   test_geometric_tiny_probz'TestRegression.test_geometric_tiny_prob   sX     ((**7,,u1,==8BH--1	3 	3 	3 	3 	3r   c                     |                                  }d}|                    d|          }t          |t          j        |t          j                             d S )Nr@   i'  r    r6   )r   zipfr   r   rD   rL   r
   r   rb   samples       r   test_zipf_large_parameterz(TestRegression.test_zipf_large_parameter   sV     ((**e!,,6271BH#=#=#=>>>>>r   c                     |                                  }d}|                    d|          }t          j        |dk               |dz  k    sJ d S )Ni g    ?r    l            r*   )r   r   r   r_   r   s       r   test_zipf_a_near_1z!TestRegression.test_zipf_a_near_1   s[     ((**oA66
 //!a%777777r   N)r   r   r   r   r   r&   r1   r>   rH   rN   rU   rW   r]   re   rq   rx   r{   r   r   r   r   r   r   r   r   r   r      s@       9 9 9? ? ?3 3 3" " " 
K 
K 
KP P PB B BA A A# # #
' ' 'D D D01 1 1    8 8 8.- - -3 3 3? ? ?
8 
8 
8 
8 
8r   r   )
rj   numpyr   numpy.randomr   r   numpy.testingr   r   r   r   r   r   <module>r      s         + + + + + + + + 5 5 5 5 5 5 5 5U8 U8 U8 U8 U8 U8 U8 U8 U8 U8r   