44namespace NumSharp . UnitTest . RandomSampling
55{
66 /// <summary>
7- /// Tests for np.random .multivariate_normal
7+ /// Tests for rng .multivariate_normal
88 /// Reference: https://numpy.org/doc/stable/reference/random/generated/numpy.random.multivariate_normal.html
99 /// </summary>
1010
@@ -13,11 +13,11 @@ public class NpRandomMultivariateNormalTests : TestClass
1313 [ Test ]
1414 public void MultivariateNormal_SingleSample_Returns1DArray ( )
1515 {
16- np . random . seed ( 42 ) ;
16+ var rng = np . random . RandomState ( 42 ) ;
1717 var mean = new double [ ] { 0 , 0 } ;
1818 var cov = new double [ , ] { { 1 , 0 } , { 0 , 1 } } ;
1919
20- var result = np . random . multivariate_normal ( mean , cov ) ;
20+ var result = rng . multivariate_normal ( mean , cov ) ;
2121
2222 Assert . AreEqual ( 1 , result . ndim ) ;
2323 Assert . AreEqual ( 2 , result . shape [ 0 ] ) ;
@@ -26,11 +26,11 @@ public void MultivariateNormal_SingleSample_Returns1DArray()
2626 [ Test ]
2727 public void MultivariateNormal_MultipleSamples_ReturnsCorrectShape ( )
2828 {
29- np . random . seed ( 42 ) ;
29+ var rng = np . random . RandomState ( 42 ) ;
3030 var mean = new double [ ] { 0 , 0 } ;
3131 var cov = new double [ , ] { { 1 , 0 } , { 0 , 1 } } ;
3232
33- var result = np . random . multivariate_normal ( mean , cov , 100 ) ;
33+ var result = rng . multivariate_normal ( mean , cov , 100 ) ;
3434
3535 Assert . AreEqual ( 2 , result . ndim ) ;
3636 Assert . AreEqual ( 100 , result . shape [ 0 ] ) ;
@@ -40,11 +40,11 @@ public void MultivariateNormal_MultipleSamples_ReturnsCorrectShape()
4040 [ Test ]
4141 public void MultivariateNormal_TupleSize_ReturnsCorrectShape ( )
4242 {
43- np . random . seed ( 42 ) ;
43+ var rng = np . random . RandomState ( 42 ) ;
4444 var mean = new double [ ] { 0 , 0 } ;
4545 var cov = new double [ , ] { { 1 , 0 } , { 0 , 1 } } ;
4646
47- var result = np . random . multivariate_normal ( mean , cov , new Shape ( 2 , 3 ) ) ;
47+ var result = rng . multivariate_normal ( mean , cov , new Shape ( 2 , 3 ) ) ;
4848
4949 Assert . AreEqual ( 3 , result . ndim ) ;
5050 Assert . AreEqual ( 2 , result . shape [ 0 ] ) ;
@@ -55,11 +55,11 @@ public void MultivariateNormal_TupleSize_ReturnsCorrectShape()
5555 [ Test ]
5656 public void MultivariateNormal_Samples_HaveCorrectMean ( )
5757 {
58- np . random . seed ( 42 ) ;
58+ var rng = np . random . RandomState ( 42 ) ;
5959 var mean = new double [ ] { 5 , - 3 } ;
6060 var cov = new double [ , ] { { 1 , 0 } , { 0 , 1 } } ;
6161
62- var samples = np . random . multivariate_normal ( mean , cov , 10000 ) ;
62+ var samples = rng . multivariate_normal ( mean , cov , 10000 ) ;
6363
6464 double sum0 = 0 , sum1 = 0 ;
6565 for ( int i = 0 ; i < 10000 ; i ++ )
@@ -77,11 +77,11 @@ public void MultivariateNormal_Samples_HaveCorrectMean()
7777 [ Test ]
7878 public void MultivariateNormal_DiagonalCovariance_HasCorrectVariances ( )
7979 {
80- np . random . seed ( 42 ) ;
80+ var rng = np . random . RandomState ( 42 ) ;
8181 var mean = new double [ ] { 0 , 0 } ;
8282 var cov = new double [ , ] { { 1 , 0 } , { 0 , 4 } } ; // var[0]=1, var[1]=4
8383
84- var samples = np . random . multivariate_normal ( mean , cov , 10000 ) ;
84+ var samples = rng . multivariate_normal ( mean , cov , 10000 ) ;
8585
8686 // Compute sample variances
8787 double mean0 = 0 , mean1 = 0 ;
@@ -109,11 +109,11 @@ public void MultivariateNormal_DiagonalCovariance_HasCorrectVariances()
109109 [ Test ]
110110 public void MultivariateNormal_CorrelatedVariables_HaveCorrectCovariance ( )
111111 {
112- np . random . seed ( 42 ) ;
112+ var rng = np . random . RandomState ( 42 ) ;
113113 var mean = new double [ ] { 0 , 0 } ;
114114 var cov = new double [ , ] { { 1 , 0.5 } , { 0.5 , 1 } } ;
115115
116- var samples = np . random . multivariate_normal ( mean , cov , 10000 ) ;
116+ var samples = rng . multivariate_normal ( mean , cov , 10000 ) ;
117117
118118 // Compute sample covariance
119119 double mean0 = 0 , mean1 = 0 ;
@@ -139,11 +139,11 @@ public void MultivariateNormal_CorrelatedVariables_HaveCorrectCovariance()
139139 [ Test ]
140140 public void MultivariateNormal_ThreeDimensional_Works ( )
141141 {
142- np . random . seed ( 42 ) ;
142+ var rng = np . random . RandomState ( 42 ) ;
143143 var mean = new double [ ] { 1 , 2 , 3 } ;
144144 var cov = new double [ , ] { { 1 , 0.2 , 0.1 } , { 0.2 , 1 , 0.3 } , { 0.1 , 0.3 , 1 } } ;
145145
146- var samples = np . random . multivariate_normal ( mean , cov , 1000 ) ;
146+ var samples = rng . multivariate_normal ( mean , cov , 1000 ) ;
147147
148148 Assert . AreEqual ( 2 , samples . ndim ) ;
149149 Assert . AreEqual ( 1000 , samples . shape [ 0 ] ) ;
@@ -153,11 +153,11 @@ public void MultivariateNormal_ThreeDimensional_Works()
153153 [ Test ]
154154 public void MultivariateNormal_OneDimensional_Works ( )
155155 {
156- np . random . seed ( 42 ) ;
156+ var rng = np . random . RandomState ( 42 ) ;
157157 var mean = new double [ ] { 5 } ;
158158 var cov = new double [ , ] { { 4 } } ; // variance = 4, stdev = 2
159159
160- var samples = np . random . multivariate_normal ( mean , cov , 10000 ) ;
160+ var samples = rng . multivariate_normal ( mean , cov , 10000 ) ;
161161
162162 Assert . AreEqual ( 10000 , samples . shape [ 0 ] ) ;
163163 Assert . AreEqual ( 1 , samples . shape [ 1 ] ) ;
@@ -182,11 +182,11 @@ public void MultivariateNormal_OneDimensional_Works()
182182 [ Test ]
183183 public void MultivariateNormal_IdentityCovariance_ProducesUncorrelatedSamples ( )
184184 {
185- np . random . seed ( 42 ) ;
185+ var rng = np . random . RandomState ( 42 ) ;
186186 var mean = new double [ ] { 0 , 0 , 0 } ;
187187 var cov = new double [ , ] { { 1 , 0 , 0 } , { 0 , 1 , 0 } , { 0 , 0 , 1 } } ;
188188
189- var samples = np . random . multivariate_normal ( mean , cov , 10000 ) ;
189+ var samples = rng . multivariate_normal ( mean , cov , 10000 ) ;
190190
191191 // Compute sample correlation between dim 0 and dim 1
192192 double mean0 = 0 , mean1 = 0 ;
@@ -215,11 +215,11 @@ public void MultivariateNormal_IdentityCovariance_ProducesUncorrelatedSamples()
215215 [ Test ]
216216 public void MultivariateNormal_NDArrayInput_Works ( )
217217 {
218- np . random . seed ( 42 ) ;
218+ var rng = np . random . RandomState ( 42 ) ;
219219 var mean = np . array ( new double [ ] { 0 , 0 } ) ;
220220 var cov = np . array ( new double [ , ] { { 1 , 0 } , { 0 , 1 } } ) ;
221221
222- var result = np . random . multivariate_normal ( mean , cov , new Shape ( 100 ) ) ;
222+ var result = rng . multivariate_normal ( mean , cov , new Shape ( 100 ) ) ;
223223
224224 Assert . AreEqual ( 100 , result . shape [ 0 ] ) ;
225225 Assert . AreEqual ( 2 , result . shape [ 1 ] ) ;
@@ -299,13 +299,13 @@ public void MultivariateNormal_CheckValidRaise_ThrowsForNonPositiveDefinite()
299299 [ Test ]
300300 public void MultivariateNormal_CheckValidIgnore_ReturnsResultForNonPositiveDefinite ( )
301301 {
302- np . random . seed ( 42 ) ;
302+ var rng = np . random . RandomState ( 42 ) ;
303303 var mean = new double [ ] { 0 , 0 } ;
304304 // Not positive definite but we're ignoring
305305 var cov = new double [ , ] { { 1 , 2 } , { 2 , 1 } } ;
306306
307307 // Should not throw with check_valid="ignore"
308- var result = np . random . multivariate_normal ( mean , cov , null , "ignore" ) ;
308+ var result = rng . multivariate_normal ( mean , cov , null , "ignore" ) ;
309309
310310 Assert . AreEqual ( 1 , result . ndim ) ;
311311 Assert . AreEqual ( 2 , result . shape [ 0 ] ) ;
@@ -314,7 +314,7 @@ public void MultivariateNormal_CheckValidIgnore_ReturnsResultForNonPositiveDefin
314314 [ Test ]
315315 public void MultivariateNormal_LargeDimension_Works ( )
316316 {
317- np . random . seed ( 42 ) ;
317+ var rng = np . random . RandomState ( 42 ) ;
318318 int n = 10 ;
319319 var mean = new double [ n ] ;
320320 var cov = new double [ n , n ] ;
@@ -324,7 +324,7 @@ public void MultivariateNormal_LargeDimension_Works()
324324 cov [ i , i ] = 1.0 ; // Identity covariance
325325 }
326326
327- var samples = np . random . multivariate_normal ( mean , cov , 100 ) ;
327+ var samples = rng . multivariate_normal ( mean , cov , 100 ) ;
328328
329329 Assert . AreEqual ( 100 , samples . shape [ 0 ] ) ;
330330 Assert . AreEqual ( n , samples . shape [ 1 ] ) ;
@@ -333,11 +333,11 @@ public void MultivariateNormal_LargeDimension_Works()
333333 [ Test ]
334334 public void MultivariateNormal_ReturnsDtype_Double ( )
335335 {
336- np . random . seed ( 42 ) ;
336+ var rng = np . random . RandomState ( 42 ) ;
337337 var mean = new double [ ] { 0 , 0 } ;
338338 var cov = new double [ , ] { { 1 , 0 } , { 0 , 1 } } ;
339339
340- var result = np . random . multivariate_normal ( mean , cov , 10 ) ;
340+ var result = rng . multivariate_normal ( mean , cov , 10 ) ;
341341
342342 Assert . AreEqual ( typeof ( double ) , result . dtype ) ;
343343 }
0 commit comments