Calculator

fn add(a: f32, b: f32) -> f32 {
    a + b
}

fn sub(a: f32, b: f32) -> f32 {
    if a < b {
        panic!("first value cannot be less than the second value");
    } else {
        a - b
    }
}

#[allow(dead_code)]
fn mul(a: f32, b: f32) -> f32 {
    a * b
}

#[allow(dead_code)]
fn div(a: f32, b: f32) -> f32 {
    a / b
}

fn main() {
    let a: f32 = 17.0;
    let b: f32 = 33.0;
    let op = "-";
    let mut result: f32 = 0.0;

    if op == "+" {
        result = add(a, b);
    } else if op == "-" {
        result = sub(a, b)
    }

    println!("{result}");
}

#[test]
fn test_add() {
    assert!(add(20.0, 10.0) == 30f32);
}

#[test]
fn test_add1() {
    assert!(add(10.0, 20.0) == 30f32);
}

#[test]
#[should_panic(expected = "cannot be less")]
fn test_sub() {
    assert!(sub(10.0, 20.0) == -10.0f32);
}

#[test]
fn test_sub1() {
    assert!(sub(20.0, 10.0) == 10.0f32);
}

#[test]
#[ignore]
fn test_sub2() {
    assert!(sub(20.0, 10.0) == 10f32);
}

How to Test the code

cargo test

How to Run the code

cargo run