ancomplex 0.0.5

Package provides easy to use, begginer frendly and python like complex numbers
Documentation
#![cfg(test)]

use crate::*;
use std::f64::consts::FRAC_PI_2;
#[test]
fn complex_add_complex() {
    let c = complex(1.0, 4.0);
    let z = complex(17.0, 18.0);
    let correct_result = complex(18., 22.);
    assert_eq!(c + z, correct_result)
}

#[test]
fn complex_sub_complex() {
    let c = complex(1.0, 4.0);
    let z = complex(17.0, 18.0);
    let correct_result = complex(-16., -14.);
    assert_eq!(c - z, correct_result)
}

#[test]
fn complex_mul_complex() {
    let c = complex(1.0, 4.0);
    let z = complex(17.0, 18.0);
    let correct_result = complex(-55., 86.);
    assert_eq!(c * z, correct_result)
}
#[test]
fn complex_div_complex() {
    let c = complex(5.0, 5.0);
    let z = complex(25.0, 30.0);
    let correct_result = complex(5.5, 0.5);
    assert_eq!(z / c, correct_result)
}
#[test]
fn complex_add_f64() {
    let c = complex(1.0, 4.0);
    let z = 2.;
    let correct_result = complex(3., 4.);
    assert_eq!(c + z, correct_result)
}

#[test]
fn complex_sub_f64() {
    let c = complex(1.0, 4.0);
    let z = 8.;
    let correct_result = complex(-7., 4.);
    assert_eq!(c - z, correct_result)
}

#[test]
fn complex_mul_f64() {
    let c = complex(1.0, 4.0);
    let z = 12.;
    let correct_result = complex(12., 48.);
    assert_eq!(c * z, correct_result)
}
#[test]
fn complex_div_f64() {
    let c = complex(5.0, 7.5);
    let z = 2.5;
    let correct_result = complex(2., 3.);
    assert_eq!(c / z, correct_result)
}
#[test]
fn f64_add_complex() {
    let c = complex(1.0, 4.0);
    let z = 2.;
    let correct_result = complex(3., 4.);
    assert_eq!(z + c, correct_result)
}

#[test]
fn f64_sub_complex() {
    let c = complex(1.0, 4.0);
    let z = 8.;
    let correct_result = complex(7., 4.);
    assert_eq!(z - c, correct_result)
}

#[test]
fn f64_mul_complex() {
    let c = complex(1.0, 4.0);
    let z = -12.;
    let correct_result = complex(-12., -48.);
    assert_eq!(z * c, correct_result)
}
#[test]
fn f64_div_complex() {
    let c = complex(5.0, 10.0);
    let z = 2.5;
    let correct_result = complex(0.1, -0.2);
    assert_eq!(z / c, correct_result)
}

#[test]
fn sin_of_complex() {
    let c = complex(0.0, 0.0);
    let correct_result = complex(0.0, 0.0);
    assert_eq!(c.sin(), correct_result);
}

#[test]
fn cos_of_complex() {
    let c = complex(0.0, 0.0);
    let correct_result = complex(1.0, -0.0);
    assert_eq!(c.cos(), correct_result);
}

#[test]
fn tan_of_complex() {
    let c = complex(0.0, 0.0);
    let correct_result = complex(0.0, 0.0);
    assert_eq!(c.tan(), correct_result);
}

#[test]
fn asin_of_complex() {
    let c = complex(0.0, 0.0);
    let correct_result = complex(0.0, -0.0);
    assert_eq!(c.asin(), correct_result);
}

#[test]
fn acos_of_complex() {
    let c = complex(1.0, 0.0);
    let correct_result = complex(0.0, -0.0);
    assert_eq!(c.acos(), correct_result);
}
#[test]
fn atan_of_complex() {
    let c = complex(0.0, 0.0);
    let correct_result = complex(0.0, 0.0);
    assert_eq!(c.atan(), correct_result);
}

#[test]
fn sinh_of_complex() {
    let c = complex(0.0, 0.0);
    let correct_result = complex(0.0, 0.0);
    assert_eq!(c.sinh(), correct_result);
}

#[test]
fn cosh_of_complex() {
    let c = complex(0.0, 0.0);
    let correct_result = complex(1.0, 0.0);
    assert_eq!(c.cosh(), correct_result);
}

#[test]
fn tanh_of_complex() {
    let c = complex(0.0, 0.0);
    let correct_result = complex(0.0, 0.0);
    assert_eq!(c.tanh(), correct_result);
}

#[test]
fn asinh_of_complex() {
    let c = complex(0.0, 0.0);
    let correct_result = complex(0.0, 0.0);
    assert_eq!(c.asinh(), correct_result);
}

#[test]
fn acosh_of_complex() {
    let c = complex(0.0, 0.0);
    let correct_result = complex(0.0, 0.0);
    assert_eq!(c.acosh(), correct_result);
}

#[test]
fn atanh_of_complex() {
    let c = complex(0.0, 0.0);
    let correct_result = complex(0.0, 0.0);
    assert_eq!(c.atanh(), correct_result);
}
#[test]
fn conj_of_complex() {
    let c = complex(5.2, -6.8);
    let correct_result = complex(5.2, 6.8);
    assert_eq!(c.conj(), correct_result);
}
#[test]
fn square_of_complex() {
    let c = complex(0.0, 0.0);
    let correct_result = complex(0.0, 0.0);
    assert_eq!(c.square(), correct_result);
}
#[test]
fn l1_norm_of_complex() {
    let c = complex(2.0, -2.0);
    let correct_result = 4.;
    assert_eq!(c.l1_norm(), correct_result);
}
#[test]
fn norm_of_complex() {
    let c = complex(2.0, 0.0);
    let correct_result = 2.;
    assert_eq!(c.norm(), correct_result);
}
#[test]
fn square_norm_of_complex() {
    let c = complex(2.0, 2.0);
    let correct_result = 8.;
    assert_eq!(c.square_norm(), correct_result);
}
#[test]
fn arg_of_complex() {
    let c = complex(0.0, 1.0);
    let correct_result = FRAC_PI_2;
    assert_eq!(c.arg(), correct_result);
}

#[test]
fn powc_of_complex() {
    let c = complex(1.0, 0.0);
    let z = complex(1.0, 0.0);
    let correct_result = complex(1.0, 0.0);
    println!("{}", correct_result);
    assert_eq!(c.powc(z), correct_result);
}
#[test]
fn powf_of_complex() {
    let c = complex(0.0, 0.0);
    let z = 4.0;
    let correct_result = complex(0.0, 0.0);
    assert_eq!(c.powf(z), correct_result);
}
#[test]
fn powi_of_complex() {
    let c = complex(0.0, 0.0);
    let z = 2;
    let correct_result = complex(0.0, 0.0);
    assert_eq!(c.powi(z), correct_result);
}
#[test]
fn exp_of_complex() {
    let c = complex(0.0, 0.0);
    let correct_result = complex(1.0, 0.0);
    assert_eq!(c.exp(), correct_result);
}
#[test]
fn ln_of_complex() {
    let c = complex(1.0, 0.0);
    let correct_result = complex(0.0, 0.0);
    assert_eq!(c.ln(), correct_result);
}

#[test]
fn sqrt_of_complex() {
    let c = complex(1.0, 0.0);
    let correct_result = complex(1.0, 0.0);
    assert_eq!(c.sqrt(), correct_result);
}

#[test]
fn complex_add_assign_complex() {
    let mut c = complex(6.0, 16.0);
    let z = complex(2.0, 8.0);
    c += z;
    let correct_result = complex(8.0, 24.0);
    assert_eq!(c, correct_result);
}

#[test]
fn complex_sub_assign_complex() {
    let mut c = complex(6.0, 16.0);
    let z = complex(2.0, 8.0);
    c -= z;
    let correct_result = complex(4.0, 8.0);
    assert_eq!(c, correct_result);
}

#[test]
fn complex_mul_assign_complex() {
    let mut c = complex(6.0, 16.0);
    let z = complex(2.0, 8.0);
    c *= z;
    let correct_result = complex(-116.0, 80.0);
    assert_eq!(c, correct_result);
}

#[test]
fn complex_div_assign_complex() {
    let mut c = complex(2.0, 2.0);
    let z = complex(2.0, 2.0);
    c /= z;
    let correct_result = complex(1.0, 0.0);
    assert_eq!(c, correct_result);
}

#[test]
fn complex_rem_assing_complex() {
    let mut c = complex(6.0, 16.0);
    let z = complex(2.0, 8.0);
    c %= z;
    let correct_result = complex(2.0, 0.0);
    assert_eq!(c, correct_result);
}

#[test]
fn complex_add_assign_f64() {
    let mut c = complex(2.0, 2.0);
    let z = 2.0;
    c += z;
    let correct_result = complex(4.0, 2.0);
    assert_eq!(c, correct_result);
}

#[test]
fn complex_sub_assign_f64() {
    let mut c = complex(2.0, 2.0);
    let z = 2.0;
    c -= z;
    let correct_result = complex(0.0, 2.0);
    assert_eq!(c, correct_result);
}

#[test]
fn complex_mul_assign_f64() {
    let mut c = complex(2.0, 2.0);
    let z = 2.0;
    c *= z;
    let correct_result = complex(4.0, 4.0);
    assert_eq!(c, correct_result);
}

#[test]
fn complex_div_assign_f64() {
    let mut c = complex(2.0, 2.0);
    let z = 2.0;
    c /= z;
    let correct_result = complex(1.0, 1.0);
    assert_eq!(c, correct_result);
}

#[test]
fn complex_rem_assing_f64() {
    let mut c = complex(2.0, 2.0);
    let z = 2.0;
    c %= z;
    let correct_result = complex(0.0, 0.0);
    assert_eq!(c, correct_result);
}
#[test]
fn neg_of_complex() {
    let c = complex(2.0, 2.0);
    let correct_result = complex(-2.0, -2.0);
    assert_eq!(-c, correct_result);
}