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

Function test_validates_keys

parquet/src/arrow/buffer/dictionary_buffer.rs:370–395  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

368
369 #[test]
370 fn test_validates_keys() {
371 let dict_type =
372 ArrowType::Dictionary(Box::new(ArrowType::Int32), Box::new(ArrowType::Utf8));
373
374 let mut buffer = DictionaryBuffer::<i32, i32>::with_capacity(0);
375 let d = Arc::new(StringArray::from(vec!["", "f"])) as ArrayRef;
376 buffer.as_keys(&d).unwrap().extend_from_slice(&[0, 2, 0]);
377
378 let err = buffer.into_array(None, &dict_type).unwrap_err().to_string();
379 assert!(
380 err.contains("dictionary key beyond bounds of dictionary: 0..2"),
381 "{}",
382 err
383 );
384
385 let mut buffer = DictionaryBuffer::<i32, i32>::with_capacity(0);
386 let d = Arc::new(StringArray::from(vec![""])) as ArrayRef;
387 buffer.as_keys(&d).unwrap().extend_from_slice(&[0, 1, 0]);
388
389 let err = buffer.spill_values().unwrap_err().to_string();
390 assert!(
391 err.contains("dictionary key beyond bounds of dictionary: 0..1"),
392 "{}",
393 err
394 );
395 }
396}

Callers

nothing calls this directly

Calls 4

extend_from_sliceMethod · 0.80
as_keysMethod · 0.80
spill_valuesMethod · 0.80
into_arrayMethod · 0.45

Tested by

no test coverage detected