pub struct AggregateUdfTester { /* private fields */ }Expand description
Low-level tester for aggregate functions
This struct provides a means by which to run a simple check of an aggregate implementation by approximating one method DataFusion might use to perform the aggregation. Whereas DataFusion may arrange various calls to accumulate, state, and update_batch to optimize for different cases, this tester is always created by aggregating states that were in turn created from accumulating one batch.
This is not a replacement for testing at a higher level using DataFusion’s actual aggregate implementation but provides a useful mechanism to ensure all the pieces of an accumulator are plugged in.
Implementations§
Source§impl AggregateUdfTester
impl AggregateUdfTester
Sourcepub fn new(udf: AggregateUDF, arg_types: Vec<SedonaType>) -> Self
pub fn new(udf: AggregateUDF, arg_types: Vec<SedonaType>) -> Self
Create a new tester
Sourcepub fn return_type(&self) -> Result<SedonaType>
pub fn return_type(&self) -> Result<SedonaType>
Compute the return type
Sourcepub fn aggregate_wkt(
&self,
batches: Vec<Vec<Option<&str>>>,
) -> Result<ScalarValue>
pub fn aggregate_wkt( &self, batches: Vec<Vec<Option<&str>>>, ) -> Result<ScalarValue>
Perform a simple aggregation using WKT as geometry input
Sourcepub fn aggregate(&self, batches: &Vec<ArrayRef>) -> Result<ScalarValue>
pub fn aggregate(&self, batches: &Vec<ArrayRef>) -> Result<ScalarValue>
Perform a simple aggregation
Each batch in batches is accumulated with its own accumulator and serialized into its own state, after which the states are accumulated in batches of one. This has the effect of testing all the pieces of an aggregator in a somewhat configurable/predictable way.
Auto Trait Implementations§
impl Freeze for AggregateUdfTester
impl !RefUnwindSafe for AggregateUdfTester
impl Send for AggregateUdfTester
impl Sync for AggregateUdfTester
impl Unpin for AggregateUdfTester
impl !UnwindSafe for AggregateUdfTester
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more