mat: don't use global rand state

This commit is contained in:
Dan Kortschak
2020-03-17 21:02:32 +10:30
parent 3efb0d11ee
commit 7b6a63e4e7
15 changed files with 170 additions and 118 deletions

View File

@@ -15,6 +15,7 @@ import (
func TestQR(t *testing.T) {
t.Parallel()
rnd := rand.New(rand.NewSource(1))
for _, test := range []struct {
m, n int
}{
@@ -26,7 +27,7 @@ func TestQR(t *testing.T) {
a := NewDense(m, n, nil)
for i := 0; i < m; i++ {
for j := 0; j < n; j++ {
a.Set(i, j, rand.NormFloat64())
a.Set(i, j, rnd.NormFloat64())
}
}
var want Dense
@@ -74,6 +75,7 @@ func isOrthonormal(q *Dense, tol float64) bool {
func TestQRSolveTo(t *testing.T) {
t.Parallel()
rnd := rand.New(rand.NewSource(1))
for _, trans := range []bool{false, true} {
for _, test := range []struct {
m, n, bc int
@@ -89,7 +91,7 @@ func TestQRSolveTo(t *testing.T) {
a := NewDense(m, n, nil)
for i := 0; i < m; i++ {
for j := 0; j < n; j++ {
a.Set(i, j, rand.Float64())
a.Set(i, j, rnd.Float64())
}
}
br := m
@@ -99,7 +101,7 @@ func TestQRSolveTo(t *testing.T) {
b := NewDense(br, bc, nil)
for i := 0; i < br; i++ {
for j := 0; j < bc; j++ {
b.Set(i, j, rand.Float64())
b.Set(i, j, rnd.Float64())
}
}
var x Dense
@@ -136,6 +138,7 @@ func TestQRSolveTo(t *testing.T) {
func TestQRSolveVecTo(t *testing.T) {
t.Parallel()
rnd := rand.New(rand.NewSource(1))
for _, trans := range []bool{false, true} {
for _, test := range []struct {
m, n int
@@ -148,7 +151,7 @@ func TestQRSolveVecTo(t *testing.T) {
a := NewDense(m, n, nil)
for i := 0; i < m; i++ {
for j := 0; j < n; j++ {
a.Set(i, j, rand.Float64())
a.Set(i, j, rnd.Float64())
}
}
br := m
@@ -157,7 +160,7 @@ func TestQRSolveVecTo(t *testing.T) {
}
b := NewVecDense(br, nil)
for i := 0; i < br; i++ {
b.SetVec(i, rand.Float64())
b.SetVec(i, rnd.Float64())
}
var x VecDense
var qr QR