stat: allow tolerance in TestCovarianceMatrix

This commit is contained in:
Dan Kortschak
2020-01-13 14:26:02 +10:30
parent 19131e1d16
commit 86a902cb7f

View File

@@ -15,6 +15,8 @@ import (
)
func TestCovarianceMatrix(t *testing.T) {
const tol = 1e-15
// An alternative way to test this is to call the Variance and
// Covariance functions and ensure that the results are identical.
for i, test := range []struct {
@@ -47,7 +49,7 @@ func TestCovarianceMatrix(t *testing.T) {
1,
},
ans: mat.NewDense(2, 2, []float64{
.8, 3.2,
0.8, 3.2,
3.2, 13.142857142857146,
}),
},
@@ -64,7 +66,7 @@ func TestCovarianceMatrix(t *testing.T) {
var cov mat.SymDense
CovarianceMatrix(&cov, test.data, test.weights)
if !mat.Equal(&cov, test.ans) {
if !mat.EqualApprox(&cov, test.ans, tol) {
t.Errorf("%d: expected cov %v, found %v", i, test.ans, &cov)
}
if !floats.Equal(d, r.Data) {