codekingpro/portable-devtools
114k
1"""2A benchmark for validation of the `contains` keyword.3"""4 5from pyperf import Runner6 7from jsonschema import Draft202012Validator8 9schema = {10 "type": "array",11 "contains": {"const": 37},12}13validator = Draft202012Validator(schema)14 15size = 100016beginning = [37] + [0] * (size - 1)17middle = [0] * (size // 2) + [37] + [0] * (size // 2)18end = [0] * (size - 1) + [37]19invalid = [0] * size20 21 22if __name__ == "__main__":23 runner = Runner()24 runner.bench_func("baseline", lambda: validator.is_valid([]))25 runner.bench_func("beginning", lambda: validator.is_valid(beginning))26 runner.bench_func("middle", lambda: validator.is_valid(middle))27 runner.bench_func("end", lambda: validator.is_valid(end))28 runner.bench_func("invalid", lambda: validator.is_valid(invalid))29 