Пример #1
0
    def __init__(self, base, extend, max_leaves):
        self.max_leaves = max_leaves
        self.base = LimitedStrategy(base)
        self.extend = extend

        strategies = [self.base, self.extend(self.base)]
        while 2**len(strategies) <= max_leaves:
            strategies.append(
                extend(OneOfStrategy(tuple(strategies), bias=0.8)))
        self.strategy = OneOfStrategy(strategies)
    def __init__(self, base, extend, max_leaves):
        self.max_leaves = max_leaves
        self.base = TemplateLimitedStrategy(base)
        self.extend = extend

        strategies = [self.base, self.extend(self.base)]
        while 2**len(strategies) <= max_leaves:
            strategies.append(extend(OneOfStrategy(tuple(strategies))))
        super(RecursiveStrategy,
              self).__init__(OneOfStrategy(tuple(strategies)))
Пример #3
0
def one_of(*args):
    """Return a strategy which generates values from any of the argument
    strategies.

    This may be called with one iterable argument instead of multiple
    strategy arguments. In which case one_of(x) and one_of(\*x) are
    equivalent.

    """
    if len(args) == 1 and not isinstance(args[0], SearchStrategy):
        try:
            args = tuple(args[0])
        except TypeError:
            pass

    strategies = []
    for arg in args:
        check_strategy(arg)
        if not arg.is_empty:
            strategies.extend([s for s in arg.branches if not s.is_empty])

    if not strategies:
        return nothing()
    if len(strategies) == 1:
        return strategies[0]
    from hypothesis.searchstrategy.strategies import OneOfStrategy
    return OneOfStrategy(strategies)
Пример #4
0
def one_of(arg, *args):
    """Return a strategy which generates values from any of the argument
    strategies."""

    if not args:
        check_strategy(arg)
        return arg
    from hypothesis.searchstrategy.strategies import OneOfStrategy
    args = (arg,) + args
    for arg in args:
        check_strategy(arg)
    return OneOfStrategy(args)
Пример #5
0
def test_directly_joining_one_strategy_also_fails():
    with pytest.raises(ValueError):
        OneOfStrategy([RandomGeometricIntStrategy()])