private static List <DoublePoint> GetPointsToGraph() { var graphPoinst = new List <DoublePoint>(); double minY = -GraphHeight / 2 - 1; double maxY = GraphHeight / 2 + 1; double x = (-Offset.X - GraphWidth / 2); double y = new Rpn(rpn).GetNewRpnWithSetVariable(x * Zoom).Calculate() / Zoom - Offset.Y; graphPoinst.Add(new DoublePoint(x + Offset.X, y)); foreach (DoublePoint el in pointsList) { if (el.X > GetLeftPointXPos() && el.X < GetRightPointXPos()) { var point = new DoublePoint(el.X, el.Y); point.Y -= Offset.Y; point.X += Offset.X; if (point.Y > maxY) { point.Y = maxY; } if (point.Y < minY) { point.Y = minY; } graphPoinst.Add(point); } } for (int i = 1; i < graphPoinst.Count - 1; i++) { if (graphPoinst[i].Y == maxY) { if (graphPoinst[i - 1].Y == maxY && graphPoinst[i + 1].Y == maxY) { graphPoinst.RemoveAt(i); i--; } } else if (graphPoinst[i].Y == minY) { if (graphPoinst[i - 1].Y == minY && graphPoinst[i + 1].Y == minY) { graphPoinst.RemoveAt(i); i--; } } } x = (-Offset.X + GraphWidth / 2); y = new Rpn(rpn).GetNewRpnWithSetVariable(x * Zoom).Calculate() / Zoom - Offset.Y; graphPoinst.Add(new DoublePoint(x + Offset.X, y)); return(graphPoinst); }
public void TestFuncWithManyArguments() { var rpn = new Rpn("threesum(3+4,sqrt(9),6)"); Assert.AreEqual("3 4 + 9 sqrt( 6 threesum(", rpn.ToString()); Assert.AreEqual(3, ((RpnItemFunction)rpn.Result.Last()).ArgumentCount); }
public void InputButton_Click(object sender, RoutedEventArgs e) { string equation = Rpn.StartRpn(InputBox.Text); OutputResult.Text = equation; DrawF(equation); }
public void TestSubtraction() { var rpn = new Rpn("100-10-10-10"); var eval = new EvaluateRpn(rpn); var value = eval.Eval(); Assert.AreEqual(70, value.Numeric); }
public void TestNotEqualOpStr() { var rpn = new Rpn("''hej'!='då'"); var eval = new EvaluateRpn(rpn); var value = eval.Eval(); Assert.AreEqual(1, value.Numeric); }
public void TestNotEqualOp2() { var rpn = new Rpn("85!=85"); var eval = new EvaluateRpn(rpn); var value = eval.Eval(); Assert.AreEqual(0, value.Numeric); }
public void TestFirstFunction() { var rpn = new Rpn("(12)/(first(0?1,0?2,0?3,1?4,1?5))"); var eval = new EvaluateRpn(rpn); var value = eval.Eval(); Assert.AreEqual(3, value.Numeric); }
public void TestOrderEvaluation() { var rpn = new Rpn("12/2/3"); var eval = new EvaluateRpn(rpn); var value = eval.Eval(); Assert.AreEqual(2, value.Numeric); }
public void TestBasicAddition() { var rpn = new Rpn("3+4"); var eval = new EvaluateRpn(rpn); var value = eval.Eval(); Assert.AreEqual(7, value.Numeric); }
public void TestThatNullIsFalse() { var rpn = new Rpn("null?1"); var eval = new EvaluateRpn(rpn); var value = eval.Eval(); Assert.AreEqual(null, value.String); }
public void TestDivision() { var rpn = new Rpn("3+4/2"); var eval = new EvaluateRpn(rpn); var value = eval.Eval(); Assert.AreEqual(5, value.Numeric); }
public void TestNullParsing() { var rpn = new Rpn("null"); var eval = new EvaluateRpn(rpn); var value = eval.Eval(); Assert.AreEqual(null, value.String); }
public void TestDivision3() { var rpn = new Rpn("1000/10*2/10"); var eval = new CompileRpn(rpn); var value = eval.Evaluate(null); Assert.AreEqual(20, value); }
public void TestSubtraction() { var rpn = new Rpn("100-10-10-10"); var eval = new CompileRpn(rpn); var value = eval.Evaluate(null); Assert.AreEqual(70, value); }
public void TestDivision() { var rpn = new Rpn("3+4/2"); var eval = new CompileRpn(rpn); var value = eval.Evaluate(null); Assert.AreEqual(5, value); }
public void TestDivision3() { var rpn = new Rpn("1000/10*2/10"); var eval = new EvaluateRpn(rpn); var value = eval.Eval(); Assert.AreEqual(20, value.Numeric); }
public void TestBasicAddition() { var rpn = new Rpn("3+4"); var eval = new CompileRpn(rpn); var value = eval.Evaluate(null); Assert.AreEqual(7, value); }
public void TestNotEqualOp2() { var rpn = new Rpn("85!=85"); var eval = new CompileRpn(rpn); var value = eval.Evaluate(null); Assert.AreEqual(0, value); }
public void Calculate_Always_Success(string expression, int expectedValue) { var rpn = new Rpn(); var calculate = rpn.Calculate(expression); Assert.AreEqual(expectedValue, calculate); }
public void TestOrderEvaluation() { var rpn = new Rpn("12/2/3"); var eval = new CompileRpn(rpn); var value = eval.Evaluate(null); Assert.AreEqual(2, value); }
public void TestEqLtParsing() { var rpn = new Rpn("5<=2+3"); var eval = new EvaluateRpn(rpn); var value = eval.Eval(); Assert.AreEqual(1, value.Numeric); }
private void AddRpn(Rpn rpn) { program.AddLast(new LinkedListNode <Rpn>(rpn)); if (labelsForNextRpn.Count > 0) { LabelLastRpn(); } }
public void TestStringAddition() { var rpn = new Rpn("\"3\"+\"3\""); var eval = new EvaluateRpn(rpn); var value = eval.Eval(); Assert.AreEqual("33", value.String); }
public void TestEqLtParsing() { var rpn = new Rpn("5<=2+3"); var eval = new CompileRpn(rpn); var value = eval.Evaluate(null); Assert.AreEqual(1, value); }
public void InputButton_Click(object sender, RoutedEventArgs e) { _ = this.Find <Button>("InputButton"); var OutputResult = this.Find <TextBlock>("OutputResult"); var InputBox = this.Find <TextBox>("InputBox"); string equation = Rpn.StartRpn(InputBox.Text); OutputResult.Text = equation; }
public void CanWorkWithGuids() { var id = Guid.NewGuid(); var rpn = new Rpn($"id=='{id}'"); var eval = new EvaluateRpn(rpn, new List <NameAndType> { new NameAndType("id", typeof(Guid)) }); var value = eval.Eval(new object[] { id }); Assert.AreEqual(1, value.Numeric); }
public void Test() { var rpn = new Rpn("nisse+2*sture+5"); var x = new CompileRpn(rpn, new List <NameAndType> { new NameAndType("nisse", typeof(double)), new NameAndType("sture", typeof(double)) }); var result = x.Evaluate(new object[] { 1.0, 3.0 }); Console.WriteLine(result); }
public void TestThatNullabelsWorks1() { var rpn = new Rpn("var1??-1"); Assert.AreEqual("var1 -1 ??", rpn.ToString()); var eval = new EvaluateRpn(rpn, new List <NameAndType> { new NameAndType("var1", typeof(double)) }); var value = eval.Eval(new object[] { null }); Assert.AreEqual(-1, value.Numeric); }
public void TestEqualOp(double variableValue, double expected) { var rpn = new Rpn("Url==42"); Assert.AreEqual("Url 42 ==", rpn.ToString()); var eval = new CompileRpn(rpn, new List <NameAndType> { new NameAndType("Url", typeof(double)) }); var value = eval.Evaluate(new object[] { variableValue }); Assert.AreEqual(expected, value); }
public void TestVariables() { var rpn = new Rpn("3+(a+q)/(2+2)+3"); Assert.AreEqual("3 a q + 2 2 + / + 3 +", rpn.ToString()); var eval = new CompileRpn(rpn, new List <NameAndType> { new NameAndType("a", typeof(double)), new NameAndType("q", typeof(double)) }); var variables = new object[] { 3.0, 5.0 }; var value = eval.Evaluate(variables); Assert.AreEqual(8, value); }