Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
pola-rs
GitHub Repository: pola-rs/polars
Path: blob/main/crates/polars-arrow/src/array/boolean/proptest.rs
6939 views
1
use proptest::prelude::{Strategy, any_with};
2
use proptest::sample::SizeRange;
3
4
use super::{ArrowDataType, BooleanArray};
5
use crate::bitmap::Bitmap;
6
7
pub fn boolean_array(size_range: impl Into<SizeRange>) -> impl Strategy<Value = BooleanArray> {
8
let size_range = size_range.into();
9
proptest::prop_oneof![
10
any_with::<Vec<bool>>(size_range.clone().lift()).prop_map(|v| BooleanArray::new(
11
ArrowDataType::Boolean,
12
v.into(),
13
None
14
)),
15
any_with::<Vec<(bool, bool)>>(size_range.lift()).prop_map(|v| {
16
let values = Bitmap::from_iter(v.iter().map(|(v, _)| *v));
17
let validity = Bitmap::from_iter(v.iter().map(|(_, v)| *v));
18
BooleanArray::new(ArrowDataType::Boolean, values, Some(validity))
19
}),
20
]
21
}
22
23