def test_converts_floats_to_integer_form(f): assert flt.is_simple(f) buf = int_to_bytes(flt.base_float_to_lex(f), 8) runner = float_runner(f, lambda g: g == f) runner.shrink_interesting_examples() (v, ) = runner.interesting_examples.values() assert v.buffer[:-1] < buf
def test_converts_floats_to_integer_form(f): assert flt.is_simple(f) buf = int_to_bytes(flt.base_float_to_lex(f), 8) def parse_buf(b): return flt.lex_to_float(int_from_bytes(b)) shrunk = Lexical.shrink(buf, lambda b: parse_buf(b) == f, full=True, random=Random(0)) assert shrunk < buf
def test_converts_floats_to_integer_form(f): assert flt.is_simple(f) buf = int_to_bytes(flt.base_float_to_lex(f), 8) def parse_buf(b): return flt.lex_to_float(int_from_bytes(b)) shrunk = Lexical.shrink( buf, lambda b: parse_buf(b) == f, full=True, random=Random(0) ) assert shrunk < buf
def test_float_shrink_can_run_when_canonicalisation_does_not_work(monkeypatch): # This should be an error when called monkeypatch.setattr(Float, "shrink", None) base_buf = int_to_bytes(flt.base_float_to_lex(1000.0), 8) + hbytes(1) @shrinking_from(base_buf) def shrinker(data): flt.draw_float(data) if hbytes(data.buffer) == base_buf: data.mark_interesting() shrinker.minimize_floats() assert shrinker.shrink_target.buffer == base_buf
def test_float_shrink_can_run_when_canonicalisation_does_not_work(monkeypatch): # This should be an error when called monkeypatch.setattr(Float, "shrink", None) base_buf = int_to_bytes(flt.base_float_to_lex(1000.0), 8) + hbytes(1) @shrinking_from(base_buf) def shrinker(data): flt.draw_float(data) if hbytes(data.buffer) == base_buf: data.mark_interesting() shrinker.minimize_floats() assert shrinker.shrink_target.buffer == base_buf