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))