def do_draw(self, data): f = self.lower_bound + (self.upper_bound - self.lower_bound) * d.fractional_float(data) if self.width < 64: f = float_of(f, self.width) assume(self.lower_bound <= f <= self.upper_bound) return f
def do_draw(self, data): f = self.lower_bound + (self.upper_bound - self.lower_bound) * d.fractional_float(data) if self.width < 64: f = float_of(f, self.width) assume(self.lower_bound <= f <= self.upper_bound) if not self.allow_subnormal: assume(f == 0 or abs(f) >= width_smallest_normals[self.width]) return f
def do_draw(self, data): f = self.lower_bound + (self.upper_bound - self.lower_bound) * d.fractional_float(data) if self.width < 64: try: f = float_of(f, self.width) except OverflowError: # pragma: no cover reject() assume(self.lower_bound <= f <= self.upper_bound) return f
def do_draw(self, data): f = self.lower_bound + ( self.upper_bound - self.lower_bound) * d.fractional_float(data) assume(self.lower_bound <= f <= self.upper_bound) assume(sign(self.lower_bound) <= sign(f) <= sign(self.upper_bound)) # Special handling for bounds of -0.0 for g in [self.lower_bound, self.upper_bound]: if f == g: f = math.copysign(f, g) return f
def test_uniform_float_can_draw_1(): d = ConjectureData.for_buffer(hbytes([255] * 7)) assert cu.fractional_float(d) == 1.0 assert len(d.buffer) == 7
def test_uniform_float_shrinks_to_zero(): d = ConjectureData.for_buffer(hbytes([0] * 7)) assert cu.fractional_float(d) == 0.0 assert len(d.buffer) == 7
def test_fractional_float(): assert cu.fractional_float(ConjectureData.for_buffer([0] * 8), ) == 0.0