public void ConstructorTest_Success() { var calculateFunction = new CalculateFunction(); Assert.That(calculateFunction.Name, Is.EqualTo("CALCULATE")); Assert.That(calculateFunction.Function, Is.Not.Null); }
private static void VerifyCalculation(CalculateFunction calculate, double conversionRate) { const int price = 1; var calculated = calculate(price); Assert.AreEqual(calculated, price * conversionRate); }
public void ConstructorTest_WithRepositories_Success() { var scriptRepository = new Mock <IScriptRepository>(); var parameterRepositort = new Mock <IParameterRepository>(); var calculateFunction = new CalculateFunction(scriptRepository.Object, parameterRepositort.Object); Assert.That(calculateFunction.Name, Is.EqualTo("CALCULATE")); Assert.That(calculateFunction.Function, Is.Not.Null); }
public static CalculateFunction ToCalculateFunction( this CalculateFeeCoefficients calculateFeeCoefficients) { var pieceCalculateFunction = new CalculateFunction(calculateFeeCoefficients.FeeTokenType); foreach (var pieceCoefficients in calculateFeeCoefficients.PieceCoefficientsList.Where(pc => (pc.Value.Count - 1) % 3 == 0)) { pieceCalculateFunction.AddFunction(pieceCoefficients.Value.ToArray(), GetFunction(pieceCoefficients.Value.ToArray())); } return(pieceCalculateFunction); }
//generic calc method. usage: "10 + 20" => result 30 public double Culculate(string expression) { if (expression == null) { throw new ArgumentNullException("expression is null"); } int space = expression.IndexOf(" "); while (space > 0) { expression = expression.Remove(space, 1); space = expression.IndexOf(" "); } int a = GetNumber(ref expression); char symbol = GetSymbol(ref expression); int b = GetNumber(ref expression); CalculateFunction calculateFunction = GetFunction(symbol); return(calculateFunction(a, b)); }
public void CalculateFunctionTest_ScriptFromFakeAssembly_Success() { var parameters = new NCalc.Expression[5]; parameters[0] = new NCalc.Expression("'a'"); parameters[1] = new NCalc.Expression("'par1'"); parameters[2] = new NCalc.Expression("1"); parameters[3] = new NCalc.Expression("'par2'"); parameters[4] = new NCalc.Expression("3"); var result = new Mock <IResult>(); result.Setup(r => r.Properties) .Returns(new Dictionary <string, object>() { { "result", "4" } }); var calculator = new Mock <ICalculator>(); calculator.Setup(c => c.Map(It.IsAny <IList <object> >())); calculator.Setup(c => c.Calculate()).Returns(result.Object); var calculateFunction = new CalculateFunction(calculator: calculator.Object); var functionArgs = new NCalc.FunctionArgs() { Parameters = parameters }; Assert.That((bool)calculateFunction.Function(functionArgs), Is.EqualTo(true)); calculator.Verify(c => c.Map(It.IsAny <IList <object> >()), Times.Once); calculator.Verify(c => c.Calculate(), Times.Once); Assert.That(functionArgs.Parameters[0].Parameters.ContainsKey("#result")); Assert.That(functionArgs.Parameters[0].Parameters["#result"], Is.EqualTo("4")); }
public void CalculateFunctionTest_ScriptFromFakeDatabase_Success() { var scriptRepository = new Mock <IScriptRepository>(); scriptRepository.Setup(sr => sr.GetScriptBaseOnNameAsync("a")) .Returns(Task.FromResult(new Script() { Id = 1, Name = "a", Description = string.Empty })); var parameterRepository = new Mock <IParameterRepository>(); parameterRepository.Setup(pr => pr.GetAllParametersForScriptAsync(1)) .Returns(Task.FromResult(GetParameters())); var calculateFunction = new CalculateFunction(scriptRepository.Object, parameterRepository.Object); var parameters = new NCalc.Expression[5]; parameters[0] = new NCalc.Expression("'a'"); parameters[1] = new NCalc.Expression("'par1'"); parameters[2] = new NCalc.Expression("1"); parameters[3] = new NCalc.Expression("'par2'"); parameters[4] = new NCalc.Expression("3"); var functionArgs = new NCalc.FunctionArgs() { Parameters = parameters }; Assert.That(calculateFunction.Function(functionArgs), Is.EqualTo(true)); Assert.That(functionArgs.Parameters[0].Parameters.ContainsKey("#result")); Assert.That(functionArgs.Parameters[0].Parameters["#result"], Is.EqualTo("4")); }