// Function to add two numbers
fn add(a: i32, b: i32) -> i32 {
    a + b
}

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

    #[test]
    fn test_add_positive_numbers() {
        let result = add(2, 3);
        assert_eq!(result, 5);
    }

    #[test]
    fn test_add_negative_numbers() {
        let result = add(-2, -3);
        assert_eq!(result, -5);
    }

    #[test]
    fn test_add_faulty() {
        // This test is intentionally faulty
        let result = add(2, 2);
        assert_eq!(result, 5); // This will fail because 2 + 2 is actually 4
    }
}

fn main() {
    println!("2 + 3 = {}", add(2, 3));
}
