public static void Main(string[] args)
        {
            MathNode[] nodes  = Parser.Parse(args);
            Fraction   result = MathRunner.Calculate(nodes);

            Console.WriteLine("= " + result.ToConsoleOutput());
        }
        public void Parse3Subtract()
        {
            string[]   values   = new string[] { "3_1/2", "-", "1_1/2" };
            MathNode[] parsed   = Parser.Parse(values);
            Fraction   result   = MathRunner.Calculate(parsed);
            Fraction   expected = Fraction.FromString("2");

            Assert.Equal(expected, result);
        }
 public void InvalidInputThrowsTrailingFraction()
 {
     string[]   values = new string[] { "3_1/2", "+", "1_1/2", "1/4" };
     MathNode[] parsed = Parser.Parse(values);
     Exception  ex     = Assert.Throws <InvalidOperationException>(() => MathRunner.Calculate(parsed));
 }
 public void DivideByZero()
 {
     string[]   values = new string[] { "3", "/", "0" };
     MathNode[] parsed = Parser.Parse(values);
     Exception  ex     = Assert.Throws <InvalidOperationException>(() => MathRunner.Calculate(parsed));
 }