optimizer_arithmetic.gravity 625 B

12345678910111213141516171819202122232425262728293031
  1. #unittest {
  2. name: "Optimizer constant folding arithmetic.";
  3. error: NONE;
  4. result: true;
  5. };
  6. func main() {
  7. // These expressions should be constant-folded by the optimizer
  8. // Addition
  9. var r1 = (3 + 7 == 10);
  10. // Subtraction
  11. var r2 = (100 - 42 == 58);
  12. // Multiplication
  13. var r3 = (13 * 7 == 91);
  14. // Division (was broken - always returned false due to wrong zero check)
  15. var r4 = (84 / 12 == 7);
  16. var r5 = (100 / 3 == 33);
  17. // Modulo (also was broken)
  18. var r6 = (100 % 13 == 9);
  19. var r7 = (27 % 4 == 3);
  20. // Negative results
  21. var r8 = (5 - 10 == -5);
  22. return r1 and r2 and r3 and r4 and r5 and r6 and r7 and r8;
  23. }