2
0
mirror of https://github.com/boostorg/yap.git synced 2026-02-22 16:02:10 +00:00

Add test of templated transform_expression.

This commit is contained in:
Zach Laine
2016-11-12 14:32:55 -06:00
parent d1c3734945
commit 1fbc68f611
2 changed files with 25 additions and 24 deletions

View File

@@ -12,7 +12,7 @@ using term = boost::proto17::terminal<T>;
namespace bp17 = boost::proto17;
namespace user_2 {
namespace user {
struct number
{
@@ -77,11 +77,11 @@ namespace user_2 {
TEST(user_expression_transform, test_user_expression_transform)
{
term<user_2::number> k{{2.0}};
term<user::number> k{{2.0}};
term<user_2::number> a{{1.0}};
term<user_2::number> x{{42.0}};
term<user_2::number> y{{3.0}};
term<user::number> a{{1.0}};
term<user::number> x{{42.0}};
term<user::number> y{{3.0}};
{
bp17::expression<
@@ -90,15 +90,15 @@ TEST(user_expression_transform, test_user_expression_transform)
bp17::expr_kind::multiplies,
bp17::expression<
bp17::expr_kind::multiplies,
term<user_2::number>,
term<user_2::number>
term<user::number>,
term<user::number>
>,
term<user_2::number>
term<user::number>
>,
term<user_2::number>
term<user::number>
> expr = k * a * x + y;
user_2::number result = expr;
user::number result = expr;
EXPECT_EQ(result.value, 87);
}
@@ -107,39 +107,39 @@ TEST(user_expression_transform, test_user_expression_transform)
bp17::expr_kind::plus,
bp17::expression<
bp17::expr_kind::multiplies,
term<user_2::number>,
term<user_2::number>
term<user::number>,
term<user::number>
>,
term<user_2::number>
term<user::number>
> expr = a * x + y;
user_2::number result = expr;
user::number result = expr;
EXPECT_EQ(result.value, 55);
}
{
bp17::expression<
bp17::expr_kind::multiplies,
term<user_2::number>,
term<user::number>,
bp17::expression<
bp17::expr_kind::plus,
bp17::expression<
bp17::expr_kind::multiplies,
term<user_2::number>,
term<user_2::number>
term<user::number>,
term<user::number>
>,
term<user_2::number>
term<user::number>
>
> expr = k * (a * x + y);
user_2::number result = expr;
user::number result = expr;
EXPECT_EQ(result.value, 110);
}
{
auto expr = (a * x + y) * (a * x + y) + (a * x + y);
user_2::number result = expr;
user::number result = expr;
// Note: +10 not done at the top level naxpy opportunity.
EXPECT_EQ(result.value, 55 * 55 + 55);
@@ -151,8 +151,8 @@ TEST(user_expression_transform, test_user_expression_transform)
#if 0
bp17::expression<
bp17::expr_kind::multiplies,
term<user::number>,
term<user::number>
term<user_2::number>,
term<user_2::number>
> expr = a * x;
#endif
}