示例#1
0
def test_compute_lower_upper_errors():
    sample = np.random.normal(loc=0, scale=1, size=100000)
    median, _ = prob_density.compute_lower_upper_errors(sample, num_sigma=0)
    npt.assert_almost_equal(median, 0, decimal=2)

    median, [[lower_sigma1, upper_sigma1]
             ] = prob_density.compute_lower_upper_errors(sample, num_sigma=1)
    npt.assert_almost_equal(lower_sigma1, 1, decimal=2)
    npt.assert_almost_equal(upper_sigma1, 1, decimal=2)

    median, [[lower_sigma1, upper_sigma1], [lower_sigma2, upper_sigma2],
             [lower_sigma3, upper_sigma3]
             ] = prob_density.compute_lower_upper_errors(sample, num_sigma=3)
    npt.assert_almost_equal(lower_sigma2, 2, decimal=2)
    npt.assert_almost_equal(upper_sigma2, 2, decimal=2)

    npt.assert_almost_equal(lower_sigma3, 3, decimal=1)
    npt.assert_almost_equal(upper_sigma3, 3, decimal=1)
    def test_compute_lower_upper_errors(self):
        x_array = np.linspace(-5, 5, 1000)
        sigma = 1.
        pdf_array = self.gauss(x_array, simga=sigma)
        approx = Approx(x_array, pdf_array)
        sample = approx.draw(n=20000)
        mean_0, _ = prob_density.compute_lower_upper_errors(
            sample, num_sigma=0)
        mean, [[lower_sigma1, upper_sigma1]] = prob_density.compute_lower_upper_errors(
            sample, num_sigma=1)
        npt.assert_almost_equal(mean, mean_0, decimal=8)
        mean, [[lower_sigma1, upper_sigma1], [lower_sigma2, upper_sigma2]] = prob_density.compute_lower_upper_errors(sample, num_sigma=2)
        mean, [[lower_sigma1, upper_sigma1], [lower_sigma2, upper_sigma2], [lower_sigma3, upper_sigma3]] = prob_density.compute_lower_upper_errors(sample, num_sigma=3)
        npt.assert_almost_equal(mean, 0, decimal=2)
        print(lower_sigma1, lower_sigma2, lower_sigma3)
        print(upper_sigma1, upper_sigma2, upper_sigma3)
        npt.assert_almost_equal(lower_sigma1, sigma, decimal=1)
        npt.assert_almost_equal(lower_sigma2, 2*sigma, decimal=1)
        npt.assert_almost_equal(lower_sigma3, 3 * sigma, decimal=1)

        draw = approx.draw_one
        assert len(draw) == 1
    def test_compute_lower_upper_errors(self):
        x_array = np.linspace(-5, 5, 1000)
        bin_edges = np.linspace(start=-5, stop=5, num=1000 + 1)
        sigma = 1.
        pdf_array = self.gauss(x_array, simga=sigma)
        approx = PDFSampling(bin_edges, pdf_array)
        np.random.seed(42)
        sample = approx.draw(n=20000)
        mean, [[lower_sigma1, upper_sigma1], [lower_sigma2, upper_sigma2],
               [lower_sigma3, upper_sigma3]
               ] = prob_density.compute_lower_upper_errors(sample, num_sigma=3)
        npt.assert_almost_equal(mean, 0, decimal=2)
        npt.assert_almost_equal(lower_sigma1, sigma, decimal=2)
        npt.assert_almost_equal(lower_sigma2, 2 * sigma, decimal=1)
        npt.assert_almost_equal(lower_sigma3, 3 * sigma, decimal=1)

        draw = approx.draw_one
        assert len(draw) == 1
 def test_raise(self):
     with self.assertRaises(ValueError):
         skewGassian = SkewGaussian()
         skewGassian.pdf_skew(x=1, mu=1, sigma=1, skw=-1)
     with self.assertRaises(ValueError):
         prob_density.compute_lower_upper_errors(sample=None, num_sigma=4)