Пример #1
0
def find(draw, check, settings=None):
    seen = False

    def test_function(data):
        nonlocal seen
        value = draw(data)
        try:
            if DEBUG:
                print(data.buffer[:data.index], "->",  value)
            if check(value):
                seen = True
                data.incur_cost(len(repr(data)))
                data.mark_interesting()
            elif not seen and DEBUG:
                print(data.buffer[:data.index], "->",  value)
        except UnsatisfiedAssumption:
            data.mark_invalid()
    buffer = find_interesting_buffer(
        test_function, settings=settings or Settings(
            generations=5000,
        ))
    if buffer is not None:
        result = draw(TestData(buffer))
        assert check(result)
        return result
    raise NoSuchExample()
Пример #2
0
def find(draw, check, settings=None):
    def test_function(data):
        value = draw(data)
        if check(value):
            data.incur_cost(len(repr(data)))
            if DEBUG:
                print(data.buffer[:data.index], "->",  value)
            data.mark_interesting()
    buffer = find_interesting_buffer(
        test_function, settings=settings or Settings(
            mutations=50, generations=500,
        ))
    if buffer is not None:
        result = draw(TestData(buffer))
        assert check(result)
        return result
    raise NoSuchExample()