codekingpro/portable-devtools
114k
1"""2A benchmark for comparing equivalent validation of `const` and `enum`.3"""4 5from pyperf import Runner6 7from jsonschema import Draft202012Validator8 9value = [37] * 10010const_schema = {"const": list(value)}11enum_schema = {"enum": [list(value)]}12 13valid = list(value)14invalid = [*valid, 73]15 16const = Draft202012Validator(const_schema)17enum = Draft202012Validator(enum_schema)18 19assert const.is_valid(valid)20assert enum.is_valid(valid)21assert not const.is_valid(invalid)22assert not enum.is_valid(invalid)23 24 25if __name__ == "__main__":26 runner = Runner()27 runner.bench_func("const valid", lambda: const.is_valid(valid))28 runner.bench_func("const invalid", lambda: const.is_valid(invalid))29 runner.bench_func("enum valid", lambda: enum.is_valid(valid))30 runner.bench_func("enum invalid", lambda: enum.is_valid(invalid))31 