use vortex_dtype::{Nullability, PType};
use vortex_scalar::Scalar;
use crate::array::{
BoolMetadata, ChunkedMetadata, ConstantMetadata, ListMetadata, NullMetadata, PrimitiveMetadata,
SparseMetadata, StructMetadata, VarBinMetadata, VarBinViewMetadata,
};
use crate::patches::PatchesMetadata;
use crate::test_harness::check_metadata;
use crate::validity::ValidityMetadata;
#[cfg_attr(miri, ignore)]
#[test]
fn test_bool_metadata() {
check_metadata(
"bool.metadata",
SerdeMetadata(BoolMetadata {
validity: ValidityMetadata::AllValid,
first_byte_bit_offset: u8::MAX,
}),
);
}
#[cfg_attr(miri, ignore)]
#[test]
fn test_chunked_metadata() {
check_metadata("chunked.metadata", ChunkedMetadata { nchunks: 1 });
}
#[cfg_attr(miri, ignore)]
#[test]
fn test_list_metadata() {
check_metadata(
"list.metadata",
SerdeMetadata(ListMetadata {
validity: ValidityMetadata::AllValid,
elements_len: usize::MAX,
offset_ptype: PType::U64,
}),
);
}
#[cfg_attr(miri, ignore)]
#[test]
fn test_null_metadata() {
check_metadata("null.metadata", NullMetadata);
}
#[cfg_attr(miri, ignore)]
#[test]
fn test_primitive_metadata() {
check_metadata(
"primitive.metadata",
SerdeMetadata(PrimitiveMetadata {
validity: ValidityMetadata::NonNullable,
}),
);
}
#[cfg_attr(miri, ignore)]
#[test]
fn test_struct_metadata() {
check_metadata(
"struct.metadata",
SerdeMetadata(StructMetadata {
validity: ValidityMetadata::AllValid,
}),
);
}
#[cfg_attr(miri, ignore)]
#[test]
fn test_varbin_metadata() {
check_metadata(
"varbin.metadata",
SerdeMetadata(VarBinMetadata {
validity: ValidityMetadata::AllValid,
bytes_len: usize::MAX,
offsets_ptype: PType::U64,
}),
);
}
#[cfg_attr(miri, ignore)]
#[test]
fn test_varbinview_metadata() {
check_metadata(
"varbinview.metadata",
VarBinViewMetadata {
buffer_lens: vec![1, 2, 3, 4],
validity: ValidityMetadata::AllValid,
},
);
}