test: tests for get_row
This commit is contained in:
97
src/lib.rs
97
src/lib.rs
@@ -696,4 +696,101 @@ mod tests {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_get_row_valid() {
|
||||||
|
let m = Matrix {
|
||||||
|
rows: 3,
|
||||||
|
columns: 3,
|
||||||
|
data: vec![
|
||||||
|
Fraction::from(1),
|
||||||
|
Fraction::from(2),
|
||||||
|
Fraction::from(3),
|
||||||
|
Fraction::from(4),
|
||||||
|
Fraction::from(5),
|
||||||
|
Fraction::from(6),
|
||||||
|
Fraction::from(7),
|
||||||
|
Fraction::from(8),
|
||||||
|
Fraction::from(9),
|
||||||
|
],
|
||||||
|
};
|
||||||
|
|
||||||
|
let row: Vec<Fraction> = m.get_row(1).unwrap().cloned().collect();
|
||||||
|
|
||||||
|
assert_eq!(
|
||||||
|
row,
|
||||||
|
vec![Fraction::from(4), Fraction::from(5), Fraction::from(6)]
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_get_first_row() {
|
||||||
|
let m = Matrix::new(2, 3, Fraction::from(10)).unwrap();
|
||||||
|
|
||||||
|
let row: Vec<Fraction> = m.get_row(0).unwrap().cloned().collect();
|
||||||
|
|
||||||
|
assert_eq!(row, vec![Fraction::from(10); 3]);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_get_last_row() {
|
||||||
|
let m = Matrix {
|
||||||
|
rows: 2,
|
||||||
|
columns: 2,
|
||||||
|
data: vec![
|
||||||
|
Fraction::from(1),
|
||||||
|
Fraction::from(2),
|
||||||
|
Fraction::from(3),
|
||||||
|
Fraction::from(4),
|
||||||
|
],
|
||||||
|
};
|
||||||
|
|
||||||
|
let row: Vec<Fraction> = m.get_row(1).unwrap().cloned().collect();
|
||||||
|
|
||||||
|
assert_eq!(row, vec![Fraction::from(3), Fraction::from(4)]);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_get_row_out_of_bounds() {
|
||||||
|
let m = Matrix::new(2, 2, Fraction::from(0)).unwrap();
|
||||||
|
|
||||||
|
let result = m.get_row(2);
|
||||||
|
|
||||||
|
assert!(result.is_err());
|
||||||
|
assert!(matches!(result, Err(MatrixError::RowOutOfRange)));
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_get_row_length() {
|
||||||
|
let m = Matrix::new(4, 5, Fraction::from(1)).unwrap();
|
||||||
|
|
||||||
|
let row: Vec<Fraction> = m.get_row(3).unwrap().cloned().collect();
|
||||||
|
|
||||||
|
assert_eq!(row.len(), 5);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_get_row_iterator_multiple_times() {
|
||||||
|
let m = Matrix::new(2, 3, Fraction::from(7)).unwrap();
|
||||||
|
|
||||||
|
let iter1: Vec<Fraction> = m.get_row(0).unwrap().cloned().collect();
|
||||||
|
let iter2: Vec<Fraction> = m.get_row(0).unwrap().cloned().collect();
|
||||||
|
|
||||||
|
assert_eq!(iter1, iter2);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_get_row_matches_get() {
|
||||||
|
let m = Matrix {
|
||||||
|
rows: 3,
|
||||||
|
columns: 3,
|
||||||
|
data: (0..9).map(|x| Fraction::from(x)).collect(),
|
||||||
|
};
|
||||||
|
|
||||||
|
let row = m.get_row(2).unwrap();
|
||||||
|
|
||||||
|
for (col, val) in row.enumerate() {
|
||||||
|
assert_eq!(*val, *m.get(2, col).unwrap());
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user