12#include <catch_amalgamated.hpp>
46 for (
auto i = 1;
i < 10; ++
i) {
47 w1(0,
i * 2.,
i * 3.,
i * 4.);
50 auto t1 =
b1.finalize();
53 std::shared_ptr<gandiva::Projector> projector =
nullptr;
55 auto expoints_a = o2::soa::Extend<o2::aod::Points, test::Rsq, test::Sin>(st1);
57 auto expoints = ExPoints{{
t1, extension.asArrowTable()}, 0};
59 REQUIRE(expoints_a.size() == 9);
60 REQUIRE(extension.size() == 9);
61 REQUIRE(expoints.size() == 9);
63 auto rex = extension.begin();
64 auto rexp = expoints.begin();
65 auto rexp_a = expoints_a.begin();
67 for (
auto i = 1;
i < 10; ++
i) {
68 float rsq =
i *
i * 4 +
i *
i * 9 +
i *
i * 16;
69 float sin =
i * 2 / std::sqrt(
i *
i * 4 +
i *
i * 9);
70 REQUIRE(rexp_a.rsq() == rsq);
71 REQUIRE(rex.rsq() == rsq);
72 REQUIRE(rexp.rsq() == rsq);
73 REQUIRE(rexp_a.sin() == sin);
74 REQUIRE(rex.sin() == sin);
75 REQUIRE(rexp.sin() == sin);
82 excpts.
projectors[0] = test::x * test::x + test::y * test::y + test::z * test::z;
85 auto excpoints = ExcPoints{{
t1, extension_2.asArrowTable()}, 0};
87 rex = extension.begin();
88 auto rex_2 = extension_2.begin();
89 auto rexcp = excpoints.begin();
91 for (
auto i = 1;
i < 10; ++
i) {
92 float rsq =
i *
i * 4 +
i *
i * 9 +
i *
i * 16;
93 REQUIRE(rex.rsq() == rsq);
94 REQUIRE(rex_2.cfg() == rsq);
95 REQUIRE(rexcp.cfg() == rsq);
#define DECLARE_SOA_TABLE(_Name_, _Origin_, _Desc_,...)
#define DECLARE_SOA_CONFIGURABLE_EXTENDED_TABLE(_Name_, _Table_, _Description_,...)
#define DECLARE_SOA_EXPRESSION_COLUMN(_Name_, _Getter_, _Type_, _Expression_)
#define DECLARE_SOA_COLUMN(_Name_, _Getter_, _Type_)
#define DECLARE_SOA_CONFIGURABLE_EXPRESSION_COLUMN(_Name_, _Getter_, _Type_, _Label_)
#define DECLARE_SOA_EXTENDED_TABLE(_Name_, _Table_, _Description_, _Version_,...)
const GPUTPCGMMerger::trackCluster & b1
GLdouble GLdouble GLdouble z
GLuint GLfloat GLfloat GLfloat GLfloat GLfloat GLfloat GLfloat GLfloat GLfloat t1
Defining PrimaryVertex explicitly as messageable.
TEST_CASE("test_prepareArguments")
auto spawner(std::vector< std::shared_ptr< arrow::Table > > &&tables, const char *name, o2::framework::expressions::Projector *projectors, std::shared_ptr< gandiva::Projector > &projector)
Expression-based column generator to materialize columns.
FIXME: do not use data model tables.
std::array< o2::framework::expressions::Projector, N > projectors
std::shared_ptr< gandiva::Projector > projector