5#include "testing/testing.h"
27 const int a =
params.get_input<
int>(0);
28 const int b =
params.get_input<
int>(1);
48 *dst1_ =
params.get_input<
int>(0);
49 if (
int *value =
params.try_get_input_data_ptr_or_request<
int>(1)) {
61 : side_effect_nodes_(side_effect_nodes)
66 const Context & )
const override
68 return side_effect_nodes_;
77 add_fn,
nullptr,
nullptr, std::make_tuple(30, 5), std::make_tuple(&
result));
101 const int value_10 = 10;
102 const int value_100 = 100;
110 GraphExecutor executor_fn{graph, {&graph_input}, {},
nullptr, &side_effect_provider,
nullptr};
112 executor_fn,
nullptr,
nullptr, std::make_tuple(5), std::make_tuple());
134 if (!
params.output_was_set(0)) {
135 if (
int *a =
params.try_get_input_data_ptr<
int>(0)) {
136 params.set_output(0, *a * 2);
139 if (!
params.output_was_set(1)) {
140 if (
int *
b =
params.try_get_input_data_ptr<
int>(1)) {
150 const int input_index = output_index;
173 GraphExecutor executor_fn{graph, {&input_socket}, {&output_socket},
nullptr,
nullptr,
nullptr};
176 executor_fn,
nullptr,
nullptr, std::make_tuple(10), std::make_tuple(&
result));
EXPECT_EQ(BLI_expr_pylike_eval(expr, nullptr, 0, &result), EXPR_PYLIKE_INVALID)
void BLI_task_scheduler_init(void)
static const CPPType & get()
GraphExecutorSideEffectProvider SideEffectProvider
void update_node_indices()
FunctionNode & add_function(const LazyFunction &fn)
void add_link(OutputSocket &from, InputSocket &to)
GraphOutputSocket & add_output(const CPPType &type, std::string name="")
GraphInputSocket & add_input(const CPPType &type, std::string name="")
Vector< Output > outputs_
bool allow_missing_requested_inputs_
const InputSocket & input(int index) const
const OutputSocket & output(int index) const
void execute_impl(Params ¶ms, const Context &) const override
void execute_impl(Params ¶ms, const Context &) const override
void possible_output_dependencies(const int output_index, FunctionRef< void(Span< int >)> fn) const override
PartialEvaluationTestFunction()
SimpleSideEffectProvider(Span< const FunctionNode * > side_effect_nodes)
Vector< const FunctionNode * > get_nodes_with_side_effects(const Context &) const override
StoreValueFunction(int *dst1, int *dst2)
void execute_impl(Params ¶ms, const Context &) const override
TEST(lazy_function, SimpleAdd)
InputSocket GraphOutputSocket
OutputSocket GraphInputSocket
void execute_lazy_function_eagerly(const LazyFunction &fn, UserData *user_data, LocalUserData *local_user_data, std::tuple< Inputs... > inputs, std::tuple< Outputs *... > outputs)