public void TestDelimiterFunction() { ValueFunction function = new AddFunction(); ValueDelimiter delim = new ValueDelimiter(">", DelimiterType.AsArray, function); List<DelimiterNode> nodes = new List<DelimiterNode>(); nodes.Add(ToNode("3")); nodes.Add(ToNode("6")); nodes.Add(ToNode("9")); DelimiterList list = new DelimiterList(delim, nodes, 0, "<", "3 6 9", null); DelimiterNodeList nodelist = new DelimiterNodeList(list); IScope scope = new TestScope(); INodeRequestor values = new TestValueNodeRequestor(nodelist); Value result = EvalNode.Do(nodelist, scope, values, null); Assert.AreEqual(18, result.AsInt); }
public void TestDelimitedString() { ValueDelimiter delim = new ValueDelimiter("'", DelimiterType.AsString); List<DelimiterNode> nodes = new List<DelimiterNode>(); string str = "this is a test"; nodes.Add(ToNode(str)); DelimiterList list = new DelimiterList(delim, nodes, 0, "'", str, null); DelimiterNodeList nodelist = new DelimiterNodeList(list); IScope scope = new TestScope(); INodeRequestor values = new TestValueNodeRequestor(nodelist); { // delimited string Value result = EvalNode.Do(nodelist, scope, values, null); Assert.AreEqual("this is a test", result.AsString); } { // function that takes a delimited string Value result = EvalNode.Do(ToNode("caps"), scope, values, null); Assert.AreEqual("THIS IS A TEST", result.AsString); } }
public void TestArray() { ValueDelimiter delim = new ValueDelimiter("]", DelimiterType.AsArray); List<DelimiterNode> nodes = new List<DelimiterNode>(); nodes.Add(ToNode("3")); nodes.Add(ToNode("7")); nodes.Add(ToNode("3")); DelimiterList list = new DelimiterList(delim, nodes, 0, "[", "3 7 3", null); DelimiterNodeList nodelist = new DelimiterNodeList(list); IScope scope = new TestScope(); INodeRequestor values = new TestValueNodeRequestor(nodelist); { // [3 7 3] Value result = EvalNode.Do(nodelist, scope, values, null); Assert.AreEqual(result.Type, ValueType.Array); List<Value> array = result.AsArray; Assert.AreEqual(3, array.Count); Assert.AreEqual(3, array[0].AsInt); Assert.AreEqual(7, array[1].AsInt); Assert.AreEqual(3, array[2].AsInt); } }