Skip to content

Commit 6f265c1

Browse files
Евгений БлиновЕвгений Блинов
authored andcommitted
Add tests for ScenarioGroup CLI divider and percentile edge cases
1 parent 825fd3b commit 6f265c1

3 files changed

Lines changed: 17 additions & 1 deletion

File tree

tests/cli/test_scenario_group_cli.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,9 @@ def test_results_separated_by_divider(self) -> None:
4747

4848
def test_divider_between_not_after_last(self) -> None:
4949
proc = run_script(group_script())
50+
# group_script() has 2 scenarios → exactly 1 divider between them
51+
assert proc.stdout.count('---\n') == 1
5052
lines = proc.stdout.strip().splitlines()
51-
# last line should NOT be ---
5253
assert lines[-1] != '---'
5354

5455
def test_exit_code_0_by_default(self) -> None:

tests/units/test_benchmark_result.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,13 @@ def test_percentile_small_number(self) -> None:
124124
expected = math.ceil(3 * 50 / 100)
125125
assert len(trimmed.durations) == expected
126126

127+
def test_percentile_very_small_positive(self) -> None:
128+
result = make_result((1.0, 2.0, 3.0, 4.0, 5.0))
129+
trimmed = result.percentile(0.001)
130+
# ceil(5 * 0.001 / 100) = ceil(0.00005) = 1
131+
assert len(trimmed.durations) == 1
132+
assert trimmed.durations == (1.0,)
133+
127134
def test_percentile_99(self) -> None:
128135
result = make_result(tuple(float(i) for i in range(1, 101)))
129136
trimmed = result.percentile(99)

tests/units/test_scenario_group.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,3 +148,11 @@ def test_run_correct_scenario_reference(self) -> None:
148148
results = g.run()
149149
assert results[0].scenario is s1
150150
assert results[1].scenario is s2
151+
152+
def test_run_warmup_different_numbers(self) -> None:
153+
s1 = Scenario(lambda: None, name='a', number=3)
154+
s2 = Scenario(lambda: None, name='b', number=7)
155+
g = ScenarioGroup(s1, s2)
156+
results = g.run(warmup=2)
157+
assert len(results[0].durations) == 3
158+
assert len(results[1].durations) == 7

0 commit comments

Comments
 (0)