You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			31 lines
		
	
	
		
			830 B
		
	
	
	
		
			Python
		
	
			
		
		
	
	
			31 lines
		
	
	
		
			830 B
		
	
	
	
		
			Python
		
	
"""
 | 
						|
A benchmark for comparing equivalent validation of `const` and `enum`.
 | 
						|
"""
 | 
						|
 | 
						|
from pyperf import Runner
 | 
						|
 | 
						|
from jsonschema import Draft202012Validator
 | 
						|
 | 
						|
value = [37] * 100
 | 
						|
const_schema = {"const": list(value)}
 | 
						|
enum_schema = {"enum": [list(value)]}
 | 
						|
 | 
						|
valid = list(value)
 | 
						|
invalid = [*valid, 73]
 | 
						|
 | 
						|
const = Draft202012Validator(const_schema)
 | 
						|
enum = Draft202012Validator(enum_schema)
 | 
						|
 | 
						|
assert const.is_valid(valid)
 | 
						|
assert enum.is_valid(valid)
 | 
						|
assert not const.is_valid(invalid)
 | 
						|
assert not enum.is_valid(invalid)
 | 
						|
 | 
						|
 | 
						|
if __name__ == "__main__":
 | 
						|
    runner = Runner()
 | 
						|
    runner.bench_func("const valid", lambda: const.is_valid(valid))
 | 
						|
    runner.bench_func("const invalid", lambda: const.is_valid(invalid))
 | 
						|
    runner.bench_func("enum valid", lambda: enum.is_valid(valid))
 | 
						|
    runner.bench_func("enum invalid", lambda: enum.is_valid(invalid))
 |