def draw_parameter(self, random): n = len(self.element_strategies) return self.Parameter( chooser=chooser(random.getrandbits(8) + 1 for _ in hrange(n)), child_parameters=[ s.draw_parameter(random) for s in self.element_strategies ])
def draw_parameter(self, random): n = len(self.elements) active = list(range(n)) random.shuffle(active) n_active = min(random.randint(1, n), random.randint(1, n)) active = set(active[:n_active]) return chooser(random.getrandbits(8) + 1 if i in active else 0 for i in hrange(n))
def produce_parameter(self, random): n = len(self.element_strategies) return self.Parameter( chooser=chooser( dirichlet(random, [1.0 / n] * n)), child_parameters=[ s.draw_parameter(random) for s in self.element_strategies] )
def draw_parameter(self, random): n = len(self.element_strategies) return self.Parameter( chooser=chooser( random.getrandbits(8) + 1 for _ in hrange(n)), child_parameters=[ s.draw_parameter(random) for s in self.element_strategies] )
def draw_parameter(self, random): n = len(self.elements) active = list(range(n)) random.shuffle(active) n_active = min(random.randint(1, n), random.randint(1, n)) active = set(active[:n_active]) return chooser( random.getrandbits(8) + 1 if i in active else 0 for i in hrange(n))
def draw_parameter(self, random): n = len(self.element_strategies) active = list(range(n)) random.shuffle(active) n_active = min(random.randint(1, n), random.randint(1, n)) active = set(active[:n_active]) return self.Parameter( chooser=chooser(random.getrandbits(8) + 1 if i in active else 0 for i in hrange(n)), child_parameters=[LazyParameter(s, random) for s in self.element_strategies], )
def draw_parameter(self, random): n = len(self.element_strategies) active = list(range(n)) random.shuffle(active) n_active = min(random.randint(1, n), random.randint(1, n)) active = set(active[:n_active]) return self.Parameter( chooser=chooser( random.getrandbits(8) + 1 if i in active else 0 for i in hrange(n)), child_parameters=[ LazyParameter(s, random) for s in self.element_strategies] )
def test_can_choose_one(): chooser([1]).choose(random) == 0
def test_cannot_choose_all_zero_weights(): with pytest.raises(InvalidArgument): chooser([0])
def test_can_choose_zero_weights(): assert chooser([1, 0, 0, 0]).choose(random) == 0
def test_cannot_choose_negative_weights(): with pytest.raises(InvalidArgument): chooser((1, -1, 1))
def test_cannot_choose_empty(): with pytest.raises(InvalidArgument): chooser([])
def produce_parameter(self, random): n = len(self.elements) if n == 1: return return chooser(dist.dirichlet(random, [sqrt(n)] * n))
def draw_parameter(self, random): n = len(self.elements) return chooser(random.getrandbits(8) + 1 for _ in hrange(n))
def produce_parameter(self, random): n = len(self.elements) if n == 1: return return chooser(random.getrandbits(8) + 1 for _ in hrange(n))