test: test for new

This commit is contained in:
2026-04-29 15:38:47 -06:00
parent 410d963f39
commit b376e3018a

View File

@@ -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]);
}
}