def testRandom(self): pdf = Normal(4, 2) data = pdf.random(100000) self.assertAlmostEqual(numpy.mean(data), pdf.mu, delta=0.05) self.assertAlmostEqual(numpy.std(data), pdf.sigma, delta=0.05)
def testParameters(self): pdf = Normal(2.5, 1.5) pdf.mu = 33 pdf.sigma = 44 self.assertEqual(pdf.mu, 33) self.assertEqual(pdf.sigma, 44) self.assertEqual(pdf.sigma, pdf['sigma'])
def testParameterEstimation(self): mu, sigma = 2.2, 0.3 data = numpy.random.normal(mu, sigma, 100000) pdf = Normal(1, 1) pdf.estimate(data) self.assertAlmostEqual(pdf.mu, mu, delta=0.05) self.assertAlmostEqual(pdf.sigma, sigma, delta=0.05)
def testSampleFromHistogram(self): mu = 5. sigma = 1. normal = Normal(mu, sigma) x = normal.random(10000) hx, p = density(x, 100) samples = hx[sample_from_histogram(p, n_samples=10000)] self.assertAlmostEqual(mu, numpy.mean(samples), delta=0.5) self.assertAlmostEqual(sigma, numpy.std(samples), delta=0.5)
def testLogProb(self): n = Normal(0, 1) self.assertAlmostEqual(n(0.), 1. / numpy.sqrt(2 * numpy.pi), delta=1e-1) self.assertAlmostEqual(n(1.), numpy.exp(-0.5) / numpy.sqrt(2 * numpy.pi), delta=1e-1)