cranpose 0.1.162

Cranpose runtime and UI facade
Documentation
use super::*;

#[test]
fn finite_deadlines_do_not_become_early_polls() {
    for (nanos, milliseconds) in [
        (1, 1),
        (999_999, 1),
        (1_000_000, 1),
        (1_000_001, 2),
        (16_666_667, 17),
    ] {
        assert_eq!(
            poll_timeout(Some(Duration::from_nanos(nanos))),
            Some(Duration::from_millis(milliseconds)),
            "deadline at {nanos} ns",
        );
    }
}

#[test]
fn immediate_and_unbounded_polls_remain_distinct() {
    assert_eq!(poll_timeout(None), None);
    assert_eq!(poll_timeout(Some(Duration::ZERO)), Some(Duration::ZERO));
}

#[test]
fn distant_deadlines_fit_the_platforms_signed_timeout() {
    let maximum = Duration::from_millis(i32::MAX as u64);
    for duration in [maximum, maximum + Duration::from_nanos(1), Duration::MAX] {
        assert_eq!(poll_timeout(Some(duration)), Some(maximum));
    }
}