示例#1
0
        public void TestRotate()
        {
            LuaState L = null;
            using (L = new LuaState())
            {
                Assert.Equal(0, L.GetTop());
                L.PushNumber(1);
                L.PushString("Test");
                L.PushNumber(2);
                L.PushString("Text");
                L.PushNumber(3);
                L.PushString("Toto");
                L.PushNumber(4);
                Assert.Equal(7, L.GetTop());

                L.Rotate(2, 1);
                Assert.Equal(7, L.GetTop());

                Assert.Equal(1, L.ToNumber(1));
                Assert.Equal(4, L.ToNumber(2));
                Assert.Equal("Test", L.ToString(3));
                Assert.Equal(2, L.ToNumber(4));
                Assert.Equal("Text", L.ToString(5));
                Assert.Equal(3, L.ToNumber(6));
                Assert.Equal("Toto", L.ToString(7));

                L.Rotate(2, 2);
                Assert.Equal(7, L.GetTop());

                Assert.Equal(1, L.ToNumber(1));
                Assert.Equal(3, L.ToNumber(2));
                Assert.Equal("Toto", L.ToString(3));
                Assert.Equal(4, L.ToNumber(4));
                Assert.Equal("Test", L.ToString(5));
                Assert.Equal(2, L.ToNumber(6));
                Assert.Equal("Text", L.ToString(7));

                L.Rotate(2, -3);
                Assert.Equal(7, L.GetTop());

                Assert.Equal(1, L.ToNumber(1));
                Assert.Equal("Test", L.ToString(2));
                Assert.Equal(2, L.ToNumber(3));
                Assert.Equal("Text", L.ToString(4));
                Assert.Equal(3, L.ToNumber(5));
                Assert.Equal("Toto", L.ToString(6));
                Assert.Equal(4, L.ToNumber(7));

            }
        }