public void SuccessfullyDivideNumbers()
        {
            var function = new DivideFunction();

            var inputs = function.GetInputs();

            Assert.Single(inputs);

            inputs[0].Value = new [] { 100, 4, 2 };

            var result = function.Calculate(inputs);

            Assert.NotNull(result);
            Assert.Collection(result,
                              i =>
            {
                Assert.Equal(typeof(double), i.GetValueType());
                Assert.Equal(12.5, TypeConverter.ToObject <double>(i.Value));
            },
                              i =>
            {
                Assert.Equal(typeof(int), i.GetValueType());
                Assert.Equal(12, TypeConverter.ToObject <int>(i.Value));
            },
                              i =>
            {
                Assert.Equal(typeof(int), i.GetValueType());
                Assert.Equal(1, TypeConverter.ToObject <int>(i.Value));
            });
        }
        public void FailToDivideByZero()
        {
            var function = new DivideFunction();

            Assert.Throws <DivideByZeroException>(() =>
            {
                var inputs = function.GetInputs();

                inputs[0].Value = new int[] { 2, 0 };
            });
        }
        public void SuccessfullySetFunctionInfo()
        {
            var function = new DivideFunction();

            Assert.NotNull(function.FunctionInfo);
            Assert.Equal("Divide", function.FunctionInfo.Name);
            Assert.Equal(new Version("1.0.0"), function.FunctionInfo.Version);
            Assert.Equal("Divide numbers.", function.FunctionInfo.Description);
            Assert.Collection(function.FunctionInfo.Tags,
                              i => Assert.Equal("algebra", i),
                              i => Assert.Equal("divide", i));
        }
        public void FailToDivideASingleNumber()
        {
            var function = new DivideFunction();

            Assert.Throws <ArgumentException>(() =>
            {
                var inputs = function.GetInputs();

                inputs[0].Value = new[] { 100 };

                var result = function.Calculate(inputs);
            });
        }
Beispiel #5
0
 public override void ToFunction(out Function function)
 {
     _left.ToFunction(out var leftF);
     _right.ToFunction(out var rightF);
     function = new DivideFunction(leftF, rightF);
 }