test: test for new
This commit is contained in:
58
src/lib.rs
58
src/lib.rs
@@ -537,4 +537,62 @@ impl Display for Matrix {
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::*;
|
||||
|
||||
#[test]
|
||||
fn test_new_valid_matrix() {
|
||||
let m = Matrix::new(2, 3, Fraction::from(1i64)).unwrap();
|
||||
|
||||
assert_eq!(m.rows, 2);
|
||||
assert_eq!(m.columns, 3);
|
||||
assert_eq!(m.data.len(), 6);
|
||||
|
||||
for val in m.data {
|
||||
assert_eq!(val, Fraction::from(1i64));
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_new_single_element() {
|
||||
let m = Matrix::new(1, 1, Fraction::from(5i64)).unwrap();
|
||||
|
||||
assert_eq!(m.rows, 1);
|
||||
assert_eq!(m.columns, 1);
|
||||
assert_eq!(m.data.len(), 1);
|
||||
assert_eq!(m.data[0], Fraction::from(5i64));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_new_zero_rows() {
|
||||
let result = Matrix::new(0, 3, Fraction::from(0i64));
|
||||
|
||||
assert!(result.is_err());
|
||||
assert_eq!(result.unwrap_err(), MatrixError::ZeroSize);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_new_zero_columns() {
|
||||
let result = Matrix::new(3, 0, Fraction::from(0i64));
|
||||
|
||||
assert!(result.is_err());
|
||||
assert_eq!(result.unwrap_err(), MatrixError::ZeroSize);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_new_large_matrix() {
|
||||
let m = Matrix::new(100, 100, Fraction::from(2i64)).unwrap();
|
||||
|
||||
assert_eq!(m.data.len(), 10000);
|
||||
assert!(m.data.iter().all(|x| *x == Fraction::from(2i64)));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_new_independent_data() {
|
||||
let m1 = Matrix::new(2, 2, Fraction::from(1i64)).unwrap();
|
||||
let mut m2 = Matrix::new(2, 2, Fraction::from(1i64)).unwrap();
|
||||
|
||||
// modificar uno no debe afectar al otro
|
||||
m2.data[0] = Fraction::from(99i64);
|
||||
|
||||
assert_ne!(m1.data[0], m2.data[0]);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user