Tests that offsets are at valid codepoint boundaries
(data_type: DataType)
| 529 | |
| 530 | /// Tests that offsets are at valid codepoint boundaries |
| 531 | fn check_utf8_char_boundary<T: ArrowNativeType>(data_type: DataType) { |
| 532 | let data_buffer = Buffer::from("🙀".as_bytes()); |
| 533 | let offsets: Vec<T> = [0, 1, data_buffer.len()] |
| 534 | .iter() |
| 535 | .map(|&v| T::from_usize(v).unwrap()) |
| 536 | .collect(); |
| 537 | |
| 538 | let offsets_buffer = Buffer::from_slice_ref(offsets); |
| 539 | ArrayData::try_new( |
| 540 | data_type, |
| 541 | 2, |
| 542 | None, |
| 543 | 0, |
| 544 | vec![offsets_buffer, data_buffer], |
| 545 | vec![], |
| 546 | ) |
| 547 | .unwrap(); |
| 548 | } |
| 549 | |
| 550 | #[test] |
| 551 | #[should_panic(expected = "incomplete utf-8 byte sequence from index 0")] |