fn test_dispersion_at()

in clock-bound-d/src/tracking.rs [106:122]


    fn test_dispersion_at() {
        let tracking = mock_tracking();
        let max_clock_error: f64 = 1.0;
        let dur_secs: f64 = 5.0;
        // Validate the new root dispersion is correct for a 5 second duration
        let time = tracking.ref_time + Duration::from_secs(dur_secs as u64);
        let new_root_dispersion = dispersion_at(tracking, &time, max_clock_error);

        // Calculate error rate using tracking information
        let error_rate =
            (max_clock_error + f64::from(tracking.skew_ppm) + f64::from(tracking.resid_freq_ppm))
                * 1e-6;

        // Formula is root_dispersion + duration * error_rate
        let expected_root_dispersion = f64::from(tracking.root_dispersion) + dur_secs * error_rate;
        assert_eq!(new_root_dispersion, expected_root_dispersion);
    }