| 1998 | |
| 1999 | #[test] |
| 2000 | fn test_primitive_array_slice() { |
| 2001 | let arr = Int32Array::from(vec![ |
| 2002 | Some(0), |
| 2003 | None, |
| 2004 | Some(2), |
| 2005 | None, |
| 2006 | Some(4), |
| 2007 | Some(5), |
| 2008 | Some(6), |
| 2009 | None, |
| 2010 | None, |
| 2011 | ]); |
| 2012 | assert_eq!(9, arr.len()); |
| 2013 | assert_eq!(0, arr.offset()); |
| 2014 | assert_eq!(4, arr.null_count()); |
| 2015 | |
| 2016 | let arr2 = arr.slice(2, 5); |
| 2017 | assert_eq!(5, arr2.len()); |
| 2018 | assert_eq!(1, arr2.null_count()); |
| 2019 | |
| 2020 | for i in 0..arr2.len() { |
| 2021 | assert_eq!(i == 1, arr2.is_null(i)); |
| 2022 | assert_eq!(i != 1, arr2.is_valid(i)); |
| 2023 | } |
| 2024 | let int_arr2 = arr2.as_any().downcast_ref::<Int32Array>().unwrap(); |
| 2025 | assert_eq!(2, int_arr2.values()[0]); |
| 2026 | assert_eq!(&[4, 5, 6], &int_arr2.values()[2..5]); |
| 2027 | |
| 2028 | let arr3 = arr2.slice(2, 3); |
| 2029 | assert_eq!(3, arr3.len()); |
| 2030 | assert_eq!(0, arr3.null_count()); |
| 2031 | |
| 2032 | let int_arr3 = arr3.as_any().downcast_ref::<Int32Array>().unwrap(); |
| 2033 | assert_eq!(&[4, 5, 6], int_arr3.values()); |
| 2034 | assert_eq!(4, int_arr3.value(0)); |
| 2035 | assert_eq!(5, int_arr3.value(1)); |
| 2036 | assert_eq!(6, int_arr3.value(2)); |
| 2037 | } |
| 2038 | |
| 2039 | #[test] |
| 2040 | fn test_boolean_array_slice() { |