diff --git a/fuzz/src/array/mod.rs b/fuzz/src/array/mod.rs index dbeebaa592a..87c219bb4f5 100644 --- a/fuzz/src/array/mod.rs +++ b/fuzz/src/array/mod.rs @@ -1,6 +1,19 @@ // SPDX-License-Identifier: Apache-2.0 // SPDX-FileCopyrightText: Copyright the Vortex contributors +pub(crate) use cast::*; +pub(crate) use compare::*; +pub(crate) use fill_null::*; +pub(crate) use filter::*; +pub(crate) use mask::*; +pub(crate) use min_max::*; +pub(crate) use scalar_at::*; +pub(crate) use search_sorted::*; +pub(crate) use slice::*; +pub use sort::sort_canonical_array; +pub(crate) use sum::*; +pub(crate) use take::*; + mod cast; mod compare; mod fill_null; @@ -20,43 +33,45 @@ use std::ops::Range; use arbitrary::Arbitrary; use arbitrary::Error::EmptyChoose; use arbitrary::Unstructured; -pub(crate) use cast::*; -pub(crate) use compare::*; -pub(crate) use fill_null::*; -pub(crate) use filter::*; use itertools::Itertools; -pub(crate) use mask::*; -pub(crate) use min_max::*; -pub(crate) use scalar_at::*; -pub(crate) use search_sorted::*; -pub(crate) use slice::*; -pub use sort::sort_canonical_array; use strum::EnumCount; use strum::EnumDiscriminants; use strum::EnumIter; use strum::IntoEnumIterator; -pub(crate) use sum::*; -pub(crate) use take::*; use tracing::debug; use vortex_array::ArrayRef; use vortex_array::DynArray; use vortex_array::IntoArray; +use vortex_array::arrays::ConstantArray; use vortex_array::arrays::PrimitiveArray; use vortex_array::arrays::arbitrary::ArbitraryArray; +use vortex_array::builtins::ArrayBuiltins; use vortex_array::compute::MinMaxResult; +use vortex_array::compute::min_max; +use vortex_array::compute::sum; use vortex_array::dtype::DType; use vortex_array::dtype::Nullability; use vortex_array::scalar::Scalar; use vortex_array::scalar::arbitrary::random_scalar; use vortex_array::scalar_fn::fns::operators::CompareOperator; +use vortex_array::scalar_fn::fns::operators::Operator; use vortex_array::search_sorted::SearchResult; +use vortex_array::search_sorted::SearchSorted; use vortex_array::search_sorted::SearchSortedSide; use vortex_btrblocks::BtrBlocksCompressor; +use vortex_btrblocks::BtrBlocksCompressorBuilder; +use vortex_btrblocks::FloatCode; +use vortex_btrblocks::IntCode; +use vortex_btrblocks::StringCode; use vortex_error::VortexExpect; use vortex_error::vortex_panic; use vortex_mask::Mask; use vortex_utils::aliases::hash_set::HashSet; +use crate::error::Backtrace; +use crate::error::VortexFuzzError; +use crate::error::VortexFuzzResult; + #[derive(Debug)] pub struct FuzzArrayAction { pub array: ArrayRef, @@ -518,11 +533,6 @@ fn random_action_from_list( /// Compress an array using the given strategy. #[cfg(feature = "zstd")] pub fn compress_array(array: &ArrayRef, strategy: CompressorStrategy) -> ArrayRef { - use vortex_btrblocks::BtrBlocksCompressorBuilder; - use vortex_btrblocks::FloatCode; - use vortex_btrblocks::IntCode; - use vortex_btrblocks::StringCode; - match strategy { CompressorStrategy::Default => BtrBlocksCompressor::default() .compress(array) @@ -552,12 +562,7 @@ pub fn compress_array(array: &ArrayRef, _strategy: CompressorStrategy) -> ArrayR /// - `Ok(false)` - reject from corpus /// - `Err(_)` - a bug was found #[allow(clippy::result_large_err)] -pub fn run_fuzz_action(fuzz_action: FuzzArrayAction) -> crate::error::VortexFuzzResult { - use vortex_array::arrays::ConstantArray; - use vortex_array::builtins::ArrayBuiltins; - use vortex_array::compute::min_max; - use vortex_array::compute::sum; - use vortex_array::scalar_fn::fns::operators::Operator; +pub fn run_fuzz_action(fuzz_action: FuzzArrayAction) -> VortexFuzzResult { let FuzzArrayAction { array, actions } = fuzz_action; let mut current_array = array.to_array(); @@ -675,12 +680,7 @@ fn assert_search_sorted( side: SearchSortedSide, expected: SearchResult, step: usize, -) -> crate::error::VortexFuzzResult<()> { - use vortex_array::search_sorted::SearchSorted; - - use crate::error::Backtrace; - use crate::error::VortexFuzzError; - +) -> VortexFuzzResult<()> { let search_result = array .search_sorted(&s, side) .map_err(|e| VortexFuzzError::VortexError(e, Backtrace::capture()))?; @@ -701,14 +701,7 @@ fn assert_search_sorted( /// Assert two arrays are equal. #[allow(clippy::result_large_err)] -pub fn assert_array_eq( - lhs: &ArrayRef, - rhs: &ArrayRef, - step: usize, -) -> crate::error::VortexFuzzResult<()> { - use crate::error::Backtrace; - use crate::error::VortexFuzzError; - +pub fn assert_array_eq(lhs: &ArrayRef, rhs: &ArrayRef, step: usize) -> VortexFuzzResult<()> { if lhs.dtype() != rhs.dtype() { return Err(VortexFuzzError::DTypeMismatch( lhs.clone(), @@ -749,14 +742,7 @@ pub fn assert_array_eq( /// Assert two scalars are equal. #[allow(clippy::result_large_err)] -pub fn assert_scalar_eq( - lhs: &Scalar, - rhs: &Scalar, - step: usize, -) -> crate::error::VortexFuzzResult<()> { - use crate::error::Backtrace; - use crate::error::VortexFuzzError; - +pub fn assert_scalar_eq(lhs: &Scalar, rhs: &Scalar, step: usize) -> VortexFuzzResult<()> { if lhs != rhs { return Err(VortexFuzzError::ScalarMismatch( lhs.clone(), @@ -774,10 +760,7 @@ pub fn assert_min_max_eq( lhs: &Option, rhs: &Option, step: usize, -) -> crate::error::VortexFuzzResult<()> { - use crate::error::Backtrace; - use crate::error::VortexFuzzError; - +) -> VortexFuzzResult<()> { if lhs != rhs { return Err(VortexFuzzError::MinMaxMismatch( lhs.clone(),