@@ -32,38 +32,59 @@ def test_scenario_plus_scenario(self) -> None:
3232 s1 , s2 = make_scenario ('s1' ), make_scenario ('s2' )
3333 group = s1 + s2
3434 assert isinstance (group , ScenarioGroup )
35- assert len (group .run ()) == 2
35+ results = group .run ()
36+ assert len (results ) == 2
37+ assert results [0 ].scenario is s1
38+ assert results [1 ].scenario is s2
3639
3740 def test_group_plus_scenario (self ) -> None :
3841 s1 , s2 , s3 = make_scenario ('s1' ), make_scenario ('s2' ), make_scenario ('s3' )
3942 group = ScenarioGroup (s1 , s2 ) + s3
4043 assert isinstance (group , ScenarioGroup )
41- assert len (group .run ()) == 3
44+ results = group .run ()
45+ assert len (results ) == 3
46+ assert results [0 ].scenario is s1
47+ assert results [1 ].scenario is s2
48+ assert results [2 ].scenario is s3
4249
4350 def test_scenario_plus_group (self ) -> None :
4451 s1 , s2 , s3 = make_scenario ('s1' ), make_scenario ('s2' ), make_scenario ('s3' )
4552 group = s1 + ScenarioGroup (s2 , s3 )
4653 assert isinstance (group , ScenarioGroup )
47- assert len (group .run ()) == 3
54+ results = group .run ()
55+ assert len (results ) == 3
56+ assert results [0 ].scenario is s1
57+ assert results [1 ].scenario is s2
58+ assert results [2 ].scenario is s3
4859
4960 def test_group_plus_group (self ) -> None :
5061 s1 , s2 , s3 = make_scenario ('s1' ), make_scenario ('s2' ), make_scenario ('s3' )
5162 group = ScenarioGroup (s1 ) + ScenarioGroup (s2 , s3 )
5263 assert isinstance (group , ScenarioGroup )
53- assert len (group .run ()) == 3
64+ results = group .run ()
65+ assert len (results ) == 3
66+ assert results [0 ].scenario is s1
67+ assert results [1 ].scenario is s2
68+ assert results [2 ].scenario is s3
5469
5570 def test_triple_sum_is_flat (self ) -> None :
5671 s1 , s2 , s3 = make_scenario ('s1' ), make_scenario ('s2' ), make_scenario ('s3' )
5772 group = s1 + s2 + s3
5873 assert isinstance (group , ScenarioGroup )
59- assert len (group .run ()) == 3
74+ results = group .run ()
75+ assert len (results ) == 3
76+ assert results [0 ].scenario is s1
77+ assert results [1 ].scenario is s2
78+ assert results [2 ].scenario is s3
6079
6180 def test_add_returns_new_group (self ) -> None :
6281 s1 , s2 = make_scenario ('s1' ), make_scenario ('s2' )
6382 g = ScenarioGroup (s1 )
6483 new_g = g + s2
6584 assert new_g is not g
6685 assert len (g ._scenarios ) == 1 # original not mutated
86+ assert new_g ._scenarios [0 ] is s1
87+ assert new_g ._scenarios [1 ] is s2
6788
6889 def test_add_unknown_type_returns_not_implemented (self ) -> None :
6990 g = ScenarioGroup ()
@@ -124,6 +145,19 @@ def test_empty_group_run_with_warmup(self) -> None:
124145 g = ScenarioGroup ()
125146 assert g .run (warmup = 10 ) == []
126147
148+ def test_run_negative_warmup_acts_as_zero (self ) -> None :
149+ counter = [0 ]
150+
151+ def fn () -> None :
152+ counter [0 ] += 1
153+
154+ s = Scenario (fn , name = 's' , number = 3 )
155+ g = ScenarioGroup (s )
156+ results = g .run (warmup = - 5 )
157+ assert len (results ) == 1
158+ assert len (results [0 ].durations ) == 3
159+ assert counter [0 ] == 3 # range(-5) == empty, so no warmup calls
160+
127161 def test_run_returns_benchmark_results (self ) -> None :
128162 s = make_scenario ()
129163 g = ScenarioGroup (s )
0 commit comments