md_analysis 0.1.0

molecular dynamics
/// 分子动力学分析工具常量

/// dw/ar 字段的最大值,超出此值的钳位到此数
pub const BIN_MAX: u64 = 20_000;

/// bin 数量 (0 ~ 10000 => 10001 bins)
pub const NUM_BINS: usize = (BIN_MAX + 1) as usize;

pub fn default_worker_count() -> usize {
    num_cpus::get_physical()
}

#[cfg(test)]
mod tests {
    use super::*;

    #[test]
    fn bin_max_is_10000() {
        assert_eq!(BIN_MAX, 10_000);
    }

    #[test]
    fn num_bins_is_10001() {
        assert_eq!(NUM_BINS, 10_001);
    }

    #[test]
    fn num_bins_matches_bin_max_plus_one() {
        assert_eq!(NUM_BINS, (BIN_MAX + 1) as usize);
    }

    #[test]
    fn default_worker_count_is_positive() {
        let n = default_worker_count();
        assert!(n > 0, "expected at least 1 worker on this machine");
    }
}