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
Esempio n. 2
0
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