in src/lib.rs [436:456]
fn set_next_checkpoint(&mut self, deadline: Instant, current_time: Instant) {
const DEADLINE_CHECK_RATIO: f64 = 0.75;
let duration_until_next_checkpoint = {
let duration_until_deadline = deadline - current_time;
duration_until_deadline.mul_f64(DEADLINE_CHECK_RATIO)
};
let avg_iter_duration = {
let test_elapsed = current_time - self.test_start_time;
test_elapsed.div_f64(self.completed_iter as f64)
};
let iter_until_next_checkpoint = {
let x =
Self::div_duration_f64(duration_until_next_checkpoint, avg_iter_duration) as u64;
u64::max(x, 1)
};
self.checkpoint += iter_until_next_checkpoint;
}