// Copyright Advanced Micro Devices, Inc., or its affiliates. // SPDX-License-Identifier: MIT #ifdef ROCROLLER_USE_HIP #include #include #endif /* ROCROLLER_USE_HIP */ #include #include #include #include #include #include "GenericContextFixture.hpp" using namespace rocRoller; namespace rocRollerTest { class ArgumentValueTest : public GenericContextFixture { }; TEST_F(ArgumentValueTest, Basic) { auto five = std::make_shared(5.0f); auto two = std::make_shared(2.0f); auto valueExpr = (two * five) * (two * five) + two - five; EXPECT_EQ(97.0, std::get(Expression::evaluate(valueExpr))); m_context->kernel()->addArgument( {"value", {DataType::Float}, DataDirection::ReadOnly, valueExpr, -1, -1}); KernelArguments argsActual; for(auto& arg : m_context->kernel()->arguments()) { auto value = Expression::evaluate(arg.getExpression()); EXPECT_EQ(arg.getVariableType(), variableType(value)); argsActual.append(arg.getName(), value); } KernelArguments argsExpected; argsExpected.append("value", 97.0f); EXPECT_EQ(argsExpected.dataVector(), argsActual.dataVector()); } }