Beispiel #1
0
        public void EachListConstructor()
        {
            var baseList     = new ListValue();
            var baseDelegate = ((NoArgsSuffix <int> .Del <int>)baseList.GetSuffix("LENGTH"));

            Assert.AreEqual(0, baseDelegate.Invoke());

            var castList     = ListValue.CreateList(new List <object>());
            var castDelegate = ((NoArgsSuffix <int> .Del <int>)castList.GetSuffix("LENGTH"));

            Assert.AreEqual(0, castDelegate.Invoke());

            var copyDelegate = (NoArgsSuffix <ListValue> .Del <ListValue>)baseList.GetSuffix("COPY");
            var copyList     = copyDelegate.Invoke();

            Assert.AreEqual(0, ((NoArgsSuffix <int> .Del <int>)copyList.GetSuffix("LENGTH")).Invoke());
        }
Beispiel #2
0
        private object InvokeDelegate(ListValue list, string suffixName, params object[] parameters)
        {
            var lengthObj = list.GetSuffix(suffixName);

            Assert.IsNotNull(lengthObj);
            var lengthDelegate = lengthObj as Delegate;

            Assert.IsNotNull(lengthDelegate);
            var length = lengthDelegate.DynamicInvoke(parameters);

            return(length);
        }
Beispiel #3
0
        public void EachListConstructor()
        {
            var cpu = new FakeCpu();

            cpu.PushStack(new KOSArgMarkerType());

            var baseList     = new ListValue();
            var baseDelegate = baseList.GetSuffix("LENGTH");

            cpu.PushStack(null); // dummy push to be popped by ReverseStackArgs
            cpu.PushStack(new KOSArgMarkerType());
            baseDelegate.Invoke(cpu);
            Assert.AreEqual(ScalarIntValue.Zero, baseDelegate.Value);

            var castList     = ListValue.CreateList(new List <object>());
            var castDelegate = castList.GetSuffix("LENGTH");

            cpu.PushStack(null); // dummy push to be popped by ReverseStackArgs
            cpu.PushStack(new KOSArgMarkerType());
            castDelegate.Invoke(cpu);
            Assert.AreEqual(ScalarIntValue.Zero, castDelegate.Value);

            var copyDelegate = baseList.GetSuffix("COPY");

            cpu.PushStack(null); // dummy push to be popped by ReverseStackArgs
            cpu.PushStack(new KOSArgMarkerType());
            copyDelegate.Invoke(cpu);
            var copyList = copyDelegate.Value;

            Assert.AreEqual(baseList, copyList);

            var lengthDelegate = copyList.GetSuffix("LENGTH");

            cpu.PushStack(null); // dummy push to be popped by ReverseStackArgs
            cpu.PushStack(new KOSArgMarkerType());
            lengthDelegate.Invoke(cpu);
            Assert.AreEqual(ScalarIntValue.Zero, lengthDelegate.Value);
        }
Beispiel #4
0
        public void EachListConstructor()
        {
            var cpu = new FakeCpu();
            cpu.PushStack(new KOSArgMarkerType());

            var baseList = new ListValue();
            var baseDelegate = baseList.GetSuffix("LENGTH");
            cpu.PushStack(null); // dummy push to be popped by ReverseStackArgs
            cpu.PushStack(new KOSArgMarkerType());
            baseDelegate.Invoke(cpu);
            Assert.AreEqual(ScalarIntValue.Zero, baseDelegate.Value);

            var castList = ListValue.CreateList(new List<object>());
            var castDelegate = castList.GetSuffix("LENGTH");
            cpu.PushStack(null); // dummy push to be popped by ReverseStackArgs
            cpu.PushStack(new KOSArgMarkerType());
            castDelegate.Invoke(cpu);
            Assert.AreEqual(ScalarIntValue.Zero, castDelegate.Value);

            var copyDelegate = baseList.GetSuffix("COPY");
            cpu.PushStack(null); // dummy push to be popped by ReverseStackArgs
            cpu.PushStack(new KOSArgMarkerType());
            copyDelegate.Invoke(cpu);
            var copyList = copyDelegate.Value;
            Assert.AreEqual(baseList, copyList);

            var lengthDelegate = copyList.GetSuffix("LENGTH");
            cpu.PushStack(null); // dummy push to be popped by ReverseStackArgs
            cpu.PushStack(new KOSArgMarkerType());
            lengthDelegate.Invoke(cpu);
            Assert.AreEqual(ScalarIntValue.Zero, lengthDelegate.Value);
        }
Beispiel #5
0
        public void EachListConstructor()
        {
            var baseList = new ListValue();
            var baseDelegate = ((NoArgsSuffix<int>.Del<int>)baseList.GetSuffix("LENGTH"));
            Assert.AreEqual(0, baseDelegate.Invoke());

            var castList = ListValue.CreateList(new List<object>());
            var castDelegate = ((NoArgsSuffix<int>.Del<int>)castList.GetSuffix("LENGTH"));
            Assert.AreEqual(0, castDelegate.Invoke());

            var copyDelegate = (NoArgsSuffix<ListValue>.Del<ListValue>)baseList.GetSuffix("COPY");
            var copyList = copyDelegate.Invoke();

            Assert.AreEqual(0, ((NoArgsSuffix<int>.Del<int>)copyList.GetSuffix("LENGTH")).Invoke());
        }
Beispiel #6
0
 private object InvokeDelegate(ListValue list, string suffixName, params object[] parameters)
 {
     var lengthObj = list.GetSuffix(suffixName);
     Assert.IsNotNull(lengthObj);
     var lengthDelegate = lengthObj as Delegate;
     Assert.IsNotNull(lengthDelegate);
     var length = lengthDelegate.DynamicInvoke(parameters);
     return length;
 }