public void ActionPointerConstruction()
        {

            object s = 123;
            object func = null;

            ValuePointer funcPointer = new ValuePointer(() => func, (o) => func = o, typeof(Action<object>), false);

            funcPointer.Setter(new Action<object>((val) => s = val));

            ((Action<object>)funcPointer.Getter())(12);

            Assert.AreEqual(12, s); //Check that the action correctly set 12
        }
        public void FuncPointerConstruction()
        {

            object s = 123;
            object func = null;

            ValuePointer funcPointer = new ValuePointer(() => func, (o) => func = o, typeof(Func<object>), false);

            funcPointer.Setter(new Func<object> (() => s));

            object obj = ((Func<object>)funcPointer.Getter())();

            Assert.AreEqual(s, obj); //Check that we got the correct object
        }