Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
pola-rs
GitHub Repository: pola-rs/polars
Path: blob/main/crates/polars-arrow/src/array/binview/proptest.rs
6939 views
1
use proptest::prelude::{Strategy, any_with};
2
use proptest::sample::SizeRange;
3
4
use super::{BinaryViewArray, MutableBinaryViewArray, Utf8ViewArray};
5
use crate::bitmap::Bitmap;
6
7
pub fn utf8view_array(size_range: impl Into<SizeRange>) -> impl Strategy<Value = Utf8ViewArray> {
8
let size_range = size_range.into();
9
proptest::prop_oneof![
10
any_with::<Vec<String>>(size_range.clone().lift()).prop_map(|v| {
11
let mut builder = MutableBinaryViewArray::<str>::with_capacity(v.len());
12
builder.extend_values(v.into_iter());
13
builder.freeze()
14
}),
15
any_with::<Vec<(bool, String)>>(size_range.lift()).prop_map(|v| {
16
let mut builder = MutableBinaryViewArray::<str>::with_capacity(v.len());
17
builder.extend_values(v.iter().map(|(_, s)| s));
18
builder
19
.freeze()
20
.with_validity(Some(Bitmap::from_iter(v.iter().map(|(v, _)| *v))))
21
}),
22
]
23
}
24
25
pub fn binview_array(size_range: impl Into<SizeRange>) -> impl Strategy<Value = BinaryViewArray> {
26
let size_range = size_range.into();
27
proptest::prop_oneof![
28
any_with::<Vec<Vec<u8>>>(size_range.clone().lift()).prop_map(|v| {
29
let mut builder = MutableBinaryViewArray::<[u8]>::with_capacity(v.len());
30
builder.extend_values(v.into_iter());
31
builder.freeze()
32
}),
33
any_with::<Vec<(bool, Vec<u8>)>>(size_range.lift()).prop_map(|v| {
34
let mut builder = MutableBinaryViewArray::<[u8]>::with_capacity(v.len());
35
builder.extend_values(v.iter().map(|(_, s)| s));
36
builder
37
.freeze()
38
.with_validity(Some(Bitmap::from_iter(v.iter().map(|(v, _)| *v))))
39
}),
40
]
41
}
42
43