Skip to content

Commit 25f1ee6

Browse files
add test cases
1 parent 8e36dd6 commit 25f1ee6

File tree

1 file changed

+78
-0
lines changed

1 file changed

+78
-0
lines changed

tests/array.rs

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2828,3 +2828,81 @@ fn test_slice_assign()
28282828
*a.slice_mut(s![1..3]) += 1;
28292829
assert_eq!(a, array![0, 2, 3, 3, 4]);
28302830
}
2831+
2832+
#[test]
2833+
fn reverse_axes()
2834+
{
2835+
let mut a = arr2(&[[1, 2], [3, 4]]);
2836+
a.reverse_axes();
2837+
assert_eq!(a, arr2(&[[1, 3], [2, 4]]));
2838+
2839+
let mut a = arr2(&[[1, 2, 3], [4, 5, 6]]);
2840+
a.reverse_axes();
2841+
assert_eq!(a, arr2(&[[1, 4], [2, 5], [3, 6]]));
2842+
2843+
let mut a = Array::from_iter(0..24)
2844+
.into_shape_with_order((2, 3, 4))
2845+
.unwrap();
2846+
let original = a.clone();
2847+
a.reverse_axes();
2848+
for ((i0, i1, i2), elem) in original.indexed_iter() {
2849+
assert_eq!(*elem, a[(i2, i1, i0)]);
2850+
}
2851+
}
2852+
2853+
#[test]
2854+
fn permute_axes()
2855+
{
2856+
let mut a = arr2(&[[1, 2], [3, 4]]);
2857+
a.permute_axes([1, 0]);
2858+
assert_eq!(a, arr2(&[[1, 3], [2, 4]]));
2859+
2860+
let mut a = Array::from_iter(0..24)
2861+
.into_shape_with_order((2, 3, 4))
2862+
.unwrap();
2863+
let original = a.clone();
2864+
a.permute_axes([2, 1, 0]);
2865+
for ((i0, i1, i2), elem) in original.indexed_iter() {
2866+
assert_eq!(*elem, a[(i2, i1, i0)]);
2867+
}
2868+
2869+
let mut a = Array::from_iter(0..120)
2870+
.into_shape_with_order((2, 3, 4, 5))
2871+
.unwrap();
2872+
let original = a.clone();
2873+
a.permute_axes([1, 0, 3, 2]);
2874+
for ((i0, i1, i2, i3), elem) in original.indexed_iter() {
2875+
assert_eq!(*elem, a[(i1, i0, i3, i2)]);
2876+
}
2877+
}
2878+
2879+
#[should_panic]
2880+
#[test]
2881+
fn permute_axes_repeated_axis()
2882+
{
2883+
let mut a = Array::from_iter(0..24)
2884+
.into_shape_with_order((2, 3, 4))
2885+
.unwrap();
2886+
a.permute_axes([1, 0, 1]);
2887+
}
2888+
2889+
#[should_panic]
2890+
#[test]
2891+
fn permute_axes_missing_axis()
2892+
{
2893+
let mut a = Array::from_iter(0..24)
2894+
.into_shape_with_order((2, 3, 4))
2895+
.unwrap()
2896+
.into_dyn();
2897+
a.permute_axes(&[2, 0][..]);
2898+
}
2899+
2900+
#[should_panic]
2901+
#[test]
2902+
fn permute_axes_oob()
2903+
{
2904+
let mut a = Array::from_iter(0..24)
2905+
.into_shape_with_order((2, 3, 4))
2906+
.unwrap();
2907+
a.permute_axes([1, 0, 3]);
2908+
}

0 commit comments

Comments
 (0)