How to use compat_kw method in hypothesis

Best Python code snippet using hypothesis

numpy.py

Source:numpy.py Github

copy

Full Screen

...65 # Subarray datatypes, eg '(2, 3)i4'66 if dtype.subdtype is not None:67 subtype, shape = dtype.subdtype68 return arrays(subtype, shape, elements=kwargs)69 def compat_kw(*args, **kw):70 """Update default args to the strategy with user-supplied keyword args."""71 assert {"min_value", "max_value", "max_size"}.issuperset(kw)72 for key in set(kwargs).intersection(kw):73 msg = f"dtype {dtype!r} requires {key}={kwargs[key]!r} to be %s {kw[key]!r}"74 if kw[key] is not None:75 if key.startswith("min_") and kw[key] > kwargs[key]:76 raise InvalidArgument(msg % ("at least",))77 elif key.startswith("max_") and kw[key] < kwargs[key]:78 raise InvalidArgument(msg % ("at most",))79 kw.update({k: v for k, v in kwargs.items() if k in args or k in kw})80 return kw81 # Scalar datatypes82 if dtype.kind == "b":83 result = st.booleans() # type: SearchStrategy[Any]84 elif dtype.kind == "f":85 result = st.floats(86 width=8 * dtype.itemsize,87 **compat_kw(88 "min_value",89 "max_value",90 "allow_nan",91 "allow_infinity",92 "exclude_min",93 "exclude_max",94 ),95 )96 elif dtype.kind == "c":97 # If anyone wants to add a `width` argument to `complex_numbers()`, we would98 # accept a pull request and add passthrough support for magnitude bounds,99 # but it's a low priority otherwise.100 if dtype.itemsize == 8:101 float32 = st.floats(width=32, **compat_kw("allow_nan", "allow_infinity"))102 result = st.builds(complex, float32, float32)103 else:104 result = st.complex_numbers(**compat_kw("allow_nan", "allow_infinity"))105 elif dtype.kind in ("S", "a"):106 # Numpy strings are null-terminated; only allow round-trippable values.107 # `itemsize == 0` means 'fixed length determined at array creation'108 max_size = dtype.itemsize or None109 result = st.binary(**compat_kw("min_size", max_size=max_size)).filter(110 lambda b: b[-1:] != b"\0"111 )112 elif dtype.kind == "u":113 kw = compat_kw(min_value=0, max_value=2 ** (8 * dtype.itemsize) - 1)114 result = st.integers(**kw)115 elif dtype.kind == "i":116 overflow = 2 ** (8 * dtype.itemsize - 1)117 result = st.integers(**compat_kw(min_value=-overflow, max_value=overflow - 1))118 elif dtype.kind == "U":119 # Encoded in UTF-32 (four bytes/codepoint) and null-terminated120 max_size = (dtype.itemsize or 0) // 4 or None121 result = st.text(**compat_kw("alphabet", "min_size", max_size=max_size)).filter(122 lambda b: b[-1:] != "\0"123 )124 elif dtype.kind in ("m", "M"):125 if "[" in dtype.str:126 res = st.just(dtype.str.split("[")[-1][:-1])127 else:128 # Note that this case isn't valid to pass to arrays(), but we support129 # it here because we'd have to guard against equivalents in arrays()130 # regardless and drawing scalars is a valid use-case.131 res = st.sampled_from(TIME_RESOLUTIONS)132 result = st.builds(dtype.type, st.integers(-(2 ** 63), 2 ** 63 - 1), res)133 else:134 raise InvalidArgument(f"No strategy inference for {dtype}")135 return result.map(dtype.type)...

Full Screen

Full Screen

Automation Testing Tutorials

Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.

LambdaTest Learning Hubs:

YouTube

You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.

Run hypothesis automation tests on LambdaTest cloud grid

Perform automation testing on 3000+ real desktop and mobile devices online.

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful