MCPcopy Create free account
hub / github.com/apache/arrow-rs / test_try_new

Function test_try_new

arrow-array/src/array/list_array.rs:1257–1309  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

1255
1256 #[test]
1257 fn test_try_new() {
1258 let offsets = OffsetBuffer::new(vec![0, 1, 4, 5].into());
1259 let values = Int32Array::new(vec![1, 2, 3, 4, 5].into(), None);
1260 let values = Arc::new(values) as ArrayRef;
1261
1262 let field = Arc::new(Field::new("element", DataType::Int32, false));
1263 ListArray::new(field.clone(), offsets.clone(), values.clone(), None);
1264
1265 let nulls = NullBuffer::new_null(3);
1266 ListArray::new(field.clone(), offsets, values.clone(), Some(nulls));
1267
1268 let nulls = NullBuffer::new_null(3);
1269 let offsets = OffsetBuffer::new(vec![0, 1, 2, 4, 5].into());
1270 let err = LargeListArray::try_new(field, offsets.clone(), values.clone(), Some(nulls))
1271 .unwrap_err();
1272
1273 assert_eq!(
1274 err.to_string(),
1275 "Invalid argument error: Incorrect length of null buffer for LargeListArray, expected 4 got 3"
1276 );
1277
1278 let field = Arc::new(Field::new("element", DataType::Int64, false));
1279 let err = LargeListArray::try_new(field.clone(), offsets.clone(), values.clone(), None)
1280 .unwrap_err();
1281
1282 assert_eq!(
1283 err.to_string(),
1284 "Invalid argument error: LargeListArray expected data type Int64 got Int32 for \"element\""
1285 );
1286
1287 let nulls = NullBuffer::new_null(7);
1288 let values = Int64Array::new(vec![0; 7].into(), Some(nulls));
1289 let values = Arc::new(values);
1290
1291 let err =
1292 LargeListArray::try_new(field, offsets.clone(), values.clone(), None).unwrap_err();
1293
1294 assert_eq!(
1295 err.to_string(),
1296 "Invalid argument error: Non-nullable field of LargeListArray \"element\" cannot contain nulls"
1297 );
1298
1299 let field = Arc::new(Field::new("element", DataType::Int64, true));
1300 LargeListArray::new(field.clone(), offsets.clone(), values, None);
1301
1302 let values = Int64Array::new(vec![0; 2].into(), None);
1303 let err = LargeListArray::try_new(field, offsets, Arc::new(values), None).unwrap_err();
1304
1305 assert_eq!(
1306 err.to_string(),
1307 "Invalid argument error: Max offset of 5 exceeds length of values 2"
1308 );
1309 }
1310
1311 #[test]
1312 fn test_from_fixed_size_list() {

Callers

nothing calls this directly

Calls 2

try_newFunction · 0.85
cloneMethod · 0.45

Tested by

no test coverage detected