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

Function test_bool_buffer_fuzz

arrow-buffer/src/builder/boolean.rs:466–499  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

464
465 #[test]
466 fn test_bool_buffer_fuzz() {
467 use rand::prelude::*;
468
469 let mut buffer = BooleanBufferBuilder::new(12);
470 let mut all_bools = vec![];
471 let mut rng = rand::rng();
472
473 let src_len = 32;
474 let (src, compacted_src) = {
475 let src: Vec<_> = std::iter::from_fn(|| Some(rng.next_u32() & 1 == 0))
476 .take(src_len)
477 .collect();
478
479 let mut compacted_src = BooleanBufferBuilder::new(src_len);
480 compacted_src.append_slice(&src);
481 (src, compacted_src.finish())
482 };
483
484 for _ in 0..100 {
485 let a = rng.next_u32() as usize % src_len;
486 let b = rng.next_u32() as usize % src_len;
487
488 let start = a.min(b);
489 let end = a.max(b);
490
491 buffer.append_packed_range(start..end, compacted_src.values());
492 all_bools.extend_from_slice(&src[start..end]);
493 }
494
495 let mut compacted = BooleanBufferBuilder::new(all_bools.len());
496 compacted.append_slice(&all_bools);
497
498 assert_eq!(buffer.finish(), compacted.finish())
499 }
500
501 #[test]
502 fn test_boolean_array_builder_resize() {

Callers

nothing calls this directly

Calls 9

collectMethod · 0.80
maxMethod · 0.80
append_packed_rangeMethod · 0.80
extend_from_sliceMethod · 0.80
takeMethod · 0.45
append_sliceMethod · 0.45
finishMethod · 0.45
valuesMethod · 0.45
lenMethod · 0.45

Tested by

no test coverage detected