def test_can_navigate_to_a_valid_example(): def f(data): i = int_from_bytes(data.draw_bytes(2)) data.draw_bytes(i) data.mark_interesting() runner = ConjectureRunner(f, settings=settings(max_examples=5000, database=None)) with buffer_size_limit(2): runner.run() assert runner.interesting_examples
def test_can_write_bytes_towards_the_end(): buf = b"\1\2\3" def f(data): if data.draw_bits(1): data.draw_bytes(5) data.write(bytes(buf)) assert bytes(data.buffer[-len(buf) :]) == buf with buffer_size_limit(10): ConjectureRunner(f).run()
def test_optimiser_when_test_grows_buffer_to_overflow(): with deterministic_PRNG(): with buffer_size_limit(2): def test(data): m = data.draw_bits(8) data.target_observations["m"] = m if m > 100: data.draw_bits(64) data.mark_invalid() runner = ConjectureRunner(test, settings=TEST_SETTINGS) runner.cached_test_function(bytes(10)) try: runner.optimise_targets() except RunIsComplete: pass assert runner.best_observed_targets["m"] == 100