Main.java 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. import calc.Calc;
  2. import calc.Operator;
  3. import calc.Container;
  4. import csv.CSVWriter;
  5. import java.io.IOException;
  6. class Main {
  7. public static void main(String[] args) throws IOException {
  8. // few simple tests
  9. assert Calc.calculate(20f, Operator.ADD).getValue() == 20f;
  10. Container temp = new Container(30f, Operator.SUBTRACT, null);
  11. assert Calc.calculate(20f, Operator.ADD, temp).getValue() == -10f;
  12. float result = Calc.finalize(20f, Operator.ADD);
  13. assert result == 20f;
  14. result = Calc.finalize(20f, Operator.ADD, temp);
  15. assert result == -10f;
  16. System.out.println("AAAAA simple tests passed\n");
  17. // more complex tests
  18. // doing (4 / (4 * 4)) * 4 is the same as 10 + 2 - 8
  19. // first operation
  20. Container basis1 = new Container(4f, Operator.ADD, null);
  21. Container first1 = Calc.calculate(4f, Operator.MULTIPLY, basis1);
  22. //Container first2 = Calc.calculate(first1.getValue(), Operator.DIVIDE, basis1);
  23. Container first2 = Calc.calculate(
  24. Calc.finalize(Calc.finalize(first1), Operator.DIVIDE, new Container(1f, Operator.ADD, null))
  25. , Operator.MULTIPLY, first1);
  26. float result1 = Calc.finalize(4f, Operator.MULTIPLY, first2);
  27. // second operation
  28. float result2 = Calc.finalize(8f, Operator.SUBTRACT,
  29. new Container(2f, Operator.ADD,
  30. new Container(10f, Operator.ADD, null)
  31. )
  32. );
  33. // finally, assert
  34. assert result1 == result2;
  35. System.out.println("AAAAAA complex tests passed\n");
  36. // csv output for (4 / (4 * 4)) * 4
  37. CSVWriter writer = new CSVWriter("./output.csv", ';');
  38. writer.write("input");
  39. writer.write("result");
  40. writer.writeln();
  41. writer.write(basis1.getOP().repr() + String.valueOf(basis1.getValue()));
  42. writer.write(String.valueOf(Calc.finalize(basis1)));
  43. writer.writeln();
  44. writer.write(first1.getOP().repr() + String.valueOf(first1.getValue()));
  45. writer.write(String.valueOf(Calc.finalize(first1)));
  46. writer.writeln();
  47. writer.write(first2.getOP().repr() + String.valueOf(first2.getValue()));
  48. writer.write(String.valueOf(Calc.finalize(first2)));
  49. writer.writeln();
  50. temp = new Container(4f, Operator.MULTIPLY, first2);
  51. writer.write(temp.getOP().repr() + String.valueOf(temp.getValue()));
  52. writer.write(String.valueOf(Calc.finalize(temp)));
  53. writer.writeln();
  54. // programmatically reset to 0
  55. temp = new Container(temp.getValue(), Operator.SUBTRACT, temp);
  56. writer.write(temp.getOP().repr() + String.valueOf(temp.getValue()));
  57. writer.write(String.valueOf(Calc.finalize(temp)));
  58. writer.writeln();
  59. writer.close();
  60. }
  61. }