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); }); }
public override void ToFunction(out Function function) { _left.ToFunction(out var leftF); _right.ToFunction(out var rightF); function = new DivideFunction(leftF, rightF); }