()
| 1235 | |
| 1236 | #[test] |
| 1237 | fn test_sliced_list_offsets() { |
| 1238 | // Full rows: |
| 1239 | // row 0: [1, 2] (not visible after slicing) |
| 1240 | // row 1: [11, 12] (visible row 0) |
| 1241 | // row 2: [21, 22] (visible row 1) |
| 1242 | // row 3: [31, 32] (not visible after slicing) |
| 1243 | let field: Arc<Field> = Arc::new(Field::new("item", DataType::Int32, false)); |
| 1244 | let full_values = Arc::new(Int32Array::from(vec![1, 2, 11, 12, 21, 22, 31, 32])); |
| 1245 | let full_offsets = OffsetBuffer::new(vec![0, 2, 4, 6, 8].into()); |
| 1246 | let full = ListArray::new(Arc::clone(&field), full_offsets, full_values, None); |
| 1247 | let sliced_haystack: ArrayRef = Arc::new(full.slice(1, 2)); |
| 1248 | |
| 1249 | // array_has_all: needle row 0 = [11], row 1 = [21] |
| 1250 | let needle_all: ArrayRef = Arc::new(ListArray::new( |
| 1251 | Arc::clone(&field), |
| 1252 | OffsetBuffer::new(vec![0, 1, 2].into()), |
| 1253 | Arc::new(Int32Array::from(vec![11, 21])), |
| 1254 | None, |
| 1255 | )); |
| 1256 | invoke_and_assert( |
| 1257 | &ArrayHasAll::new(), |
| 1258 | &sliced_haystack, |
| 1259 | needle_all, |
| 1260 | &[Some(true), Some(true)], |
| 1261 | ); |
| 1262 | |
| 1263 | // array_has_any: needle row 0 = [99, 11], row 1 = [99, 21] |
| 1264 | let needle_any: ArrayRef = Arc::new(ListArray::new( |
| 1265 | field, |
| 1266 | OffsetBuffer::new(vec![0, 2, 4].into()), |
| 1267 | Arc::new(Int32Array::from(vec![99, 11, 99, 21])), |
| 1268 | None, |
| 1269 | )); |
| 1270 | invoke_and_assert( |
| 1271 | &ArrayHasAny::new(), |
| 1272 | &sliced_haystack, |
| 1273 | needle_any, |
| 1274 | &[Some(true), Some(true)], |
| 1275 | ); |
| 1276 | } |
| 1277 | |
| 1278 | #[test] |
| 1279 | fn test_sliced_fixed_size_list_offsets() { |
nothing calls this directly
no test coverage detected
searching dependent graphs…