Path: blob/main/crates/polars-arrow/src/array/primitive/proptest.rs
6939 views
use proptest::prelude::{Arbitrary, Strategy, any_with};1use proptest::sample::SizeRange;23use super::PrimitiveArray;4use crate::bitmap::Bitmap;5use crate::types::NativeType;67pub fn primitive_array<T: NativeType + Arbitrary>(8size_range: impl Into<SizeRange>,9) -> impl Strategy<Value = PrimitiveArray<T>> {10let size_range = size_range.into();11proptest::prop_oneof![12any_with::<Vec<T>>(size_range.clone().lift()).prop_map(|v| PrimitiveArray::new(13T::PRIMITIVE.into(),14v.into(),15None16)),17any_with::<Vec<(bool, T)>>(size_range.lift()).prop_map(|v| {18let (validity, values): (Vec<bool>, Vec<T>) = v.into_iter().collect();19let validity = Bitmap::from_iter(validity);20PrimitiveArray::new(T::PRIMITIVE.into(), values.into(), Some(validity))21}),22]23}242526