()
| 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 | } |
nothing calls this directly
no test coverage detected