use sample_arrow2::{ array::ArbitraryArray, chunk::{ArbitraryChunk, ChainedChunk, ChainedMultiChunk}, datatypes::{sample_flat, ArbitraryDataType}, }; use sample_std::{Chance, Regex}; use sample_test::sample_test; fn deep_chunk(depth: usize, len: usize) -> ArbitraryChunk { let names = Regex::new("[a-z]{4,8}"); let data_type = ArbitraryDataType { struct_branch: 1..3, names: names.clone(), nullable: Chance(0.5), flat: sample_flat, } .sample_depth(depth); let array = ArbitraryArray { names, branch: 0..5, len: len..(len + 1), null: Chance(0.1), is_nullable: true, }; ArbitraryChunk { chunk_len: 10..100, array_count: 4..6, data_type, array, } } #[sample_test] fn arbitrary_chunk(#[sample(deep_chunk(3, 100).sample_one())] chunk: ChainedChunk) { let chunk = chunk.value; assert_eq!(chunk, chunk); } #[sample_test] fn arbitrary_chunks(#[sample(deep_chunk(3, 100).sample_many(2..10))] chunk: ChainedMultiChunk) { let chunk = chunk.value; assert_eq!(chunk, chunk); }