MathExpressionTest.php 805 B

1234567891011121314151617181920212223242526272829303132333435
  1. <?php
  2. require __DIR__ . '/../../vendor/autoload.php';
  3. use Parse\RecursiveParser;
  4. use Parse\CondParser;
  5. use Parse\MultiParser;
  6. use Parse\StringParser;
  7. use Parse\CombinatorParser;
  8. use Parse\RegexParser;
  9. use Parse\MathParser;
  10. use Parse\ParseException;
  11. // Bad inputs
  12. $inputs = array("", "1 1", "1 +", "((1)", "(1))", "+");
  13. foreach ($inputs as $input) {
  14. try {
  15. MathParser::parse($input);
  16. var_dump(false);
  17. } catch (ParseException $e) {
  18. var_dump(true);
  19. }
  20. }
  21. // Good inputs
  22. $inputs = array("((1))", "((1 + 1))", "((1 + 2 + 3))", "(1 + 2 + 3)", "1+2+3", "((1 + 2) * ((1 / 2)+-1-11 + (((((((100)))))))))");
  23. foreach ($inputs as $input) {
  24. try {
  25. MathParser::parse($input);
  26. var_dump(true);
  27. } catch (ParseException $e) {
  28. var_dump(false);
  29. }
  30. }