def integers(min_value=None, max_value=None): """Returns a strategy which generates integers (in Python 2 these may be ints or longs). If min_value is not None then all values will be >= min_value. If max_value is not None then all values will be <= max_value """ from hypothesis.searchstrategy.numbers import IntegersFromStrategy, \ BoundedIntStrategy, RandomGeometricIntStrategy, WideRangeIntStrategy if min_value is None: if max_value is None: return ( RandomGeometricIntStrategy() | WideRangeIntStrategy() ) else: check_type(integer_types, max_value) return IntegersFromStrategy(0).map(lambda x: max_value - x) else: check_type(integer_types, min_value) if max_value is None: return IntegersFromStrategy(min_value) else: if min_value == max_value: return just(min_value) elif min_value > max_value: raise InvalidArgument( u'Cannot have max_value=%r < min_value=%r' % ( max_value, min_value )) return BoundedIntStrategy(min_value, max_value)
def integers(min_value=None, max_value=None): """Returns a strategy which generates integers (in Python 2 these may be ints or longs). If min_value is not None then all values will be >= min_value. If max_value is not None then all values will be <= max_value """ check_valid_integer(min_value) check_valid_integer(max_value) check_valid_interval(min_value, max_value, 'min_value', 'max_value') from hypothesis.searchstrategy.numbers import IntegersFromStrategy, \ BoundedIntStrategy, RandomGeometricIntStrategy, WideRangeIntStrategy if min_value is None: if max_value is None: return (RandomGeometricIntStrategy() | WideRangeIntStrategy()) else: return IntegersFromStrategy(0).map(lambda x: max_value - x) else: if max_value is None: return IntegersFromStrategy(min_value) else: if min_value == max_value: return just(min_value) return BoundedIntStrategy(min_value, max_value)
def integers(min_value=None, max_value=None): """Returns a strategy which generates integers (in Python 2 these may be ints or longs). If min_value is not None then all values will be >= min_value. If max_value is not None then all values will be <= max_value """ check_valid_bound(min_value, 'min_value') check_valid_bound(max_value, 'max_value') check_valid_interval(min_value, max_value, 'min_value', 'max_value') from hypothesis.searchstrategy.numbers import IntegersFromStrategy, \ BoundedIntStrategy, WideRangeIntStrategy min_int_value = None if min_value is not None: min_int_value = int(min_value) if min_int_value != min_value and min_value > 0: min_int_value += 1 max_int_value = None if max_value is not None: max_int_value = int(max_value) if max_int_value != max_value and max_value < 0: max_int_value -= 1 if min_int_value is None: if max_int_value is None: return ( WideRangeIntStrategy() ) else: return IntegersFromStrategy(0).map(lambda x: max_int_value - x) else: if max_int_value is None: return IntegersFromStrategy(min_int_value) else: assert min_int_value <= max_int_value if min_int_value == max_int_value: return just(min_int_value) elif min_int_value >= 0: return BoundedIntStrategy(min_int_value, max_int_value) elif max_int_value <= 0: return BoundedIntStrategy( -max_int_value, -min_int_value ).map(lambda t: -t) else: return integers(min_value=0, max_value=max_int_value) | \ integers(min_value=min_int_value, max_value=0)