Skip to content

Commit

Permalink
Improved expression simplification + more unit tests
Browse files Browse the repository at this point in the history
  • Loading branch information
Brad Robinson committed Aug 5, 2010
1 parent 9249cb1 commit 28a5803
Show file tree
Hide file tree
Showing 4 changed files with 158 additions and 0 deletions.
81 changes: 81 additions & 0 deletions MiniMETestCases/TestScripts/OperatorLtrPrecedence.txt
@@ -0,0 +1,81 @@
// [Formatted][NoObfuscate]
var x;
x=a+b+c;
x=a*b+c;
x=a*(b+c);
x=a/b+c;
x=a/(b+c);
x=a%b+c;
x=a%(b+c);
x=a*b-c;
x=a*(b-c);
x=a/b-c;
x=a/(b-c);
x=a%b-c;
x=a%(b-c);
x=a+(b*c);
x=a-(b*c);
x=a+(b/c);
x=a-(b/c);
x=a+(b%c);
x=a-(b%c);
x=a-d*(b%c);
x=a-d/(b%c);
x=a<<b>>c;
x=a<<b>>>c;
x=a>>b<<c;
x=a>>>b<<c;
x=a<<(b>>c);
x=a<<(b>>>c);
x=a>>(b<<c);
x=a>>>(b<<c);
x=a||b&&c;
x=(a||b)&&c;
x=a||(b&&c);
x=a|b&c;
x=(a|b)&c;
x=a|(b&c);
x=a|b^c;
x=(a|b)^c;
x=a|(b^c);
-----
var x;
x=a+b+c;
x=a*b+c;
x=a*(b+c);
x=a/b+c;
x=a/(b+c);
x=a%b+c;
x=a%(b+c);
x=a*b-c;
x=a*(b-c);
x=a/b-c;
x=a/(b-c);
x=a%b-c;
x=a%(b-c);
x=a+b*c;
x=a-b*c;
x=a+b/c;
x=a-b/c;
x=a+b%c;
x=a-b%c;
x=a-d*(b%c);
x=a-d/(b%c);
x=a<<b>>c;
x=a<<b>>>c;
x=a>>b<<c;
x=a>>>b<<c;
x=a<<(b>>c);
x=a<<(b>>>c);
x=a>>(b<<c);
x=a>>>(b<<c);
x=a||b&&c;
x=(a||b)&&c;
x=a||b&&c;
x=a|b&c;
x=(a|b)&c;
x=a|b&c;
x=a|b^c;
x=(a|b)^c;
x=a|b^c;
-----
19 changes: 19 additions & 0 deletions MiniMETestCases/TestScripts/SimplifyAdd.txt
@@ -0,0 +1,19 @@
// [Formatted][NoObfuscate]
var x;
x=a+b+c;
x=a+(b+c);
x=a-(b+c);
x=(a-b)+c;
x=(a-b)-(c-d);
x=a+-1;
x=a-(-b+c);
-----
var x;
x=a+b+c;
x=a+b+c;
x=a-b-c;
x=a-b+c;
x=a-b-c+d;
x=a-1;
x=a+b-c;
-----
29 changes: 29 additions & 0 deletions MiniMETestCases/TestScripts/SimplifyMultiply.txt
@@ -0,0 +1,29 @@
// [Formatted][NoObfuscate]
var x;
x=a*b*c;
x=a*(b*c); // Parens can be removed
x=-a*-b; // Negative * negative = positive
x=-a*-b*-c; // Triple negative = single negative
x=a/(b*c); // This should stay as is. We don't optimize division of nested terms.
x=a/(b/c); // Same here.
x=a*(b%c); // Never optimize modulus
x=a*(b*c%d);
x=a*(b/c);
x=a*(b/(c%d));
x=a*(b%c*d);
x=a*(b%c*d/e);
-----
var x;
x=a*b*c;
x=a*b*c;
x=a*b;
x=-a*b*c;
x=a/(b*c);
x=a/(b/c);
x=a*(b%c);
x=a*(b*c%d);
x=a*b/c;
x=a*b/(c%d);
x=a*(b%c)*d;
x=a*(b%c)*d/e;
-----
29 changes: 29 additions & 0 deletions MiniMETestCases/TestScripts/SimplifyUnary.txt
@@ -0,0 +1,29 @@
// [Formatted][NoObfuscate]
x=-a;
x=+a;
x=+(a-b);
x=-(-a);
x=+(-a);
x=-(+a);
x=+(+a);
x=-(a+b);
x=-(a-b);
x=-(-a+b);
x=-(-a-b);
x=-(a*b);
x=-(a*-b);
-----
x=-a;
x=a;
x=a-b;
x=a;
x=-a;
x=-a;
x=a;
x=-a-b;
x=-a+b;
x=a-b;
x=a+b;
x=-a*b;
x=a*b;
-----

0 comments on commit 28a5803

Please sign in to comment.