Skip to content

Commit f566abd

Browse files
author
maxtremblay
committed
Add tests and change behavior of transpose empty
1 parent 0722210 commit f566abd

File tree

2 files changed

+17
-2
lines changed

2 files changed

+17
-2
lines changed

src/matrix/nullspace.rs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,4 +119,11 @@ mod test {
119119
);
120120
assert_eq!(permute_columns(&matrix, &permutation), expected);
121121
}
122+
123+
#[test]
124+
fn matrix_with_zero_rows() {
125+
let matrix = SparseBinMat::new(4, vec![]);
126+
let expected = SparseBinMat::new(4, vec![vec![0], vec![1], vec![2], vec![3]]);
127+
assert_eq!(nullspace(&matrix), expected);
128+
}
122129
}

src/matrix/transpose.rs

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@ use super::SparseBinMat;
22

33
pub(super) fn transpose(matrix: &SparseBinMat) -> SparseBinMat {
44
if matrix.is_empty() {
5-
return SparseBinMat::empty();
5+
println!("{}", matrix.number_of_columns());
6+
return SparseBinMat::new(0, vec![vec![]; matrix.number_of_columns()]);
67
}
78
let mut transposed = vec![Vec::new(); matrix.number_of_columns()];
89
for (row, positions) in matrix.rows().enumerate() {
@@ -24,7 +25,7 @@ mod test {
2425
#[test]
2526
fn transposition_of_empty_matrix() {
2627
let transposed = SparseBinMat::empty().transposed();
27-
assert_eq!(transposed, SparseBinMat::empty());
28+
assert!(transposed.is_empty());
2829
}
2930

3031
#[test]
@@ -53,4 +54,11 @@ mod test {
5354

5455
assert_eq!(matrix.transposed(), transposed);
5556
}
57+
58+
#[test]
59+
fn transpose_matrix_without_rows() {
60+
let matrix = SparseBinMat::new(5, vec![]);
61+
let expected = SparseBinMat::new(0, vec![vec![]; 5]);
62+
assert_eq!(matrix.transposed(), expected)
63+
}
5664
}

0 commit comments

Comments
 (0)