public void TestEvaulation(string romanNumer, string result)
        {
            var processor = new ProcessRomanNumbers(new NumberFactory());

            var expressions = processor.GetExprList(romanNumer);

            expressions.Reverse();
            var exprTree        = processor.CreateRomanNumber(expressions.ToArray());
            var evalated        = exprTree.Eval();
            var processedNumber = processor.GetRomanNumber(evalated);

            Assert.AreEqual(result, processedNumber);
        }
        public void TestProcess(string romanNumer, int result)
        {
            var processor = new ProcessRomanNumbers(new NumberFactory());

            var expressions = processor.GetExprList(romanNumer);

            expressions.Reverse();
            var exprTree  = processor.CreateRomanNumber(expressions.ToArray());
            var traversal = new RomanNumberExprTraversal();

            traversal.Sort(exprTree);

            Assert.IsNotNull(exprTree);
            Assert.AreEqual(expected: result, exprTree.Eval().Value);
        }