def test_sample_many_no_checks(self): num_runs = 1000 for _ in range(num_runs): n = randint(1, 10) d = randint(1, 10) mu = randint(0, 2, d).astype(numpy.bool8) spread = rand() dist = DiscreteRandomWalkProposal(mu, spread) dist.sample(n)
def test_sample_dim(self): n = 3 d = 2 mu = randint(0, 2, d).astype(numpy.bool8) spread = .5 dist = DiscreteRandomWalkProposal(mu, spread) s = dist.sample(n) self.assertEqual(s.samples.shape, (n, d))
def test_sample_many_full_spread(self): n = 3 d = 5 mu = randint(0, 2, d).astype(numpy.bool8) spread = 0.99999999999 dist = DiscreteRandomWalkProposal(mu, spread) s = dist.sample(n).samples for i in range(n): self.assertTrue(all(s[i] != mu))
def test_sample_many_no_spread(self): n = 3 d = 5 mu = randint(0, 2, d).astype(numpy.bool8) spread = 0.00000000001 dist = DiscreteRandomWalkProposal(mu, spread) s = dist.sample(n).samples for i in range(n): # exactly one change self.assertTrue(sum(abs(s[i] - mu)) == 1)
def test_sample_samples_dtype(self): mu = randint(0, 2, 10).astype(numpy.bool8) spread = .5 dist = DiscreteRandomWalkProposal(mu, spread) s = dist.sample(1) self.assertEqual(s.samples.dtype, numpy.bool8)
def test_sample_type(self): mu = randint(0, 2, 10).astype(numpy.bool8) spread = .5 dist = DiscreteRandomWalkProposal(mu, spread) s = dist.sample(1) self.assertTrue(isinstance(s, Sample))