public override DataType DetermineDataTypeOfResult(MathOperationDefinition theDefinition, TestExecution testExecution)
        {
            MultiParameterFunctionDefinition theMoreSpecificDef = (MultiParameterFunctionDefinition)theDefinition;

            bool foundDecimalNumber = false;
            bool foundIntegerNumber = false;
            bool foundBooleanValue  = false;

            foreach (DataValueDefinition num in theMoreSpecificDef.ValueObjects)
            {
                DataValueInstance value = testExecution.DataValueRegistry.GetObject(num.Name);
                ValueObjects.Add(value);
                switch (value.Type)
                {
                case DataType.DecimalNumber:
                    foundDecimalNumber = true;
                    break;

                case DataType.IntegerNumber:
                    foundIntegerNumber = true;
                    break;

                case DataType.Boolean:
                    foundBooleanValue = true;
                    break;

                case DataType.NotDefined:
                    throw new ArgumentException("Type not defined for '" + value.Name + "'.");
                    break;

                default:
                    throw new ArgumentException("Type " + value.Type + " not supported by the basic math operation definition object.");
                }
            }
            if (foundDecimalNumber)
            {
                return(DataType.DecimalNumber);
            }
            else if (foundIntegerNumber)
            {
                return(DataType.IntegerNumber);
            }
            else if (foundBooleanValue)
            {
                return(DataType.Boolean);
            }
            throw new ArgumentException("Data type of math operation result can't be determined.");
        }
 public MultiParameterFunctionInstance(MultiParameterFunctionDefinition theDefinition, TestExecution testExecution)
     : base(theDefinition, testExecution)
 {
 }