Skip to content

Commit 5f42c52

Browse files
committed
TEST: Add append test that deals with incorrect layout situations
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);
1 parent d95e5b2 commit 5f42c52

File tree

1 file changed

+26
-0
lines changed

1 file changed

+26
-0
lines changed

tests/append.rs

+26
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,32 @@ fn append_row() {
2121
Err(ShapeError::from_kind(ErrorKind::IncompatibleLayout)));
2222
}
2323

24+
#[test]
25+
fn append_row_wrong_layout() {
26+
let mut a = Array::zeros((0, 4));
27+
a.try_append_row(aview1(&[0., 1., 2., 3.])).unwrap();
28+
a.try_append_row(aview1(&[4., 5., 6., 7.])).unwrap();
29+
assert_eq!(a.shape(), &[2, 4]);
30+
31+
assert_eq!(a.try_append_column(aview1(&[1., 2.])),
32+
Err(ShapeError::from_kind(ErrorKind::IncompatibleLayout)));
33+
34+
assert_eq!(a,
35+
array![[0., 1., 2., 3.],
36+
[4., 5., 6., 7.]]);
37+
38+
// Clone the array
39+
40+
let mut dim = a.raw_dim();
41+
dim[1] = 0;
42+
let mut b = Array::zeros(dim);
43+
b.try_append_array(Axis(1), a.view()).unwrap();
44+
assert_eq!(b.try_append_column(aview1(&[1., 2.])), Ok(()));
45+
assert_eq!(b,
46+
array![[0., 1., 2., 3., 1.],
47+
[4., 5., 6., 7., 2.]]);
48+
}
49+
2450
#[test]
2551
fn append_row_error() {
2652
let mut a = Array::zeros((3, 4));

0 commit comments

Comments
 (0)