ExpressionsTest.dpr 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. program ExpressionsTest;
  2. {$APPTYPE CONSOLE}
  3. {$R *.res}
  4. uses
  5. System.SysUtils,
  6. Quick.Commons,
  7. Quick.Console,
  8. Quick.Expression;
  9. var
  10. listexpressions : TArray<string>;
  11. begin
  12. try
  13. //true expressions
  14. listexpressions.Add('1 = 1');
  15. listexpressions.Add('1 < 2');
  16. listexpressions.Add('2 > 1');
  17. listexpressions.Add('(1 = 1) AND (2 = 2)');
  18. listexpressions.Add('(1 = 1) OR (2 = 3)');
  19. listexpressions.Add('(1 = 2) OR (2 = 2)');
  20. listexpressions.Add('(0.3 < 8) or ((5 < 4) and (2 = 1))');
  21. listexpressions.Add('(8 > 3) or ((5 > 4) and (2 = 1))');
  22. cout('True expressions',ccWhite);
  23. for var expression in listexpressions do
  24. begin
  25. if TExpressionParser.Validate(expression) then cout(expression,ccGreen) else cout(expression,ccRed);
  26. end;
  27. listexpressions := [];
  28. //false expressions
  29. listexpressions.Add('1 = 2');
  30. listexpressions.Add('2 < 1');
  31. listexpressions.Add('1 > 2');
  32. listexpressions.Add('(1 <> 1) AND (2 <> 2)');
  33. listexpressions.Add('(1 <> 1) OR (2 = 3)');
  34. listexpressions.Add('(1 = 2) OR (2 <> 2)');
  35. listexpressions.Add('(0.3 > 8) or ((5 > 4) and (2 <> 2))');
  36. listexpressions.Add('(8 < 3) or ((5 < 4) and (2 <> 1))');
  37. cout('False expressions',ccWhite);
  38. for var expression in listexpressions do
  39. begin
  40. if not TExpressionParser.Validate(expression) then cout(expression,ccGreen) else cout(expression,ccRed);
  41. end;
  42. ConsoleWaitForEnterKey;
  43. except
  44. on E: Exception do
  45. Writeln(E.ClassName, ': ', E.Message);
  46. end;
  47. end.