Пример #1
0
    def test_set_parameters(self):
        distribution = Uniform([-101], [-100], seed=1)
        sample = distribution.sample(1)[0, 0]
        self.assertLessEqual(sample, -100)
        self.assertGreaterEqual(sample, -101)

        distribution.set_parameters([[100], [101]])
        sample = distribution.sample(1)[0, 0]
        self.assertLessEqual(sample, 101)
        self.assertGreaterEqual(sample, 100)
Пример #2
0
class UniformTests(unittest.TestCase):
    def setUp(self):
        self.prior = Uniform([-1.0, -1.0], [1.0, 1.0], seed=1)

    def test_init(self):
        self.assertRaises(TypeError, Uniform, 3.14, [1.0, 1.0])
        self.assertRaises(TypeError, Uniform, [-1.0, -1.0], 3.14)
        self.assertRaises(BaseException, Uniform, [-1.0, -1.0], [.0, 1.0, 1.0])

    def test_sample(self):
        samples = self.prior.sample(1000)
        samples_avg = samples.mean(axis=0)
        samples_min = samples.min(axis=0)
        samples_max = samples.max(axis=0)
        for (avg, min, max) in zip(samples_avg, samples_min, samples_max):
            self.assertLess(abs(avg), 0.05)
            self.assertLess(abs(min + 1.0), 0.05)
            self.assertLess(abs(max - 1.0), 0.05)

        samples_shape = np.shape(samples)
        self.assertEqual(samples_shape, (1000, 2))

    def test_set_parameters(self):
        distribution = Uniform([-101], [-100], seed=1)
        sample = distribution.sample(1)[0, 0]
        self.assertLessEqual(sample, -100)
        self.assertGreaterEqual(sample, -101)

        distribution.set_parameters([[100], [101]])
        sample = distribution.sample(1)[0, 0]
        self.assertLessEqual(sample, 101)
        self.assertGreaterEqual(sample, 100)

    def test_pdf(self):
        new_prior = Uniform(np.array([0.0]), np.array([10.0]), seed=1)
        self.assertEqual(new_prior.pdf(0), 0.1)
        self.assertEqual(new_prior.pdf(-1), 0)
        self.assertEqual(new_prior.pdf(11), 0)