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

Function test_packed_decoder

parquet/src/arrow/record_reader/definition_levels.rs:409–440  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

407
408 #[test]
409 fn test_packed_decoder() {
410 let mut rng = rng();
411 let len: usize = rng.random_range(512..1024);
412
413 let mut expected = BooleanBufferBuilder::new(len);
414 let mut encoder = RleEncoder::new(1, 1024);
415 for _ in 0..len {
416 let bool = rng.random_bool(0.8);
417 encoder.put(bool as u64);
418 expected.append(bool);
419 }
420 assert_eq!(expected.len(), len);
421
422 let encoded = encoder.consume();
423 let mut decoder = PackedDecoder::new();
424 decoder.set_data(Encoding::RLE, encoded.into());
425
426 // Decode data in random length intervals
427 let mut decoded = BooleanBufferBuilder::new(len);
428 loop {
429 let remaining = len - decoded.len();
430 if remaining == 0 {
431 break;
432 }
433
434 let to_read = rng.random_range(1..=remaining);
435 decoder.read(&mut decoded, to_read).unwrap();
436 }
437
438 assert_eq!(decoded.len(), len);
439 assert_eq!(decoded.as_slice(), expected.as_slice());
440 }
441
442 #[test]
443 fn test_packed_decoder_skip() {

Callers

nothing calls this directly

Calls 6

putMethod · 0.45
appendMethod · 0.45
consumeMethod · 0.45
set_dataMethod · 0.45
lenMethod · 0.45
readMethod · 0.45

Tested by

no test coverage detected