From 1395bef7aeee20a5aaa0b5fd9ac0e64abaa5af11 Mon Sep 17 00:00:00 2001 From: Leo Arias Date: Thu, 9 Aug 2018 03:42:38 +0000 Subject: tests: add yul simplifier not applied with function calls --- test/libjulia/Simplifier.cpp | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) (limited to 'test/libjulia') diff --git a/test/libjulia/Simplifier.cpp b/test/libjulia/Simplifier.cpp index e5b7e0d8..3cc95b7a 100644 --- a/test/libjulia/Simplifier.cpp +++ b/test/libjulia/Simplifier.cpp @@ -139,7 +139,7 @@ BOOST_AUTO_TEST_CASE(mod_and) ); } -BOOST_AUTO_TEST_CASE(not_applied) +BOOST_AUTO_TEST_CASE(not_applied_removes_non_constant_and_not_movable) { CHECK( // The first argument of div is not constant. @@ -149,4 +149,30 @@ BOOST_AUTO_TEST_CASE(not_applied) ); } +BOOST_AUTO_TEST_CASE(not_applied_function_call_different_names) +{ + CHECK( + "{ function f1() -> a { } function f2() -> b {} let c := sub(f1(), f2()) }", + "{ function f1() -> a { } function f2() -> b {} let c := sub(f1(), f2()) }" + ); +} + +BOOST_AUTO_TEST_CASE(not_applied_function_call_different_arguments) +{ + CHECK( + "{ function f(a) -> b { } let c := sub(f(0), f(1)) }", + "{ function f(a) -> b { } let c := sub(f(0), f(1)) }" + ); +} + +BOOST_AUTO_TEST_CASE(not_applied_function_call_equality_not_movable) +{ + CHECK( + // Even if the functions pass the equality check, they are not movable. + "{ function f() -> a { } let b := sub(f(), f()) }", + "{ function f() -> a { } let b := sub(f(), f()) }" + ); +} + + BOOST_AUTO_TEST_SUITE_END() -- cgit