use imagnum::{create_float, create_int};
#[test]
fn int_mixed_ref_value_ops() {
let a = create_int("10");
let b = create_int("3");
let add1 = (a.clone() + &b).unwrap();
assert_eq!(format!("{}", add1), "13");
let add2 = (&a + b.clone()).unwrap();
assert_eq!(format!("{}", add2), "13");
let sub1 = (a.clone() - &b).unwrap();
assert_eq!(format!("{}", sub1), "7");
let sub2 = (&a - b.clone()).unwrap();
assert_eq!(format!("{}", sub2), "7");
let mul1 = (a.clone() * &b).unwrap();
assert_eq!(format!("{}", mul1), "30");
let mul2 = (&a * b.clone()).unwrap();
assert_eq!(format!("{}", mul2), "30");
let div1 = (a.clone() / &b).unwrap();
assert_eq!(format!("{}", div1), "3");
let div2 = (&a / b.clone()).unwrap();
assert_eq!(format!("{}", div2), "3");
let rem1 = (a.clone() % &b).unwrap();
assert_eq!(format!("{}", rem1), "1");
let rem2 = (&a % b.clone()).unwrap();
assert_eq!(format!("{}", rem2), "1");
}
#[test]
fn float_mixed_ref_value_ops() {
let x = create_float("6");
let y = create_float("4");
let add1 = (x.clone() + &y).unwrap();
assert_eq!(format!("{}", add1), "10.0");
let add2 = (&x + y.clone()).unwrap();
assert_eq!(format!("{}", add2), "10.0");
let sub1 = (x.clone() - &y).unwrap();
assert_eq!(format!("{}", sub1), "2.0");
let sub2 = (&x - y.clone()).unwrap();
assert_eq!(format!("{}", sub2), "2.0");
let mul1 = (x.clone() * &y).unwrap();
assert_eq!(format!("{}", mul1), "24.0");
let mul2 = (&x * y.clone()).unwrap();
assert_eq!(format!("{}", mul2), "24.0");
let div1 = (x.clone() / &y).unwrap();
assert_eq!(format!("{}", div1), "1.5");
let div2 = (&x / y.clone()).unwrap();
assert_eq!(format!("{}", div2), "1.5");
let rem1 = (x.clone() % &y).unwrap();
assert_eq!(format!("{}", rem1), "2.0");
let rem2 = (&x % y.clone()).unwrap();
assert_eq!(format!("{}", rem2), "2.0");
}