
    ,Vh                     H    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      Z	y)    )assert_assert_array_equalN)	GeneratorMT19937c                   ~    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y)TestRegressionc                 6    t        t        d            | _        y )Nl   (vn4Ti )r   r   mt19937selfs    e/home/dcms/DCMS/lib/python3.12/site-packages/numpy/random/tests/test_generator_mt19937_regressions.pysetup_methodzTestRegression.setup_method	   s     )>!?@    c                 &   t        j                  ddd      D ]w  }| j                  j                  |dd      }t	        t        j
                  |t         j                   kD        xr& t        j
                  |t         j                  k               y y )Ng      g      @      2   )nplinspacer
   vonmisesr   allpi)r   murs      r   test_vonmises_rangez"TestRegression.test_vonmises_range   si     ++c2q) 	?B%%b!R0ABFF1v:&=266!ruu*+=>	?r   c           
      J   t        t        j                  | j                  j	                  dddd      dk               t        t        j                  | j                  j	                  dddd      dkD               d}t         | j                  j                  | dkD         y )	N         
   size   r   ) r$   r$   )r   r   r   r
   hypergeometric)r   argss     r   test_hypergeometric_rangez(TestRegression.test_hypergeometric_range   s    t||221b"22FJKLt||222q"22FJKL 1+++T2Q67r   c                    d}| j                   j                  d|      }t        j                  |dk(        |z  }d|dd}t	        |dkD  |       t        j                  |d	k(        |z  }d|dd
}t	        |dk  |       y )N  g?r!   r   zFrequency was fz, should be > 0.45g?   z, should be < 0.23gq=
ףp?)r
   	logseriesr   sumr   )r   Nrvsnfreqmsgs        r   test_logseries_convergencez)TestRegression.test_logseries_convergence   s    ||%%c%2 vvdai 1$tAh&89tS!vvdai 1$tAh&89tS!r   c                 J   g dg dg dg dfD ]  }t        t        d            }t        j                  |t              }|j                  |       t        j                  |d   |d   |d	   |d
   gt              }t        t        j                  |t              |        y )N)r   r+   r   N)r   r   r+   r+   r   r   N)r   r5   r6   N)r4   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+&( 	KA  /Gxx0HOOH%xx1qtQqT1Q4 8GHrxx?J	Kr   c           
      
   t        j                  g d      }t        d      D ]^  }t        t	        |            }t        t	        d            }t        |j                  ddt        j                  d      dz        |       ` y )N)
r      r   r   r   r   r   rA   r   r#   r   i  r    g      $@)r"   p)r   r9   ranger   r   r   choiceones)r   resir
   ms        r   test_call_within_randomstatez+TestRegression.test_call_within_randomstate7   sg    hh56q 	NA
+G'$-(Aqxxrwwr{3xGM		Nr   c                    | j                   j                  dgdggd       | j                   j                  dgdggt        j                  d             | j                   j                  dgdggt        j                  d             y )Nr   r   r!   )r
   multivariate_normalr   int_int64r   s    r   #test_multivariate_normal_size_typesz2TestRegression.test_multivariate_normal_size_types@   sq     	((!se!(<((!se"''!*(E((!se"((1+(Fr   c                     | j                   j                  ddd      }t        t        j                  t        j
                  |             d       y )Ng-C6?d   r!   zNans in mt19937.beta)r
   betar   r   anyisnan)r   xs     r   test_beta_small_parametersz)TestRegression.test_beta_small_parametersH   s>     LLff37BFF288A;'')?@r   c                 <    | j                   j                  dd       y )Ngn5gWw'&l7)r
   rQ   r   s    r   test_beta_very_small_parametersz.TestRegression.test_beta_very_small_parametersN   s    %'r   c                     t        j                  d      j                  }| j                  j	                  |dz  |dz  d      }t        j
                  t        j                  |            rJ y )Ng      ?    (   r   r!   )r   finfotinyr
   rQ   rR   rS   )r   r\   rT   s      r   'test_beta_ridiculously_small_parametersz6TestRegression.test_beta_ridiculously_small_parametersR   sW     xx}!!LLd2gtBwR866"((1+&&&&r   c                     d}d}d}| j                   j                  |||      }t        j                  |dk(        }d}d|z  |cxk  r	d|z  k  sJ  J y )Ng{Gzd?i@B r!   r   gSis@gffffff?g?)r
   rQ   r   count_nonzero)r   abnrT   nzerosexpected_freqs          r   !test_beta_expected_zero_frequencyz0TestRegression.test_beta_expected_zero_frequencyY   sl     LLa+!!!q&) *M!F?T--??????r   c                    g d}g d}t         j                  t         j                  t         j                  fD ]  }t        j                  ||      t        |      z  }| j                  j                  ||      }t        ||v        t        j                  t              5  | j                  j                  ||dz         d d d         y # 1 sw Y   xY w)N)r   r+   r   )r#   r#   r+   r7   )rB   g?)r   float16float32float64r9   r-   r
   rD   r   pytestraises
ValueError)r   r`   countsdtprobscs         r   "test_choice_sum_of_probs_tolerancez1TestRegression.test_choice_sum_of_probs_tolerancep   s     **bjj"**4 	4BHHV2.V<E##A#/AAFOz* 4##As#34 4		44 4s   !!CC	c                     t        j                  ddg      }t        d      D ]  }| j                  j	                  |        dd l}|j                          y )Nr`     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarP   r   )r   r9   rC   r
   r;   gccollectr   r`   _rt   s       r   1test_shuffle_of_array_of_different_length_stringsz@TestRegression.test_shuffle_of_array_of_different_length_strings}   sJ    
 HHc:&'s 	$ALL  #	$ 	


r   c                    t        j                  t        j                  d      t        j                  d      gt              }t	        d      D ]  }| j
                  j                  |        dd l}|j                          y )Nr   r#   r7   r)   r   )	r   r9   aranger:   rC   r
   r;   rt   ru   rv   s       r    test_shuffle_of_array_of_objectsz/TestRegression.test_shuffle_of_array_of_objects   s\     HHbiilBIIaL1@t 	$ALL  #	$ 	


r   c                 n    G d dt         j                        }t        t        d            }t        j                  d      j                  |      }|j                  |      }t        |t        j                  g d             t        |t        j                  d      j                  |              G d d      }t        t        d            } |       }|j                  |      }t        |t        j                  g d             t        |j                         t        j                  d	             y )
Nc                       e Zd Zy)3TestRegression.test_permutation_subclass.<locals>.NN)__name__
__module____qualname__ r   r   r.   r~      s    r   r.   r   r   )r+   r   r   c                   8    e Zd Z ej                  d      ZddZy)3TestRegression.test_permutation_subclass.<locals>.Mr   Nc                     | j                   S )N)r`   )r   r8   copys      r   	__array__z=TestRegression.test_permutation_subclass.<locals>.M.__array__   s    vvr   )NN)r   r   r   r   rz   r`   r   r   r   r   Mr      s    		!Ar   r   )r#   r   r   r   r+   r   )
r   ndarrayr   r   rz   viewpermutationr   r9   r   )r   r.   r
   origpermr   rH   s          r   test_permutation_subclassz(TestRegression.test_permutation_subclass   s    	

 	 GAJ'yy|  #""4(4)!4541!2!21!56	 	 GAJ'C""1%4/!:;1;;="))A,7r   c                 0   | j                   j                  d      dk(  sJ t        | j                   j                  dg      d       | j                   j                  dgd      }t        j                  dgt        j
                        }t        ||       y )Ng        floatr7   )r
   standard_gammar   r   r9   rh   )r   actualr>   s      r   test_gamma_0zTestRegression.test_gamma_0   su    ||**3/36664<<66u=sC,,cU',B88RD

368,r   c                     t        | j                  j                  dd      t        j                  t        j
                        j                         y )NgKH9r   )rB   r"   )r   r
   	geometricr   iinforM   maxr   s    r   test_geometric_tiny_probz'TestRegression.test_geometric_tiny_prob   s8     	4<<11E1B88BHH-11	3r   c                     d}| j                   j                  d|      }t        |t        j                  |t        j
                               y )NrA   i'  r!   r7   )r
   zipfr   r   rE   rM   r   rb   samples      r   test_zipf_large_parameterz(TestRegression.test_zipf_large_parameter   s;     ""5q"162771BHH#=>r   c                     d}| j                   j                  d|      }t        j                  |dk        |dz  kD  sJ y )Ni g    ?r!   l            r+   )r
   r   r   r_   r   s      r   test_zipf_a_near_1z!TestRegression.test_zipf_a_near_1   sE     ""?";
 /!A#555r   N)r   r   r   r   r   r'   r2   r?   rI   rN   rU   rW   r]   re   rq   rx   r{   r   r   r   r   r   r   r   r   r   r      sg    A?8"
KNGA('@.48.-3?	6r   r   )
numpy.testingr   r   numpyr   rj   numpy.randomr   r   r   r   r   r   <module>r      s    7   +G6 G6r   