| // Copyright 2015 The Go Authors. All rights reserved. | |
| // Use of this source code is governed by a BSD-style | |
| // license that can be found in the LICENSE file. | |
| package stats | |
| import ( | |
| "fmt" | |
| "math" | |
| "testing" | |
| ) | |
| func TestNormalDist(t *testing.T) { | |
| d := StdNormal | |
| testFunc(t, fmt.Sprintf("%+v.PDF", d), d.PDF, map[float64]float64{ | |
| -10000: 0, // approx | |
| -1: 1 / math.Sqrt(2*math.Pi) * math.Exp(-0.5), | |
| 0: 1 / math.Sqrt(2*math.Pi), | |
| 1: 1 / math.Sqrt(2*math.Pi) * math.Exp(-0.5), | |
| 10000: 0, // approx | |
| }) | |
| testFunc(t, fmt.Sprintf("%+v.CDF", d), d.CDF, map[float64]float64{ | |
| -10000: 0, // approx | |
| 0: 0.5, | |
| 10000: 1, // approx | |
| }) | |
| d2 := NormalDist{Mu: 2, Sigma: 5} | |
| testInvCDF(t, d, false) | |
| testInvCDF(t, d2, false) | |
| } |