Skip to content

Commit 9dfdf50

Browse files
committed
more tests
Signed-off-by: Adam Gutglick <adam@spiraldb.com>
1 parent 393ca48 commit 9dfdf50

1 file changed

Lines changed: 21 additions & 0 deletions

File tree

encodings/parquet-variant/src/vtable.rs

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -360,6 +360,7 @@ mod tests {
360360
use vortex_array::serde::ArrayParts;
361361
use vortex_array::serde::SerializeOptions;
362362
use vortex_array::session::ArraySessionExt;
363+
use vortex_buffer::BitBuffer;
363364
use vortex_buffer::ByteBufferMut;
364365
use vortex_buffer::buffer;
365366
use vortex_session::VortexSession;
@@ -414,6 +415,26 @@ mod tests {
414415
assert_eq!(typed.dtype(), &DType::Variant(Nullability::Nullable));
415416
}
416417

418+
#[test]
419+
fn test_serde_roundtrip_with_nullable_validity() {
420+
let metadata =
421+
VarBinViewArray::from_iter_bin([b"\x01\x00", b"\x01\x00", b"\x01\x00"]).into_array();
422+
let value = VarBinViewArray::from_iter_bin([b"\x10", b"\x11", b"\x12"]).into_array();
423+
let validity =
424+
vortex_array::validity::Validity::from(BitBuffer::from_iter([true, false, true]));
425+
426+
let pv = ParquetVariantArray::try_new_with_validity(validity, metadata, Some(value), None)
427+
.unwrap();
428+
let array = pv.into_array();
429+
let decoded = roundtrip(array.clone());
430+
431+
assert!(array.array_eq(&decoded, Precision::Value));
432+
assert_eq!(decoded.dtype(), &DType::Variant(Nullability::Nullable));
433+
let decoded_pv = decoded.as_opt::<ParquetVariant>().unwrap();
434+
assert!(decoded_pv.value_array().is_some());
435+
assert!(decoded_pv.typed_value_array().is_none());
436+
}
437+
417438
#[test]
418439
fn test_serde_roundtrip_typed_value_int32() {
419440
let outer_metadata =

0 commit comments

Comments
 (0)