gonum.org/v1/gonum@v0.14.0/stat/distmv/uniform_test.go (about)

     1  // Copyright ©2017 The Gonum Authors. All rights reserved.
     2  // Use of this source code is governed by a BSD-style
     3  // license that can be found in the LICENSE file.
     4  
     5  package distmv
     6  
     7  import (
     8  	"math"
     9  	"testing"
    10  
    11  	"gonum.org/v1/gonum/spatial/r1"
    12  )
    13  
    14  func TestUniformEntropy(t *testing.T) {
    15  	for _, test := range []struct {
    16  		Uniform *Uniform
    17  		Entropy float64
    18  	}{
    19  		{
    20  			NewUniform([]r1.Interval{{Min: 0, Max: 1}, {Min: 0, Max: 1}}, nil),
    21  			0,
    22  		},
    23  		{
    24  			NewUniform([]r1.Interval{{Min: -1, Max: 3}, {Min: 2, Max: 8}, {Min: -5, Max: -3}}, nil),
    25  			math.Log(48),
    26  		},
    27  	} {
    28  		ent := test.Uniform.Entropy()
    29  		if math.Abs(ent-test.Entropy) > 1e-14 {
    30  			t.Errorf("Entropy mismatch. Got %v, want %v", ent, test.Entropy)
    31  		}
    32  	}
    33  }