diff options
Diffstat (limited to 'eval/src')
-rw-r--r-- | eval/src/tests/eval/tensor_function/tensor_function_test.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/eval/src/tests/eval/tensor_function/tensor_function_test.cpp b/eval/src/tests/eval/tensor_function/tensor_function_test.cpp index b2df7eddd46..0308b24e742 100644 --- a/eval/src/tests/eval/tensor_function/tensor_function_test.cpp +++ b/eval/src/tests/eval/tensor_function/tensor_function_test.cpp @@ -18,8 +18,10 @@ struct EvalCtx { ErrorValue error; std::vector<Value::UP> tensors; std::vector<Value::CREF> params; + InterpretedFunction::UP ifun; + std::unique_ptr<InterpretedFunction::Context> ictx; EvalCtx(const TensorEngine &engine_in) - : engine(engine_in), stash(), error(), tensors() {} + : engine(engine_in), stash(), error(), tensors(), params(), ifun(), ictx() {} ~EvalCtx() {} size_t add_tensor(Value::UP tensor) { size_t id = params.size(); @@ -32,7 +34,9 @@ struct EvalCtx { tensors[idx] = std::move(tensor); } const Value &eval(const TensorFunction &fun) { - return fun.eval(engine, SimpleObjectParams(params), stash); + ifun = std::make_unique<InterpretedFunction>(engine, fun); + ictx = std::make_unique<InterpretedFunction::Context>(*ifun); + return ifun->eval(*ictx, SimpleObjectParams(params)); } const TensorFunction &compile(const tensor_function::Node &expr) { return engine.optimize(expr, stash); |