public void TestBuiltin() { IScope scope = new TestScope(); INodeRequestor values = new TestValueIntRequestor(); Value result = EvalNode.Do(ToNode("1234"), scope, values, null); Assert.AreEqual(1234, result.AsInt); }
public void TestFailure() { IScope scope = new TestScope(); INodeRequestor values = new TestValueIntRequestor(); bool bCatch = false; try { Value result = EvalNode.Do(ToNode("qwer"), scope, values, null); } catch (Loki3Exception e) { Assert.True(e.Errors.ContainsKey(Loki3Exception.keyBadToken)); Assert.AreEqual("qwer", e.Errors[Loki3Exception.keyBadToken].AsString); bCatch = true; } Assert.True(bCatch); }
public void TestVariable() { IScope scope = new TestScope(); INodeRequestor values = new TestValueIntRequestor(); Value result = EvalNode.Do(ToNode("x"), scope, values, null); Assert.AreEqual(3.5, result.AsFloat); }
public void TestFunctions() { IScope scope = new TestScope(); INodeRequestor values = new TestValueIntRequestor(); // infix Value result = EvalNode.Do(ToNode("sum"), scope, values, null); Assert.AreEqual(10, result.AsInt); // only uses previous token result = EvalNode.Do(ToNode("prev1"), scope, values, null); Assert.AreEqual(4, result.AsInt); // only uses next token result = EvalNode.Do(ToNode("next1"), scope, values, null); Assert.AreEqual(8, result.AsInt); }