lineas 0.1.1

A mathematical linear algebra library for Rust
Documentation
use lineas::polynomials::Polynomial;

#[cfg(test)]
mod add {
	use super::*;
	
	#[cfg(test)]
	mod polynomials {
		use super::*;
		
		#[test]
		fn add() {
			let lhs1 = Polynomial::new(vec![1, 2, 3]);
			let lhs2 = Polynomial::new(vec![-5, 3, 10]);
			let rhs = Polynomial::new(vec![-4, 5, 13]);
			assert_eq!(lhs1 + lhs2, rhs)
		}
		
		#[test]
		fn add_zero_last_2() {
			let lhs1 = Polynomial::new(vec![2, 0, 5, -6]);
			let lhs2 = Polynomial::new(vec![-2, 0, 1, 3]);
			let rhs = Polynomial::new(vec![6, -3]);
			assert_eq!(lhs1 + lhs2, rhs)
		}
		
		#[test]
		fn add_assign() {
			let mut lhs1 = Polynomial::new(vec![1, 2, 3]);
			let lhs2 = Polynomial::new(vec![-5, 3, 10]);
			let rhs = Polynomial::new(vec![-4, 5, 13]);
			lhs1 += lhs2;
			assert_eq!(lhs1, rhs)
		}
		
		#[test]
		fn add_assign_zero_last_2() {
			let mut lhs1 = Polynomial::new(vec![2, 0, 5, -6]);
			let lhs2 = Polynomial::new(vec![-2, 0, 1, 3]);
			let rhs = Polynomial::new(vec![6, -3]);
			lhs1 += lhs2;
			assert_eq!(lhs1, rhs)
		}
	}
	
	#[cfg(test)]
	mod literals {
		use super::*;
		
		#[test]
		fn add() {
			let lhs1 = Polynomial::new(vec![1, 2, 3]);
			let lhs2 = 10;
			let rhs = Polynomial::new(vec![1, 2, 13]);
			assert_eq!(lhs1 + lhs2, rhs)
		}
		
		#[test]
		fn add_zero_last_2() {
			let lhs1 = Polynomial::new(vec![0, 0, 5, -6]);
			let lhs2 = 4;
			let rhs = Polynomial::new(vec![5, -2]);
			assert_eq!(lhs1 + lhs2, rhs)
		}
		
		#[test]
		fn add_assign() {
			let mut lhs1 = Polynomial::new(vec![1, 2, 3]);
			let lhs2 = 10;
			let rhs = Polynomial::new(vec![1, 2, 13]);
			lhs1 += lhs2;
			assert_eq!(lhs1, rhs)
		}
		
		#[test]
		fn add_assign_zero_last_2() {
			let mut lhs1 = Polynomial::new(vec![0, 0, 5, -6]);
			let lhs2 = 4;
			let rhs = Polynomial::new(vec![5, -2]);
			lhs1 += lhs2;
			assert_eq!(lhs1, rhs)
		}
	}
}

#[cfg(test)]
mod mult {
	use super::*;
	
	#[cfg(test)]
	mod polynomials {
		use super::*;
		
		#[test]
		fn mult() {
			let lhs1 = Polynomial::new(vec![1, -2, 3]);
			let lhs2 = Polynomial::new(vec![4, 5, -6]);
			let rhs = Polynomial::new(vec![4, -3, -4, 27, -18]);
			assert_eq!(lhs1 * lhs2, rhs)
		}
		
		#[test]
		fn mult_assign() {
			let mut lhs1 = Polynomial::new(vec![2, 5, -6]);
			let lhs2 = Polynomial::new(vec![4, 1, 3]);
			let rhs = Polynomial::new(vec![8, 22, -13, 9, -18]);
			lhs1 *= lhs2;
			assert_eq!(lhs1, rhs)
		}
	}
	
	#[cfg(test)]
	mod literals {
		use super::*;
		
		#[test]
		fn mult() {
			let lhs1 = Polynomial::new(vec![1, 2, 3]);
			let lhs2 = -4;
			let rhs = Polynomial::new(vec![-4, -8, -12]);
			assert_eq!(lhs1 * lhs2, rhs)
		}
		
		#[test]
		fn mult_assign() {
			let mut lhs1 = Polynomial::new(vec![1, 3, -4]);
			let lhs2 = 2;
			let rhs = Polynomial::new(vec![2, 6, -8]);
			lhs1 *= lhs2;
			assert_eq!(lhs1, rhs)
		}
	}
}