Beispiel #1
0
 def steps(self):
     strategies = []
     for rule in self.rules():
         converted_arguments = {}
         valid = True
         if rule.precondition is not None and not rule.precondition(self):
             continue
         for k, v in rule.arguments.items():
             if isinstance(v, Bundle):
                 bundle = self.bundle(v.name)
                 if not bundle:
                     valid = False
                     break
                 else:
                     v = SimpleSampledFromStrategy(bundle)
             converted_arguments[k] = v
         if valid:
             strategies.append(
                 TupleStrategy((JustStrategy(rule),
                                FixedKeysDictStrategy(converted_arguments)),
                               tuple))
     if not strategies:
         raise InvalidDefinition(u'No progress can be made from state %r' %
                                 (self, ))
     return one_of_strategies(strategies)
Beispiel #2
0
 def steps(self):
     strategies = []
     for rule in self.rules():
         converted_arguments = {}
         valid = True
         if rule.precondition is not None and not rule.precondition(self):
             continue
         for k, v in rule.arguments.items():
             if isinstance(v, Bundle):
                 bundle = self.bundle(v.name)
                 if not bundle:
                     valid = False
                     break
                 else:
                     v = SimpleSampledFromStrategy(bundle)
             converted_arguments[k] = v
         if valid:
             strategies.append(TupleStrategy((
                 JustStrategy(rule),
                 FixedKeysDictStrategy(converted_arguments)
             ), tuple))
     if not strategies:
         raise InvalidDefinition(
             u'No progress can be made from state %r' % (self,)
         )
     return one_of_strategies(strategies)
Beispiel #3
0
    def __init__(self, strategies, average_length=50.0):
        SearchStrategy.__init__(self)

        self.average_length = average_length
        strategies = tuple(strategies)
        if strategies:
            self.element_strategy = one_of_strategies(strategies)
        else:
            self.element_strategy = None
            self.size_upper_bound = 1
            self.size_lower_bound = 1
Beispiel #4
0
    def __init__(self,
                 strategies, average_length=50.0):
        SearchStrategy.__init__(self)

        self.average_length = average_length
        strategies = tuple(strategies)
        if strategies:
            self.element_strategy = one_of_strategies(strategies)
        else:
            self.element_strategy = None
            self.size_upper_bound = 1
            self.size_lower_bound = 1
    def __init__(
        self,
        strategies, average_length=50.0, min_size=0, max_size=float('inf')
    ):
        SearchStrategy.__init__(self)

        assert average_length > 0
        self.average_length = average_length
        strategies = tuple(strategies)
        self.min_size = min_size or 0
        self.max_size = max_size or float('inf')
        self.element_strategy = one_of_strategies(strategies)
    def __init__(
        self,
        strategies, average_length=50.0, min_size=0, max_size=float('inf')
    ):
        SearchStrategy.__init__(self)

        assert average_length > 0
        self.average_length = average_length
        strategies = tuple(strategies)
        self.min_size = min_size or 0
        self.max_size = max_size or float('inf')
        self.element_strategy = one_of_strategies(strategies)
Beispiel #7
0
    def __init__(self, strategies, average_length=50.0, min_size=0, max_size=float("inf")):
        SearchStrategy.__init__(self)

        assert average_length > 0
        self.average_length = average_length
        strategies = tuple(strategies)
        self.min_size = min_size or 0
        self.max_size = max_size
        if strategies:
            self.element_strategy = one_of_strategies(strategies)
        else:
            self.element_strategy = None
            self.template_upper_bound = 1
Beispiel #8
0
    def __init__(
        self,
        strategies, average_length=50.0, min_size=0, max_size=float(u'inf')
    ):
        SearchStrategy.__init__(self)

        assert average_length > 0
        self.average_length = average_length
        strategies = tuple(strategies)
        self.min_size = min_size or 0
        self.max_size = max_size
        if strategies:
            self.element_strategy = one_of_strategies(strategies)
        else:
            self.element_strategy = None
            self.template_upper_bound = 1
Beispiel #9
0
    def __init__(self, strategies, average_length=50.0):
        strategies = list(strategies)

        if strategies:
            strategies.sort(key=show)
            self.element_strategy = one_of_strategies(strategies)
            if self.element_strategy.size_upper_bound < 32:
                self.size_lower_bound = (
                    2 ** self.element_strategy.size_lower_bound)
                self.size_upper_bound = (
                    2 ** self.element_strategy.size_upper_bound)
            else:
                self.size_upper_bound = float('inf')
                self.size_lower_bound = float('inf')
        else:
            self.element_strategy = None
            self.size_lower_bound = 1
            self.size_upper_bound = 1
        self.average_length = average_length
Beispiel #10
0
    def __init__(self, strategies, average_length=50.0):
        strategies = list(strategies)

        if strategies:
            strategies.sort(key=show)
            self.element_strategy = one_of_strategies(strategies)
            if self.element_strategy.size_upper_bound < 32:
                self.size_lower_bound = (
                    2**self.element_strategy.size_lower_bound)
                self.size_upper_bound = (
                    2**self.element_strategy.size_upper_bound)
            else:
                self.size_upper_bound = float('inf')
                self.size_lower_bound = float('inf')
        else:
            self.element_strategy = None
            self.size_lower_bound = 1
            self.size_upper_bound = 1
        self.average_length = average_length
def test_joining_zero_strategies_fails():
    with pytest.raises(ValueError):
        one_of_strategies(())
def test_joining_zero_strategies_fails():
    with pytest.raises(ValueError):
        one_of_strategies(())