Skip to content

Commit 1c58de9

Browse files
committed
add test
Signed-off-by: dalthecow <[email protected]>
1 parent 8c47241 commit 1c58de9

File tree

2 files changed

+16
-7
lines changed

2 files changed

+16
-7
lines changed

src/guidellm/presentation/data_models.py

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,10 @@
33
from math import ceil
44
from typing import TYPE_CHECKING, Optional, Union
55

6-
from guidellm.scheduler.strategy import SchedulingStrategy
76
from pydantic import BaseModel, computed_field
87

8+
from guidellm.scheduler.strategy import SchedulingStrategy
9+
910
if TYPE_CHECKING:
1011
from guidellm.benchmark.benchmark import GenerativeBenchmark
1112

@@ -215,14 +216,14 @@ class BenchmarkDatum(BaseModel):
215216
time_per_request: TabularDistributionSummary
216217
strategy_display_str: str
217218

218-
def strategy_display_str(strategy: SchedulingStrategy):
219+
@classmethod
220+
def get_strategy_display_str(cls, strategy: SchedulingStrategy):
219221
strategy_type = strategy if isinstance(strategy, str) else strategy.type_
220-
strategy_instance = strategy if isinstance(strategy, SchedulingStrategy) else None
221222

222223
if strategy_type == "concurrent":
223-
rate = f"@{strategy_instance.streams}" if strategy_instance else "@##" # type: ignore[attr-defined]
224+
rate = f"@{strategy.streams}"
224225
elif strategy_type in ("constant", "poisson"):
225-
rate = f"@{strategy_instance.rate:.2f}" if strategy_instance else "@#.##" # type: ignore[attr-defined]
226+
rate = f"@{strategy.rate:.2f}"
226227
else:
227228
rate = ""
228229
return f"{strategy_type}{rate}"
@@ -231,7 +232,7 @@ def strategy_display_str(strategy: SchedulingStrategy):
231232
def from_benchmark(cls, bm: "GenerativeBenchmark"):
232233
rps = bm.metrics.requests_per_second.successful.mean
233234
return cls(
234-
strategy_display_str=cls.strategy_display_str(bm.args.strategy),
235+
strategy_display_str=cls.get_strategy_display_str(bm.args.strategy),
235236
requests_per_second=rps,
236237
tpot=TabularDistributionSummary.from_distribution_summary(
237238
bm.metrics.inter_token_latency_ms.successful

tests/unit/presentation/test_data_models.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import pytest
22

3-
from guidellm.presentation.data_models import Bucket
3+
from guidellm.presentation.data_models import BenchmarkDatum, Bucket
4+
from tests.unit.mock_benchmark import mock_generative_benchmark
45

56

67
@pytest.mark.smoke
@@ -18,3 +19,10 @@ def test_bucket_from_data():
1819
assert buckets[1].value == 8.0
1920
assert buckets[1].count == 5
2021
assert bucket_width == 1
22+
23+
24+
@pytest.mark.smoke
25+
def test_from_benchmark_includes_strategy_display_str():
26+
mock_bm = mock_generative_benchmark()
27+
bm = BenchmarkDatum.from_benchmark(mock_bm)
28+
assert bm.strategy_display_str == "synchronous"

0 commit comments

Comments
 (0)