public IActionResult Post(PostfixNotationExpression item) { try { if (item == null || !ModelState.IsValid) { return(BadRequest(ModelState)); } var dbItem = _pneRepository.Find(item.Id); if (dbItem == null) { return(NotFound()); } if (dbItem.Result == item.Result) { item.Passed = true; _pneRepository.Update(item); } } catch (Exception) { return(BadRequest()); } return(Ok(new { id = item.Id, passed = item.Passed })); }
static void Main(string[] args) { string input = Console.In.ReadToEnd(); string output = new PostfixNotationExpression() .result(input).ToString(); Console.WriteLine(output); }
public void RPEParser_MustNotCalculateSimpleExpression(string expression, decimal expected) { var postfixNotation = new PostfixNotationExpression(); postfixNotation.result(expression) .Should() .NotBeOfType(typeof(decimal)); }
public void Update(PostfixNotationExpression item) { var expressionItem = this.Find(item.Id); var index = expressionList.IndexOf(expressionItem); expressionList.RemoveAt(index); expressionList.Insert(index, item); }
static void Main(string[] args) { var parser = new PostfixNotationExpression(new CalculationOperation(), new PostfixNotationParseEquation(new CalculationOperation())); while (true) { Console.WriteLine("Результат:" + parser.Execute(Console.ReadLine())); } }
public PostfixNotationExpression NewExpression() { var expressionRnd = GenerationExpression(); var exprItem = new PostfixNotationExpression() { Id = Guid.NewGuid().ToString("N"), Expression = expressionRnd, Result = Compute(expressionRnd) }; expressionList.Add(exprItem); return(exprItem); }
public void AddCalc([FromBody] Calculating calcdate) { if (!String.IsNullOrEmpty(calcdate.Term)) { string s = calcdate.Term; int iCntOprnd = 0, iCntOprt = 0; bool bflag = true; for (int i = 0; i < s.Length; i++) { if ((s[i] == '+') || (s[i] == '-') || (s[i] == '*') || (s[i] == '/')) { if (iCntOprt >= 1) { calcdate.Operations += ";"; } calcdate.Operations += s[i]; iCntOprt += 1; calcdate.Operands += ";"; if (bflag) { iCntOprnd += 1; } bflag = false; } else { calcdate.Operands += s[i]; bflag = true; if (i == s.Length - 1) { calcdate.Operands += ";"; iCntOprnd += 1; } } } if (iCntOprnd - iCntOprt == 1) { PostfixNotationExpression pn = new PostfixNotationExpression(); calcdate.Res = pn.result(s); calcdate.TimeofCalc = DateTime.Now; calcdate.UserIp = System.Web.HttpContext.Current.Request.UserHostAddress; db.Calcs.Add(calcdate); db.SaveChanges(); } } }
public void Initialize() { Mock <ICalculationOperation> mockCalculationOperation = new Mock <ICalculationOperation>(); mockCalculationOperation.Setup(m => m.PerformOperation("+", 4, 6)).Returns(10); mockCalculationOperation.Setup(m => m.PerformOperation("+", 4, 2)).Returns(6); mockCalculationOperation.Setup(m => m.PerformOperation("*", 6, 3)).Returns(18); mockCalculationOperation.Setup(m => m.PerformOperation("*", 2, 3)).Returns(6); Mock <IPostfixNotationParseEquation> mockPostfixNotationParseEquation = new Mock <IPostfixNotationParseEquation>(); mockPostfixNotationParseEquation.Setup(m => m.GetPostfixNotationEquation("(4+2)*3")).Returns(new[] { "4", "2", "+", "3", "*" }); mockPostfixNotationParseEquation.Setup(m => m.GetPostfixNotationEquation("4+2*3")).Returns(new[] { "4", "2", "3", "*", "+" }); mockPostfixNotationParseEquation.Setup(m => m.GetPostfixNotationEquation("5")).Returns(new[] { "5" }); _calculationOperation = new PostfixNotationExpression(mockCalculationOperation.Object, mockPostfixNotationParseEquation.Object); }