use arrow2::array::{new_null_array, Int32Array};
use arrow2::compute::window::*;
use arrow2::datatypes::DataType;
#[test]
fn shift_pos() {
let array = Int32Array::from(&[Some(1), None, Some(3)]);
let result = shift(&array, 1).unwrap();
let expected = Int32Array::from(&[None, Some(1), None]);
assert_eq!(expected, result.as_ref());
}
#[test]
fn shift_many() {
let array = Int32Array::from(&[Some(1), None, Some(3)]).to(DataType::Date32);
assert!(shift(&array, 10).is_err());
}
#[test]
fn shift_max() {
let array = Int32Array::from(&[Some(1), None, Some(3)]).to(DataType::Date32);
let result = shift(&array, 3).unwrap();
let expected = new_null_array(DataType::Date32, 3);
assert_eq!(expected.as_ref(), result.as_ref());
}