Exemplo n.º 1
0
        public void TestConcatenateInteger()
        {
            LSL_Types.list testList = new LSL_Types.list(new LSL_Types.LSLInteger(1), new LSL_Types.LSLInteger('a'), new LSL_Types.LSLString("test"));
            testList += new LSL_Types.LSLInteger(20);

            Assert.AreEqual(4, testList.Length);
            Assert.AreEqual(new LSL_Types.LSLInteger(20), testList.Data[3]);
            Assert.AreEqual(typeof(LSL_Types.LSLInteger), testList.Data[3].GetType());

            LSL_Types.list secondTestList = testList + new LSL_Types.LSLInteger(2);

            Assert.AreEqual(5, secondTestList.Length);
            Assert.AreEqual(new LSL_Types.LSLInteger(2), secondTestList.Data[4]);
            Assert.AreEqual(typeof(LSL_Types.LSLInteger), secondTestList.Data[4].GetType());
        }
Exemplo n.º 2
0
        public void TestGetLSLStringItemForKeyItem()
        {
            LSL_Types.key testValue
                = new LSL_Types.key("98000000-0000-2222-3333-100000001000");
            LSL_Types.LSLString testStringValue = new LSL_Types.LSLString(testValue);
            LSL_Types.list testList = new LSL_Types.list(testValue);

            Assert.AreEqual(testStringValue, testList.GetLSLStringItem(0));
        }
Exemplo n.º 3
0
        public void TestGetQuaternionItemForQuaternionItem()
        {
            LSL_Types.Quaternion testValue = new LSL_Types.Quaternion(12.64, 59.43723, 765.3421, 4.00987);
            LSL_Types.list testList = new LSL_Types.list(testValue);

            Assert.AreEqual(testValue, testList.GetQuaternionItem(0));
        }
Exemplo n.º 4
0
        public Dictionary<string, object> GetVars()
        {
            Dictionary<string, object> vars = new Dictionary<string, object>();

            if (m_Fields == null)
                return vars;

            m_Fields.Clear();

            Type t = GetType();

            FieldInfo[] fields = t.GetFields(BindingFlags.NonPublic |
                                             BindingFlags.Public |
                                             BindingFlags.Instance |
                                             BindingFlags.DeclaredOnly);

            foreach (FieldInfo field in fields)
            {
                m_Fields[field.Name] = field;

                if (field.FieldType == typeof(LSL_Types.list)) // ref type, copy
                {
                    LSL_Types.list v = (LSL_Types.list)field.GetValue(this);
                    Object[] data = new Object[v.Data.Length];
                    Array.Copy(v.Data, 0, data, 0, v.Data.Length);
                    LSL_Types.list c = new LSL_Types.list();
                    c.Data = data;
                    vars[field.Name] = c;
                }
                else if (field.FieldType == typeof(LSL_Types.LSLInteger) ||
                        field.FieldType == typeof(LSL_Types.LSLString) ||
                        field.FieldType == typeof(LSL_Types.LSLFloat) ||
                        field.FieldType == typeof(Int32) ||
                        field.FieldType == typeof(Double) ||
                        field.FieldType == typeof(Single) ||
                        field.FieldType == typeof(String) ||
                        field.FieldType == typeof(Byte) ||
                        field.FieldType == typeof(short) ||
                        field.FieldType == typeof(LSL_Types.Vector3) ||
                        field.FieldType == typeof(LSL_Types.Quaternion))
                {
                    vars[field.Name] = field.GetValue(this);
                }
            }

            return vars;
        }
Exemplo n.º 5
0
        public void TestGetLSLIntegerItemForLSLIntegerItem()
        {
            LSL_Types.LSLInteger testValue = new LSL_Types.LSLInteger(999911);
            LSL_Types.list testList = new LSL_Types.list(testValue);

            Assert.AreEqual(testValue, testList.GetLSLIntegerItem(0));
        }