fn divide(a: f64, b: f64) -> Result<f64, String> {
    if b == 0.0 {
        return Err(String::from("Cannot divide by zero"));
    }
    Ok(a / b)
}

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

    #[test]
    fn test_divide_positive_numbers() {
        let result = divide(10.0, 2.0);
        assert_eq!(result.unwrap(), 5.0);
    }

    #[test]
    fn test_divide_negative_numbers() {
        let result = divide(-10.0, 2.0);
        assert_eq!(result.unwrap(), -5.0);
    }

    #[test]
    fn test_divide_by_zero() {
        let result = divide(10.0, 0.0);
        assert!(result.is_err());
    }
}

fn main() {
    match divide(10.0, 2.0) {
        Ok(result) => println!("10.0 divided by 2.0 is {}", result),
        Err(e) => println!("Error: {}", e),
    }
}
