You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jira@arrow.apache.org by "Ben Kietzman (Jira)" <ji...@apache.org> on 2020/06/15 14:49:00 UTC

[jira] [Created] (ARROW-9135) [C++][Compute] Provide a kernel property testing API

Ben Kietzman created ARROW-9135:
-----------------------------------

             Summary: [C++][Compute] Provide a kernel property testing API
                 Key: ARROW-9135
                 URL: https://issues.apache.org/jira/browse/ARROW-9135
             Project: Apache Arrow
          Issue Type: Bug
          Components: C++
    Affects Versions: 0.17.1
            Reporter: Ben Kietzman


See discussion https://github.com/apache/arrow/pull/7410#discussion_r439704017

Testing against random data fuzzes kernel implementations and provides sanity checks across a wide swath of parameter space with minimal configuration. Currently our random tests have a lot of boilerplate for generating the inputs and a lot of ad-hoc code for computing the expected values. It might be worthwhile to have an interface for specifying randomized tests more uniformly.

Since kernels provide introspection of their input and output types we can generate inputs of those types (both scalar and array). For ScalarFunctions, a function with signature {{Result<std::shared_ptr<Scalar>>(const ScalarVector& args, const FunctionOptions*)}} will be sufficient to specify the expected behavior, and the expected output can be generated by applying that specification to the broadcast inputs.

Example impl https://github.com/apache/arrow/pull/7410/commits/908504810ee9332f651cceb33a8b40f253383efe



--
This message was sent by Atlassian Jira
(v8.3.4#803005)