Ejemplo n.º 1
0
 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
         ])
Ejemplo n.º 2
0
 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))
Ejemplo n.º 3
0
 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]
     )
Ejemplo n.º 4
0
 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]
     )
Ejemplo n.º 5
0
 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))
Ejemplo n.º 6
0
 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],
     )
Ejemplo n.º 7
0
 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]
     )
Ejemplo n.º 8
0
def test_can_choose_one():
    chooser([1]).choose(random) == 0
Ejemplo n.º 9
0
def test_cannot_choose_all_zero_weights():
    with pytest.raises(InvalidArgument):
        chooser([0])
Ejemplo n.º 10
0
def test_can_choose_zero_weights():
    assert chooser([1, 0, 0, 0]).choose(random) == 0
Ejemplo n.º 11
0
def test_cannot_choose_negative_weights():
    with pytest.raises(InvalidArgument):
        chooser((1, -1, 1))
Ejemplo n.º 12
0
def test_cannot_choose_empty():
    with pytest.raises(InvalidArgument):
        chooser([])
Ejemplo n.º 13
0
 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))
Ejemplo n.º 15
0
 def produce_parameter(self, random):
     n = len(self.elements)
     if n == 1:
         return
     return chooser(random.getrandbits(8) + 1 for _ in hrange(n))
Ejemplo n.º 16
0
 def draw_parameter(self, random):
     n = len(self.elements)
     return chooser(random.getrandbits(8) + 1 for _ in hrange(n))