mirror of
https://github.com/koloideal/Argenta.git
synced 2026-06-10 10:05:28 +03:00
benchs
This commit is contained in:
@@ -2,4 +2,5 @@ from .pre_cycle_setup import *
|
||||
from .most_similar_command import *
|
||||
from .finds_appropriate_handler import *
|
||||
from .validate_routers_for_collisions import *
|
||||
from .input_command_parse import *
|
||||
from .input_command_parse import *
|
||||
from .flag_validation import *
|
||||
@@ -2,7 +2,7 @@ class BenchmarkNotFound(Exception):
|
||||
def __init__(self, benchmark_name: str):
|
||||
self.benchmark_name = benchmark_name
|
||||
|
||||
def __str__(self):
|
||||
def __str__(self) -> str:
|
||||
return f"Benchmark with name '{self.benchmark_name}' not found"
|
||||
|
||||
|
||||
@@ -10,11 +10,11 @@ class BenchmarksNotFound(Exception):
|
||||
def __init__(self, type_: str):
|
||||
self.type_ = type_
|
||||
|
||||
def __str__(self):
|
||||
def __str__(self) -> str:
|
||||
return f"Benchmarks with type '{self.type_}' not found"
|
||||
|
||||
class BenchmarksWithSameNameAlreadyExists(Exception):
|
||||
def __init__(self, benchmark_name: str):
|
||||
self.benchmark_name = benchmark_name
|
||||
def __str__(self):
|
||||
def __str__(self) -> str:
|
||||
return f"Benchmarks with name '{self.benchmark_name}' already exists"
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
from metrics.benchmarks.core.models import Benchmarks
|
||||
from .core.models import Benchmarks
|
||||
|
||||
benchmarks = Benchmarks()
|
||||
@@ -0,0 +1,102 @@
|
||||
__all__ = [
|
||||
"benchmark_validate_all_single_flag",
|
||||
"benchmark_validate_neither_single_flag",
|
||||
"benchmark_validate_list_small",
|
||||
"benchmark_validate_list_large",
|
||||
"benchmark_validate_regex_simple",
|
||||
"benchmark_validate_regex_complex",
|
||||
"benchmark_validate_multiple_flags_10",
|
||||
"benchmark_validate_multiple_flags_50",
|
||||
"benchmark_validate_extreme_100_flags"
|
||||
]
|
||||
|
||||
import re
|
||||
|
||||
from argenta.command.flag import Flag, InputFlag, PossibleValues
|
||||
|
||||
from .entity import benchmarks
|
||||
|
||||
|
||||
@benchmarks.register(type_="flag_validation", description="Single flag with PossibleValues.ALL")
|
||||
def benchmark_validate_all_single_flag() -> None:
|
||||
flag = Flag("test", possible_values=PossibleValues.ALL)
|
||||
flag.validate_input_flag_value("some_value")
|
||||
|
||||
|
||||
@benchmarks.register(type_="flag_validation", description="Single flag with PossibleValues.NEITHER")
|
||||
def benchmark_validate_neither_single_flag() -> None:
|
||||
flag = Flag("test", possible_values=PossibleValues.NEITHER)
|
||||
flag.validate_input_flag_value("")
|
||||
|
||||
|
||||
@benchmarks.register(type_="flag_validation", description="List validation (5 possible values)")
|
||||
def benchmark_validate_list_small() -> None:
|
||||
flag = Flag("env", possible_values=["dev", "staging", "prod", "test", "local"])
|
||||
flag.validate_input_flag_value("prod")
|
||||
|
||||
|
||||
@benchmarks.register(type_="flag_validation", description="List validation (50 possible values)")
|
||||
def benchmark_validate_list_large() -> None:
|
||||
possible_values = [f"value{i}" for i in range(50)]
|
||||
flag = Flag("option", possible_values=possible_values)
|
||||
flag.validate_input_flag_value("value25")
|
||||
|
||||
|
||||
@benchmarks.register(type_="flag_validation", description="Regex validation (simple pattern)")
|
||||
def benchmark_validate_regex_simple() -> None:
|
||||
pattern = re.compile(r"^\d+$")
|
||||
flag = Flag("port", possible_values=pattern)
|
||||
flag.validate_input_flag_value("8080")
|
||||
|
||||
|
||||
@benchmarks.register(type_="flag_validation", description="Regex validation (complex pattern)")
|
||||
def benchmark_validate_regex_complex() -> None:
|
||||
pattern = re.compile(r"^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$")
|
||||
flag = Flag("email", possible_values=pattern)
|
||||
flag.validate_input_flag_value("user@example.com")
|
||||
|
||||
|
||||
@benchmarks.register(type_="flag_validation", description="Multiple flags validation (10 flags)")
|
||||
def benchmark_validate_multiple_flags_10() -> None:
|
||||
flags = [
|
||||
Flag(f"flag{i}", possible_values=PossibleValues.ALL)
|
||||
for i in range(10)
|
||||
]
|
||||
input_flags = [
|
||||
InputFlag(f"flag{i}", input_value=f"value{i}")
|
||||
for i in range(10)
|
||||
]
|
||||
|
||||
for flag, input_flag in zip(flags, input_flags):
|
||||
flag.validate_input_flag_value(input_flag.input_value)
|
||||
|
||||
|
||||
@benchmarks.register(type_="flag_validation", description="Multiple flags validation (50 flags)")
|
||||
def benchmark_validate_multiple_flags_50() -> None:
|
||||
flags = [
|
||||
Flag(f"flag{i}", possible_values=PossibleValues.ALL)
|
||||
for i in range(50)
|
||||
]
|
||||
input_flags = [
|
||||
InputFlag(f"flag{i}", input_value=f"value{i}")
|
||||
for i in range(50)
|
||||
]
|
||||
|
||||
for flag, input_flag in zip(flags, input_flags):
|
||||
flag.validate_input_flag_value(input_flag.input_value)
|
||||
|
||||
|
||||
@benchmarks.register(type_="flag_validation", description="Extreme (100 flags with regex validation)")
|
||||
def benchmark_validate_extreme_100_flags() -> None:
|
||||
pattern = re.compile(r"^[a-zA-Z0-9_-]+$")
|
||||
flags = [
|
||||
Flag(f"flag{i}", possible_values=pattern)
|
||||
for i in range(100)
|
||||
]
|
||||
input_flags = [
|
||||
InputFlag(f"flag{i}", input_value=f"valid_value_{i}")
|
||||
for i in range(100)
|
||||
]
|
||||
|
||||
for flag, input_flag in zip(flags, input_flags):
|
||||
flag.validate_input_flag_value(input_flag.input_value)
|
||||
Reference in New Issue
Block a user