Exemple #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
         ])
Exemple #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))
Exemple #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]
     )
Exemple #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]
     )
Exemple #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))
Exemple #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],
     )
Exemple #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]
     )
Exemple #8
0
def test_can_choose_one():
    chooser([1]).choose(random) == 0
Exemple #9
0
def test_cannot_choose_all_zero_weights():
    with pytest.raises(InvalidArgument):
        chooser([0])
Exemple #10
0
def test_can_choose_zero_weights():
    assert chooser([1, 0, 0, 0]).choose(random) == 0
Exemple #11
0
def test_cannot_choose_negative_weights():
    with pytest.raises(InvalidArgument):
        chooser((1, -1, 1))
Exemple #12
0
def test_cannot_choose_empty():
    with pytest.raises(InvalidArgument):
        chooser([])
Exemple #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))
Exemple #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))
Exemple #16
0
 def draw_parameter(self, random):
     n = len(self.elements)
     return chooser(random.getrandbits(8) + 1 for _ in hrange(n))