コード例 #1
0
        public void TestIndexOf()
        {
            int count = 100;
            MarshalArray <Vector3> list = new MarshalArray <Vector3>(count);

            Assert.AreEqual(list.Length, count);

            for (int i = 0; i < count; i++)
            {
                list[i] = new Vector3(i, i, i);
            }

            int result = -1;

            result = MarshalArrayBase.IndexOf(list, new Vector3(5, 5, 5), 0, list.Length);
            Assert.AreEqual(result, 5);

            result = MarshalArrayBase.IndexOf(list, new Vector3(5, 5, 5), 5, list.Length);
            Assert.AreEqual(result, 5);

            result = MarshalArrayBase.IndexOf(list, new Vector3(5, 5, 5), 6, list.Length);
            Assert.AreEqual(result, -1);

            result = MarshalArrayBase.IndexOf(list, new Vector3(5, 5, 5), 5, 1);
            Assert.AreEqual(result, 5);

            result = MarshalArrayBase.IndexOf(list, new Vector3(5, 5, 5), 5, 0);
            Assert.AreEqual(result, -1);

            result = MarshalArrayBase.IndexOf(list, new Vector3(5, 5, 5), 0, 6);
            Assert.AreEqual(result, 5);

            result = MarshalArrayBase.IndexOf(list, new Vector3(5, 5, 5), 0, 3);
            Assert.AreEqual(result, -1);
        }
コード例 #2
0
        public void TestCopyManaged2Marshal()
        {
            int count = 100;
            MarshalArray <Vector3> list = new MarshalArray <Vector3>(count);

            Assert.AreEqual(list.Length, count);

            for (int i = 0; i < count; i++)
            {
                list[i] = new Vector3(i, i, i);
            }


            Vector3[] list2 = new Vector3[count];
            MarshalArrayBase.Copy(list, 0, list2, 0, count);
            Assert.AreEqual(list2.Length, count);
            for (int i = 0; i < count; i++)
            {
                Assert.AreEqual(list2[i], new Vector3(i, i, i));
            }


            MarshalArray <Vector3> list3 = new MarshalArray <Vector3>(10);

            MarshalArrayBase.Copy(list2, 10, list3, 5, 10);
            Assert.AreEqual(list3[5], new Vector3(10, 10, 10));
            Assert.AreEqual(list3[9], new Vector3(14, 14, 14));
        }
コード例 #3
0
        public void TestCopyIntPtr2IntPtr()
        {
            int count = 100;
            MarshalArray <Vector3> list = new MarshalArray <Vector3>(count);

            Assert.AreEqual(list.Length, count);

            for (int i = 0; i < count; i++)
            {
                list[i] = new Vector3(i, i, i);
            }


            MarshalArray <Vector3> list2 = new MarshalArray <Vector3>(count);

            MarshalArrayBase.CopyBytes(list.Ptr, list.ElementSize, list2.Ptr, 0, list.ByteLength);
            Assert.AreEqual(list2.Length, count);
            for (int i = 0; i < count - 1; i++)
            {
                Assert.AreEqual(list2[i], new Vector3(i + 1, i + 1, i + 1));
            }
        }
コード例 #4
0
 public void Cleanup()
 {
     MarshalArrayBase.Cleanup();
 }