Skip to content

Commit 6f06bb7

Browse files
committed
Clean and refactor
1 parent 02b4756 commit 6f06bb7

File tree

11 files changed

+63
-197
lines changed

11 files changed

+63
-197
lines changed

documentation/tests_documentation/unit_tests/test_sampler_helper.md

Lines changed: 0 additions & 50 deletions
This file was deleted.

documentation/tests_documentation/unit_tests/test_simulation_input.md

Lines changed: 0 additions & 93 deletions
This file was deleted.

src/app/config/constants.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
"""Application constants and configuration values."""
22

3-
from enum import Enum, IntEnum
3+
from enum import IntEnum, StrEnum
44

55

66
class TimeDefaults(IntEnum):
@@ -14,10 +14,10 @@ class TimeDefaults(IntEnum):
1414
MAX_USER_SAMPLING_WINDOW = 120 # 2 minutes
1515

1616

17-
class Distribution(str, Enum):
17+
class Distribution(StrEnum):
1818
"""Allowed probability distributions for an RVConfig."""
1919

2020
POISSON = "poisson"
2121
NORMAL = "normal"
22-
GAUSSIAN = "gaussian"
22+
2323

src/app/core/event_samplers/gaussian_poisson.py

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
truncated_gaussian_generator,
1717
uniform_variable_generator,
1818
)
19-
from app.schemas.simulation_input import SimulationInput
19+
from app.schemas.requests_generator_input import SimulationInput
2020

2121

2222
def gaussian_poisson_sampling(
@@ -41,11 +41,6 @@ def gaussian_poisson_sampling(
4141

4242
simulation_time = input_data.total_simulation_time
4343
user_sampling_window = input_data.user_sampling_window
44-
# pydantic in the validation assign a value and mypy is not
45-
# complaining because a None cannot be compared in the loop
46-
# to a float
47-
assert simulation_time is not None
48-
assert user_sampling_window is not None
4944

5045
# λ_u : mean concurrent users per window
5146
mean_concurrent_user = float(input_data.avg_active_users.mean)

src/app/core/event_samplers/poisson_poisson.py

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
poisson_variable_generator,
1414
uniform_variable_generator,
1515
)
16-
from app.schemas.simulation_input import SimulationInput
16+
from app.schemas.requests_generator_input import SimulationInput
1717

1818

1919
def poisson_poisson_sampling(
@@ -38,11 +38,6 @@ def poisson_poisson_sampling(
3838

3939
simulation_time = input_data.total_simulation_time
4040
user_sampling_window = input_data.user_sampling_window
41-
# pydantic in the validation assign a value and mypy is not
42-
# complaining because a None cannot be compared in the loop
43-
# to a float
44-
assert simulation_time is not None
45-
assert user_sampling_window is not None
4641

4742
# λ_u : mean concurrent users per window
4843
mean_concurrent_user = float(input_data.avg_active_users.mean)

src/app/core/simulation/requests_generator.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616

1717
import numpy as np
1818

19-
from app.schemas.simulation_input import SimulationInput
19+
from app.schemas.requests_generator_input import SimulationInput
2020

2121

2222
def requests_generator(
@@ -37,7 +37,7 @@ def requests_generator(
3737
"""
3838
dist = input_data.avg_active_users.distribution.lower()
3939

40-
if dist in {Distribution.GAUSSIAN, Distribution.NORMAL}:
40+
if dist == Distribution.NORMAL:
4141
#Gaussian-Poisson model
4242
return gaussian_poisson_sampling(
4343
input_data=input_data,

src/app/schemas/simulation_input.py renamed to src/app/schemas/requests_generator_input.py

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,7 @@ def ensure_mean_is_numeric(
2727
@model_validator(mode="after") # type: ignore[arg-type]
2828
def default_variance(cls, model: "RVConfig") -> "RVConfig": # noqa: N805
2929
"""Set variance = mean when distribution == 'normal' and variance is missing."""
30-
if model.variance is None and model.distribution in {
31-
Distribution.NORMAL,
32-
Distribution.GAUSSIAN,
33-
}:
30+
if model.variance is None and model.distribution == Distribution.NORMAL:
3431
model.variance = model.mean
3532
return model
3633

@@ -41,7 +38,7 @@ class SimulationInput(BaseModel):
4138
avg_request_per_minute_per_user: RVConfig
4239
total_simulation_time: int = Field(
4340
default=TimeDefaults.SIMULATION_TIME,
44-
ge=TimeDefaults.MIN_SIMULATION_TIME, # minimum simulation time in seconds
41+
ge=TimeDefaults.MIN_SIMULATION_TIME,
4542
description=(
4643
f"Simulation time in seconds (>= {TimeDefaults.MIN_SIMULATION_TIME})."
4744
),

tests/unit/sampler/test_gaussian_poisson.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111
from app.config.constants import TimeDefaults
1212
from app.core.event_samplers.gaussian_poisson import gaussian_poisson_sampling
13-
from app.schemas.simulation_input import RVConfig, SimulationInput
13+
from app.schemas.requests_generator_input import RVConfig, SimulationInput
1414

1515
# ---------------------------------------------------------------------------
1616
# Fixture
@@ -22,7 +22,7 @@ def base_input() -> SimulationInput:
2222
"""Return a minimal, valid SimulationInput for the Gaussian-Poisson sampler."""
2323
return SimulationInput(
2424
avg_active_users=RVConfig(
25-
mean=10.0, variance=4.0, distribution="gaussian",
25+
mean=10.0, variance=4.0, distribution="normal",
2626
),
2727
avg_request_per_minute_per_user=RVConfig(mean=30.0),
2828
total_simulation_time=TimeDefaults.MIN_SIMULATION_TIME,

tests/unit/sampler/test_poisson_posson.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111

1212
from app.config.constants import TimeDefaults
1313
from app.core.event_samplers.poisson_poisson import poisson_poisson_sampling
14-
from app.schemas.simulation_input import RVConfig, SimulationInput
14+
from app.schemas.requests_generator_input import RVConfig, SimulationInput
1515

1616

1717
@pytest.fixture

tests/unit/simulation/test_requests_generator.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
from app.config.constants import TimeDefaults
1212
from app.core.simulation.requests_generator import requests_generator
1313
from app.core.simulation.simulation_run import run_simulation
14-
from app.schemas.simulation_input import SimulationInput
14+
from app.schemas.requests_generator_input import SimulationInput
1515

1616
if TYPE_CHECKING:
1717

@@ -57,7 +57,6 @@ def test_default_requests_generator_uses_poisson_poisson_sampling(
5757
[
5858
("poisson", "poisson_poisson_sampling"),
5959
("normal", "gaussian_poisson_sampling"),
60-
("gaussian", "gaussian_poisson_sampling"),
6160
],
6261
)
6362
def test_requests_generator_dispatches_to_correct_sampler(
@@ -69,7 +68,6 @@ def test_requests_generator_dispatches_to_correct_sampler(
6968
comes from the appropriate sampler function based on distribution:
7069
- 'poisson' → poisson_poisson_sampling
7170
- 'normal' → gaussian_poisson_sampling
72-
- 'gaussian'→ gaussian_poisson_sampling
7371
"""
7472
input_data = SimulationInput(
7573
avg_active_users={"mean": 1.0, "distribution": dist},

0 commit comments

Comments
 (0)