uddf-sdk 0.2.1

Reading and writing UDDF files
Documentation
pub fn convert_celsius_to_kelvin(celsius: f64) -> f64 {
    celsius + 273.15
}

pub fn convert_bar_to_pascal(bar: f64, decimal_places: u32) -> f64 {
    let factor = 10f64.powi(decimal_places as i32);
    (bar * 100_000.0 * factor).round() / factor
}

pub fn semicircles_to_degrees(semicircles: i32, decimal_places: u32) -> f64 {
    let factor = 10f64.powi(decimal_places as i32);
    (semicircles as f64 * (180f64 / 2f64.powi(31)) * factor).round() / factor
}

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

    #[test]
    fn test_convert_celsius_to_kelvin() {
        assert_eq!(convert_celsius_to_kelvin(0.0), 273.15);
        assert_eq!(convert_celsius_to_kelvin(100.0), 373.15);
        assert_eq!(convert_celsius_to_kelvin(-273.15), 0.0);
        assert_eq!(convert_celsius_to_kelvin(25.0), 298.15);
    }

    #[test]
    fn test_convert_bar_to_pascal() {
        assert_eq!(convert_bar_to_pascal(1.0, 0), 100_000.0);
        assert_eq!(convert_bar_to_pascal(0.0, 0), 0.0);
        assert_eq!(convert_bar_to_pascal(2.0, 0), 200_000.0);
        assert_eq!(convert_bar_to_pascal(0.5, 0), 50_000.0);
        assert_eq!(convert_bar_to_pascal(78.57, 2), 7_857_000.0);
    }

    #[test]
    fn test_semicircles_to_degrees() {
        assert_eq!(semicircles_to_degrees(0, 1), 0.0);
        assert_eq!(semicircles_to_degrees(579933426, 10), 48.6094582267);
        assert_eq!(semicircles_to_degrees(-55384979, 10), -4.6423153114);
    }
}