Example #1
0
        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);
        }
Example #2
0
        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);
            }
        }
Example #3
0
        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);
            }
        }