public void CastIntegerToReal_Int_ReturnsCorrectResult(int input, double expected)
        {
            RealLiteralExpression     realLit  = new RealLiteralExpression(input, 1, 1);
            CastFromIntegerExpression castExpr = new CastFromIntegerExpression(realLit, 1, 1);
            IInterpreterReal          parent   = Substitute.For <IInterpreterReal>();

            parent.DispatchInt(realLit, Arg.Any <List <object> >()).Returns(input);
            RealHelper realHelper = SetUpHelper(parent);

            double res = realHelper.CastIntegerToReal(castExpr, new List <object>());

            Assert.AreEqual(expected, res);
        }
        public void DispatchReal_CastFromIntegerAndObjectList_CorrectListPassed()
        {
            List <Object> expected = new List <Object>()
            {
                23, 2.334, null
            };
            CastFromIntegerExpression input1 = new CastFromIntegerExpression(null, 0, 0);
            IRealHelper   rhelper            = Substitute.For <IRealHelper>();
            Interpreter   interpreter        = Utilities.GetIntepreterOnlyWith(rhelper);
            List <Object> res = null;

            rhelper.CastIntegerToReal(Arg.Any <CastFromIntegerExpression>(), Arg.Do <List <Object> >(x => res = x));

            interpreter.DispatchReal(input1, expected);

            res.Should().BeEquivalentTo(expected);
        }
        public void DispatchReal_CastFromIntegerAndObjectList_CorrectValueReturned()
        {
            double expected = 17;
            CastFromIntegerExpression input1 = new CastFromIntegerExpression(null, 0, 0);
            List <Object>             input2 = new List <Object>()
            {
                23, 2.334, null
            };
            IRealHelper rhelper     = Substitute.For <IRealHelper>();
            Interpreter interpreter = Utilities.GetIntepreterOnlyWith(rhelper);

            rhelper.CastIntegerToReal(Arg.Any <CastFromIntegerExpression>(), Arg.Any <List <Object> >()).Returns(expected);

            double res = interpreter.DispatchReal(input1, input2);

            Assert.AreEqual(expected, res);
        }
 private void CastToString(ConditionNode node, TypeNode expectedType)
 {
     if (expectedType.Type == TypeEnum.Integer)
     {
         CastFromIntegerExpression cast1 = new CastFromIntegerExpression(node.ReturnExpression, 0, 0);
         node.ReturnExpression = cast1;
     }
     else if (expectedType.Type == TypeEnum.Real)
     {
         CastFromRealExpression cast2 = new CastFromRealExpression(node.ReturnExpression, 0, 0);
         node.ReturnExpression = cast2;
     }
     else if (expectedType.Type == TypeEnum.Boolean)
     {
         CastFromBooleanExpression cast3 = new CastFromBooleanExpression(node.ReturnExpression, 0, 0);
         node.ReturnExpression = cast3;
     }
 }
        private void InsertCastNode(ConditionNode conditionNode, TypeNode expectedType)
        {
            switch (expectedType.Type)
            {
            case TypeEnum.Real:
                CastToReal(conditionNode);
                break;

            case TypeEnum.String:
                CastToString(conditionNode, expectedType);
                break;

            default:
                throw new Exception("Invalid castFrom");
            }
            CastFromIntegerExpression cast = new CastFromIntegerExpression(conditionNode.ReturnExpression, 0, 0);

            conditionNode.ReturnExpression = cast;
        }
        private void InsertCastNode(IExpressionNode binaryNode, int child, TypeEnum castFrom)
        {
            switch (castFrom)
            {
            case TypeEnum.Integer:
                CastFromIntegerExpression cast1 = new CastFromIntegerExpression(binaryNode.Children[child], 0, 0);
                binaryNode.Children[child] = cast1;
                break;

            case TypeEnum.Real:
                CastFromRealExpression cast2 = new CastFromRealExpression(binaryNode.Children[child], 0, 0);
                binaryNode.Children[child] = cast2;
                break;

            case TypeEnum.Boolean:
                CastFromBooleanExpression cast3 = new CastFromBooleanExpression(binaryNode.Children[child], 0, 0);
                binaryNode.Children[child] = cast3;
                break;

            default:
                throw new Exception("Invalid castFrom");
            }
        }
Beispiel #7
0
 public double CastIntegerToReal(CastFromIntegerExpression node, List <object> parameters)
 {
     return(Convert.ToDouble(_interpreter.DispatchInt(node.Children[0], parameters)));
 }
        private void InsertCastNode(IExpressionNode binaryNode, int child)
        {
            CastFromIntegerExpression cast = new CastFromIntegerExpression(binaryNode.Children[child], 0, 0);

            binaryNode.Children[child] = cast;
        }
Beispiel #9
0
 public string CastIntegerToString(CastFromIntegerExpression node, List <Object> parameters)
 {
     return(_interpreter.DispatchInt(node.Child, parameters).ToString());
 }
        private void CastToReal(ConditionNode node)
        {
            CastFromIntegerExpression cast1 = new CastFromIntegerExpression(node.ReturnExpression, 0, 0);

            node.ReturnExpression = cast1;
        }