fix: address review findings in grid sampler, parallel optimization, and CSV export

- Rename stale "GridSearchSampler" panic message to "GridSampler"
- Assert concurrency > 0 in optimize_parallel to prevent deadlock
- Fix inaccurate comment in CSV export (empty for all non-complete trials, not just pruned)
This commit is contained in:
Manuel Raimann
2026-02-12 17:57:29 +01:00
parent 9f2ce2a482
commit 1cd18c16f9
3 changed files with 5 additions and 3 deletions
+2 -2
View File
@@ -601,7 +601,7 @@ impl Sampler for GridSampler {
// Check if all points have been exhausted
assert!(
cached.current_index < cached.points.len(),
"GridSearchSampler: all grid points exhausted"
"GridSampler: all grid points exhausted"
);
// Get the current grid point and advance the index
@@ -908,7 +908,7 @@ mod tests {
}
#[test]
#[should_panic(expected = "GridSearchSampler: all grid points exhausted")]
#[should_panic(expected = "GridSampler: all grid points exhausted")]
fn test_sampler_panics_after_exhaustion() {
let sampler = GridSampler::new();
let dist = Distribution::Categorical(CategoricalDistribution { n_choices: 2 });
+2
View File
@@ -171,6 +171,8 @@ where
use tokio::sync::Semaphore;
use tokio::task::JoinSet;
assert!(concurrency > 0, "concurrency must be at least 1");
#[cfg(feature = "tracing")]
let _span = tracing::info_span!("optimize_parallel", n_trials, concurrency, direction = ?self.direction).entered();
+1 -1
View File
@@ -91,7 +91,7 @@ where
for trial in trials.iter() {
write!(writer, "{}", trial.id)?;
// Value: empty for pruned trials.
// Value: empty for non-complete trials.
if trial.state == TrialState::Complete {
write!(writer, ",{}", trial.value)?;
} else {