Skip to content

Commit

Permalink
TEST: Add append test that deals with incorrect layout situations
Browse files Browse the repository at this point in the history
The existing code can already be used to clone an array into an
appendable situation.

I.e. even if a.try_append_array(axis, b) would error, we can always do this:

let c = empty array
c.try_append_array(axis, &a);
c.try_append_array(axis, &b);
  • Loading branch information
bluss committed Apr 3, 2021
1 parent 6f8058b commit 32fc3a3
Showing 1 changed file with 26 additions and 0 deletions.
26 changes: 26 additions & 0 deletions tests/append.rs
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,32 @@ fn append_row() {
Err(ShapeError::from_kind(ErrorKind::IncompatibleLayout)));
}

#[test]
fn append_row_wrong_layout() {
let mut a = Array::zeros((0, 4));
a.try_append_row(aview1(&[0., 1., 2., 3.])).unwrap();
a.try_append_row(aview1(&[4., 5., 6., 7.])).unwrap();
assert_eq!(a.shape(), &[2, 4]);

assert_eq!(a.try_append_column(aview1(&[1., 2.])),
Err(ShapeError::from_kind(ErrorKind::IncompatibleLayout)));

assert_eq!(a,
array![[0., 1., 2., 3.],
[4., 5., 6., 7.]]);

// Clone the array

let mut dim = a.raw_dim();
dim[1] = 0;
let mut b = Array::zeros(dim);
b.try_append_array(Axis(1), a.view()).unwrap();
assert_eq!(b.try_append_column(aview1(&[1., 2.])), Ok(()));
assert_eq!(b,
array![[0., 1., 2., 3., 1.],
[4., 5., 6., 7., 2.]]);
}

#[test]
fn append_row_error() {
let mut a = Array::zeros((3, 4));
Expand Down

0 comments on commit 32fc3a3

Please sign in to comment.