chore: sync reviewed series test cleanup

Signed-off-by: discord9 <55937128+discord9@users.noreply.github.com>
This commit is contained in:
discord9
2026-10-15 14:33:24 +08:00
2 changed files with 23 additions and 52 deletions
+2 -17
View File
@@ -218,7 +218,7 @@ fn rejects_wrong_schema_type_order_and_nullability() {
}
#[test]
fn rejects_parent_and_list_item_nulls() {
fn rejects_parent_nulls_and_nullable_list_item_schema() {
let b = batch();
let source = b.as_arrow();
let parent = StructArray::try_new(
@@ -244,25 +244,10 @@ fn rejects_parent_and_list_item_nulls() {
.as_any()
.downcast_ref::<Float64Array>()
.unwrap();
let mut null_bits = vec![true; values.len()];
null_bits[1] = false;
let nullable = Float64Array::new(
values.values().clone(),
Some(arrow::buffer::NullBuffer::from(null_bits)),
);
assert!(
ListArray::try_new(
Arc::new(Field::new("item", DataType::Float64, false)),
list.offsets().clone(),
Arc::new(nullable.clone()),
None,
)
.is_err()
);
let rebuilt = ListArray::try_new(
Arc::new(Field::new("item", DataType::Float64, true)),
list.offsets().clone(),
Arc::new(nullable),
Arc::new(values.clone()),
None,
)
.unwrap();
+21 -35
View File
@@ -321,25 +321,27 @@ fn densifying_histogram_and_mixed_chunks_keeps_shared_table() {
}
#[test]
fn densification_falls_back_for_distinct_shared_table_owners() {
fn densification_preserves_distinct_shared_table_owner_values() {
let first = batch(2.0, 3.0, &[4.0, 5.0]);
let second = Arc::new(HistogramBatch::try_from_arrow(first.as_arrow().clone()).unwrap());
let second = batch(6.0, 7.0, &[8.0, 9.0]);
for (owners, expected_indices) in [
(vec![first.clone(), second.clone()], vec![0, 1]),
(
vec![first.clone(), first.clone(), second.clone()],
vec![0, 1, 2],
),
for owners in [
vec![first.clone(), second.clone()],
vec![first.clone(), first.clone(), second.clone()],
] {
let expected: Vec<_> = owners
.iter()
.map(|owner| SampleRef::Histogram(owner.view(0).unwrap()))
.flat_map(|owner| {
[
SampleRef::Missing,
SampleRef::Histogram(owner.view(0).unwrap()),
]
})
.collect();
let chunks = owners
.iter()
.map(|owner| {
Samples::try_from_histogram(UInt32Array::from(vec![Some(0)]), owner.clone())
Samples::try_from_histogram(UInt32Array::from(vec![None, Some(0)]), owner.clone())
.unwrap()
})
.collect();
@@ -348,18 +350,18 @@ fn densification_falls_back_for_distinct_shared_table_owners() {
.into_dense()
.unwrap();
assert_eq!(dense.len(), owners.len());
assert_eq!(dense.len(), expected.len());
let DenseSamplesRef::Histogram(values) = dense.dense().unwrap() else {
panic!()
};
assert_eq!(values.batch().len(), owners.len());
assert!(!Arc::ptr_eq(values.batch(), &first));
assert!(!Arc::ptr_eq(values.batch(), &second));
for (index, (expected, expected_index)) in
expected.into_iter().zip(expected_indices).enumerate()
{
assert_eq!(values.indices().value(index), expected_index);
assert!(same_sample(expected, dense.sample(index)));
for (index, expected) in expected.into_iter().enumerate() {
if !values.indices().is_null(index) {
assert!((values.indices().value(index) as usize) < values.batch().len());
}
assert!(
same_sample(expected, dense.sample(index)),
"position {index}"
);
}
}
}
@@ -960,20 +962,4 @@ fn short_multifield_series_uses_its_grid_range_and_checks_explicit_chunk_order()
)
.is_err()
);
let unordered_single = TimeAxis::Explicit(ScalarBuffer::from(vec![2_i64, 1]));
assert!(
Series::try_new(
&SeriesSchema {
fields: Arc::from([FieldSpec {
name: Arc::from("value")
}]),
eval_grid: None
},
MetricName::try_new(None, vec![]).unwrap(),
unordered_single,
SeriesFields::one(Samples::from_float(Float64Array::from(vec![1.0, 2.0]))),
)
.is_err()
);
}