summaryrefslogtreecommitdiff
path: root/.venv/lib/python3.12/site-packages/jsonschema/benchmarks/contains.py
diff options
context:
space:
mode:
authorblackhao <13851610112@163.com>2025-08-22 02:51:50 -0500
committerblackhao <13851610112@163.com>2025-08-22 02:51:50 -0500
commit4aab4087dc97906d0b9890035401175cdaab32d4 (patch)
tree4e2e9d88a711ec5b1cfa02e8ac72a55183b99123 /.venv/lib/python3.12/site-packages/jsonschema/benchmarks/contains.py
parentafa8f50d1d21c721dabcb31ad244610946ab65a3 (diff)
2.0
Diffstat (limited to '.venv/lib/python3.12/site-packages/jsonschema/benchmarks/contains.py')
-rw-r--r--.venv/lib/python3.12/site-packages/jsonschema/benchmarks/contains.py28
1 files changed, 28 insertions, 0 deletions
diff --git a/.venv/lib/python3.12/site-packages/jsonschema/benchmarks/contains.py b/.venv/lib/python3.12/site-packages/jsonschema/benchmarks/contains.py
new file mode 100644
index 0000000..739cd04
--- /dev/null
+++ b/.venv/lib/python3.12/site-packages/jsonschema/benchmarks/contains.py
@@ -0,0 +1,28 @@
+"""
+A benchmark for validation of the `contains` keyword.
+"""
+
+from pyperf import Runner
+
+from jsonschema import Draft202012Validator
+
+schema = {
+ "type": "array",
+ "contains": {"const": 37},
+}
+validator = Draft202012Validator(schema)
+
+size = 1000
+beginning = [37] + [0] * (size - 1)
+middle = [0] * (size // 2) + [37] + [0] * (size // 2)
+end = [0] * (size - 1) + [37]
+invalid = [0] * size
+
+
+if __name__ == "__main__":
+ runner = Runner()
+ runner.bench_func("baseline", lambda: validator.is_valid([]))
+ runner.bench_func("beginning", lambda: validator.is_valid(beginning))
+ runner.bench_func("middle", lambda: validator.is_valid(middle))
+ runner.bench_func("end", lambda: validator.is_valid(end))
+ runner.bench_func("invalid", lambda: validator.is_valid(invalid))