def draw_template(self, random, pv): if self.element_strategy is None: return () length = clamp(self.min_size, dist.geometric(random, 1.0 / (1 + pv.average_length)), self.max_size) result = [] for _ in hrange(length): result.append(self.element_strategy.draw_template(random, pv.child_parameter)) return tuple(result)
def draw_template(self, random, pv): if self.element_strategy is None: return () length = clamp( self.min_size, dist.geometric(random, 1.0 / (1 + pv.average_length)), self.max_size, ) result = [] for _ in hrange(length): result.append( self.element_strategy.draw_template(random, pv.child_parameter)) return tuple(result)
def adjust_float(self, source, offset): return int_to_float(clamp( 0, float_to_int(source) + offset, 2 ** 64 - 1 ))
def draw_parameter(self, random): return clamp( 0.0, random.random() * 2 / self.average_size, 1 - 10e-6, )
def test_clamp(): assert clamp(None, 1, None) == 1 assert clamp(None, 10, 1) == 1 assert clamp(1, 0, 1) == 1 assert clamp(1, 0, None) == 1
def adjust_float(self, source, offset): return int_to_float(clamp(0, float_to_int(source) + offset, 2**64 - 1))