#![cfg(feature = "laurent")]
use echidna::Laurent;
#[test]
fn add_zero_to_large_pole_order() {
let x: Laurent<f64, 4> = Laurent::new([1.0, 2.0, 3.0, 4.0], 4);
let y = x + Laurent::<f64, 4>::zero();
assert_eq!(y.pole_order(), 4);
assert_eq!(y.coeff(4), 1.0);
assert_eq!(y.coeff(7), 4.0);
}
#[test]
fn add_zero_left_large_pole_order() {
let x: Laurent<f64, 4> = Laurent::new([1.0, 2.0, 3.0, 4.0], 4);
let y = Laurent::<f64, 4>::zero() + x;
assert_eq!(y.pole_order(), 4);
assert_eq!(y.coeff(4), 1.0);
assert_eq!(y.coeff(7), 4.0);
}
#[test]
fn sub_zero_from_large_pole_order() {
let x: Laurent<f64, 4> = Laurent::new([1.0, 2.0, 3.0, 4.0], 4);
let y = x - Laurent::<f64, 4>::zero();
assert_eq!(y.pole_order(), 4);
assert_eq!(y.coeff(4), 1.0);
}
#[test]
fn sub_from_zero_large_pole_order() {
let x: Laurent<f64, 4> = Laurent::new([1.0, 2.0, 3.0, 4.0], 4);
let y = Laurent::<f64, 4>::zero() - x;
assert_eq!(y.pole_order(), 4);
assert_eq!(y.coeff(4), -1.0);
assert_eq!(y.coeff(7), -4.0);
}
#[test]
fn powi_then_add_zero() {
let x: Laurent<f64, 4> = Laurent::variable(0.0);
let y = x.powi(4);
let _sum = y + Laurent::<f64, 4>::zero();
}