Skip to content

Commit 02bc59b

Browse files
committed
fix: widen timing margins in diminished returns tests for macOS CI
1 parent ae249b8 commit 02bc59b

File tree

2 files changed

+12
-24
lines changed

2 files changed

+12
-24
lines changed

crates/solverforge-solver/src/termination/diminished_returns.rs

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -208,26 +208,20 @@ mod tests {
208208

209209
#[test]
210210
fn test_terminates_with_zero_improvement() {
211-
// Use 200ms window with larger margins for cross-platform reliability
212211
let termination =
213-
DiminishedReturnsTermination::<TestSolution>::new(Duration::from_millis(200), 0.1);
212+
DiminishedReturnsTermination::<TestSolution>::new(Duration::from_millis(500), 0.1);
214213

215214
let scope = create_test_scope_with_score(SimpleScore::of(-100));
216215

217-
// First call starts tracking at T0
216+
// First call starts tracking
218217
assert!(!termination.is_terminated(&scope));
219218

220-
// Wait well into grace period but keep first sample in window
221-
sleep(Duration::from_millis(120));
222-
223-
// Second call adds sample at T0+120ms (still in window)
224-
// Both samples have score -100, so rate is 0
219+
// Brief pause, well within 500ms grace period
220+
sleep(Duration::from_millis(50));
225221
assert!(!termination.is_terminated(&scope));
226222

227-
// Wait past grace period with margin for timing variance
228-
sleep(Duration::from_millis(100));
229-
230-
// Third call: past grace period (220ms > 200ms), 2+ samples, rate ~0
223+
// Wait past grace period
224+
sleep(Duration::from_millis(500));
231225
assert!(termination.is_terminated(&scope));
232226
}
233227

crates/solverforge-solver/src/termination/tests.rs

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -235,26 +235,20 @@ fn test_diminished_not_terminated_during_grace_period() {
235235

236236
#[test]
237237
fn test_diminished_terminates_with_zero_improvement() {
238-
// Use 200ms window with larger margins for cross-platform reliability
239238
let termination =
240-
DiminishedReturnsTermination::<TestSolution>::new(Duration::from_millis(200), 0.1);
239+
DiminishedReturnsTermination::<TestSolution>::new(Duration::from_millis(500), 0.1);
241240

242241
let scope = create_scope_with_score(SimpleScore::of(-100));
243242

244-
// First call starts tracking at T0
243+
// First call starts tracking
245244
assert!(!termination.is_terminated(&scope));
246245

247-
// Wait well into grace period but keep first sample in window
248-
sleep(Duration::from_millis(120));
249-
250-
// Second call adds sample at T0+120ms (still in window)
251-
// Both samples have score -100, so rate is 0
246+
// Brief pause, well within 500ms grace period
247+
sleep(Duration::from_millis(50));
252248
assert!(!termination.is_terminated(&scope));
253249

254-
// Wait past grace period with margin for timing variance
255-
sleep(Duration::from_millis(100));
256-
257-
// Third call: past grace period (220ms > 200ms), 2+ samples, rate ~0
250+
// Wait past grace period
251+
sleep(Duration::from_millis(500));
258252
assert!(termination.is_terminated(&scope));
259253
}
260254

0 commit comments

Comments
 (0)